Configuración de Proxy · 5 min read · Sep 23, 2025
Debian Squeeze, Squid, Autenticación Kerberos/LDAP, Integración de Active Directory y Cyfin Reporter
Debian Squeeze, Squid, Autenticación Kerberos/LDAP, Integración de Active Directory y Cyfin Reporter
Introducción
Este documento cubre la configuración de un Proxy Squid que se integrará sin problemas con Active Directory para la autenticación utilizando Kerberos con LDAP como respaldo para los usuarios que no están autenticados a través de Kerberos. La autorización se gestiona mediante Grupos en Active Directory. Esto es especialmente útil para clientes de Windows 7 que ya no soportan NTLMv2 sin cambiar la política local de la computadora. Es capaz de utilizar listas blancas y listas negras para el acceso y restricciones de sitios.
Para esta guía se utilizan los siguientes ejemplos: debes actualizar cualquier sección con el dominio de los clientes, nombres de host e IP donde sea necesario.
- Dominio = example.local
- Subred = 192.168.0.0/24
- Servidor Proxy: IP = 192.168.0.26, NOMBRE DE HOST = squidproxy.example.local
- Servidor Windows 1: IP = 192.168.0.1, NOMBRE DE HOST = domaincontroller1.example.local
- Servidor Windows 2: IP = 192.168.0.10, NOMBRE DE HOST = server2.example.local
Se asume una instalación base de Debian Squeeze, así como habilidades básicas de administración de Debian. Se asume que vi es el editor de texto.
Requisitos Previos
Los navegadores Internet Explorer del cliente deben tener “Habilitar la autenticación integrada de Windows” marcado en Opciones de Internet :: Configuración avanzada, así como la detección automática de proxy habilitada; busca esto si no estás seguro. Todos los navegadores web modernos soportarán la detección automática de proxy. Firefox y Chrome también soportan la autenticación de Windows.
Configuración de DNS
Instala dnsutils:
apt-get install dnsutilsEn el servidor DNS de Windows, agrega una nueva entrada de registro A para el nombre de host del servidor proxy y asegúrate de que también se cree y funcione una entrada PTR (DNS inverso) correspondiente. Verifica que el proxy esté utilizando el servidor DNS de Windows para la resolución de nombres y actualiza /etc/resolv.conf en consecuencia.
vi /etc/resolv.confsearch example.local
nameserver 192.168.0.1
nameserver 192.168.0.10Haz ping a un nombre de host interno y externo para asegurarte de que DNS esté funcionando.
ping domaincontroller1.example.local -c 4 && ping google.com -c 4Verifica que puedes hacer una búsqueda inversa del servidor Windows y de la IP local del proxy desde el DNS de Windows.
dig -x 192.168.0.1
dig -x 192.168.0.26Advertencia: Si alguna búsqueda DNS falla, no procedas hasta que se solucione o la autenticación del proxy fallará.
Configuración de NTP
Instala el paquete ntp:
apt-get install ntpDebido a que Kerberos necesita tener la hora sincronizada con los Controladores de Dominio de Windows para la autenticación, configuramos el proxy para obtener la hora de ellos.
vi /etc/ntp.confLocaliza la siguiente sección y actualiza los servidores ntp según sea necesario. Si tienes más de un Controlador de Dominio o Servidor NTP, puedes agregar múltiples líneas.
# Necesitas hablar con un servidor NTP o dos (o tres).
#server ntp.your-provider.example
server domaincontroller1.example.local
server server2.example.localLuego reinicia y prueba NTP.
invoke-rc.d ntp restart
tpq -pDeberías ver una salida que se refiere a los Controladores de Dominio y otros Servidores NTP que se procesan en el orden en que aparecen en el archivo de configuración.
Configurar Kerberos
Instala los paquetes de Kerberos:
apt-get install krb5-user libkrb53Simplemente acepta los valores predeterminados presentados en cualquier diálogo de debconf, ya que los estamos sobrescribiendo.
Configura Kerberos.
cp /etc/krb5.conf /etc/krb5.conf.default
cat /dev/null > /etc/krb5.conf
vi /etc/krb5.confEdita el archivo reemplazando las variables (resaltadas) con el dominio y el servidor del cliente.
Advertencia: Dependiendo de la versión del sistema operativo de tus Controladores de Dominio de Windows, descomenta la sección relevante de Windows 200X y comenta la sección opuesta.
Si solo tienes 1 Controlador de Dominio, elimina la entrada “kdc” adicional de la sección “[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 con 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: La configuración de Squid se realiza después de que msktutil esté configurado.
Instalar y ejecutar msktutil
Obtén el paquete msktutil e instálalo.
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
cdInicia una sesión de kerberos en el servidor para que msktutil pueda usarla para crear nuestro objeto Proxy en Active Directory que se utilizará para el acceso.
kinit administratorIngresa la contraseña del administrador del dominio.
Debería devolver sin errores. Puedes ver si obtuviste un ticket exitosamente con:
klistAhora configuramos el proxy en AD con principios de servicio ejecutando msktutil (actualiza los valores resaltados con tu red).
Advertencia: No debes mover el objeto de la OU en la que usaste msktutil para crearlo.
msktutil -c -b "CN=COMPUTERS" -s HTTP -k /etc/squid3/PROXY.keytab --computer-name SQUIDPROXY \
--upn HTTP/squidproxy.example.local --server domaincontroller1.example.local --verboseSi estás usando un dominio de Server 2008, agrega “–enctypes 28” al final del 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 28Establece los permisos en el keytab para que squid pueda leerlo.
chgrp proxy /etc/squid3/PROXY.keytab
chmod g+r /etc/squid3/PROXY.keytabEn el Servidor de Windows, restablece la Cuenta de Computadora en AD haciendo clic derecho en la Computadora SQUIDPROXY y seleccionando “Restablecer Cuenta”, luego ejecuta msktutil de la siguiente manera para asegurarte de que el keytab se actualice como se espera y que el keytab esté siendo obtenido por msktutil desde /etc/krb5.conf correctamente.
Reinicia primero el proxy para borrar los tickets de kerberos generados por el comando kinit, luego ejecuta lo siguiente:
msktutil --auto-update --verboseSi no se encuentra el keytab, intenta agregar “-k /etc/squid3/PROXY.keytab” al comando para ver si funciona y luego soluciona hasta que se resuelva o los usuarios no podrán autenticarse con Squid.
Agrega lo siguiente a cron para que pueda actualizar automáticamente la cuenta de computadora en Active Directory cuando expire (típicamente alrededor de 30 días). Lo paso a través de logger para que pueda ver cualquier error en syslog si es necesario. Como se indicó, msktutil utiliza el archivo /etc/krb5.conf por defecto para sus parámetros, así que ten en cuenta eso si decides hacer algún cambio en él.
Las variables SHELL y PATH están ahí para asegurar que cron se ejecute correctamente; cámbialo si sabes lo que estás haciendo.
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 msktutilRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.