Algo ou alguém está removendo suas regras ou reiniciando o serviço iptables. O kernel não faz isso automaticamente. Para pará-lo, primeiro você precisa descobrir o que está fazendo isso. Eu começaria com a verificação para ver se algo está reiniciando o serviço iptables. Para descobrir isso, adicione o seguinte ao /etc/init.d/iptables:
date >> /tmp/iptables-service.log
ps -f $PPID >> /tmp/iptables-service.log
Depois que suas regras "desaparecerem", verifique o arquivo /tmp/iptables-service.log
para ver quem / o que executou o script de serviço iptables.
Se você não vir um arquivo /tmp/iptables-service.log
, algo executou o comando /sbin/iptables
diretamente. Para descobrir o que está executando este comando, renomeie /sbin/iptables
para /sbin/iptables.real
e crie o seguinte script e salve-o como /sbin/iptables
:
#!/bin/bash
date >> /tmp/iptables-cmd.log
ps -f $PPID >> /tmp/iptables-cmd.log
/sbin/iptables $*
Não se esqueça de definir o script como executável: chmod a+x /sbin/iptables
. Note também que o seu comando iptables atual pode ser algo como /sbin/iptables-multi-1.4.7
dependendo de como você tem alternatives
configurado.
Então, como antes, olhe o arquivo /tmp/iptables-cmd.log
para ver quem / o que está executando o comando. Depois de saber a causa, você deve ser capaz de impedi-lo.