squid transparent autentificación usuarios

Imagen de al-serv

Forums: 

Hola compañeros!!

estoy itentando configurar un squid 3 con autentificación de usuarios, llevo varios dias y he conseguido que funcione pero me presenta un pequeño pero mayusculo problema.

El problema es que cuando configuro el proxy como transparent y activo la regla de que autentifique los usuarios, si en el navegador de cada usuario no le configuro que navegue por proxy no me pide ni usuario ni password y deniega el acceso. Esto no me sirve porque quiero que sea proxy transparente para no tener que configurar maquina por maquina y navegado rpor navegador... alguna idea???

muestro fichero squid.conf

------------------------------------------------------------------------

#
# Recommended minimum configuration:
#
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd
auth_param basic realm autorización de navegación web
auth_param basic children 5
auth_param basic credentialsttl 1 hours
acl autorizacion proxy_auth REQUIRED

#
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 RedLocal src 127.0.0.0/8 #Red Clase C
acl RedLocal src 192.168.224.0/24 #Red Clase C
acl RedLocal src 10.0.0.0/8 #Red Clase A
#acl RedLocal src 172.22.0.0/16 #Red Clase B

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

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 # unregistered ports
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 # multiling http
acl CONNECT method CONNECT

#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
http_access allow RedLocal autorizacion
http_access deny all

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128 transparent
visible_hostname servidor.proxy

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.
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

Contesté en otro hilo, pero

Imagen de deathUser

Contesté en otro hilo, pero lo replico acá para que esté más ordenado :)

Has visto como lo manejan en ClearOS ...???

No recuerdo muy bien, pero cuando pones como transparente y habilitas autenticación, me parece que te redirecciona a una página (no recuerdo si para la autenticación o para decirte como configurar el browser), en todo caso, se podría usar esa redirección para efectuar la autenticación.

Acá una explicación del por qué no funciona:

http://wiki.squid-cache.org/SquidFaq/InterceptionProxy#Why_can.27t_I_use_authentication_together_with_interception_proxying.3F

Puedes probar lo que dice RazaMetal que es algo experimental según el texto citado por RazaMetal.

[quote=RazaMetal]
Authentication is by default disabled in acceleartor mode in Squid-2.X due to conflicts with transparent interception. To enable this feature, at the top of acl.c add the following line:

#define AUTH_ON_ACCELERATION 1

Then "make install".

This feature is somewhat hidden because

* It hasn't been fully thought over yet. There are issues in caching when combined with authentication, and more so when there is also authentication to the backend servers..
* It easilly collides with transparent proxying, and many people simply refuses to read warnings that a feature cannot be used in a transparent proxy and try so anyhow.

The whole concept of "acceleration" in Squid is currently being reworked for the Squid-3.0 release to fix this and a number of other issues.
[/quote]

Fuente de la cita de RazaMetal:

http://man.chinaunix.net/newsoft/squid/Squid_FAQ/FAQ-23.html

Encontré un video que dice "This video demonstrates how my authentication script for Squid works even in transparent/interception proxy ..."

http://www.youtube.com/watch?v=-HseheODcNk

No lo he visto y no se si hay fuentes para descargar el script citado, ya que tengo bloqueado youtube :(, a ver si te es de utilidad ...

Suerte ...

bye
;)

al-serv wrote:

Imagen de deathUser

[quote=al-serv]no veo que es lo que ha hecho RazaMetal,, como puedo probar eso experimental que no veo el que es pero que estoy dispuesto a probar jejejej! mi ingles no es muy bueno y el traductor de google tampoco así que alguien me puede ayudar!!.... ;([/quote]

A lo que se refieren es a re-compilar el código de SQUID, editando el archivo "acl.c" que es el que procesa los ACLs de SQUID, agregando a este archivo al inicio del mismo la línea:

#define AUTH_ON_ACCELERATION 1

Y luego compilando el código fuente con make, una vez probado que te funcione podrías compilarlo en el RPM para no dañar el esquema de paquetes, con todo mira las otras alternativas, si es viable la del vídeo sería genial y si lo logras, que compartas tu experiencia, ya que es algo que como ves, no está soportado por default :)

bye
;)

Re

Imagen de al-serv

hmmmm si comprendo bien, edito ese archivo antes de recompilar el rpm con la modificación que me dices y lo pruebo no?

Leyendo bien el texto citado,

Imagen de deathUser

Leyendo bien el texto citado, primero, hace referencia a SQUID 2.x y segundo hace referencia al acceleartor mode y no al proxy transparente, es más dice que puede conflictuar con el proxy transparente, así que aparentemente por ahí no va la solución.

Mira si el vídeo de mi POST anterior tiene información útil.

bye
;)

Que es lo que no te a

Imagen de deathUser

Que es lo que no te a funcionado en CentOS ...???

Es interesante el esquema que usan para autenticar, a grandes rasgos:

El helper lo único que hace es una consulta en una base de datos mysql buscando la IP y el grupo de sesión que se solicitó, he aquí el query:

"SELECT `addresses`.`user` FROM `addresses` JOIN `groups` USING(`user`) WHERE `addresses`.`ip`='$ip_address' AND `groups`.`group`='$group' LIMIT 0, 1;"

En una breve lectura del script de autenticación no se referencia al usuario, ya que en la práctica el script no recibe tal información, recibe la dirección IP del cliente %SRC y el grupo "knight" en la configuración.

Por lo antes mencionado, este helper permite autenticar usuarios por un período de tiempo (para cualquier destino, bueno, dependiendo de como configures los ACLs) y seguramente en los logs no aparecerán los nombres de usuario, pero en combinación con el log de autenticación (que por cierto se borra luego de terminar su período de validez) se podría tener un reporte de las URLs visitadas por un usuario, podría ponerse una página de logout en caso de que el usuario haya puesto una sesión muy larga y no quiera que otro navegue con su autorización y agregar otro tipo de autenticación usando la base de datos mysql por ejemplo y loguear los accesos a mysql con lo que tendrías una mejor forma de analizar los logs :) ...

Es la mejor aproximación a lo que necesitas, no se me ocurre una forma de hacer que el browser envíe el username.

bye
;)

Re:

Imagen de al-serv

Si si, creo que es la mejor opción barajada hasta el momento pero lo he probado en centos y no se si el fichero de squid.conf no me hace caso o el que hago mal pero no me sale nada de lo que dice. Si alguien lo consigue, que me pase el fichero de squid.conf ( lo he probado con htpasswd ), seria de agradecer y como poner que directamente salga la pantalla del login para todo :) no solo por tiempo!! yo continuare probando pero no se por donde estoy fallando, ya pongo las rutas correctas para CentOS pero ni con esas... alguien se anima?? :) seria un buen manual para ecualug no??

Re:

Imagen de al-serv

Por lo que he podido profundizar más solo sirve para conceder cierto tiempo a una web en concreto que esta prohibida pero para toda la navegación no.... no creo que me sirva pero si alguien lo hace funcionar en CentOS que me avise!

De momento configurare maquina por maquina por el navegador proxy.... pfffff

Lo que se ha de hacer para que en los repos salga por el usuario y no por la ip del equipo y que cada usuario pueda utilizar el PC que quiera que si se autentifica con su usuario le sale sus estadísticas ;(

Re:

Imagen de al-serv

Hola!
No conozco WPAD, permite autentificación de usuarios? se que es algo para pasar https por squid pero en lo que he podido leer por encima no veo nada referente a autentificar.... algún manual para configurar-lo como proxy transparente y validación de usuarios?? ( sin tener que tocar nada de los navegadores ?? )

Páginas