Como faço para impedir que o iptables seja restaurado para uma versão anterior a cada reinicialização?

1

Eu configurei regras no iptables alguns meses atrás e usei iptables-persistent para fazer as regras persistirem durante a reinicialização. Acabei de atualizar minhas regras e estou tentando fazê-las persistir, mas nada está funcionando, elas continuam sendo redefinidas para a versão anterior. Eu tentei:

Criando um cronjob que é executado na reinicialização E a cada minuto,

#!/bin/bash
iptables-restore -c < /home/amart219/iptables.backup

Eu salvei no arquivo que supostamente é o local padrão das regras e reconfigurei o iptables-persistent

iptables-save > /etc/iptables/rules.v4

dpkg-reconfigure iptables-persistent Eu coloquei um script no diretório /etc/network/if-pre-up.d/ que diz o seguinte:

#!/bin/bash
/sbin/iptables-restore < /home/amart219/iptables.backup
/sbin/ip6tables-restore < /home/amart219/iptables.backup

Eu modifiquei o arquivo /etc/network/interfaces

iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
post-down iptables-restore < /etc/iptables.downrules

Eu adicionei o iptables-restore e o iptables-save aos diretórios if-pre-up.d e if-post-down.d no /etc/network directory

#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0

#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.downrules ]; then
iptables-restore < /etc/iptables.downrules
fi
exit 0

Certifiquei-me de que os arquivos eram executáveis.

sudo chmod +x /etc/network/if-post-down.d/iptablessave
sudo chmod +x /etc/network/if-pre-up.d/iptablesload

Nenhuma dessas alterações faz diferença. Meu entendimento é que o dpkg-reconfigure iptables-persistent é o método correto, mas nada que eu tente funciona. Eu tenho medo de que algum tempo no passado eu poderia ter tentado torná-los persistentes de alguma outra maneira que funcionou antes de instalar o iptables-persistent, mas se assim for eu não tenho idéia de como eu poderia ter feito isso. Eu corri: tail -500 /var/log/syslog logo após a reinicialização para ver se o sistema carregado nada, mas não vejo nada, mas os dados de inicialização habituais. Este servidor não possui tarefas agendadas além da que eu criei tentando restaurar a configuração do iptables. Eu não sei se é esse o problema ou não, mas se eu não sei como localizar onde ele pode estar sendo executado para alterá-lo.

Se eu executar manualmente o script que configurei no cron para restaurar as configurações do iptables, ele funcionará bem, mas não persistirá durante a reinicialização. O cronjob está configurado corretamente, em um servidor separado eu tenho mais de 40 cronjobs, estou familiarizado com o processo.

Alguma sugestão? Eu não sou exigente com o método, só preciso que funcione.

    
por Aaron Martin 12.04.2017 / 05:30

2 respostas

1

Andrea Turbiglio respondeu minha pergunta em outro site. Acredito que o site esteja associado a esse site, mas não conheço as regras de vinculação a outro site, por isso estou creditando a ele a resposta e colocando-o aqui.

"Eu costumava colocar a linha com" iptables-restore "em /etc/rc.local (testado no Debian 8 e Ubuntu 16.04) e funcionou muito bem."

    
por Aaron Martin 20.04.2017 / 16:49
0

Talvez o programa de firewall de terceiros esteja ativado. verifique ufw e firewalld usando

dpkg -l | grep ufw
dpkg -l | grep firewalld

você pode instalar as ferramentas GUI correspondentes:

sudo apt-get install ufw gufw
sudo apt-get install firewalld firewall-applet
    
por zhy 12.04.2017 / 08:04