Noticia Cómo iniciar reglas de iptables automáticamente en systemd (ArchLinux)

Soy considerado por algunos como un paranoico cuando de seguridad se trata, es por ello que el uso de un firewall me es imprescindible. En mi laptop tengo información sensible, de alta importancia para mí; y debido a que el firewall es para la PC como un cerradura o caja fuerte para nosotros, además recordando que en el ordenador guardamos passwords de acceso a emails, datos de cuentas bancarias (quien las tenga), información de servidores, y demás información virtual que nos influye directamente en nuestra vida física … bueno, sin lugar a dudas andar por la red sin un firewall configurado, sin la debida seguridad en nuestro ordenador no es algo que se recomiende.

Tiempo atrás les mostré cómo iniciar reglas de iptables automáticamente en distros como Debian, Ubuntu u otras que contengan el archivo /etc/rc.local, no obstante en ArchLinux como usa systemd este archivo no existe.

Entonces, la forma que encontré para que mi iptables se configure como yo deseo es crear un script en bash que configure iptables, y luego modificar el archivo /usr/lib/systemd/system/iptables.service … pero, vamos por partes :)

1. Debemos crear un script bash que contenga nuestras reglas de iptables, algo así como esto: Ejemplo de script bash + iptables

2. Luego de haber creado el script, escrito nuestras reglas en él y darle permisos de ejecución pasamos a editar el servicio de iptables de systemd:

El siguiente comando debe ser ejecutado con permisos de administración, bien usando sudo como yo o directamente con el usuario root

sudo nano /usr/lib/systemd/system/iptables.service

Nos encontraremos con algo como esto:

[Unit]
Description=Packet Filtering Framework

[Service]
Type=oneshot
ExecStart=/usr/bin/iptables-restore /etc/iptables/iptables.rules
ExecReload=/usr/bin/iptables-restore /etc/iptables/iptables.rules
ExecStop=/usr/lib/systemd/scripts/iptables-flush
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

3. Suponiendo que el script que creamos previamente esté ubicado en /home/miusuario/script-iptables.sh entonces dejaremos el archivo iptables.service que tenemos abierto de la siguiente forma:

[Unit]
Description=Packet Filtering Framework

[Service]
Type=oneshot
ExecStart=/home/miusuario/script-iptables.sh
ExecReload=/home/miusuario/script-iptables.sh
ExecStop=/usr/lib/systemd/scripts/iptables-flush
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

4. Luego debemos asegurarnos de que iptables se inicie automáticamente:

sudo systemctl enable iptables

5. Lo iniciamos:

sudo systemctl start iptables

6. Y podemos verificar las reglas:

sudo iptables -nL

Esto es solo la forma más simple que encontré de (1) tener mi propio script en bash que me configure iptables, también (2) que las reglas se inicien automáticamente y por último (3) que el script mismo fuese algo independiente, o sea, que si mañana deseo usarlo en un Debian que me instale (por ejemplo) no tener que reconfigurar mucho.

En fin, espero les resulte de utilidad :)

Saludos


UqO0sWrnhf4


Continúar leyendo...