Hace unos tres años, alguien me introdujo en el maravilloso mundo de iptables, y en mis primeros pinitos, como no, lo primero que hice fue bloquear mi equipo totalmente. Más adelante me presentaron una herramienta imprescindible para todo buen administrador de sistemas Linux, Firewall Builder (http://www.fwbuilder.org/), que me ha permitido, siempre con ayuda, crear cortafuegos realmente interesantes.
Sin embargo, hay algo que falta en todos los sistemas linux que conozco. Una vez instalados los paquetes "iptables" e "ipchain", necesitamos algún procedimiento que nos permita tanto cambiar la configuración de nuestro firewall como que nuestro cortafuegos se inicie a la par que nuestro sistema.
Aunque solo son unas sencillas pinceladas, seguro que para más de uno (yo mismo incluido), resultan más que útiles.
Los organizaré en pasos:
- Suponemos que nuestra máquina se llama "destellos". Decidimos donde vamos a situar nuestros ficheros. Trabajaremos con dos, uno "destellos.fw" que almacenará las reglas y actuales y otro, "inactive" que nos permitirá desactivar el firewall.
Guardaremos ambos ficheros en la ruta "/etc/local/iptables", configurando adecuadamente FWBuilder para que use dicha ruta al enviarnos el fichero de reglas. - Tenemos que crear un nuevo fichero que nos permite arrancar y parar nuestro firewall a voluntad. Lo almacenaremos en "/etc/init.d", con el nombre de "iptables". El contenido será el siguiente (haciendo las modificaciones adecuadas):
#!/bin/sh
ruta="/etc/local/iptables"
maquina="`uname -n`"
case "$1" in
start)
# Arranca el iptables
sh ${ruta}/${maquina}.fw
echo " "
echo " Iptables ACTIVADO "
echo " "
;;
stop)
# Borramos todas las reglas:
iptables-restore < ${ruta}/inactive
echo " iptables DESACTIVADO "
;;
save)
iptables-save > ${ruta}/$2
echo " Configuracion guardada en ${ruta}/$2 "
;;
restart)
iptables-restore < ${ruta}/inactive
echo ""
echo " iptables DESACTIVADO "
sh ${ruta}/${maquina}.fw
echo " Iptables ACTIVADO "
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop|save NombreFichero}"
exit 1
;;
esac
exit 0
Este fichero tendrá que tener los permisos adecuados (-rwxr-xr-x), mediante el comando siguiente:chmod 755 /etc/init.d/iptables
Ahora, mediante los comandos "start", "stop", "restart" y "save" podremos utilizar con mayor facilidad nuestro cortafuegos. - Pero aun no queda algo que hacer, ya que por el momento, nuestro cortafuegos no se inicia de forma automática. Para ello, lo primero que necesitamos conocer es el nivel en el que se encuentra nuestro sistema en reposo (generalmente, será el 2). Ejecutamos lo siguiente:
runlevel
- Nos dirigimos a la ruta adecuada. En caso general, iremos a "/etc/rc2.d", donde crearemos el enlace simbólico adecualdo.
Primero, deberíamos hacer un listado "ls" de lo que contiene el directorio para ver la posición más adecuada de inicio (queda determinada por el orden ascendente de los ficheros). La verdad es que no conozco realmente la razón (la preguntaré), pero en mi trabajo siempre lo hemos colocado en las máquinas debian y ubuntu en la posición 12.
En este caso, IPTables debería arrancar, así que nuestro enlace debería tener un nombre de tipo "S12iptables", apuntando al script que creamos antes en "/etc/init.d". En otras palabras:ln -s /etc/init.d/iptables S12iptables
Como es un enlace, al hacer un "ls -la" obtendremos algo como esto:lrwxrwxrwx 1 root root 20 2008-02-07 16:47 S12iptables -> /etc/init.d/iptables
- El sieguiente paso será parar el servicio al apagar. Para eso, nos iremos al directorio "/etc/rc1.d" y, siguiendo la misma idea, haremos un enlace simbólico a "/etc/init.d" con un nombre parecido a "K12iptables":
ln -s /etc/init.d/iptables K12iptables
3 comentarios:
Ese script me suena un montón, pero montón grande, es casi casi clavaíto al que usan en cierto sitio, el cual hice yo.
Buen post.
Por supuesto.... por eso, desde el principio hablo de "alguien me introdujo en el maravilloso mundo de iptables"... ¿Adivinas a quien me refiero? :D
Si es que siempre que instalo una máquina me cuesta localizarlo todo. Por eso lo he reunido (que en lo que va de año, han sido ya dos).
De hecho, si mal no recuerdo, se lo he tenido que contar por messenger hasta a Don Vito (il padrino)...
Publicar un comentario