![]() Propósito de este manual: debian no hace mucho liberó su versión 4 (etch) y esto me hizo replantear la instalación del servidor proxy. Un upgrade de versión en debian es algo peligroso, si lo haces en un equipo que esta en producción y del cual dependen unos cien usuarios, ya se que no son muchos, pero hay que cuidarlos igual. Decidí volver a instalar el debian con squid, squidguard, apache 2 y sarg, vamos un servidor proxy de lo más profesional. Revisando la web de squid y algunos manuales descubrí que una alma caritativa había dedicado algo de su tiempo en crear un "helper" para integrar squid con ldap, la solución a mis problemas. Lo que me hizo plantearme el escribir todos los pasos para configurar un squid con integración con ldap,creo que funciona en cualquier ldap pero solo lo he probado en el de microsoft. Escenario:
Tres tipos de usuario:
Empezamos: En el grupo AccesoTotal añadiremos a todos los usuarios que puedan visitar casi todo el contenido de internet. En el grupo AccesoLimitado añadiremos a todos los usuarios que puedan visitar los websites que permita la empresa tales como bancos, servidores locales, web de la propia empresa, y cualquier otro sitio que se considere. Si el usuario no esta en cualquiera de estos grupos se le denegara el acceso a internet. ![]() Esto es todo lo que tenemos que hacer en windows. Pasamos al servidor debian etch 4, primero instalamos el squid, utilizamos apt para instalar la ultima versión, este manual esta escrito para squid (2.6.5-6) proxy:~# apt-get install squid squid-common winbindAhora solo tenemos que configurar el squid, se muestra linea a linea el archivo de configuración que se utiliza en este manual, pero recuerda que el archivo de configuración original consta de más de 4000 lineas entre comentarios y parámetros, utiliza esta configuración de base. Al final de este documentos podrás encontrar una copia sin comentar y lista para usar en tu squid. proxy:~# vi /etc/squid/squid.confUtilizamos el editor de textos vi para modificar squid.conf http_port 3128Puerto para el servidor proxy (Defecto 3128) icp_port 0no usamos icp forwarded_for offOcultamos la ip del cliente, para que en internet solo se muestre la ip del router hierarchy_stoplist cgi-bin ?Aquí puedes incluir todo aquello que squid no debe guardar en chache Ej. cgi-bin acl apache rep_header Server ^ApachePara los servidores que permiten resumir la sesión cuando se cancela una descarga de un archivo access_log /var/log/squid/access.log squidEsta linea se explica por si misma, donde guardamos el log de acceso emulate_httpd_log onPara emular el formato de log del apache, esto nos sirve para utilizar los analizadores de logs de apache hosts_file /etc/hosts¿Donde esta el fichero hosts? cache_dir aufs /var/spool/squid/ 2000 16 256Esta linea define el tipo de cache que utilizara squid, su ubicación, su tamaño, la cantidad de directorios y de subdirectorios respectivamente. cache_dir
cache_mem 128 MBLa cantidad de memoria asignada al squid, por defecto es de 8MB pero como que el pc tiene 1gb probamos con 128MB, esta memoria reservada por squid solo se usara para:
Hasta aquí todo es bastante sencillo y estándar, ahora se complica con la conexión con el LDAP de windwos auth_param basic program /usr/lib/squid/ldap_auth -R -b "dc=babilonics,dc=com" -D "cn=usuarioldap,ou=Internet,dc=babilonics,dc=com" -w "micontraseña" -f sAMAccountName=%s -h 192.168.74.2
Como esta linea es básica para que funcione, "el invento", se comenta punto por punto external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group -R -b "dc=babilonics,dc=com" -D "cn=usuarioldap,ou=Internet,dc=babilonics,dc=com" -w "micontraseña" -f "(&(objectclass=person) (sAMAccountName=%v) (memberof=cn=%a,ou=Internet,dc=babilonics,dc=com))" -h 192.168.74.2Ahora vamos con el otro "helper" este permite la utilización de grupos del ldap
Como esta linea es básica para que funcione, "el invento", se comenta punto por punto auth_param basic children 25Todo lo que escribas después del realm, se muestra al usuario cuando se le pide la contraseña. Ej. "Babilonics Proxy" auth_param basic credentialsttl 5 minutesEl tiempo que squid mantiene las credenciales de las web externas, donde el usuario se valida acl CONNECT method CONNECTEstos son los puertos "80 443" que squid permitirá conexiones. cualquier petición a un puerto que no este en esta linea sera rechazada. esta configuración es muy particular, cada red tiene sus aplicaciones y sus necesidades. Para añadir puertos como el de ftp, para descargas, solo tienes que añadirlo detrás del ultimo dejando un espacio. Ej. "acl Safe_ports port 80 443 21" si no sabes que puertos necesitan tus aplicaciones puedes utilizar una linea con todos los puertos altos y con los mas usuales pero no es muy recomendable. Ej. "acl Safe_ports port 80 443 21 1024-65535" acl SSL_ports port 443Los puertos que necesitan conexión ssl acl all src 0.0.0.0/0.0.0.0En esta acl definimos la red all, si tenemos varias redes o subredes las podemos definir con acls para darles un tratamiento distinto a cada una de ellas acl manager proto cache_objectSe incluye por defecto acl localhost src 127.0.0.1/255.255.255.255Esta acl define localhost y to_localhost acl purge method PURGESe incluye por defecto acl ldapSinAcceso external ldap_group SinAcceso Esta acl define el grupo SinAcceso, es el nombre del grupo en el AD y ldapSinAcceso es el nombre de la acl del squid acl ldapConAcceso external ldap_group ConAcceso Esta acl define el grupo ConAcceso, es el nombre del grupo en el AD y ldapConAcceso es el nombre de la acl del squid acl dstcomun dstdomain "/etc/squid/acl/comun.acl"En este archivo pondremos todos los dominios que consideremos accesibles para todos los usuarios. Al final de este documento se explica como crear este fichero. acl ldap-group proxy_auth REQUIREDEsta acl establece que todos los usuarios del ldap deben autenticarse offline_mode onPara cachear todo lo que pase por el proxy http_access deny !Safe_portsDenegamos el acceso a cualquier puerto diferente a los definidos en Safe_ports http_access deny CONNECT !SSL_portsDenegamos la conexión cifrada a los puertos que no son ssl http_access deny ldapSinAccesoNo permitimos el acceso a internet de los usuarios del grupo SinAcceso http_access allow ldapConAccesoPermitimos el acceso a internet de los usuarios del grupo ConAcceso http_access allow manager localhostPermitimos solo el acceso a cachemgr desde localhost http_access allow purge localhostSolo permitimos purgas desde localhost http_access allow localhostPermitimos el acceso al proxy http_access deny ally al final lo denegamos todo http_reply_access allow allPara que conteste a las peticiones de los clientes icp_access deny alldenegamos el icp header_access X-Forwarder-For deny allPara ocultar la máxima información del proxy, solo en las cabeceras header_access Accept-Language deny allPara remplazar las cabeceras, del proxy y de los navegadores #header_access User-Agent deny allModificamos la cabecera del navegador, este será el agente que se mostrara hacia internet, recuerda que cuanta menos información regales mejor esta opción esta comentada con un "#" para omitirla de la configuración, si descomentas estas lineas evitaras que se detecte la versión de nuestro navegador, evitando spyware, virus y otros bichos, pero es posible que no podamos utilizar aplicaciones web como las de los bancos, ya que necesitan detectar la versión de tu navegador Otra opción es falsear esta información, si en tu red se utiliza el interenet explorer puedes enviar la cabecera del firefox o viceversa, pero claro esto también puede darte problemas en otras webs refresh_pattern ^ftp: 1440 20% 10080Estas lineas no se para que sirven pero se incluyen por defecto y aquí están pero no las comento cache_effective_user proxyEl usuario y el grupo que utilizara squid coredump_dir /var/spool/squidCon esta linea le indicamos al squid donde guardar la cache error_directory /usr/share/squid/errors/SpanishEl idioma que utilizara squid cuando muestre un error al usuario, Ej. "Error 404" Hasta aquí todas las lines del archivo de configuración del squid, ubicado en /etc/squid/squid.conf, ahora solo tienes que añadir los usuarios en los grupos corespondientes del Active Directory de windows, configurar el navegador de los usurios con dirección ip y el puerto del proxy, puedes hacerlo con las politicas de windows 2000 o 2003 server (windows 2kx server). Ahora antes de reiniciar el squid, tenemos que crear el directorio acl y añadir el archivo comun.acl Creamos el directorio acl en el directorio de configuración del squid proxy:~# mkdir /etc/squid/aclCreamos el archivo comun.acl y lo llenamos con una lista de dominios permitidos como la que se muestra más abajo. proxy:~# vi /etc/squid/acl/comun.aclConcedemos permisos de escritura y lectura solo al usuario root proxy:~# chmod 600 /etc/squid/acl -REl archivo de dominios comunes, estos son los dominios donde los usuarios limitados pueden acceder. .babilonics.comYa podemos reiniciar nuestro nuevo proxy-cache squid proxy:~# /etc/init.d/squid restartUtiliza este codigo para copiar y pegar archivo de configuracion sin comentar
|
|||


