[CentOS-es] Problema Squid y Iptables

Aldo Cobos aldocobos en gmail.com
Mar Jul 1 13:05:19 UTC 2008


Veo varias cosas fuera de sitio, primero, cuales son tus mascaras de subred
/24 o /25, eso debes ver bien ya que en el firewall tiene /25 pero en las
ACL de Squid es /24 (255.255.255.0), por ahi una error grave, otro en es
como decian en reglas que estan demás, otra cosa que no veo muy bien es tu
enmascaramiento, tienes esto:

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
Yo lo pondria asi:
iptables --table nat --append POSTROUTING  -s 192.168.1.0/?? --out-interface
eth0 -j MASQUERADE
iptables --table nat --append POSTROUTING  -s 192.168.2.0/?? --out-interface
eth0 -j MASQUERADE

Donde ?? es tu mascara real y/o corregida de subred.

Esto es algo que tambien no esta correcto:

# 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

El problema en realidad es tu firewall, depuralo y todo estará trabajando
bien.

Otra cosa, tiene declarado 1Gb de Cache mem!! como que no es mucho????


2008/7/1 Walter Cervini <wcervini en gmail.com>:

> Una pequeña critica constructiva, sin animos de ofender.
> Lo que te puedo recomendar, es que la ultima regla de cada una de las
> cadenas de iptables sea drop o reject . Por otro lado tienes reglas de mas,
> como el caso de forward en squid, squid es un servicio local de tu GW por
> ende solo tienes que usar reglas en INPUT y OUTPUT. Otra recomendacion es
> que si tienes una regla doble para cada una de las redes elimines el origen
> como por ejemplo
> iptables -A FORWARD -s 192.168.1.0/25 -i eth1 -p tcp --dport 80 -j ACCEPT
>
> iptables -A FORWARD -s 192.168.1.0/25 -m state --state NEW -p tcp --dport
> 80 -j ACCEPT
> de esta manera se asume que como es una nueva peticion venga de la LAN
>
> otra cosa, como primera regla podria
> iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
> esto evita volver a leer todas las reglas de filtrado, se supone que ya
> paso por algunas de las reglas y no debes volver a consultarlas
>
> 2008/7/1 Aland Laines <aland.laines en gmail.com>:
>
>
>> 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
>>
> ###############################
> Estas reglas al squid estan de mas
> ###############################
>
>>
>> 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)
>>
>> _______________________________________________
>> CentOS-es mailing list
>> CentOS-es en centos.org
>> http://lists.centos.org/mailman/listinfo/centos-es
>>
>>
>
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> http://lists.centos.org/mailman/listinfo/centos-es
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.centos.org/pipermail/centos-es/attachments/20080701/f9fadbcb/attachment-0001.htm


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