[CentOS-es] Problema Squid y Iptables

Aland Laines aland.laines en gmail.com
Mar Jul 1 02:44:16 UTC 2008


bueno otra ves molestandolos, el problema que tengo es que tengo dos redes
en el instituto ambas salen por un centos 5.1 con nat y squid transparente,
el problema esta en que la red 192.168.1.0 navega de manera normal, pero la
la red 192.168.2.0 navega pero no pueden loguearse en gmail ni en hotmail,
cosa que si puede el primer rango, ya probe haciendo el flush de reglas e
insertarlas de nuevo pero aun asi, lo raro es que estuvo todo funcionando
bien con el centos 5 que tenia el squid 2.5 y ahora es el 2.6 , les pongo
mis scripts de iptables y el de squid para que me den alguna pista o la
manera de mejorar ambos, (en iptables ando medio perdido pero al menos pude
hacer ese script con modelos de la web).

Gracias de antemano,


#!/bin/sh
## SCRIPT de IPTABLES
## Ejemplo de script para firewall entre red-local e internet
## con filtro para que solo se pueda navegar.
echo Aplicando Reglas de Firewall...
## FLUSH de reglas
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
#modulos
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ipt_REJECT
modprobe ipt_REDIRECT
modprobe ipt_TOS
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe iptable_mangle
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
## Establecemos politica por defecto
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
# Hacemos un proxy transparente
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT
--to-port 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT
--to-port 3128
## Empezamos a filtrar
## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
iptables -A INPUT -i lo -j ACCEPT
# Al firewall tenemos acceso desde la red local
iptables -A INPUT -s 192.168.1.0/25 -i eth1 -j ACCEPT
iptables -A INPUT -s 192.168.2.0/25 -i eth2 -j ACCEPT
# Cerramos acceso de 192.168.2.1 por la eth1
iptables -A INPUT -s 192.168.2.0/25 -i eth0 -j DROP
iptables -A INPUT -s 192.168.2.0/25 -i eth0 -j DROP

## Ahora con regla FORWARD filtramos el acceso de la red local
## al exterior. Como se explica antes, a los paquetes que no van dirigidos
al
## propio firewall se les aplican reglas de FORWARD
#Aceptamos que vayan a puertos 80
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p tcp --dport 80 -j ACCEPT
#Aceptamos que vayan a puertos https
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p tcp --dport 443 -j ACCEPT
# Aceptamos salida a FTP
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p tcp --dport 21 -j ACCEPT
# Aceptamos que vayan a puertos SQUID
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 3128 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p tcp --dport 3128 -j ACCEPT
# Aceptamos que consulten los DNS
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.2.0/25 -i eth2 -p udp --dport 53 -j ACCEPT
#Aceptamos que conecten SSH y Telnet
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#Aceptamos puerto HTTP y MySql desde fuera
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW -j
ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 8080 -m state --state NEW -j
ACCEPT

#MSN messenger
iptables -A FORWARD -p TCP --dport 1863 -j REJECT
# Ahora hacemos enmascaramiento de la red local
# y activamos el BIT DE FORWARDING (imprescindible!!!!!)
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth2 -j ACCEPT

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward
## Y ahora cerramos los accesos indeseados del exterior:
# Nota: 0.0.0.0/0 significa: cualquier red
# Cerramos el rango de puerto bien conocido
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 1:1024 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p udp --dport 1:1024 -j DROP
echo " OK . Verifique que lo que se aplica con: iptables -L -n -v"
# Fin del script
# Configuracion de servidor Proxy Squid
#
#-------------------------------------------
#
#Puerto de Servidor Proxy
http_port 192.168.1.253:3128 transparent
http_port 192.168.1.253:3128 transparent
# Cache de memoria
cache_mem  1024 MB
cache_swap_low 90
cache_swap_high 95
maximum_object_size 8192 KB
# Espacio de cache en HDD
cache_dir ufs /var/spool/squid 2000 25 300
# Ftp anonimo
ftp_user anonymous en ipp.edu.pe
ftp_passive on
visible_hostname anubis
# Etiquetas
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 red-navegacion src 192.168.1.0/255.255.255.0
acl red-navegacion2 src 192.168.2.0/255.255.255.0
acl indeseados url_regex "/etc/squid/paginasprohibidas"
acl download urlpath_regex "/etc/squid/download"
# Reglas de Filtrado
# Negamos el acceso a paginas listadas en el archivo
"/etc/squid/paginasprohibidas"
http_access allow localhost manager
http_access allow red-navegacion !indeseados !download
http_access allow red-navegacion2 !indeseados !download
http_access deny all

-- 
Aland Laines Calonge
Tecnico en Informatica
http://www.lainessoluciones.com (en construccion)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.centos.org/pipermail/centos-es/attachments/20080630/9c0b94cd/attachment-0001.htm


Más información sobre la lista de distribución CentOS-es