Autenticação proxy do Squid - a maneira mais indolor

2

Ok, o título diz tudo, realmente.

O objetivo final é implementar a autenticação por proxy para usuários finais. Os sistemas dos usuários são em sua maioria (95%) baseados em janelas, o proxy é um Debian Lenny rodando o squid 2.7.

Eu investiguei possíveis maneiras de implementá-lo, primeiro usando o ntlm_auth helper, que é fornecido com o squid2.7 no Lenny e ele falha, - alguns usuários são autenticados muito bem, outros não por algum motivo. Eu não consegui encontrar uma corelação, eu até inspecionei o fluxo de pacotes de smb real com wireshark sem sucesso - parece completamente aleatório. Eu tentei em diferentes máquinas físicas / contas, então isso é descartado.

Então, duas rotas possíveis estão disponíveis, parece. Usando winbind (com samba) e usando ldap + kerberos.

Pessoalmente, sou contra o uso do samba, porque, primeiro, é necessário que você salte em determinados modos, como ingressar no domínio e assim por diante, e segundo (e esse é o problema) - eu não preciso todas as funcionalidades oferecidas pelo samba, é simplesmente indesejável ter toda essa funcionalidade, como compartilhamentos do tipo windows e assim por diante, naquela máquina. Se eu tiver que recorrer ao uso do samba, eu realmente gostaria de usar apenas um subconjunto mínimo possível dos recursos - apenas o suficiente para obter o ntlm_auth (com o winbind) do samba para autenticar os usuários. Alguém tem alguma experiência com esse tipo de configuração?

Li pergunta (não é realmente uma pergunta: P) e eu realmente gostei do que eu vi, - o kerberos parece uma solução possível e a pegada não é tão grande assim. A questão é, é possível rodar isso em um domínio do windows-2000-version? E como é o suporte do navegador?

    
por shylent 16.11.2009 / 19:47

1 resposta

7

Suponho que você esteja usando um servidor do Active Directory. Nós fizemos algo semelhante e a maneira mais fácil foi usar o auxiliar ntlm_auth assim (parte do meu squid.conf):

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on

Você terá que instalar o Samba e ingressar no seu domínio do Windows. Seu smb.conf terá que usar estas configurações:

security = ADS
realm = your-dns-domain
password server = your-active-directory-server
winbind enum groups = yes
winbind enum users = yes
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind use default domain = yes

Eu acredito que também foi necessário alterar o /etc/krb5.conf:

[libdefaults]
default_realm = your-dns-domain

[realms]
your-dns-domain = {
kdc = your-ad-server
}

Em seguida, você poderá ingressar em seu domínio do Windows:

net rpc join -S PDC -U Administrator

No final, você deve ter uma configuração que use login de login único do Windows. Tanto o Internet Explorer (caso você deva usá-lo seriamente) como o Firefox sabem como enviar as credenciais de autenticação.

Para aplicativos que não conhecem o NTLM, talvez você precise incluir um fallback na autenticação básica. Eu ainda não testei isso.

Links:

por 16.11.2009 / 20:50