Eu segui este tutorial para configurar regras de IP no ubuntu 12.04. Tudo funcionou bem na instalação - mas agora eu fiz alterações no firewall que não persistem após a reinicialização. Eu não entendo por que isso é. Aqui está uma demonstração de como estou usando o iptables-persistent. O que estou fazendo de errado?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
iptables
iptables-persistent
bernie2436
fonte
fonte
iptables -D INPUT
regra não está dentro.sudo
Tem certeza de que está realmente relatando um sucesso? O comportamento muda se você o executar dentro delesudo
?Respostas:
iptables-persistent
não funciona dessa maneira. Reiniciar oiptables-persistent
"serviço" não captura o estado atual das tabelas de ip e o salva; tudo o que faz é restabelecer as regras do iptables que foram salvas quando o pacote foi configurado pela última vez.Para configurar
iptables-persistent
, você precisa informar sobre o seu conjunto de regras atual do iptables.Uma maneira de conseguir isso é a seguinte:
Ou, equivalente, o
iptables-persistent
pacote também fornece o seguinte:(Você precisará responder sim às perguntas sobre salvar ou não as regras.)
Depois disso, na próxima vez que
iptables-persistent
for iniciado / reiniciado, os conjuntos de regras do iptables que você espera serão carregados.fonte
Uma maneira muito simples de salvar as regras atuais do iptables é usar o comando:
sudo service netfilter-persistent save
Usando o descrito acima, que funciona pelo menos no Ubuntu após a instalação do pacote
netfilter-persistent
(eiptables-persistent
), não há necessidade de executar manualmente os comandos iptables ou de reconfigurar o pacote (como sugerido pela resposta aceita acima).fonte
sudo service netfilter-persistent save
ousudo service netfilter-persistent save .
? (Ponto no final.)Não é isso que
DROP
significa ou faz. Deman iptables
:Então, o que você fez é adicionar uma nova regra. Ele pode efetivamente substituir qualquer número de outras regras, mas essas regras ainda existem.
Ao verificar coisas como essa (sua
iptables -L
saída), eu as alimentaria, emgrep "string unique to this rule"
vez de usar seus olhos. É mais fácil e rápido de fazer e menos propenso a erros.Se você deseja excluir uma regra, use a
-D
opção; a página do manual descreve duas formas disso:fonte
-D
significa "excluir" e não "DROP" Usar o termo "DROP" para significar algo diferente de um alvo em salto ao falar sobreiptables
é confuso como o inferno.Conforme explicado por @ steven-segunda-feira , você pode salvar suas regras definidas no diretório apropriado (a saber:)
/etc/iptables/rules.v{4,6}
.No entanto, o @OpenITeX está certo: chamar a
save
ação deservice netfilter-persistent
é melhor.A partir de hoje (em 18.10), o iptables-save está embutido, mas não
iptables-persistent
está instalado. Portanto, o diretório do plug-in chamado por está vazio e o serviço imprime que o conjunto de regras foi salvo, enquanto não foi.service netfilter-persistent
TLDR: instale
iptables-persistent
e verifique se o diretório do plug-in/usr/share/netfilter-persistent/plugins.d
contém plug-ins.Aqui está como eu descobri isso:
Em seguida, verifique o
/usr/sbin/netfilter-persistent
script, observe que ele chama scripts externos:Então eu notei que
/usr/share/netfilter-persistent/plugins.d
estava vazio.fonte
Instale o iptables-persistent:
salve as regras depois de fazer as alterações desejadas:
fonte