|
Squid |
|
|
|---|---|---|
|
|
Español | English | Française | Deustch | Italiano |
|
Que es el squid |
|
Entorno |
|---|---|---|
Para que sirve |
|
|
|
Como se obtiene |
|
|
|
Como se instala |
|
|
|
Como se configura |
|
|
|
Como se opera |
|
|
Copyright.
© 1999, © 2000, © 2001, © 2002 y © 2003 Linux Para Todos. Se permite la libre distribución y modificación de este documento por cualquier medio y formato mientras esta leyenda permanezca intacta junto con el documento y la distribución y modificación se hagan de de acuerdo con los términos de la Licencia Pública General GNU publicada por la Free Software Foundation; sea la versión 2 de la licencia o (a su elección) cualquier otra posterior. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
Que es el Squid,
El Squid es un programa que permite que una maquina que tiene internet, pueda compatirlo a otras computadoras, este programa funciona sobre el sistema operativo Linux, aunque puede ser configurado sobre otros, excepto windows, una de las principales ventajas de este programa es que es gratuito, y muy eficiente, entre sus bondades podemos decir:: Como el programa es gratuito bajo la licencia GNU, es posible instalarlo para compartir internet a una maquina o a cientos, sin tener que pagar licencias por ello; otra es que es posible, configurarlo para que pueda usar un mecanismo que permite acelerar el acceso de maquinas al internet; otra cualidad es que puede controlar los accesos de las maquinas a las cuales se les esta compartiendo el internet, tanto el horario, como en tipos de archivos entre otros controles, sin embargo posee una cualidades mas avanzadas para usuarios con necesidades mayores, pensemos en una escuela, que tiene cientos de computadoras, y disponemos de una conexión a internet(Enlace) queremos compartirlo existen varias formas, pero quiza una de las mas sencillas es apoyandonos en el uso de squid, pero claro sabemos que si hablamos de cientos necesitamos implementar algo mas que un simple servidor, el squid permite, crear un red de servidores, que pueden en conjunto atender a mucho usuarios, pero esto se describira posteriormente.
El squid es quiza el software mas usado para compartir internet, y que ademas pone a disposicion el codigo fuente.
Como se obtiene.
El programa normalmente viene en la mayoria de distribuciones, o bien puede ser descargado del sitio oficial de squid , es importante aclarar, que uno puede bajar dos tipos de programas: Los fuentes para compilarlos o los binarios(ejecutables), es probable que no existan ejecutables para muchos sistemas operativos, pero por ejemplo este manual esta basado en RedHat 9, para el cual si existen binarios.
Para el caso de que su distribucion traiga el binario solo sera necesario instalarlo, o en algunos casos ya esta instalado.
Como se configura.
La configuracion es una de las partes mas importantes del proceso, debido a que es aquí donde adecuamos el software a nuestras necesidades, la configuracion del programa se apoya en un solo archivo llamado squid.conf en RedHat 9 el archivo se encuentra en /etc/squid/squid.conf, este archivo es de tipo texto, y puede ser abierto con algun editor ya sea grafico como el gedit o el vi, este archivo es muy grande, y tienes muchisimas opciones pero en esta seccion describiremos las minimas indispensables para ejecutar el squid.
A continuaciòn describiremos varias opciones de configuracion
|
Red sencilla |
|
|
|---|---|---|
|
Proxy Transparente |
Explicacion |
Ejemplo |
|
Proxy Filtrado |
Explicacion |
Ejemplo |
|
Proxy con aceleracion |
|
|
|
|
|
|
|
|
|
|
Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:
squid-2.4.STABLE1
iptables-1.2.4
kernel-2.4.18-24
Todos los parches de seguridad disponibles para la versión de Red Hat que esté utilizando.
Tómese en consideración que, de ser posible, se debe utilizar siempre las versiones estables más recientes de todo el software que vaya a instalar al realizar los procedimientos descritos en este manual, a fin de contar con los parches de seguridad necesarios. Ninguna versión de Squid anterior a la 2.4.STABLE1 se considera como apropiada debido a fallas de seguridad de gran importancia, y ningún administrador competente utilizaría una versión inferior a la 2.4.STABLE1. Por favor visite el sito Web de su distribución predilecta para estar al tanto de cualquier aviso de actualizaciones de seguridad.
Para Red Hat Linux 7.2, 7.3, 8.0 y 9 hay paquetería de actualización en los siguientes enlaces:
ftp://updates.redhat.com/7.2/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 7.2
ftp://updates.redhat.com/7.3/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 7.3
ftp://updates.redhat.com/8.0/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 8.0
ftp://updates.redhat.com/9/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 9
mount /mnt/cdrom/ rpm -Uvh /mnt/cdrom/*/RPMS/squid-*.i386.rpm eject |
Iptables se utilizará para generar las reglas necesarias para el guión de Enmascaramiento de IP. Se instala por defecto en todas las distribuciones actuales que utilicen kernel-2.4.
Es importante tener actualizado el kernel por diversas cuestiones de seguridad. No es recomendable utilizar versiones del kernel anteriores a la 2.4.18. En el manual "Cómo actualizar el Kernel a partir de paquetes RPM®" se describe a detalle lo necesario.
Tenga en cuenta que este manual ha sido comprobado varias veces y ha funcionado en todos los casos y si algo no funciona solo significa que usted no lo leyó a detalle y no siguió correctamente las indicaciones.
Evite dejar espacios vacíos en lugares indebidos. El siguiente es un ejemplo de como no debe des-comentarse un parámetro.
# Opción incorrectamente des-comentada
http_access 3128
|
Mal |
||
# Opción incorrectamente des-comentada
http_access 3128
|
||
|
Bien |
||
# Opción correctamente des-comentada
http_access 3128
|
||
Squid utiliza el fichero de configuración localizado en /etc/squid/squid.conf, y podrá trabajar sobre este utilizando su editor de texto preferido. Existen un gran número de parámetros, de los cuales recomendamos configurar los siguientes:
http_port
cache_mem
ftp_user
ftp_passive
cache_dir
Al menos una Lista de Control de Acceso
Al menos una Regla de Control de Acceso
httpd_accel_host
httpd_accel_port
httpd_accel_with_proxy
Squid por defecto utilizará el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto o bien que lo haga en varios puertos a la vez.
En el caso de un Proxy Transparente, regularmente se utilizará el puerto 80 y se valdrá del re-direccionamiento de peticiones de modo tal que no habrá necesidad alguna de modificar la configuración de los navegadores Web para utilizar el servidor Proxy. bastará con utilizar como puerta de enlace al servidor. Es importante recordar que los servidores Web, como Apache, también utilizan dicho puerto, por lo que será necesario reconfigurar el servidor Web para utiliza otro puerto disponible, o bien desinstalar o deshabilitar el servidor Web.
Hoy en día ya no es del todo práctico el utilizar un Proxy Transparente, a menos que se trate de un servicio de Café Internet u oficina pequeña, siendo que uno de los principales problemas con los que lidian los administradores es el mal uso y/o abuso del acceso a Internet por parte del personal. Es por esto que puede resultar más conveniente configurar un servidor Proxy con restricciones por contraseña, lo cual no puede hacerse con un Proxy Transparente, debido a que se requiere un diálogo de nombre de usuario y contraseña.
Regularmente algunos programas utilizados comúnmente por los usuarios suelen traer por defecto el puerto 8080 -servicio de cacheo WWW- para utilizarse al configurar que servidor proxy utilizar. Si queremos aprovechar esto en nuestro favor y ahorrarnos el tener que dar explicaciones innecesarias al usuario, podemos especificar que Squid escuche peticiones en dicho puerto también. Siendo así localice la sección de definición de http_port, y especifique:
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 3128 http_port 8080
Si desea incrementar la seguridad, puede vincularse el servicio a una IP que solo se pueda acceder desde la red local. Considerando que el servidor utilizado posee una IP 192.168.1.254, puede hacerse lo siguiente:
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 192.168.1.254:3128 http_port 192.168.1.254:8080
El parámetro cache_mem establece la cantidad ideal de memoria para lo siguiente:
Objetos en tránsito.
Objetos Hot.
Objetos negativamente almacenados en el caché.
Los datos de estos objetos se almacenan en bloques de 4 Kb. El parámetro cache_mem especifica un límite máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tiene mayor prioridad. Sin embargo los objetos Hot y aquellos negativamente almacenados en el caché podrán utilizar la memoria no utilizada hasta que esta sea requerida. De ser necesario, si un objeto en tránsito es mayor a la cantidad de memoria especificada, Squid excederá lo que sea necesario para satisfacer la petición.
Por defecto se establecen 8 MB. Puede especificarse una cantidad mayor si así se considera necesario, dependiendo esto de los hábitos de los usuarios o necesidades establecidas por el administrador.
Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parámetro:
cache_mem 16 MB
Este parámetro se utiliza para establecer que tamaño se desea que tenga el cache en el disco duro para Squid. Para entender esto un poco mejor, responda a esta pregunta: ¿Cuanto desea almacenar de Internet en el disco duro? Por defecto Squid utilizará un cache de 100 MB, de modo tal que encontrará la siguiente línea:
cache_dir ufs /var/spool/squid 100 16 256
Se puede incrementar el tamaño del cache hasta donde lo desee el administrador. Mientras más grande el cache, más objetos de almacenarán en éste y por lo tanto se utilizará menos el ancho de banda. La siguiente línea establece un cache de 700 MB:
cache_dir ufs /var/spool/squid 700 16 256
Los números 16 y 256 significan que el directorio del cache contendrá 16 subdirectorios con 256 niveles cada uno. No modifique esto números, no hay necesidad de hacerlo.
Es muy importante considerar que si se especifica un determinado tamaño de cache y este excede al espacio real disponible en el disco duro, Squid se bloqueará inevitablemente. Sea cauteloso con el tamaño de cache especificado.
Al acceder a un servidor FTP de manera anónima, por defecto Squid enviará como contraseña Squid@. Si se desea que el acceso anónimo a los servidores FTP sea más informativo, o bien si se desea acceder a servidores FTP que validan la autenticidad de la dirección de correo especificada como contraseña, puede especificarse la dirección de correo electrónico que uno considere pertinente.
ftp_user proxy@su-dominio.net
Si se tiene un muro contrafuegos que no permite acceder a servidores FTP más que de modo pasivo, debe habilitarse ftp_passive con el valor on.
ftp_passive on |
Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas maquinas en particular. A cada lista se le asignará una Regla de Control de Acceso que permitirá o denegará el acceso a Squid. Procedamos a entender como definir unas y otras.
Regularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista] |
Si uno desea establecer una lista de control de acceso que defina sin mayor trabajo adicional a toda la red local definiendo la IP que corresponde a la red y la máscara de la sub-red. Por ejemplo, si se tienen una red donde las máquinas tienen direcciones IP 192.168.1.n con máscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:
acl miredlocal src 192.168.1.0/255.255.255.0
También puede definirse una Lista de Control de Acceso invocando un fichero localizado en cualquier parte del disco duro, y en el cual se en cuenta una lista de direcciones IP. Ejemplo:
acl permitidos src "/etc/squid/permitidos"
El fichero /etc/squid/permitidos contendría algo como siguiente:
192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.15 192.168.1.16 192.168.1.20 192.168.1.40
Lo anterior estaría definiendo que la Lista de Control de Acceso denominada permitidos estaría compuesta por las direcciones IP incluidas en el fichero /etc/squid/permitidos.
Estas definen si se permite o no el acceso a Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la sección de reglas de control de acceso definidas por el administrador, es decir, a partir de donde se localiza la siguiente leyenda:
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS #
La sintaxis básica es la siguiente:
http_access [deny o allow] [lista de control de acceso]
En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos:
http_access allow permitidos
También pueden definirse reglas valiéndose de la expresión !, la cual significa excepción. Pueden definirse, por ejemplo, dos listas de control de acceso, una denominada lista1 y otra denominada lista2, en la misma regla de control de acceso, en donde se asigna una expresión a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:
http_access allow lista1 !lista2
Este tipo de reglas son útiles cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al que se debe denegar el acceso.
Una vez comprendido el funcionamiento de la Listas y las Regla de Control de Acceso, procederemos a determinar cuales utilizar para nuestra configuración.
Considerando como ejemplo que se dispone de una red 192.168.1.0/255.255.255.0, si se desea definir toda la red local, utilizaremos la siguiente línea en la sección de Listas de Control de Acceso:
acl todalared src 192.168.1.0/255.255.255.0 |
Habiendo hecho lo anterior, la sección de listas de control de acceso debe quedar más o menos del siguiente modo:
# # Recommended minimum configuration: 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 todalared src 192.168.1.0/255.255.255.0
|
A continuación procedemos a aplicar la regla de control de acceso: |
http_access allow todalared
Habiendo hecho lo anterior, la zona de reglas de control de acceso debería quedar más o menos de este modo
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow todalared http_access deny all
La regla http_access allow todalared permite el acceso a Squid a la Lista de Control de Acceso denominada todalared, la cual está conformada por 192.168.1.0/255.255.255.0. Esto significa que cualquier máquina desde 192.168.1.1 hasta 192.168.1.254 podrá acceder a Squid.
Si solo se desea permitir el acceso a Squid a ciertas direcciones IP de la red local, deberemos crear un fichero que contenga dicha lista. Genere el fichero /etc/squid/lista, dentro del cual se incluirán solo aquellas direcciones IP que desea confirmen la Lista de Control de acceso. Ejemplo:
192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.15 192.168.1.16 192.168.1.20 192.168.1.40
|
Denominaremos a esta lista de control de acceso como redlocal: |
acl redlocal src "/etc/squid/lista"
Habiendo hecho lo anterior, la sección de listas de control de acceso debe quedar más o menos del siguiente modo:
# # Recommended minimum configuration: 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 redlocal src "/etc/squid/lista"
Habiendo hecho lo anterior, la zona de reglas de control de acceso debería quedar más o menos de este modo:
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow redlocal http_access deny all
La regla http_access allow redlocal permite el acceso a Squid a la Lista de Control de Acceso denominada redlocal, la cual está conformada por las direcciones IP especificadas en el fichero /etc/squid/lista. esto significa que cualquier máquina no incluida en /etc/squid/lista no tendrá acceso a Squid.
Por defecto, si algo ocurre con el Cache, como por ejemplo que muera el procesos, se enviará un mensaje de aviso a la cuenta webmaster del servidor. Puede especificarse una distinta si acaso se considera conveniente.
cache_mgr joseperez@midominio.net
Cuando un usuario hace petición hacia un objeto en Internet, este es almacenado en el cache de Squid. Si otro usuario hace petición hacia el mismo objeto, y este no ha sufrido modificación alguna desde que lo accedió el usuario anterior, Squid mostrará el que ya se encuentra en el cache en lugar de volver a descargarlo desde Internet.
Esta función permite navegar rápidamente cuando los objetos ya están en el cache de Squid y además optimiza enormemente la utilización del ancho de banda.
En la sección HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parámetros:
httpd_accel_host virtual httpd_accel_port 0 httpd_accel_with_proxy on
# Debe especificarse la IP de cualquier servidor Web en la red local # o bien virtual httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on
La configuración de Squid como proxy trasparente solo requiere complementarse utilizando una regla de iptables que se encargará de redireccionar peticiones haciéndolas pasar por el puerto 8080.
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Por defecto el parámetro httpd_accel_with_proxy viene con el valor off, es importante no olvidar cambiar este valor por on.
Squid incluye traducción a distintos idiomas de las distintas páginas de error e informativas que son desplegadas en un momento dado. Dichas traducciones se pueden encontrar en /usr/lib/squid/errors/. Para poder hacer uso de las páginas de error traducidas al español, es necesario cambiar un enlace simbólico localizado en /etc/squid/errors para que apunte hacia /usr/lib/squid/errors/Spanish en lugar de hacerlo hacia /usr/lib/squid/errors/English.
Elimine primero el enlace simbólico actual:
rm -f /etc/squid/errors
Coloque un nuevo enlace simbólico apuntando hacia el directorio con los ficheros correspondientes a los errores traducidos al español.
Red Hat Linux 7.x y 8.0
ln -s /usr/lib/squid/errors/Spanish /etc/squid/errors
Red Hat Linux 9
ln -s /usr/share/squid/errors/Spanish /etc/squid/errors
Iniciando, reiniciando y añadiendo el servicio al arranque del sistema.
Una vez terminada la configuración, ejecute el siguiente comando para iniciar por primera vez Squid:
/etc/rc.d/init.d/squid start
|
Si necesita reiniciar para probar cambios hechos en la configuración, ejecute lo siguiente: |
/etc/rc.d/init.d/squid restart
|
Si desea que Squid inicie de manera automática la próxima vez que inicie el sistema, ejecute lo siguiente: |
/sbin/chkconfig --level 345 squid on
Lo anterior habilitará a Squid en los niveles de corrida 3, 4 y 5.
Nota para los novatos: Usted NO tiene porque editar cosa alguna en /etc/rc.d/rc.local o /etc/inittab para que Squid -así como cualquier otro servicio- inicie en el arranque del sistema. Mientras usted sea novato, por favor, olvide que existen esos ficheros y exclame una fuerte amenaza y alejese de quien le indique que desde ahí debe arrancar servicios.
A continuación comentaremos algunos ajustes que pueden añadirse o editarse en el guión de el muro contrafuegos, como el generado por herramientas como Firestarer, o bien un simple guión de Enmascaramiento de IP.
Sugerimos utilizar Firestarer debido a que permite configurar tanto el enmascaramiento de IP como el muro contrafuegos y la importancia que tiene la presencia de éste último en un servidor que sirve como puerta de enlace para la red local.
Desde el kernel 2.4, GNU/Linux utiliza Netfilter, el cual se configura a través de iptables. La sintaxis cambia con respecto a ipchains, y a fin de permitir a los administradores darse tiempo de adaptarse, distribuciones como Red Hat ™ incluyeron soporte para ipchains a manera de aplicación de legado.
Pudiendo utilizarse iptables no tiene sentido mantener instalado ipchains, que aún es utilizado por defecto en Red Hat Linux ™ 7.1 y 7.2. Se recomienda desinstalar ipchains y los paquetes que dependan de este.
Es importante utilizar la más reciente versión de iptables para la distribución utilizada. Ninguna versión de iptables anterior a la 1.2.4 se considera como apropiada debido a fallas de seguridad de gran importancia, y ningún administrador competente utilizaría una versión inferior a la 1.2.4. Por favor visite el sito Web de su distribución predilecta para estar al tanto de cualquier aviso de actualizaciones de seguridad. Ejemplo: para Red Hat Linux 7.2, 7.3. 8.0 y 9 hay paquetería de actualización en los siguientes enlaces:
ftp://updates.redhat.com/7.2/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 7.2
ftp://updates.redhat.com/7.3/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 7.3
ftp://updates.redhat.com/8.0/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 8.0
ftp://updates.redhat.com/9/en/os/i386/, si posee alguna distribución basada sobre Red Hat™ Linux 9
Antes de desinstalar ipchains, que se instala de modo pre-determinado en Red Hat Linux 7.x, primero debe eliminarse cualquier regla que pudiese existir.
/sbin/ipchains -X /sbin/ipchains -F /sbin/ipchains -Z
A continuación debe removerse el módulo de ipchains para permitir la carga del módulo ip_tables.
Para terminar, si utiliza Red Hat Linux 7.2 y 7.3, se debe desinstalar ipchains y toda la paquetería que dependa de éste.
rpm -e ipchains lokkit gnome-lokkit firewall-config
|
Esto ajustes deben poder permitir utilizar iptables en lugar de ipchains sin mayor problema. Re-direccionamiento de peticiones.En un momento dado se requerirá tener salida transparente hacia Internet para ciertos servicios, pero al mismo tiempo se necesitará re-direccionar peticiones hacia servicio Web, Web SSL, ftp, gopher o WAIS hacia el el puerto donde escucha peticiones Squid (8080), de modo que no haya salida alguna hacia alguno de estos protocolos sin que ésta pase antes por Squid. El re-direccionamiento lo hacemos a través de iptables. Considerando para este ejemplo que la red local se accede a través de una interfaz eht0, el siguiente esquema ejemplifica un re-direccionamiento: |
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Lo anterior hace que cualquier petición hacia el puerto 80 (servicio HTTP) hecha desde la red local hacia el exterior, se re-direccionará hacia el puerto 8080 del servidor.
El guión que mostramos en la tabla a continuación considera que se dispone de dos interfaces: eth0 y eth1. Para nuestro ejemplo la red local se accede por la interfaz eth0 y la salida hacia Internet de hace por la interfaz eth1. Utilice Firestarer para configurar el enmascaramiento y muro contrafuegos siempre que sea posible. Este guión NO es sustituto para un guión de muro contrafuegos.
Guión básico de Enmascaramiento de IP.
#!/bin/sh # cargamos los módulos del kernel necesarios: /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_conntrack_irc /sbin/modprobe ipt_REJECT /sbin/modprobe ipt_REDIRECT /sbin/modprobe ipt_TOS /sbin/modprobe ipt_MASQUERADE /sbin/modprobe ipt_LOG /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp /sbin/modprobe ip_nat_irc # Habilitamos el reenvío de direcciones IP if [ -e /proc/sys/net/ipv4/ip_forward ]; then echo 0 > /proc/sys/net/ipv4/ip_forward fi # Estableciendo política de reenvío del enmascaramiento /sbin/iptables -t filter -P FORWARD DROP # Reenvío de trafico intento-externo y externo-interno /sbin/iptables -t filter -A FORWARD -d 0/0 -s 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT /sbin/iptables -t filter -A FORWARD -d 192.168.1.0/255.255.255.0 -j ACCEPT # Enmascaramiento de todo el trafico saliente # NOTA: recordemos que la salida hacia Internet es por # la interfaz eth0 /sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE # No enmascararemos tráfico externo /sbin/iptables -t nat -A POSTROUTING -o eth1 -d 0/0 -j ACCEPT # Permitir al tráfico de la red interna ir a donde sea /sbin/iptables -t filter -A INPUT -s 192.168.1.0/255.255.255.0 T -d 0/0 -j ACCEPT /sbin/iptables -t filter -A OUTPUT -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT /sbin/iptables -t filter -A OUTPUT -p icmp -s 192.168.1.0/255.255.255.0 -d 0/0 -j ACCEPT # Re-direccionamiento hacia el puerto 8080 (donde Squid escucha # peticiones) para cualquier petición originada desde la red # local hacia servicios que utilicen protocolo http, https y ftp # Pueden añadirse más re-direccionamientos a discreción del # administrador. # NOTA 1: recordemos que la red local se accede con la interfaz eth1 # HTTP /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 |
![]()
Ejemplo1: Para una red local, ejemplo cibercafe