Mini introducción
Hay muchos manuales sobre iptables, aunque ninguno explica todo lo que hay que hacer para tener iptables funcionando de principio a fin.
Unos dicen como gestionar las reglas de iptables, crear chains, accept, drop… todo eso.
Otros -pocos- indican como hacer que iptables cargue las reglas en el arranque, “parar” iptables, volver a ponerlo en marcha…
Este texto es aún peor, no enseña nada… pero sirve de guía para poner a funcionar iptables de principio a fin.
Si se desea algo más ambicioso que un simple cortafuegos local, tambien tengo una guía completa para montar un Cortafuegos (Router-Firewall) con Proxys transparentes (web proxy y pop3 proxy) con Debian GNU/Linux + iptables + squid + p3scan + clamav + spamassassin.
Vamos a ello. Primero hay que generar un script que cree tus reglas iptables. Puedes seguir por ejemplo las guías de pello [1][2].
Tambien puedes ver mi script.
Después hay que conseguir un script de inicio/parada:
Debian ya no instala un script de inicio pero puedes usar el viejo si quieres
gunzip /usr/share/doc/iptables/examples/oldinitdscript.gz -c > /etc/init.d/iptables
Tambien puedes copiar el script que viene en Knoppix.
Otro modo -rápido- de montarlo
Como root
- # mkdir /etc/iptables
- # cd /etc/iptables
- (descargar y descomprimir mis ficheros iptables en este directorio)
- # chmod u+x *
- # mv iptables /etc/init.d
- # ./ipflush.sh
- # iptables-save > iptables.flush
- # vi iprules.sh (ajustar al gusto)
- # ./iprules.sh
- # iptables-save > iptables.rc
Para “parar” iptables:# /etc/init.d/iptables stop
Para activar iptables:# /etc/init.d/iptables start
Para modificar las reglas: repetir pasos 8 a 10.
Alternativa por interfaces
Cada vez que se levanta una if, se ejecutan por orden alfabetico todos los scripts de /etc/network/if-up.d/
Si queremos ejecutar scripts solo cuando un if se levanta / baja hay que usar /etc/network/interfaces. Por ejemplo:
iface eth0 inet dhcp pre-up /sbin/iptables-restore < /etc/iptables/eth0_rules post-down /sbin/iptables-restore < /etc/iptables/eth0_flush
(man interfaces)
Iptables en GNU/Linux, Guía rápida de Iptables en Linux