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

Ricardo Carlini Sperandio rcarlini em gmail.com
Terça Março 12 10:03:31 BRT 2013


Enviado pelo Motorola Razr
Em 12/03/2013 09:14, "Saul Figueiredo" <saulfelipecf at gmail.com> escreveu:
>
> Em 11 de março de 2013 16:59, Patryck Ramos Martins
> <patryckrm at 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 at wgo.com.br - WGO Telecom
> > ##  sergioferreira at 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 at 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 at fug.com.br [mailto:freebsd-bounces at 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 at fug.com.br [mailto:freebsd-bounces at 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 at 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 at 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 at gmail.com
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Mais detalhes sobre a lista de discussão freebsd