É seguro reiniciar um servidor aberto à Internet?

28

Especificamente

Eu tenho um conjunto de regras iptables definido em um servidor rodando o CentOS. Estou garantido / posso garantir / como posso garantir que, quando a rede ficar on-line (na inicialização do computador ou depois de reiniciar o serviço de rede), o conjunto de regras iptables já estará aplicado (e se o iptables não tiver sido inicializado ou não tiver aplicado o conjunto de regras a interface de rede não conseguirá aparecer)?

(Eu sei que esta é uma questão noob, mas eu nunca executei um servidor em nada além de redes confiáveis por trás de um mascaramento de NAT DHCP e um firewall, então ... espere perguntas noob do noobs.)

    
por Parthian Shot 29.07.2014 / 20:09

3 respostas

17

Fora da caixa, você tem a garantia de que o iptables será iniciado antes que a interface seja ativada pela ordem dos scripts de inicialização. Olhe para a linha "chkconfig" em cada script de inicialização e você verá os runlevels que estão "ligados" quando ativos, a ordem de início e a ordem de parada.

Você não tem garantia de que a interface não será ativada se o conjunto de regras iptables não for aplicado corretamente (ou de forma alguma).

Exemplo:
chkconfig: 2345 08 92
Esta linha indica que o serviço em questão estará ativo nos níveis de execução 2, 3, 4 e 5, e iniciará às 8 e terminará em 92. Qualquer coisa com um maior valor de "início" começará somente depois que este script for concluído, mas isso erro de script é considerado uma conclusão e não impedirá a execução de scripts downstream.

Por favor, note que esta resposta se aplica ao CentOS 6 e anterior, não necessariamente ao CentOS 7. Eu não pesquisei 7 o suficiente para responder a essa pergunta por 7.

    
por 29.07.2014 / 20:22
0

Você também pode usar a opção ifup-post no centos:

/etc/sysconfig/network-scripts/ifup-post

Called when any network device EXCEPT a SLIP device comes up. Calls /etc/sysconfig/network-scripts/ifup-routes to bring up static routes that depend on that device. Calls /etc/sysconfig/network-scripts/ifup-aliases to bring up aliases for that device. Sets the hostname if it is not already set and a hostname can be found for the IP for that device. Sends SIGIO to any programs that have requested notification of network events.

Could be extended to fix up nameservice configuration, call arbitrary scripts, etc, as needed.

Este script é executado e após o acima (ifup-route e ifup-aliases) procura por ifup-local

if [ -x /sbin/ifup-local ]; then
   /sbin/ifup-local ${DEVICE}
fi

Então você pode criar este arquivo e certificar-se de que ele chama o iptables novamente, por exemplo, usando o comando iptables-restore:

iptables-restore < /etc/sysconfig/iptables
    
por 04.08.2014 / 21:32
0

Um pequeno adendo: para garantir que as regras necessárias estejam lá da próxima vez que você inicializar o servidor, salve-o com

sudo sh -c "iptables-save > /etc/iptables.rules"
    
por 05.08.2014 / 18:04