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 dnsutils

No 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.conf
search example.local
nameserver 192.168.0.1
nameserver 192.168.0.10

Ping um nome de host interno e externo para garantir que o DNS esteja operando.

ping domaincontroller1.example.local -c 4 && ping google.com -c 4

Verifique 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.conf

Localize 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.local

Em 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 libkrb53

Apenas 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.LOCAL

Instalar Squid 3

apt-get install squid3 ldap-utils

Nota: 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 administrator

Digite a senha do administrador do domínio.

Deve retornar sem erros. Você pode ver se obteve um ticket com sucesso com:

klist

Agora 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 --verbose

Se 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 -e
SHELL=/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 msktutil
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.