Integrando autenticação do Squid ao Active Directory
Implementar autenticação do Squid integrando-o ao Active Directory da Microsoft. Nesse artigo foi usada a versão 3 do Squid juntamente com a versão 2008 do Windows. Minha intenção com essa documentação é reunir todas as experiências que eu coletei e dicas a mim enviadas e que me levaram ao sucesso na implementação dessa solução.
Parte 5: Autenticando Squid no Active Directory
Autenticando sem pop-up
Configure o browser de sua preferência para navegar pelo Squid teste a navegação.Então começaremos a trabalhar em um método que fizesse com que o Squid buscasse "automaticamente" os usuários logados no domínio, ou seja, não abre o pop-up pedindo usuário e senha. Para isso vamos editar o squid.conf, inserindo a seguinte configuração:
# Autenticação no Windows 2008
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED
...
http_access allow all AuthorizedUsers
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 30
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl AuthorizedUsers proxy_auth REQUIRED
...
http_access allow all AuthorizedUsers
Encerramos assim a primeiro tipo de autenticação do Squid, agora falaremos de um processo mais simples, no qual as configurações anteriores são totalmente desnecessárias, de forma que ao abrir o browser deve ser informado login e senha do usuário.
Autenticando com pop-up
Esse tipo de autenticação é mais simples e fácil de implementar, basta acrescentar as linhas abaixo no squid.conf:
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=dominio,dc=local" -D "cn=Administrador,cn=Users,dc=dominio,dc=local" -w "SENHA_DO_AD" -f sAMAccountName=%s -h ip_do_ad
acl autentica proxy_auth REQUIRED
http_access allow autentica
acl autentica proxy_auth REQUIRED
http_access allow autentica
Obs.: Por questões de segurança podemos usar um outro usuário que não seja o administrador do domínio, podemos criar no Active Directory um usuário comum (squid, squidtest, proxy), ficando dessa forma:
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R -b "dc=dominio,dc=local" -D "cn=squid,cn=Users,dc=dominio,dc=local" -w "senha_do_user_squid" -f sAMAccountName=%s -h ip_do_ad
Conclusão
Esse artigo teve por objetivo reunir uma vasta documentação encontrada na internet assim como minha experiência na integração dessas duas ferramentas, de maneira simples e prática.Referências
- Linux: O Kerberos não é um cachorro de 3 cabeças! [Artigo]
- Linux: Linux logando no Domínio NT [Artigo]
- Linux Mania: Integrando o Samba e Squid com o Active Directory usando o kerberos e winbind
- ConfigExamples/Authenticate/Ntlm - Squid Web Proxy Wiki
- (linux-br) Squid + NTLM = NTLMSSP BH: NT_STATUS_ACCESS_DENIED
Agradecimentos
- Debian User Portuguese. Em especial aos usuários: Hamacker, Leonardo Carneiro e Bruno Ayub.
Dentre muitos outros que contribuíram de alguma forma com o conteúdo contido nessa documentação.