Advertencia en el Internet Explorer 7
Buenas,
tengo el squid funcionando sin problemas autenticando contra un ldap.
El "problema" es que al intentar utilizarlo con IE 7, me sale el popup de peticion de usuario y password, y en este cuadrito indica un mensaje de advertencia:
El servidor está solicitando su usuario y contraseña de forma no segura... o algo muy similar.
Hay alguna forma de que esto no ocurra?
Con versiones anteriores de IE o Firefox no pasa esto..
Gracias y un saludo
SQUID-AUTH-SECCION-SAMBA
Necesito que el squid identifique automaticamente los usuarios de samba+ldap con solo iniciar seccion...
Salud2s...
DUDA
¿donde podria conseguir un manual para instalar debian segun las necesidades de squid para instalarlo y optimizarlo?
Nachux
iptables -t nat -A PREROUTING --dport 80 -j REDIRECT --to-port 8080
Problemasss
Primero te escribo para felicitarte,
Despues de de seguir tu adirable guia, tuve que adaptarla a mis necesidades, el problema es que la integración la estaba realizando con un active directory ya realizado que posee unidades organizativas una dentro de la otra; como podria de igual manera verificar los usuarios que estan dentro de estas ou.
Muchas gracias.
Gran tutorial pero tengo un problema...
Estoy intentando realizar la integración pero me esta dando un error al querer aplicar las modificaciones que son con el ou ya que el active directory ya estaba establecido y no puedo modificarlo y existe dentro de la ou varias ou; además leí que si los nombres estaban separados tambien podria ocurrir un error necesito aclaración de esto muchas gracias....
ERROR
Hola yo soy nueva en esto y no me funciona me da errores insistentes
el error esta en las lineas 15,16,17,18
si alguien pudiera ayudarme se lo agradesco
salu2
squidguard+ldap
Muchas gracias por el howto, muy preciso, en lo posible solicito ayuda para utilizar squidguard+ldap, no logro aplicar filtro de squidgurad a grupos de usuarios, logro aplicar squidguard a todos lo usuarios no asi para usuarios o grupos especificos, he intentado con src user y src userlist pero todo parece indicar que falta algo en squidguard, parece que no puede identificar los usuarios, antes de integrar squid con ldap si lograba diferenciar.
¿Cómo integrarlo con squiGuard?
Gente, una consulta.
Alguien ha hecho la integración además de con AD con el SquidGuard?
Si es así. ¿Cómo están configurando las acl en el SquidGuard?
Yo lo he probado y he logrado que me funcionen las acls de la siguiente forma:
# Usuarios con full access web
src admin {
user usuarioa
}
# Usuarios con pemisos en sitios de chat
src chat {
user usuariob
}
...
acl {
admin {
pass any
}
}
acl {
chat {
pass whitelist chat !games !gardening !hacking !hygiene !instantmessaging !jewelry !kidstimewasting !marketingware !mixed_adult !webmail !mail
}
}
Pero en las acls debo definir los usuarios, quisiera saber si alguién sabe como hacer esto mismo pero definiendo grupos en vez de usuarios.
Muchas gracias!
Configurar Browser
En IE te vas a herramientas - Opciones de Internet - Conexiones - Configuracion de Lan
Marcas la casilla que dice Servidor Proxy y en los 2 cuadritos que se te activan pones la Ip de tu proxy y en puerto 3128
Saludos
Enviar un comentario nuevo