Iptables não persistem após a reinicialização no CentOS 6.2

7

Eu tentei adicionar algumas regras ao meu iptables, mas elas não parecem estar salvando. Para salvá-los, tentei executar iptables-save e service iptables save . Cada vez que eu executei um desses comandos, ele diz que foi salvo com sucesso. Aqui estão as regras que estou tentando inserir:

iptables -A INPUT -j REJECT -p tcp --destination-port 3306
iptables -A INPUT -j REJECT -p tcp --destination-port 25

Essas regras funcionam e permanecerão no lugar depois que eu inseri-las, mas quando eu for reiniciar o sistema, elas saem da lista ao executar iptables -L e as portas são abertas novamente (verificadas usando o nmap).

Ao olhar para o meu arquivo / etc / sysconfig / iptables, as regras estão lá (na parte inferior) e todos os timestamps "concluídos" são de quando eu salvei as regras que parecem corretas. Além disso, no meu arquivo / etc / sysconfig / iptables-config, todas as configurações são padrão e não parecem mudar nada ao carregar regras de iptable de um local diferente ou algo assim.

    
por Aaron 30.01.2012 / 18:09

3 respostas

9

Se as alterações não forem visíveis com iptables -L após uma reinicialização, isso sugere que:

  • As regras não estão sendo salvas

    • Você sugere que eles são, mas ao mesmo tempo dizem "carimbos de data / hora completos" - plural. Isso pode implicar que você tem mais de uma cópia das regras no mesmo arquivo e apenas o primeiro conjunto está sendo aplicado.
      • Redirecionar a saída do iptables-save para o arquivo acima (não anexar):
        iptables-save > /etc/sysconfig/iptables
      • Como alternativa, mova o arquivo existente para outro local e salve.

  • As regras estão sendo salvas no arquivo errado

    • Sua configuração pode ser configurada para carregar um arquivo diferente daquele para o qual você está salvando - verifique se o arquivo que está sendo carregado corresponde ao arquivo em que você salvou.
      • O arquivo é normalmente / etc / sysconfig / iptables
      • Se você olhar em /etc/init.d/iptables, deverá encontrar as seguintes linhas que determinam qual arquivo será carregado:
        IPTABLES=iptables
        IPTABLES_DATA=/etc/sysconfig/$IPTABLES
  • Existe um erro nas regras

    • Isso geralmente não é um problema - o iptables geralmente ignora regras erradas; e você não está escrevendo-os à mão (você está salvando um conjunto de regras presumivelmente em funcionamento).

  • iptables não é iniciado na inicialização

    • executar
      chkconfig --list iptables
      para verificar em que runlevels iptables é carregado. Se não estiver habilitado no nível de execução correto, adicione-o com
      chkconfig --level 2345 iptables on

Você deve ser capaz de testar sua configuração apenas reiniciando o iptables (ao invés de reiniciar a máquina):

service iptables restart

Isenção de responsabilidade do iptables padrão: apenas no caso de algo dar errado ...
  • faça backup do conjunto de regras existente:
    cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
  • configure uma tarefa cron que libere seus iptables após alguns minutos (é claro, remova-a assim que tudo estiver funcionando).
por 30.01.2012 / 18:50
3

Tem certeza de que o iptables-save "foi executado com sucesso"? Tudo o que faz é cuspir o arquivo de salvamento do conjunto de regras atual no texto. Você tem que apontar para / etc / sysconfig / iptables para que isso funcione.

iptables-save > /etc/sysconfig/iptables

De um modo geral, se você vir alguma saída do iptables-save, ela simplesmente mostra a saída para o seu monitor e isso não fará nenhum bem a você.

    
por 30.01.2012 / 19:01
0

Acho que a melhor solução é: primeiro digite o seguinte comando para instalar o iptables-services

yum install iptables-services

digite o seguinte comando para salvar as regras de iptable

service iptables save
    
por 25.11.2015 / 12:21