Tengo un servicio systemd que ejecuta un script de shell que configura el firewall. El sistema es integrado y ejecuta Debian 8.
¿Cómo debo configurar el servicio para que ejecute el script lo antes posible en el inicio del sistema, pero lo suficientemente tarde para que iptables funcione?
El archivo de servicio tal como está ahora (funciona, pero no sé si es óptimo):
[Unit]
Description=Firewall configuration script
After=sysinit.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/firewall.sh
[Install]
WantedBy=basic.target
La secuencia de comandos:
#!/bin/bash
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Respuesta1
Intenta copiarufffcomportamiento de inicio ya que hace casi lo mismo:
ufw.service:
[Unit]
Before=network.target
También puede considerar pasar de su propio script iptables a la lista de reglas ufw.