squid -> dansguardian -> squid

Victor Hugo dos Santos listas.vhs en gmail.com
Lun Mar 31 12:01:13 CLT 2008


Señores,

estoy intentando configurar squid + dansguardian, con la siguiente
estructura (base):

- usuarios sin autentificar pueden navegar en sitios básicos y se
deniega todo los demás sitios
- usuarios autentificados, pueden navegar en varios sitios, excepto
los sitios bloqueados por DG

el problema es que el DG, pesar que trabajar bien con usuarios y
grupos..  no tiene la posibilidad de autentificar los usuarios... así
que configure el squid para solicitar el usuario y contraseña al
cliente y después pasar estés datos al DG... hasta acá va bien !!! el
problema es que en el DG necesito poner un proxy a donde reenviar las
peticiones validas de los usuarios y pongo el mismo squid como proxy
de  salida .. lo que genera un loop y me muestra este error en los
logs:


-----------------------------
2008/03/31 10:33:10| WARNING: Forwarding loop detected for:
GET /favicon.ico HTTP/1.0
Host: www.miip.es
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9b4)
Gecko/2008030714 Firefox/3.0b4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: identity,gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Authorization: Basic dmhzYW50QnVuZGEwOQ==
Via: 1.1 proxy2.midominio.com (squid/3.0.PRE6)
X-Forwarded-For: 172.X.X.150
Cache-Control: max-age=259200
X-Forwarded-For: 172.X.X.150
-----------------------------

bien... he visto varias paginas, intentando evitar este loop, entre ellas esta:
http://wiki.squid-cache.org/SquidFaq/TroubleShooting#head-16ad27f86ac8fcbd395bcf440c202ee23308a7cc

donde agregue las siguientes lineas a mi squid.conf

-----------------------------
# Our parent caches
cache_peer localhost parent 8080 0 proxy-only no-query login=PASS no-digest

# An ACL list
acl PEERS src localhost

# Prevent forwarding loops
cache_peer_access localhost allow !PEERS
-----------------------------

lo que a mi punto de vista.. debería de funcionar.. pero no !!! no
funciona, continua con el mismo error en los logs (sii.. reinicie
ambos servicios).

también.. intente modificar los parámetros "visible_hostname" y
"unique_hostname" con nombres distintos.. pero nada..

mmmmm.. según mi punto de vista, existen las siguientes posibilidades..

1 - poner una otra instancia de squid, a donde el DG pueda enviar las
solicitudes (cliente > squid > DG > squid) ... no me agrada mucho la
idea, porque debería de modificar los scripts de inicio de squid y
efectuar algunos cambios raros en los archivos de configuracion.

2 - poner una instancia de privoxy al frente del DG, quedando asi
(clinte -> squid -> DG -> privoxy) ... posiblemente sea la mejor
alternativa hasta el momento.. pero el tema es que no conozco muy bien
privoxy y tengo temor de dar resultados inesperados en los clientes
(pero estoy estudiando su implementación y efectos)

3 - encontrar algún parámetro en el squid, que evite el loop y dejar
la estructura tal cual esta ahora (lo que seria mejor en estes
momentos).

bien.. abajo, envio los parámetros de mi squid.conf en estés momentos:

-----------------------------
http_port 3128
icp_port 3130
cache_peer 127.0.0.1 parent 8080 0 proxy-only no-query login=PASS no-digest
#cache_peer proxy1.midominio.com sibling 3128 3130 login=PASS
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
cache_mem 4000 MB
maximum_object_size 40960 KB
cache_dir ufs /var/spool/squid3 40000 16 256
ftp_user Squid en midominio.com
auth_param basic program /usr/lib/squid3/squid_ldap_auth (DN para
conectarse, funciona bien)
auth_param basic children 20
auth_param basic realm Web-Proxy Midominio SA
auth_param basic credentialsttl 2 hours
external_acl_type ldap_group %LOGIN /usr/lib/squid3/squid_ldap_group
(DN para conectarse, funciona bien)
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl CONNECT method CONNECT
acl sites_basicos url_regex -i "/etc/squid3/sites_basicos.txt"
acl autenticados proxy_auth REQUIRED
acl PEERS src 127.0.0.1
cache_peer_access 127.0.0.1 allow !PEERS
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow sites_basicos
http_access allow autenticados
http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_peer_access 127.0.0.1 allow !PEERS
cache_mgr linux_admin en midominio.com
visible_hostname proxy2.midominio.com
unique_hostname proxy2.midominio.com
acl sitios_internos dst midominio.com
always_direct allow sitios_internos
error_directory /usr/share/squid3/errors/Spanish
coredump_dir /var/spool/squid3
-----------------------------

bien.. ojala alguien haya encontrado una solución para este tema y/o
tenga alguna idea que pueda ayudar.

salu2 a todos.

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399
participe y ayude en el FLISOL 2008
http://www.flisol.cl y http://www.flisol.net



Más información sobre la lista de distribución Linux