Configuração Proxy · 5 min read · Sep 23, 2025
Debian Squeeze, Squid, Autenticação Kerberos/LDAP, Integração Active Directory E Cyfin Reporter
Debian Squeeze, Squid, Autenticação Kerberos/LDAP, Integração Active Directory E Cyfin Reporter
Introdução
Este documento cobre a configuração de um Proxy Squid que se integrará perfeitamente com o Active Directory para autenticação usando Kerberos com LDAP como backup para usuários não autenticados via Kerberos. A autorização é gerenciada por Grupos no Active Directory. Isso é especialmente útil para clientes Windows 7 que não suportam mais NTLMv2 sem alterar a política do computador local. Ele é capaz de usar listas brancas e listas negras para acesso e restrições de sites.
Para este guia, os seguintes exemplos são utilizados - você deve atualizar quaisquer seções com o domínio dos clientes, nomes de host e IPs onde necessário.
- Domínio = example.local
- Sub-rede = 192.168.0.0/24
- Servidor Proxy: IP = 192.168.0.26, NOME DO HOST = squidproxy.example.local
- Servidor Windows 1: IP = 192.168.0.1, NOME DO HOST = domaincontroller1.example.local
- Servidor Windows 2: IP = 192.168.0.10, NOME DO HOST = server2.example.local
Uma instalação base do Debian Squeeze é assumida, bem como habilidades básicas de administração do Debian. O vi é assumido como o editor de texto.
Pré-requisitos
Os navegadores Internet Explorer dos clientes precisam ter “Ativar Autenticação Integrada do Windows” marcado nas Opções da Internet :: configurações avançadas, bem como a detecção automática de proxy habilitada - pesquise isso se não tiver certeza. Todos os navegadores modernos suportarão a detecção automática de proxy. Firefox e Chrome também suportam Autenticação do Windows.
Configuração de DNS
Instale dnsutils:
apt-get install dnsutilsNo servidor DNS Windows, adicione uma nova entrada de registro A para o nome do host do servidor proxy e certifique-se de que uma entrada PTR (DNS reverso) correspondente também seja criada e funcione. Verifique se o proxy está usando o Servidor DNS Windows para resolução de nomes e atualize /etc/resolv.conf conforme necessário.
vi /etc/resolv.confsearch example.local
nameserver 192.168.0.1
nameserver 192.168.0.10Ping um nome de host interno e externo para garantir que o DNS esteja operando.
ping domaincontroller1.example.local -c 4 && ping google.com -c 4Verifique se você pode fazer uma pesquisa reversa do Servidor Windows e do IP do proxy local a partir do DNS Windows.
dig -x 192.168.0.1
dig -x 192.168.0.26
Aviso: Se qualquer pesquisa DNS falhar, não prossiga até que seja corrigido ou a autenticação do proxy falhará.
Configuração de NTP
Instale o pacote ntp:
apt-get install ntp
Como o Kerberos precisa ter o tempo sincronizado com os Controladores de Domínio Windows para autenticação, configuramos o proxy para obter o tempo deles.
vi /etc/ntp.confLocalize a seguinte seção e atualize os servidores ntp conforme necessário. Se você tiver mais de um Controlador de Domínio ou Servidor NTP, pode adicionar várias linhas.
# Você precisa se comunicar com um ou dois (ou três) servidores NTP.
#server ntp.your-provider.example
server domaincontroller1.example.local
server server2.example.localEm seguida, reinicie e teste o NTP.
invoke-rc.d ntp restart
tpq -p
Você deve ver uma saída que se refere aos Controladores de Domínio e outros Servidores NTP que são processados na ordem em que aparecem no arquivo de configuração.
Configurar Kerberos
Instale os pacotes Kerberos:
apt-get install krb5-user libkrb53Apenas aceite os padrões apresentados em qualquer diálogo debconf apresentado, pois estamos sobrescrevendo-os.
Configure o Kerberos.
cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.conf
Edite o arquivo substituindo as variáveis (destacadas) pelo domínio e servidor do cliente.
Aviso: Dependendo da versão do sistema operacional dos seus Controladores de Domínio Windows, descomente a seção relevante do Windows 200X e comente a seção oposta.
Se você tiver apenas 1 Controlador de Domínio, remova a entrada adicional “kdc” da seção “[realms]”.
[libdefaults]
default_realm = EXAMPLE.LOCAL
dns_lookup_kdc = no
dns_lookup_realm = no
ticket_lifetime = 24h
default_keytab_name = /etc/squid3/PROXY.keytab
; para Windows 2003
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
permitted_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
; para Windows 2008 com AES
; default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
; permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
[realms]
EXAMPLE.LOCAL = {
kdc = domaincontroller1.example.local
kdc = server2.example.local
admin_server = domaincontroller1.example.local
default_domain = example.local
}
[domain_realm]
.example.local = EXAMPLE.LOCAL
example.local = EXAMPLE.LOCALInstalar Squid 3
apt-get install squid3 ldap-utilsNota: A configuração do Squid ocorre após a configuração do msktutil.
Instalar e executar msktutil
Obtenha o pacote msktutil e instale-o.
cd /var/cache/apt/archives/
wget http://fuhm.net/software/msktutil/releases/msktutil_0.4-2_i386.deb
apt-get install libsasl2-modules-gssapi-mit libsasl2-modules
dpkg -i msktutil_0.4-2_i386.deb
cd
Inicie uma sessão kerberos no servidor para que o msktutil possa usá-la para criar nosso objeto Proxy no Active Directory que será usado para acesso.
kinit administratorDigite a senha do administrador do domínio.
Deve retornar sem erros. Você pode ver se obteve um ticket com sucesso com:
klistAgora configuramos o proxy no AD com princípios de serviço executando o msktutil (atualize os valores destacados com sua rede).
Aviso: Você não deve mover o objeto da OU que você usa o msktutil para criá-lo.
msktutil -c -b “CN=COMPUTERS” -s HTTP -k /etc/squid3/PROXY.keytab –computer-name SQUIDPROXY \
–upn HTTP/squidproxy.example.local –server domaincontroller1.example.local –verbose
Se você estiver usando um domínio Server 2008, adicione “–enctypes 28” no final do comando.
msktutil -c -b “CN=COMPUTERS” -s HTTP -k /etc/squid3/PROXY.keytab –computer-name SQUIDPROXY \
–upn HTTP/squidproxy.example.local –server domaincontroller1.example.local –verbose –enctypes 28
Defina as permissões no keytab para que o squid possa lê-lo.
chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytab
No Servidor Windows, redefina a Conta do Computador no AD clicando com o botão direito do mouse na Computador SQUIDPROXY e selecionando “Redefinir Conta”, em seguida, execute o msktutil da seguinte forma para garantir que o keytab seja atualizado conforme esperado e que o keytab esteja sendo obtido pelo msktutil a partir de /etc/krb5.conf corretamente.
Reinicie o proxy primeiro para limpar os tickets kerberos gerados pelo comando kinit e, em seguida, execute o seguinte:
msktutil --auto-update --verboseSe o keytab não for encontrado, tente adicionar “-k /etc/squid3/PROXY.keytab” ao comando para ver se funciona e, em seguida, faça a solução de problemas até resolver ou os usuários não poderão autenticar com o Squid.
Adicione o seguinte ao cron para que ele possa atualizar automaticamente a conta do computador no Active Directory quando expirar (tipicamente em torno de 30 dias). Eu o redireciono através do logger para que eu possa ver quaisquer erros no syslog, se necessário. Como mencionado, o msktutil usa o arquivo padrão /etc/krb5.conf para seus parâmetros, então esteja ciente disso se você decidir fazer quaisquer alterações nele.
As variáveis SHELL e PATH estão lá para garantir que o cron funcione corretamente, mude isso se você souber o que está fazendo.
crontab -eSHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# m h dom mon dow command
00 4 * * * msktutil --auto-update --verbose | logger -t msktutilReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.