Configurar un firewall con iptables sin romperse la cabeza

Anuncio
Configurar un firewall con
iptables sin romperse la cabeza
Jaime Anguiano Olarra
GCubo, http://www.gcubo.org
jaime@gnome.org
1. Lo que necesitas antes de empezar
Hazte root y mantente así durante todo el rato que te lleve seguir la receta. Instala las
iptables si no las tienes ya. En Debian por ejemplo:
apt-get -f install iptables
Verifica que tienes los modulos adecuados en el kernel para eso ejecuta:
lsmod | grep ip
ip_conntrack_ftp
3136
0 (unused)
iptable_filter
1728
1
iptable_nat
12628
1 [ip_nat_irc]
ip_tables
10432
5 [ipt_state iptable_filter iptable_nat]
ip_conntrack
12652
3 [ipt_state ip_conntrack_ftp ip_nat_irc iptabl
1
Configurar un firewall con iptables sin romperse la cabeza
Son fundamentales las líneas de ip_conntrack_ftp y ip_conntrack. Si no los tienes
tendrás que añadirlos con:
modconf
o si te gusta el terminal puro y duro, con:
modprobe ip_conntrack
y luego:
modprobe ip_conntrack_ftp.
Pues ya está casi todo listo. Ahora sólo tienes que guardar el listado de reglas siguiente
en un fichero, por ejemplo iptables.config:
:INPUT ACCEPT [137:75159]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [155:20420]
:block - [0:0]
-A INPUT -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED
-m tcp --dport 67 -j ACCEPT
-A INPUT -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED
-m tcp --dport 68 -j ACCEPT
-A INPUT -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED
-m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -m state --state INVALID,NEW -j DROP
COMMIT
*nat
:PREROUTING ACCEPT [5:1390]
:POSTROUTING ACCEPT [11:665]
:OUTPUT ACCEPT [11:665]
COMMIT
2
Configurar un firewall con iptables sin romperse la cabeza
Una vez hecho eso, ejecutad el siguiente comando para borrar las reglas antiguas:
iptables -F
Guarda el estado actual en el fichero de reglas inactivas:
/etc/init.d/iptables save inactive
Ahora mete las nuevas:
iptables-restore iptables.config
Comprueba que las reglas se metieron bien:
iptables -L
Ahora guárdalas en el fichero de reglas activas:
/etc/init.d/iptables save active
Por último sólo tienes que hacer que tu sistema reconozca la nueva configuración del
firewall de iptables para iniciar con las nuevas reglas cuando la máquina se inicie así
como desactivarlas cuando la máquina se apage o reinicie.
Primero borraremos todos los enlaces en los directorios a /etc/init.d/iptables, normalmente se llaman S20iptables /etc/rcX.d, dónde X es igual a 0,1,2,3,4,5 o 6 así como
rc.boot y rc$.d. Aunque podría dar un comando de bash sencillo para eso prefiero que
os lo imaginéis vosotros o que los borréis uno a uno porque si cometéis algún error escribiéndolo o no estáis en bash podéis causar estragos. Una vez hecho eso. Volved a
crearlos pero ahora con la nueva configuración, eso se hace con el siguiente comando:
update-rc.d iptables start 20 1 2 3 4 5 . stop 20 0 1 6 .
3
Configurar un firewall con iptables sin romperse la cabeza
Ya está todo listo. Ahora estáis permitiendo que vuestra máquina se conecte a Internet
mediante DHCP o BOOTP y que puedan ver vuestra página web si tenéis el servidor
activado.
Para configuraciones más específicas es bastante sencillo hacerse una idea de las reglas
que habría que añadir/quitar o se pueden copiar de distintos sitios como la guía verdaderamente rápida de Rusty Russel para hacer firewalls con Netfilter. Excepto por las
reglas que queráis poner o quitar, el resto del proceso es el mismo.
Salud y felicidad!!
4
Descargar