El Jueves, 27 de Octubre de 2005 16:52, Alfonso Pinto escribió: > Me parece estupendo que crees tu propio script de > iptables, se aprende bastante y tienes toda la > flexibilidad para poder hacer lo que desees. > Gracias, pero hay un par de cosas que no comprendo. Te las pongo a continuación. > Antes de nada te voy a dar un par de consejos que a mi > me han ayudado bastante: > > 1 Identifica cada subred con un nombre. Asi por > ejemplo la subred que forma el cable-modem con el > firewall se podría llamar HADES, la LAN la puedes > llamar OLIMPO, y la DMZ la puedes llamar TARTARO. > Puedes elegir los nombres que quieras, no tienen > porque ser de la mitología. Hay un RFC bastante majo > para elegir nombres, pero no recuerdo el link. > > 2 A cada equipo asignale un nombre: Firewall=CERBERO, > Web-server=PERSEFONE, Cable-Modem=ZEUS.... > > 3 Hazte un esquema de como quieres que interactue cada > red con las demás, que tráfico aceptar, que tráfico > denegar... > > 4 Empezamos el script, empieza por definir variables: > #redes > HADES=eth0 > OLIMPO=eth1 > TARTARO=eth2 > > #equipos > #en HADES > ZEUS=10.10.1.1 > CERBERO_HADES=10.10.1.2 > #en OLIMPO > ATENEA=192.168.1.2 > CERBERO_OLIMPO=192.168.1.1 > ... > #en TARTARO > ... > CERBERO_TARTARO=192.168.2.1 > > El uso de variables simplifica mucho el script, ya que > ademas de ser más descriptivo, si cambia algún > parametro solo tienes que cambiarlo en una línea y no > en todas las reglas en las que aparezca. > Estupendo, esto lo veo muy bien.
> Enmascara las redes internas a la hora de salir al > exterior: > > $IPT -t nat -A POSTROUTING -s $CERBERO_OLIMPO/24 -o > $HADES -j SNAT --to $CERBERO_HADES > > $IPT -t nat -A POSTROUTING -s $CERBERO_TARTARO/24 -o > $HADES -j SNAT --to $CERBERO_HADES > ¿Porque haces POSTROUTING para la salida de paquetes? ¿Es por algún proxy o similar?. > Define ahora las reglas para la interaccion de unas > redes con otras. En las reglas procura discriminar por > interfaz entrante e interfaz saliente: > > #OLIMPO->TARTARO > iptables --new-chain olimpo_a_tartaro > > iptables -A FORWARD -i $OLIMPO -o $TARTARO -j > olimpo_a_tartaro > > iptables -A olimpo_a_tartaro -p tcp --dport 80 -j > ACCEPT > ... > (en cada cadena, despues de especificar todo lo que > aceptas, deniega el resto y logealo, los logs son > importantes. Si, aunque tu politica por defecto sea > DROP vuelve a denegarlo, total, no cuesta nada) > #TARTARO->OLIMPO > ... > #OLIMPO->HADES > > ... > #HADES->OLIMPO > ... > ..... > > > y por ultimo establece las reglas de cada red a la > hora de interactuar con el propio firewall. Esto es lo > que te falla, por eso no puedes entrar por ssh al > firewall, porque es como si no hubieras definido la > interaccion de cada red con el firewall. > > #OLIMPO->CERBERO > iptables --new-chain olimpo_a_cerbero > > iptables -A INPUT -i $HADES -j olimpo_a_cerbero > > iptables -A olimpo_a_cerbero -p tcp --dport 22 -j > ACCEPT (con esto permites que los equipos de la red > olimpo puedan acceder por ssh al firewall) > ... > > (lo mismo de antes, en cada cadena, despues de > especificar todo lo que aceptas, deniega el resto y > logealo, los logs son importantes. Si, aunque tu > politica por defecto sea DROP vuelve a denegarlo, > total, no cuesta nada) > #CERBERO->OLIMPO > ... > #HADES->CERBERO > > ... > #CERBERO->HADES > ... > ...... > > Bueno, me ha quedado un poco largo. Se que hacer asi > el script puede ser más tedioso, pero a la hora de > depurarlo es mucho más facil porque queda mucho más > claro. Lo que no había pensado es la creación de nuevas reglas. Gracias. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net
pgpeP5rEsXVzu.pgp
Description: PGP signature