Eu tenho um serviço systemd executando um script de shell que configura o firewall. O sistema é embarcado rodando Debian 8.
Como devo configurar o serviço para que ele execute o script o mais cedo possível na inicialização do sistema, mas tarde o suficiente para que o iptables funcione?
O arquivo de serviço como está agora (funciona, mas não sei se é ideal):
[Unit]
Description=Firewall configuration script
After=sysinit.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/firewall.sh
[Install]
WantedBy=basic.target
O roteiro:
#!/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
Responder1
Tente copiarufwcomportamento de inicialização, pois faz quase o mesmo:
ufw.service:
[Unit]
Before=network.target
Você também pode considerar mudar do seu próprio script iptables para a lista de regras do ufw.