Pular para o conteúdo

Squid autenticando no Active Directory (AD) Windows 2008 Server

Dica publicada em Linux / Configuração
Demetrius Germani demagermani_big
Hits: 33.968 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Squid autenticando no Active Directory (AD) Windows 2008 Server

Essa dica é para quem estava acostumado a usar a autenticação MSNT_AUTH do Squid no Active Directory do Windows 2003 e, quando tentou usar em uma rede com AD do Windows 2008, descobriu que essa autenticação não funciona mais. Ou mesmo um servidor proxy Squid novo que queira instalar em sua rede e fazê-lo autenticar no servidor do Domínio Win2008.

Para fazer o Squid reconhecer que a conta do usuário existe e que sua senha é válida, basta alterar a forma de autenticação de MSNT_AUTH para o autenticador LDAP.

Exemplo:
  • Faça um backup do seu arquivo squid.conf;
  • Faça essa alteração em seu servidor por sua conta e risco.

Cenário de teste:
  • IP do Servidor Win2008 = 192.168.0.100
  • Domínio (AD) = contoso.local

Depois é só alterar seu arquivo squid.conf, que geralmente fica "/etc/squid/squid.conf":

# vi /etc/squid/squid.conf

* Substitua a autenticação MSNT_AUTH, se já estava utilizando, por essas linhas.

# linha 1 - Parâmetros para Consultar Usuários no AD:
auth_param basic program /usr/lib/squid/ldap_auth -R -b "dc=contoso,dc=local" -D "cn=Administrador,cn=Users,dc=contoso,dc=local" -w "senha_do_administrador" -f sAMAccountName=%s -h 192.168.0.100
# linha 2:
auth_param basic children 5
# linha 3 - Mensagem que ira aparecer na caixa de autenticação:
auth_param basic realm TEXTO CAIXA AUTENTICAÇÃO
# linha 4:
auth_param basic credentialsttl 30 minutes
# Linha 5: acl que pede autenticação:
acl autentica proxy_auth REQUIRED

E não esqueça de adicionar antes de "http_access deny all", geralmente última linha:

# Linha que Libera a internet para rede local somente com autenticação
http_access allow autentica redelocal

Obs.: Se existir a uma linha liberando a rede sem autenticação, comente. Exemplo:

# http_access allow redelocal

(comente a linha que permita navegar sem autenticação)

Espero que essa dica ajude!

Att.
Demetrius Germani

Nenhuma dica encontrada.

Alterando o gerenciador de login no openSUSE

SSH no SLES - Solução para erro "SSH daemon/var/lib/empty must be owned by root and not group or world-writable"

Restando senha de root no CentOS/RHEL/Fedora

Sobrevivendo sem Google Chrome no Debian

Módulo de segurança do BB no Debian 10 (Buster)

#1 Comentário enviado por giaco em 08/06/2009 - 11:02h
Boa dica, mas pra mim não está funcionado. Executo o comando

/usr/lib/squid/ldap_auth -R -b "dc=contoso,dc=local" -D "cn=proxyman,cn=Users,dc=contoso,dc=local" -w "senha" -f sAMAccountName=%s -h 192.168.0.2

e me é retornado apenas "ERR"

O que pode estar errado?
#2 Comentário enviado por demagermani_big em 08/06/2009 - 20:10h
Giaco,

Boa Noite,

Esse comando deve ser colocado dentro do arquivo squid.conf, que geralmente fica em /etc/squid/squid.conf

Você deve informar as configurações do seu dominio.
Ex: - Meu dominio é contoso.local então na linha do comando eu especifico isso assim "dc=contoso,dc=local".

- O usuário que estou usando para autorizar o squid ver o banco de dados de usuários do AD é o Administrador, porém no comando tenho que colocar o caminho completo para localiza-lo. Você pode escolher outro usuário e para informar corretamente seu caminho, você deve entrar no seu servidor Win2008 (Iniciar > Programas > Ferramentas Administrativas > Usuários e Computadores do Active Directory) e ver em que lugar o usuário foi adicionado. Ex: Meu usuário é " Administrador " e ele esta gravando dentro do conteiner " Users " que esta num servidor onde o dominio é " contoso.local " especifico isso assim: "cn=Administrador,cn=Users,dc=contoso,dc=local" .
-A senha dele é " senha@2009 " então no comando coloco dessa forma:
-w " senha@2009 "
- E por último coloco o ip do servidor WINDOWS 2008 no meu caso " -h 192.168.0.2 ".

