Tengo configurado Squid usando autenticación Kerberos. También estoy usando squidguard como redirector de URL para bloquear la maldad habitual de la web. Sin embargo, hay algunos sitios a los que permitimos que ciertos usuarios accedan y otros no. Todo esto funciona bien, asumiendo que no estoy usando ninguna transmisión.
Por lo que puedo determinar a partir de los registros de Squid y los rastreos de Wireshark que he realizado, cuando se envía la solicitud inicial para transmitir, todo está bien, el nombre de usuario autenticado se envía con la solicitud a Squidguard. El problema es que en el tráfico posterior el nombre de usuario no se envía a squidguard, lo que provoca que se bloquee según la política predeterminada.
Intenté usar las funciones integradas de permitir/denegar de squid, pero es relativamente complicado y hasta ahora squidguard ha sido bastante fácil y rápido.
Aquí viene la(s) pregunta(s):
- ¿Cómo consigo que Squid pase el nombre de usuario en todas las solicitudes? (algo me dice que esta no es la mejor manera)
- ¿Cómo puedo hacer que Squidguard vea que el tráfico está autenticado para un usuario específico incluso cuando no se pasa un nombre de usuario?
- ¿Hay alguna otra manera de lograr esto?
Algunos detalles que pueden ser importantes:
- Estoy usando una lista de usuarios almacenada en un archivo de texto para que Squidguard la compare.
- Estoy usando autenticación Kerberos completa con Squid.
- CentOS 6.0
- Calamar 3.1.4
- Calamardo 1.3
Editar
Para aclarar, agregué el siguiente fragmento de calamares para demostrar lo que está sucediendo:
wsXX.domain.local 534 5.99 34M 3.04 1 69.93
*.outsidedomain.com 204 14.22 5M 20.66 0 92.14
<error> 137 0.00 0M 0.00 0 589.16
[email protected]@wsXX.domain.local 115 0.00 1M 0.00 70 0.16
*.outsidedomain.com 84 0.00 1M 0.00 73 0.17
<error> 24 0.00 0M 0.00 21 0.00
* EDITAR *
A medida que me adentré más en la madriguera del conejo, parece que, en particular, no se autentica contra respuestas a solicitudes HTTP. De hecho, si pongo el estado de cuenta
http_reply_access deny !auth
No permitirá ningún tráfico https, pero permitirá la mayor parte del tráfico http. Estoy completamente perplejo, en realidad parece que está dejando pasar tráfico no autenticado (lo probaré hoy) [Probado y permitirá tráfico http no autenticado, pero https activo], aunque tengo las siguientes líneas en mi squid.conf:
http_access deny !auth
http_access allow auth
http_access deny all
* EDITAR * He arreglado http no autenticado y httpsm todo parece estar funcionando bien, excepto los sitios de transmisión que todavía :(
Por lo que vale, tuve que cambiar la siguiente línea en la configuración.
http_access deny !Safe_ports
a
http_access deny !Safe_ports !auth
Respuesta1
Entonces, descubrí esto. Resulta que había otras ACL en mi squid.conf que permitían tráfico no autenticado a través del proxy. Debido a que esas reglas se estaban cumpliendo antes que las reglas para denegar el tráfico no autenticado, el tráfico se enviaba sin autenticar.
Espero que esto sirva como un buen recurso para cualquiera que intente hacer algo similar.