[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