Olhe todas as informações do seu servidor win2008 e substitua no comando que não terá problema e funcionará corretamente. Já estou usando a algum tempo em vários clientes.

Att.
Demetrius Germani


#3 Comentário enviado por rogerionet em 09/11/2009 - 16:31h
Caro Demetrius, testei os passos do seu artigo na empresa onde trabalho, ficou show de bola, ta funcionando perfeitamente.
Muito obrigado pelo seu post. Nota 1000.

Rogério
#4 Comentário enviado por israel_super em 21/01/2010 - 23:55h
Demetrius Germani

Fiz exatamente como descrito em seu tuto.
saiu tudo perfeitamente.

muito obrigado

att
#5 Comentário enviado por thiago.golin em 22/06/2010 - 10:27h
Fiz exatamente como descrito e não consegui ter a autenticação.
Debugando com o comando #squid -d 9
a mensagem retornada foi could not bind binddn squid_ldap_auth.

Tem alguma dica de pq não estou conseguindo efetuar a autenticação como vocês conseguem?

Obrigado
Thiago.

#6 Comentário enviado por thiago.golin em 23/06/2010 - 09:42h
Senhores, não precisa responder.
Consegui fazer a autenticação.
Era um problema com o usuário do Win 2008 que eu estava usando.

Muito obrigado pela dica.
Agora eu teria outra pergunta....
Tem como não solicitar a senha e usuário quando uso o navegador? Ou seja, que o navegador já autentique no squid com o login e senha da estação logada no domínio? Sabem de algo assim?
#8 Comentário enviado por rooberta em 21/02/2011 - 21:34h
Olá.

Meu squid hoje funciona assim:
dois dominios autenticado no msm "squid".

teste.com.br - AD 2003 - 192.168.0.3
teste2.com.br - AD 2003 - 192.168.1.3

Funciona corretamente.

Porém o AD - 192.168.1.3 passou a ser 2008, ou seja não funciona mais com msnt_auth.

Tentei fazer pelo Ldap. Até funcionou, porém só funciona com UM dominio.
Sabem me dizer se é possível/como configurar o Ldap p/ 2 dominios?!?!

Aguardo
#10 Comentário enviado por filipelambert em 24/07/2012 - 12:36h
Irmão, veja como está o meu squid:

Ele se autentica em um windows 2003,

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
#auth_param ntlm use_ntlm_negotiate off
auth_param ntlm children 40
#auth_param ntlm max_challenge_reuses 0
#auth_param ntlm max_challenge_lifetime 5 minutes

auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
auth_param basic children 40
auth_param basic realm Proxy NovaHera
auth_param basic credentialsttl 2 hours

Será que funciona se eu alterar esse esquema que você passou ai ?
tem algo errado com as linhas que postei ai encima ?

Dá uma ajuda ?
#11 Comentário enviado por wescleiab em 19/09/2012 - 17:39h
Boa tarde, eu já tenho o Squid rodando no Debian, em modo transparente, tenho também o domínio no Win 2008.Com essas alterações os usuários existentes no 2008 serão automaticamente validados no Squid, ou só os próximos usuários que eu cadastrar no AD?
#12 Comentário enviado por DanielJon em 29/03/2014 - 17:33h
100% full

So 1 duvida existe a possibilidade de na linha:
auth_param basic program /usr/lib/squid/ldap_auth -R -b "dc=contoso,dc=local" -D "cn=Administrador,cn=Users,dc=contoso,dc=local" -w "senha_do_administrador" -f sAMAccountName=%s -h 192.168.0.100

Ser feito com:
auth_param basic program crendentials=/etc/arquivo_com_a_configuracao
chmod 600 /etc/arquivo_com_configuracao

??????? existe essa possibilidade ou algo parecido ?????????

Pergunto isso por que quando executamos um Top ou Htop a senha do admin do AD e toda a informação acima aparece.
sei que e meio psicose minha mais segurança nunca é demais ^^
#13 Comentário enviado por marcelohcm em 24/03/2015 - 09:59h

como faço pra que ao abrir o navegador não precisar me logar novamente?

Contribuir com comentário

Entre na sua conta para comentar.