Configuración Squid · 9 min read · Nov 06, 2025
Debian Squeeze, Squid, Autenticación Kerberos/LDAP, Integración de Active Directory y Cyfin Reporter - Página 2
Configurar Squid
Para poder utilizar nuestro acceso y autorizaciones LDAP redundantes a través de Grupos de Seguridad en Active Directory, necesitamos crear una cuenta con permiso para buscar atributos de Active Directory. Squid utilizará esta cuenta para proporcionar acceso a los usuarios.
En Active Directory, crea un usuario llamado “Squid Proxy” con el nombre de inicio de sesión [email protected] y anota la contraseña, sustituyendo la palabra “squidpass” a continuación con tu contraseña.
Asegúrate de que lo siguiente sea cierto al crear la cuenta.
- El usuario debe cambiar la contraseña en el próximo inicio de sesión Desmarcado
- El usuario no puede cambiar la contraseña Marcado
- La contraseña nunca expira Marcado
- La cuenta está deshabilitada Desmarcado
Por defecto, la cuenta squid no podrá consultar el atributo “memberOf” en AD. Selecciona el nivel superior de tu dominio de Active Directory en Usuarios y Equipos de Active Directory, haz clic derecho sobre él y elige propiedades, pestaña de Seguridad, agrega el usuario squid y dale permisos de lectura (debería suceder por defecto) y permite que lea “Este objeto y todos los objetos secundarios” accediendo a las opciones avanzadas.
Crea los siguientes Grupos de Seguridad con descripciones en Active Directory y agrega usuarios a los grupos relevantes; si un usuario no es parte de un grupo, solo podrá acceder a los sitios en la ACL de whitelistsites.
Los miembros de Internet Users no podrán acceder a sitios web en la ACL de blocksites.
- Internet Users | Descripción: Los miembros de este grupo pueden acceder a Internet. El acceso se registra con restricciones de sitios web
- Internet Users Full Log | Descripción: Los miembros de este grupo pueden acceder a Internet. El acceso se registra con acceso completo a sitios web
- Internet Users Full NoLog | Descripción: Los miembros de este grupo pueden acceder a Internet. El acceso no se registra con acceso completo a sitios web
Luego configuramos squid y sus archivos de configuración asociados.
Inicio de squid
Agrega la siguiente configuración a /etc/default/squid3 (este archivo no existe por defecto).
vi /etc/default/squid3KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAMEsquid.conf
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default
cat /dev/null > /etc/squid3/squid.conf
vi /etc/squid3/squid.conf
Actualiza la variable del administrador de caché con la dirección de correo electrónico de la persona a cargo del proxy.
Estudia y actualiza el siguiente texto cuidadosamente, reemplazando el contenido de ejemplo (destacado) con la configuración de tu red; si cometes un error, tu proxy no funcionará.
####### /etc/squid3/squid.conf Archivo de Configuración #######
####### administrador de caché
cache_mgr [email protected]
####### autenticación kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squidproxy.example.local
auth_param negotiate children 10
auth_param negotiate keep_alive on
####### proporcionar acceso a través de ldap para clientes no autenticados a través de kerberos
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f sAMAccountName=%s \
-h domaincontroller1.example.local
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### autorizaciones ldap
# acceso restringido al proxy registrado
external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# acceso completo al proxy sin registro
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# acceso completo al proxy registrado
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
####### acl para autenticación de proxy y autorizaciones ldap
acl auth proxy_auth REQUIRED
# formato "acl, aclname, acltype, acltypename, activedirectorygroup"
acl RestrictedAccessLog external internet_users Internet\ Users
acl FullAccessNoLog external internet_users_full_nolog Internet\ Users\ Full\ NoLog
acl FullAccessLog external internet_users_full_log Internet\ Users\ Full\ Log
acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt"
acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt"
####### valores predeterminados de squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # puertos no registrados
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # http multilingüe
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
####### hacer cumplir la autenticación: el orden de las reglas es importante para los niveles de autorización
no_cache deny whitelistsites
http_access allow whitelistsites
http_access allow FullAccessNoLog auth
http_access allow FullAccessLog auth
http_access deny blockedsites
http_access allow RestrictedAccessLog auth
####### registro
# no registrar whitelistsites, FullAccessNoLog
access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog
####### valores predeterminados de squid
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
touch /etc/squid3/whitelistsites.txt
touch /etc/squid3/blockedsites.txt
invoke-rc.d squid3 restart
Configuración automática de proxy
Instala Apache2:
apt-get install apache2Agrega una configuración a Apache2 para identificar el formato de archivo del script de configuración del proxy.
vi /etc/apache2/conf.d/wpad.datAddType application/x-ns-proxy-autoconfig .datCrea nuestro archivo wpad.dat utilizado por los navegadores web para la configuración:
vi /var/www/wpad.datCambia la línea que comienza con $proxy a tu FQDN de proxy (texto destacado).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// Las URL dentro de esta red se acceden directamente
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
// Devolver proxy para TODO lo demás
else return $proxy;
}
Reinicia Apache2:
invoke-rc.d apache2 restartEntradas DNS de WPAD
Advertencia: Una vez que agregues la siguiente entrada DNS, el proxy se activará. Detente en este punto y verifica.
- Que los navegadores de los clientes están utilizando la Autenticación Integrada de Windows
- Que has agregado todos los usuarios a los grupos de seguridad de Internet Users relevantes en AD
- Que todos los navegadores de los clientes están configurados para usar la detección automática de configuraciones de proxy para el acceso a Internet. Usar políticas de grupo es una opción sensata aquí o quizás restringir el acceso HTTP saliente en tu firewall para eliminar usuarios sin detección automática configurada.
Prueba el acceso con Internet Explorer marcando “Usar script de configuración automática” e inserta http://squidproxy.example.local/wpad.dat (cambia el FQDN del proxy por el tuyo, por supuesto) en el campo de dirección y luego accede a cualquier sitio web. ¡Buena suerte, espero que funcione! Detente aquí y soluciona problemas si no está funcionando o de lo contrario terminarás con muchos usuarios enojados.
Agrega un registro CNAME en DNS para apuntar wpad.example.local a squidproxy.example.local
Nota: El servidor 2008 viene con una medida de seguridad que bloquea wpad, también lo he visto en el servidor 2003
Para eliminar la restricción DNS de wpad, pero dejar habilitada la lista de bloqueo, ejecuta Regedit y abre la siguiente ubicación.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
El servidor 2008 probablemente tendrá las entradas de WPAD e ISATAP. Elimina la entrada WPAD y reinicia el servicio DNS para que vuelva a cargar la lista de bloqueo. Deberías poder resolver wpad.example.local
Luego configura tu navegador para usar la configuración automática de proxy. Todos los navegadores web modernos siguen el estándar wpad y intentarán buscar http://wpad.example.local/wpad.dat para su información de configuración.
Más información sobre WPAD se puede encontrar aquí: http://wiki.squid-cache.org/Technology/WPAD/DNS
Verifica tus registros de squid para ver que los navegadores están utilizando el proxy.
Opcional: Instalar Cyphin Reporter
Con los proxies que operamos, necesitamos informes decentes. Programas como sarg, mysar, etc. no eran opciones de informes decentes para monitorear el uso de Internet de los usuarios. Cyfin Reporter de Wavecrest ha demostrado ser un sistema de informes muy capaz e intuitivo con muchas características.
Así es como configurar e instalar Cyfin Reporter con squid en Debian Squeeze.
La última versión de Cyfin Reporter en el momento de escribir es la versión 8.5. Verifica las siguientes ubicaciones dependiendo de tu arquitectura antes de descargar y actualiza los siguientes comandos donde sea necesario.
http://downloads.wavecrest.net/release/cyfin/linux32/
http://downloads.wavecrest.net/release/cyfin/linux64/
Así que tu instalación podría verse algo así…
cd /usr/local/src/
wget “http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz”
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
N.B El programa Install Anywhere interfiere con PS1, así que cambiar esto para el shell actual resuelve el problema.
export PS1=”>”
./c850linux32.bin
Cuando se te pregunte sobre la ruta de instalación, ingrésala como
* INGRESA UNA RUTA ABSOLUTA, O PRESIONA PARA ACEPTAR LA PREDETERMINADA
: /opt/wavecrest/cyfin*Acepta todo lo demás como predeterminado.
Necesitamos crear un script de inicio para iniciar y detener cyfin a la manera de Debian.
vi /etc/init.d/cyfin#! /bin/sh
### BEGIN INIT INFO
# Provides: cyfin
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: script de inicio de cyfin reporter
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Cargar la configuración VERBOSE y otras variables rcS
. /lib/init/vars.sh
# Definir funciones de registro de LSB.
# Depender de lsb-base (>= 3.2-14) para asegurar que este archivo esté presente
y que status_of_proc funcione.
. /lib/lsb/init-functions
case "$1" in
start) sh /opt/wavecrest/cyfin/cyfin start
;;
stop) sh /opt/wavecrest/cyfin/cyfin stop
;;
status) sh /opt/wavecrest/cyfin/cyfin start
;;
restart) sh /opt/wavecrest/cyfin/cyfin restart
;;
*) echo "Uso: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:
chmod +x /etc/init.d/cyfin
update-rc.d cyfin defaults
Configurar Cyfin Reporter requeriría un tutorial completamente nuevo, así que aquí están los conceptos básicos.
Accede a la GUI de configuración a través de http://squidproxy.example.local:7999. El inicio de sesión por defecto es “admin” para el nombre de usuario y la contraseña.
- Usa la ayuda en la GUI ya que la documentación es muy buena.
- Consulta las preguntas frecuentes en http://www.wavecrest.net/support/cyfin/reporter/faqs.html
- Usa el menú de Inicio Rápido para configurar lo básico, que es bastante sencillo.
- Habilita el Administrador de Datos para importar archivos de registro y configurar un horario de importación de archivos de registro.
- Usa la integración en Active Directory, puedes usar la cuenta squid creada para la autenticación LDAP para también extraer información de Active Directory.
- Configura un horario para importar listas de usuarios desde Active Directory.
- Debes asegurarte de que tus usuarios sean parte de un grupo de seguridad o grupo de distribución en Active Directory y agregar estos grupos a Cyfin Reporter.
- Asigna al gerente del departamento como el destinatario de los informes por correo electrónico.
- Configura cuentas de acceso para el personal con permiso para ver los registros.
Si usas Cyfin Reporter, debes tener en cuenta el uso adicional de memoria, así que asegúrate de asignar suficientes recursos para ejecutarlo.
Eso concluye el tutorial. Espero que ayude.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.