InicioLinuxConfigurar squid en modo transparente squid cache filtro

Configurar squid en modo transparente squid cache filtro

Linux8/21/2009
HOLA A TODOS RULANDO POR LA INTERNET ..Y BUSCANDO QUE HACER ENCONTRE ESTA PRUEBA DE LABORATORIO..... YO ESPERO K LES SIRVA ESTA INFORMACION..Y QUE ESPERO QUE PRUEBEN SI ...ALGUIEN TIENE QUE APORTAR EN ESTA MATERIA QUE HABRA UN POST..PARA SEGUIRLE EL PASO A ESTE TEMA ES DE MUCHO INTERES PARA LOS QUE SI DESEAMOS TRABAJAR EN LINUX...AUN QUE HAY DISTRIBUCIONES KMO PFCENSE; EBOX QUE HACEN ESTE TIPO DE TRABAJO..E IGUAL ES INTERESANTE HACERLO MANUAL......BUENO SALUDOS A TODOS... Configurar Squid en modo transparente + Squid cache + filtro de contenidos por yordanisp @ 2008-12-26 – 01:40:22 Cómo configurar Squid en modo transparente + Squid cache + filtro de contenidos y algo más, en 10 minutos Introducción Este tutorial explica como realizar una configuración medianamente básica de Squid Proxy, y cuenta un poco sobre mi experiencia vivida configurando el Proxy con un jefe enojado al lado. Este es un tutorial Express y no explica como instalar Squid, solo su configuración y posterior mantención. También es cierto que existen innumerables manuales mucho más extensos y completos sobre como configurar Squid Proxy, si Ud. espera que este tutorial sea extenso, completo, que explique todas las formas de configuración, le informo que se equivoco, si ese es su caso diríjase a http://www.squid-cache.org/. Ahora si Ud. es un administrador de red, con poca experiencia como yo, y tiene un jefe que siempre pide las cosas el día viernes a última hora, y nos hace trabajar horas extras o nos hace venir los sábados, este documento es para Ud. Ahora si su empresa se queda sin Internet por que Ud. no entendió este tutorial, es solo su responsabilidad. De aquí en adelante paso relatar como configure Squid. Al hueso La distribución Linux que se use para el servidor fue Fedora Core 2, aunque no lo e probado en otra distribución, en teoría debería funcionar en cualquiera. Software Utilizado: * IPtables-1.3.3 * Squid-2.5.STABLE10 Si para el día que leas este tutorial existen otras versiones más recientes, es recomendable que las instales. El fichero de configuración de Squid se encuentra en /etc/squid/squid.conf es bastante extenso, 3690 líneas aproximado, por eso ten cuidado. Te recomiendo que comentes todos los cambios que vayas realizando y que antes de empezar hagas un respaldo del squid.conf. Los parámetros que se trataran en este tutorial son: HTTP_PORT VISIBLE_HOSTNAME CACHE_MEM CACHE_DIR ACL (Lista control acceso) HTTP_ACCESS (Regla de control de acceso) CACHE_MGR HTTPD_ACCEL_HOST HTTPD_ACCEL_PORT HTTPD_ACCEL_WITH_PROXY Parámetro HTTP_PORT Este parámetro se utiliza para especificar el puerto que usará Squid, por defecto usa el puerto 3128, algunos manuales dicen que para un Proxy transparente se debe usar el puerto 80, en mi caso, la máquina en la que esta el servidor Proxy también tiene corriendo Apache, por lo que el puerto 80 ya está ocupado. Este parámetro lo descomentamos y dejamos el puerto 3128 para el Proxy, mas adelante explicaré porque. http_port 3128 Parámetro VISIBLE_HOSTNAME En este parámetro se configura un nombre, no es muy relevante el nombre pero si es importante configurarlo, porque si no Squid nos arrojara un lindo error. FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname' En mi caso este parámetro no lo encontré dentro del squid.conf, por lo que lo escribí yo mismo debajo de http_port. visible_hostname BOTH Parámetro CACHE_MEM En el parámetro cache_mem se configura la cantidad de memoria que se asignará para el cache del Proxy, por defecto es 16MB, pero dependiendo del hardware de la máquina se puede asignar más, en mi caso le asigne 32MB. cache_mem 32 MB Parámetro CACHE_DIR Aquí se establece cuanto espacio en el HD se asignará para el cache del Proxy, mientras más espacio en el cache más páginas puede almacenar, por lo que se supone que menos ancho de banda se ocupará. Por defecto son 100MB, en mi configuración establecí 400MB. cache_dir 400 MB ACL (Lista de control de accesos) ACL es necesario para establecer las listas de control de acceso al Proxy, estas pueden definir la red completa o ciertas máquinas específicas. A estas listas de acceso se les asigna una regla de acceso que define si se permite o se rechaza la conexión al Proxy. Las lista de control de acceso se definen asi: acl (Nombre de la lista) src (Red o equipos que componen la lista) Si se desea crear una lista de acceso que contenga toda la red, en donde las máquinas tiene direcciones 192.168.0.x y cuya máscara de subred sea 255.255.255.0 entonces el ejemplo sería así: acl mired src 192.168.0.0/255.255.255.0 Ahora si se necesita que solo algunos equipos tengan acceso al Proxy, se debe crear un fichero con las IPs de los equipos, localizado en el HD, el cual será invocado y leído por Squid. alc maquinas_permitidas “/etc/squid/maquinas_permitidas” Parámetro HTTP_ACCESS (Reglas de control de acceso) Este parámetro define si se permite el acceso o no a Squid. Debes ponerlas donde dice: # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR # CLIENTS. Fácil? Bueno, la sintáxis de las reglas de control de acceso son así: http_access (allow o deny) (lista de control de acceso) Un ejemplo donde se da acceso a toda la red seria algo así: http_access allow mired Otro ejemplo: http_access allow maquinas_permitidas También se pueden definir varias listas de acceso, una para aceptar y otra para denegar, para esto de usa el símbolo ! que significa excepción. http_access allow gerencia !secretarias Esta regla otorga acceso a la lista llamada gerencia y deniega el acceso a la lista secretarias. Ahora que ya sabes que son las listas, voy a describir como realicé mi configuración. Lo que yo hice fue otorgar acceso a toda mi red al Proxy, es decir todos tiene salida a Internet a través del Proxy. El Proxy controla el acceso al puerto 80, ósea Web, los demás protocolos salen a través de NAT. Mi sección de lista de control de acceso es asi: #Recommended minimun configuration: acl all src 0.0.0.0/0.0.0.0 acl all src proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl mired src 192.168.0.0/255.255.255.0 Hecho esto, pasamos a las reglas de control de acceso, lo que seria algo así: #INSERT YOUR RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS http_access allow localhost http_access allow mired http_access deny all La regla http_access allow mired, permite el acceso a toda la red, 192.168.0.0/255.255.255.0, es decir a las IPs comprendidas entre 192.168.0.1 a 192.168.0.254 ATENCION: Squid no es capas de manejar protocolos como POP, IMAP y SMTP, por lo tanto para la salida y entrada del correo se debe usar NAT. Parámetro CACHE_MGR Este parámetro es para configurar una dirección de correo, en caso que ocurra alguna catástrofe en el servidor. Así squid podrá avisar cuando ocurra algo malo. cache_mgr [email protected] SQUID CACHE El cache de Squid trabaja básicamente almacenando en el servidor las páginas que los usuarios visitan, así cuando el usuario vuelve a visitarla posteriormente u otro usuario solicita la misma página, esta no será cargada desde el hosting donde se aloja la página, sino será cargada desde el cache de nuestro Proxy. Squid Cache acelera la navegación de las páginas ya que al estar guardada se aprovecha el ancho de banda que sirve para otros servicios críticos que usan Internet. Ahora para usar el cache debemos activar los siguientes parámetros: HTTPD_ACCEL_HOST HTTPD_ACCEL_PORT HTTPD_ACCEL_WITH_PROXY En mi configuración para en Proxy transparente, estos parámetros los deje así: httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on Hecho esta, ya tenemos el Proxy Squid activo, ahora solo falta configurar los mensajes de error, los que vienen en distintos idiomas, por defecto English, los que se localizan en /usr/lib/squid/errors. Primero debemos borrar el enlace simbólico en /etc/squid/errors, y establecer uno nuevo a /usr/lib/squid/errors/Spanish. Ahora solo basta iniciar el servicio. service squid start (Fedora, Red-Hat, Mandriba) /etc/init.d/squid start (Debian, Ubuntu, etc.) /etc/rc.d/squid start (Slackware) Squid debería iniciar sin problemas, si no es así, revisa el archivo de configuración en /etc/squid.conf, vuelve a leer este tutorial o consulta a la lista de correo de http://www.tux.cl/ Pero esto aún no termina, ahora necesitamos indicarle a nuestro firewall que nos redireccione todo el trafico en el puerto 80 proveniente desde nuestra red. Mi configuración quedo asi. #HTTP IPTABLES –t nat –A PREROUTING –i eth1 –p tcp –dport 80 –j REDIRECT –to-port 3128 Mi servidor posee 2 interfaces de red, donde eth0 esta conectada a Internet y eth1 a la red interna. Ahora tenemos un Proxy totalmente transparente, esto significa que en los clientes no necesitaremos cambiar nada. Este ejemplo es aplicable a cualquier servicio que necesite pasar por un Proxy #FTP IPTABLES –t nat –A PREROUTING –i eth1 –p tcp –dport 21 –j REDIRECT –to-port 3128 #HTTPS IPTABLES –t nat –A PREROUTING –i eth1 –p tcp –dport 443 –j REDIRECT –to-port 3128 Restricción de acceso a sitios Bueno, después de lo aburrido que se puso esto, ahora ya pasamos a la parte buena. Esta es la oportunidad de convertirnos en un BOTH o Bastard Operador From Hell, http://www.bofh.net. Implementar este filtro es verdaderamente fácil, aunque existen herramientas mucho más poderosas, como SquidGuard, para mis necesidades sólo implemente una simple regla de control de acceso. Lo primero es crear un fichero, el cual contendrá los dominios, las direcciones de las páginas o algunas palabras usadas en ciertos dominios. www.jovencitas.com www.sexo.com sexo sex porn p0rn xxx XXX Warez Mp3 Jpeg 89.56.213.189 Esta lista de sitios denegados, se debe guardar en un fichero en el disco duro, por ejemplo /etc/squid/denied_sites. Ahora debemos crear una lista de control de acceso en squid.conf acl denied_sites url_regex “/etc/squid/denied_sites” Nuestra lista de control de acceso queda así #Recommended minimun configuration: acl all src 0.0.0.0/0.0.0.0 acl all src proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl mired src 192.168.0.0/255.255.255.0 acl denied_sites url_regex “/etc/squid/denied_sites”// Ahora debemos crear la regla de control de acceso. http_access deny denied_sites Y nuestra lista de control de acceso qeuda asi. #INSERT YOUR RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS http_access deny denied_sites http_access allow localhost http_access allow mired http_access deny all Es importante que esta regla vaya al principio. En mi caso, con esto quedaron algunos sitios bloqueados por error, y para resolver esto es necesario crear otra lista de acceso de la misma forma que la anterior, pero esta vez con los sitios admitidos. Esto lo cree en /etc/squid/appoved_sites y lo agrege a squid.conf como una lista de acceso. acl approved_sites url_regex “/etc/squid/approved_sites” Ahora creamos la regla de control de acceso, pero para esto usaremos la misma regla anteriormente creada para denegar, usando el símbolo de excepción !. http_access deny denied_sites !approved_sites A hora solo es necesario reiniciar Squid y todo queda funcionando: service squid restart Bonus Como bloquear MSN y no morir en el intento Bueno, el MSN siempre a sido un dolor de cabeza para los jefes y una herramienta indispensable para las secretarias. Se puede bloquear a través de Iptables con una simple regla IPTABLES -A FORWARD -p tcp --dport 1863 -j REJECT Pero ahora el nuevo MSN también usa el puerto 80 cuando el 1863 esta bloqueado y obviamente no podemos cerrar el 80. Ahora si queremos ser unos verdaderos BOFH, debemos cerrar todo lo que provenga desde MSN. IPTABLES –t mangle –A PREROUTING –p tcp –dport 1836 –j DROP While read msn; do IPTABLES –t mangle –A PREROUTING –d $msn –j DROP done < /etc/rules/ip-addresses-msn Donde el fichero “ip-addresses-msn” contiene una lista con todas las IPs de los servidores de Hotmail, 44 en total. 63.208.13.126 64.4.12.200 64.4.12.201 65.54.131.249 65.54.194.118 65.54.211.61 207.46.104.20 207.46.110.2 207.46.110.254 207.46.245.222 207.46.245.214 messenger.hotmail.com messenger.msn.com messenger.microsoft.com echo-v1.msgr.hotmail.com echo-v2.msgr.hotmail.com login.passport.net messenger.t1msn.com.mx 65.54.226.246 65.54.226.252 65.54.228.243 65.54.228.254 65.54.229.246 65.54.229.254 65.54.225.244 65.54.225.252 loginnet.passport.com 65.54.225.241 65.54.225.254 65.54.226.247 65.54.226.254 65.54.228.244 65.54.228.253 65.54.229.248 65.54.229.253 login.passport.com 65.54.231.240 65.54.230.240 207.68.173.245 64.202.167.129 63.241.128.250 207.68.173.245 config.messenger.msn.com El único problema es que esta regla bloquea el mail y todos los servicios de Hotmail, no solo el MSN. Ahora la única regla que funciona adecuadamente es agregar una lista de control de acceso a Squid. acl msn_messenger req_mime_type –i ^application/x-msn-messenger$ acl msn_messenger2 url_regex -i gateway.dll y luego aplicar la regla de control de acceso respectiva http_access deny msn_messenger http_reply_access deny msn_messenger2 Una vez que implementen Squid + Squid-Cache + Filtro de contenidos en alguna empresa, serán la persona más odiada, los llamados telefónicos de triplicarán, y no te extrañes si en el casino de la empresa vez una foto tuya llena de dardos, no importa porque eres el próximo “Bastard operator from Hell”! Hasta la próxima.
Datos archivados del Taringa! original
0puntos
5,158visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

m
magnum12🇦🇷
Usuario
Puntos0
Posts6
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.