[FUG-BR] Squid 3 autenticando no AD em Windows 2008R2

Saul Figueiredo saulfelipecf em gmail.com
Terça Março 12 09:14:28 BRT 2013


Em 11 de março de 2013 16:59, Patryck Ramos Martins
<patryckrm em gmail.com> escreveu:
> Em 2008 eu estava com essa dúvida e segui o "manual" do Sérgio Ferreira.
>
> Segue o email dele logo abaixo:
>
> #####################################################################
> ## How-TO para autenticação de usuário do SQUID no Active Directory
> ##
> ##  By, Sérgio Ferreira
> ##
> ##  sergio em wgo.com.br - WGO Telecom
> ##  sergioferreira em mmcb.com.br - Mitsubishi Motors
> ##
> #####
>
> squid autenticando no AD via winbind.
>
> Neste tipo de autenticação, não aparecerá a janela pedindo
> usuário e senha se o usuário já estiver autenticado no AD.
>
>
> ***  preparar o ambiente -
>
> Compilar o kernel do freebsd com essas opções :
>
> # Recursos de memoria para o SQUID
> options         MSGMNB=16384 # max # of bytes in a queue
> options         MSGMNI=64 # number of message queue identifiers
> options         MSGSEG=512 # number of message segments per queue
> options         MSGSSZ=64 # size of a message segment
> options         MSGTQL=2048 # max messages in system
>
> options         SHMSEG=16 # max shared mem id's per process
> options         SHMMNI=32 # max shared mem id's per system
> options         SHMMAX=2097152 # max shared memory segment size (bytes)
> options         SHMALL=4096 # max amount of shared memory (pages)
>
>
> *** instalar o Samba
> samba 3.0.x
> ./configure --with-winbind
>
>
>
> configurar o samba - smb.conf
>
> [global]
>         workgroup = _NOME_DOMINIO_  // nome NETBIOS
>         os level = 2
>         unix extensions = yes
>         map to guest = no
>         debug level = 1
>         socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
>         wins server = 172.30.32.15
>         veto files = /*.eml/*.nws/riched20.dll/*.{*}/
>         netbios name = PROXY01
>         security = domain
>         realm = MMCB.INTRANET
>         password server = 172.30.32.15, 172.30.32.95
>         encrypt passwords = yes
>
>         server string = proxycat - Samba Server
>
>         allow trusted domains = yes
>         winbind uid = 10000-20000
>         winbind gid = 10000-20000
>         winbind use default domain = yes
>         winbind enum users = yes
>         winbind enum groups = yes
>         winbind nested groups = Yes
>         winbind separator = \\
>
>         hosts allow =  172.30. 172.26. 172.28.
>
>         # This tells samba to write log files per machine.
>         log file = /var/log/samba/samba.log
>
>         # This sets an alternate log level. Default is 2.
>         log level = 3
>         max log size = 50
>
>         interfaces = 172.30.32.80/255.255.255.0
>
>
> ## Agora, tem que juntar o servidor ao dominio do AD
>
> #>/usr/local/samba/bin/net rpc join -S __NOME_DOMINIO__ -tmn -U
> Administrator
> password :  ( forneça a senha do Administrador do AD )
>
> Joined domain __NOME_DOMINIO__
>
>
> Agora é iniciar o serviço do WinBind :
>
>
> #>/usr/local/samba/sbin/winbindd
>
>
> ## Se tudo estiver certo, poderá usar os comandos :
>
> #>wbinfo -t
> checking the trust secret via RPC calls succeeded
>
> #>wbinfo -u
> vai trazer a lista de usuários do AD
>
> #>wbinfo -g
> vai trazer a lista de usuários de AD
>
>
>
>
> *** Ok, agora vamos instalar o squid e configurá-lo :
> proxycat1# squid -v
> Squid Cache: Version 2.6.STABLE13
> configure options: '--enable-dlmalloc'
>                    '--enable-storeio=diskd ufs'
>                    '--disable-ident-lookups'
>                    '--enable-carp'
>                    '--enable-removal-policies=heap lru'
>                    '--enable-icmp'
>                    '--enable-delay-pools'
>                    '--with-openssl'
>                    '--enable-forw-via-db'
>                    '--enable-default-err-language=Portuguese'
>                    '--enable-err-languages=Portuguese English Spanish'
>                    '--enable-poll'
>                    '--enable-leakfinder'
>                    '--enable-underscores'
>                    '--enable-auth=basic digest ntlm'
>                    '--enable-basic-auth-helpers=PAM SMB NCSA LDAP'
>                    '--enable-ntlm-auth-helpers=SMB no_check fakeauth'
>                    '--enable-digest-auth-helpers=password'
>                    '--with-samba-sources=/usr/programas/samba-3.0.20b'
>                    '--enable-ntlm-fail-open'
>                    '--enable-external-acl-helpers=ip_user unix_group
> ldap_group wbinfo_group'
>
>
>
>
> Agora o squid.conf :
>
>
> ## inicio do squid.conf ###
>
> #debug_options all,1 33,3
> visible_hostname cache.mmcb.com.br
>
> http_port 3128
> icp_port 0
>
> hierarchy_stoplist cgi-bin ?
>
> acl QUERY urlpath_regex cgi-bin \?
> no_cache deny QUERY
>
> minimum_object_size 0 KB
> maximum_object_size_in_memory 10 KB
>
> cache_mem 48 MB
> cache_replacement_policy lru
> memory_replacement_policy lru
>
> cache_dir diskd /usr/local/squid/var/cache 15245 16 256
> cache_access_log /usr/local/squid/var/logs/access.log
> cache_log /usr/local/squid/var/logs/squid.out
> cache_store_log none
>
> mime_table /usr/local/squid/etc/mime.conf
>
> pid_filename /var/run/squid.pid
>
> ftp_passive on
> ftp_sanitycheck on
>
> hosts_file /etc/hosts
>
> auth_param ntlm program /usr/local/samba/bin/ntlm_auth
> --helper-protocol=squid-2.5-ntlmssp
> auth_param ntlm children 20
>
> auth_param basic program /usr/local/samba/bin/ntlm_auth
> --helper-protocol=squid-2.5-basic
> auth_param basic children 20
> auth_param basic realm Autenticacao de acesso a internet
> auth_param basic credentialsttl 2 hours
>
> authenticate_cache_garbage_interval 1 hour
> authenticate_ttl 1 hour
> authenticate_ip_ttl 60 seconds
>
> refresh_pattern ^ftp:           1440    20%     10080
> refresh_pattern ^gopher:        1440    0%      1440
> refresh_pattern .               0       20%     4320
>
> connect_timeout 2 minute
>
> peer_connect_timeout 30 seconds
>
>
> # Todas as redes da empresa
> acl rede src 172.26.0.0/255.255.0.0
> acl rede src 172.28.0.0/255.255.0.0
>
>
> acl all src 0.0.0.0/0.0.0.0
> acl manager proto cache_object
> acl localhost src 127.0.0.1/255.255.255.255
> acl to_localhost dst 127.0.0.0/8
> acl SSL_ports port 443
>
>
> http_access allow localhost
>
> acl Safe_ports port 80 81 8080
> acl Safe_ports port 21          # ftp
> acl Safe_ports port 443 563     # https, snews
> acl Safe_ports port 70          # gopher
> acl Safe_ports port 210         # wais
> acl Safe_ports port 1025-65535  # unregistered ports
> acl Safe_ports port 280         # http-mgmt
> acl Safe_ports port 488         # gss-http
> acl Safe_ports port 591         # filemaker
> acl Safe_ports port 777         # multiling http
> acl Safe_ports port 444 1049 1972 2848 5024 44718 # portas re-liberadas
>
> acl Deny_ports port 5190 1863 445   # portas negadas
> acl CONNECT method CONNECT
>
> http_access allow manager localhost
> http_access deny manager
> http_access deny !Safe_ports
> http_access deny CONNECT !SSL_ports
>
>
> ##--------------- Sites com permissoes diferenciadas ---------------------
>
> # direto sem autenticação
> acl site_xx dst 200.200.200.200
> http_access allow site_xx rede
>
> acl bradesco dst 200.155.80.12
> http_access allow bradesco rede
>
>
> # Permitir Acesso sem autenticacao a qualquer url deste arquivo
> acl sem_senha url_regex "/usr/local/squid/etc/url_sem_senha.txt"
> http_access allow sem_senha
>
>
> #**********************  AUTENTICACAO DE USUARIOS *************************
>
> ## Liberar google_earth para o login __login_do_usuário__
> ## 24/04/2007 - HelpDesk 31543
> acl login_x proxy_auth _login_do_usuário_
> acl google_earth url_regex -i google-earth
> acl google_earth url_regex -i google.com
> http_access allow login_x google_earth rede
>
> # outras liberações por login do usuário
>
>
> # Verificar grupo do usuario
> external_acl_type NT_global_group ttl=600 children=35  %LOGIN
> /usr/local/squid/libexec/wbinfo_group.pl
>
>
> # Verificar gredenciais do usuario
> acl Internet proxy_auth REQUIRED
>
>
>
> # -------------Grupo Infra-Estrutura de Sistemas--------------------
> acl InfraEstrutura external NT_global_group GG_CAT_Sistemas_Infra
> http_access allow rede Internet InfraEstrutura
> ## GG_CAT_Sistemas_Infra é o nome do grupo no Active Directory
>
>
> # -------------Grupos com acesso a internet-------------------------
> acl InternetUsers_spo external NT_global_group GrInternetSP
> acl InternetUsers_cat external NT_global_group GrInternet
> ## temos duas unidades...aqui eu verifico se o usuário tem acesso a internet
> ## para ter, tem que estar no grupo GrInternetSP ou GrInternet do AD
>
> # -------------Grupo com acesso as urls abaixo sem restricao -------
> acl url_allow url_regex -i "/usr/local/squid/etc/url_allow.txt"
> http_access allow Internet InternetUsers_spo url_allow rede
> http_access allow Internet InternetUsers_cat url_allow rede
> ## permito o acesso se :
> ##    estiver autenticado ( Internet )
> ##    for do grupo InternetUsers_spo ou _cat
> ##    for da rede da empresa ( rede )
> ##    e se a url estiver no arquivo url_allow.txt
>
>
> # -------------Grupo Diretores--------------------------------------
> acl Diretores external NT_global_group Internet_Diretores
> http_access allow rede Internet Diretores
> ## diretores são diretores :-)
>
>
> # -------------Grupo com acesso ao MSN -----------------------------
> acl PermiteMsn external NT_global_group GG_ORG_MSN
> acl MsnMessenger url_regex -i ADSAdClient31
> acl MsnMessenger url_regex -i gateway.dll
> acl MsnMessenger url_regex -i Client31.dll
> acl MsnMessenger url_regex -i passport.com
> acl MsnMessenger url_regex -i loginnet.passport.com
> acl MsnMessenger url_regex -i hotmail.com
> acl MsnMessenger url_regex -i messenger.hotmail.com
> acl MsnMessenger url_regex -i ebuddy
> acl MsnMessenger url_regex -i login.live.com
> acl MsnMessenger url_regex -i msn.com
> http_access allow Internet rede PermiteMsn MsnMessenger
>
> # ---------Negar acesso ao site windows_update e MSN---------------
> http_access deny MsnMessenger
>
>
> # -------------Negar acesso a sites considerados inadequados  -----
> acl noporn url_regex -i "/usr/local/squid/etc/noporn.txt"
> acl negar url_regex -i "/usr/local/squid/etc/porn_local.txt"
> acl negar url_regex -i "/usr/local/squid/etc/negar.txt"
> http_access deny !noporn negar
>
> # ---------------- Negar Streamer  ---------------------------
> acl x-type req_mime_type -i ^application/octet-stream$
> acl x-type req_mime_type -i application/octet-stream
> acl x-type req_mime_type -i ^application/x-mplayer2$
> acl x-type req_mime_type -i application/x-mplayer2
> acl x-type req_mime_type -i ^application/x-oleobject$
> acl x-type req_mime_type -i application/x-oleobject
> acl x-type req_mime_type -i ^application/x-pncmd$
> acl x-type req_mime_type -i application/x-pncmd
> acl x-type req_mime_type -i ^video/x-ms-asf$
> acl x-type req_mime_type -i video/x-ms-asf
>
> http_access deny x-type
> http_reply_access deny x-type
>
> # ----------------------- Negar Extensao ---------------------------
> acl download_files urlpath_regex \.exe$ \.asf$ \.arj$ \.bzip$ \.ace$ \.iso$
> \.adt$ \.cbt$ \.cla$ \.cmd$ \.com$ \.cpl$ \.csc$ \.dot$ \.drv$ \.lha$ \.lzh$
> \.mso$ \.ov?$ \.pot$ \.shs$ \.sys$ \.mp3$ \.asf$ \.wma$ \.wmf$ \.ttf$ \.rar$
> \.scr$ \.mpeg$ \.mpg$ \.wave$ \.wav$ \.zip$
> http_access deny download_files
>
>
> # -------------Permitir acesso aos demais usuarios com permissao ---
> http_access allow Internet InternetUsers_spo rede
> http_access allow Internet InternetUsers_cat rede
>
> # Negar todo o resto
> http_access deny all
>
> http_reply_access allow rede
> http_reply_access deny all
>
> cache_mgr infracat em mmcb.com.br
> cache_effective_user squid
> cache_effective_group squid
>
> coredump_dir /usr/local/squid/var/
>
>
> ie_refresh on
>
>
> ### fim do squid.conf  #######
>
>
>
>
> qualquer dúvida, entre em contato :
>
> Abraços,
>
> Sérgio Ferreira
> WGO Telecom
>
> -----Mensagem original-----
> De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em nome
> de Sérgio Ferreira ( WGO )
> Enviada em: sexta-feira, 20 de junho de 2008 13:29
> Para: 'Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)'
> Assunto: [FUG-BR] RES: Re: squid com autenticação no Active Directory.
>
> Opa,
>
>         Tenho rodando aqui inclusive com autenticação de grupo.
>
>         Vou montar um how-to e postar a receita de bolo aqui na lista.
>
>         []s
>
> Sérgio Ferreira
> WGO Telecom
>
> -----Mensagem original-----
> De: freebsd-bounces em fug.com.br [mailto:freebsd-bounces em fug.com.br] Em nome
> de Diogo Dalfovo
> Enviada em: sexta-feira, 20 de junho de 2008 13:18
> Para: Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)
> Assunto: [FUG-BR] Re: squid com autenticação no Active Directory.
> Prioridade: Baixa
>
> Boa tarde
>
> Uma forma que sei e ja usei sem ser a do do ntlm é usando pam_smb porem
> imagino que deva exister outras formas
> creio que o pessoal mais experiente deve responder mais coisas
>
> Diogo Dalfovo
>
> On Fri, 20 Jun 2008 13:04:07 -0300, "Luis Barcellos"
> <luisbarcellos em gmail.com> wrote:
>> Boa tarde a todos!
>>
>>
>> Depois de uma manhã goolgleando sem sucesso, gostaria de saber se alguém
>> tem
>> uma boa solução para autenticação do squid no AD, que não seja
>> atravez do
>> ntlm, pois o meu domínio é um 2003 nativo.
>>
>> []s
>>
>> Luis Barcellos
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
> Em 11 de março de 2013 16:18, Marcelo Gondim <gondim em bsdinfo.com.br>escreveu:
>
>> Pessoal,
>>
>> Sei que aqui na lista já saiu algumas configurações de autenticação do
>> squid no active directory [1] mas alguém teria algum link de algum site
>> ou alguma documentação mais atualizada e até mais explicativa de como
>> fazer isso no FreeBSD? Sei que para fazer isso vou precisar do krb5 e do
>> samba correto?
>> Obs: o cara já tem um AD rodando no Windows 2008R2 e por isso nem vou
>> mexer com o samba4 nesse caso.  :)
>>
>> [1] http://www.fug.com.br/historico/html/freebsd/2008-06/msg00581.html
>>
>> Grande abraço,
>> Gondim
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>
>
>
> --
> Patryck
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd






Respondendo as criticas primeiro:

Vem falar do meu NTLM, mas SEQUER deve ter dado um tcpdump na vida,
com bastante VERBOSE, para ver o que se passa na comunicação do
smb_auth por exemplo. Ele usa o NTLM, como HELPER PROTOCOL, seu
ESPERTO....



Agora ao assunto principal;


Gondim,

Para facilitar, criei um .reg com o seguinte conteúdo:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\]
"LmCompatibilityLevel"=dword:00000001



eu só executava esse cara, reiniciava o RWindows e boa, já funcionava
tranquilamente a autenticação.





--
"Deve-se aprender sempre, até mesmo com um inimigo."
(Isaac Newton)

Atenciosamente,
Saul Figueiredo
Analista FreeBSD/Linux
Linux Professional Institute Certification Level 2
Linux User: #554651
saulfelipecf em gmail.com


Mais detalhes sobre a lista de discussão freebsd