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

20

Editando este arquivo diretamente

/etc/sysconfig/iptables 

pode me poupar de tanta dor de cabeça e muito mais ...

e ainda no topo do arquivo diz ...

Manual customization of this file is not recommended.

aqui está o '/ etc / sysconfig / iptables' que acabou de vir com um novo servidor de nuvem 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

e, em seguida, altere "22" para "80" e, em seguida, salve esse arquivo e, em seguida, reinicialize todo o sistema.

isso abrirá a porta 80 para mim.

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

Por que devo seguir o conselho?

    
por Gilles 15.07.2014 / 13:03

2 respostas

18

Porque a ferramenta chamada system-config-firewall (ou é ncurses based brother system-config-firewall-tui ) gerencia este arquivo. Toda vez que você usar essa ferramenta para criar novas regras do iptables, ela sobrescreverá /etc/sysconfig/iptables .

Manpage Relacionado: 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 do EL 6 é usando 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 em centOS?

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

  • Porque é um arquivo gerado automaticamente. O conteúdo dele vem do script / daemon /etc/init.d/iptables .
  • Algumas ações como redefinir ou interromper o daemon iptables podem resultar em perda de dados, uma vez que ele sobrescreverá o arquivo. Variáveis interessantes sobre este assunto: IPTABLES_SAVE_ON_STOP="" e IPTABLES_SAVE_ON_RESTART="" dentro do arquivo /etc/sysconfig/iptables-config . Talvez, ajustá-los tornará suas alterações dentro de /etc/init.d/iptables persistente.
  • Porque a documentação disse a> .Red Hat informa que esse é o melhor método para usar sua infraestrutura de firewall.

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

    
por 15.07.2014 / 13:24
8

and yet on the very top of the file it says..

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

# Manual customization of this file is strongly encouraged.

Alguém deve tê-lo alterado;) E, na verdade, até mesmo o removeu de /etc/sysconfig para que ele não ficasse "autocustomizado" pelo gerenciador de pacotes ou qualquer outra coisa;);)

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

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

Supondo que haja outras pessoas com acesso root, eu não faria isso em um servidor do qual sou responsável, a menos que houvesse uma razão melhor do que "Eu prefiro assim", porque isso provavelmente causará confusão e dará a alguém mais uma dor de cabeça em algum momento. Mas se você é o único usuário e ninguém mais depende do sistema, então você está 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). Desta forma, eu posso modificar as coisas rapidamente enquanto mantenho um ponto de referência do qual o sistema inicia.

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

    
por 15.07.2014 / 13:43