(/ etc / sysconfig / iptables) “A personalização manual deste arquivo não é recomendada.” Por que?

20

Editando este arquivo diretamente

/etc/sysconfig/iptables 

pode me salvar tantas dores de cabeça, tanto tempo e assim por diante ...

e ainda no topo do arquivo diz ..

Manual customization of this file is not recommended.

aqui está o '/ etc / sysconfig / iptables' que acabou de chegar com um novo servidor em nuvem do centos 6.4.

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

para abrir a porta 80 eu posso simplesmente clonar a linha ..

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

altere "22" para "80", salve este arquivo e reinicie o sistema inteiro.

isso abrirá a porta 80 para mim.

esta é uma operação bastante simples. e ainda assim o arquivo diz que a edição manual não é recomendada.

por que devo seguir o conselho?

Gilles 'SO- parar de ser mau'
fonte

Respostas:

18

Porque a ferramenta chamada system-config-firewall(ou é irmão baseado em maldições system-config-firewall-tui) gerencia esse arquivo. Toda vez que você usar essa ferramenta para criar novas regras do iptables, ela será substituída /etc/sysconfig/iptables.

Página relacionada: 28.1.16. / etc / sysconfig / iptables-config

É por isso que não é recomendado, mas não proibido . A melhor maneira de salvar suas regras usando o CentOS ou qualquer outra versão EL 6 é usar o serviço iptables após adicionar algumas regras na memória:

# service iptables save

Pergunta relacionada: Por que o iptables não busca informações de / etc / sysconfig / iptables no centOs?

Razões para não editar este arquivo ( /etc/sysconfig/iptables) diretamente:

  • Porque é um arquivo gerado automaticamente. O conteúdo vem do script / daemon /etc/init.d/iptables.
  • Algumas ações, como redefinir ou interromper o daemon iptables, podem resultar na perda de dados, pois ele substituirá o arquivo. Variáveis ​​interessantes sobre esse assunto: IPTABLES_SAVE_ON_STOP=""e IPTABLES_SAVE_ON_RESTART=""dentro do /etc/sysconfig/iptables-configarquivo. Talvez, ajustá-las faça com que as alterações sejam /etc/init.d/iptablespersistentes.
  • Como a documentação disse isso, a Red Hat recomenda que este seja o melhor método para usar sua infraestrutura de firewall.

Uma solução alternativa para esse mindf "sobrescrever minhas regras de firewall" é desativar totalmente esses scripts e confiar em um método personalizado de gerenciamento do firewall, como o exposto por goldilocks .


fonte
Isso parece mais um argumento contra a mistura e a correspondência direta da edição do arquivo e da adição de regras usando a system-config-firewallferramenta. Você pode expandir por que é ruim editar o arquivo em vez de usar a ferramenta?
317 Michelle
Adicionadas informações adicionais. Obrigado pela dica @Michelle
8

e ainda no topo do arquivo diz ..

Hummm, isso é estranho. No topo da minha, diz:

# Manual customization of this file is strongly encouraged.

Alguém deve ter mudado;) E, de fato, até a mudou, para /etc/sysconfigque não fosse "não customizado" pelo gerenciador de pacotes ou qualquer outra coisa;);)

Eu acho que o ponto aqui em geral com esses arquivos de configuração é que, se você não sabe o que está fazendo, não faça. Às vezes, também há o aviso de que o arquivo é substituído pelo sistema ocasionalmente. Isso pode ser feito pelo gerenciador de pacotes nas atualizações - embora, às vezes, o PM observe que um arquivo foi alterado manualmente e não o substitua ou salve uma cópia etc. - e pode ser outra ferramenta responsável por essa configuração. particular (veja a resposta de nwildner ).

Parte de "saber o que você está fazendo" é estar ciente de ângulos como esse. Também customizei o serviço init do iptables para usar um local diferente para o arquivo de configuração e, o mais importante: sou o único que usa este computador.

Presumindo que haja outras pessoas com acesso root, eu não faria isso em um servidor pelo qual sou responsável, a menos que houvesse um motivo melhor do que "prefiro assim", porque provavelmente causará confusão e causará dor de cabeça a outra pessoa. em algum ponto. Mas se você é o único usuário e ninguém mais depende do sistema, você é livre para fazer o que quiser. Meu "método preferido" para configurar o firewall é assim:

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currenté criado na inicialização, copiando /etc/iptables(que o serviço iptables está configurado para carregar inicialmente). Dessa forma, eu posso modificar as coisas rapidamente, mantendo um ponto de referência a partir do qual o sistema é iniciado.

O que nos leva a um ponto importante, se você quiser brincar com configurações que contenham esse tipo de aviso: Sempre crie primeiro uma cópia de backup do original.

Cachinhos Dourados
fonte