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

Marcelo Gondim gondim em bsdinfo.com.br
Quarta Março 13 09:03:47 BRT 2013


Em 13/03/13 08:48, Saul Figueiredo escreveu:
> Em 12 de março de 2013 10:03, Ricardo Carlini Sperandio
> <rcarlini em gmail.com> escreveu:
>> Enviado pelo Motorola Razr
>> Em 12/03/2013 09:14, "Saul Figueiredo" <saulfelipecf em gmail.com> escreveu:
>>> 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....
>>>
>> Trabalho, infelizmente, fazendo o samba integrar com a maior rede windows
>> do mundo (cef). Então não venha desmerecer alguém que você não conhece.
>>
>>>
>>> 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
>>> -------------------------
>>> 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
>
>
> Se você ler atentamente ao Tópico, vai ver que a minha resposta não
> foi para o E-mail que você está citando agora.
> Foi para o cara que disse que usar ntlm é coisa do seculo passado, e
> pelo que pude perceber, não se trata da mesma pessoa.
>
>
>
Senhores não vamos brigar.  :)  O importante é que consegui resolver o 
problema com a ajuda baseada em documentos e opiniões de todos aqui.
Optei pela solução ldap_auth porque foi mais tranquila e atendeu 
perfeitamente ao cliente que precisava de algo que funcionasse bem. Com 
certeza o uso do kerberos adicionaria muito mais segurança na autenticação.

Consegui fazer as ACLs e regras baseadas nos grupos criados no AD e 
funcionou que foi uma beleza.

Obrigado à todos pela ajuda.

[]'s
Gondim


Mais detalhes sobre a lista de discussão freebsd