Alterando com segurança as regras de firewall do iptables?

5

O que as pessoas fazem quando estão alterando as regras de firewall para garantir que não sejam bloqueadas acidentalmente?

Por exemplo, existe uma maneira de carregar regras de firewall para que elas fiquem ativas apenas por algum período de teste e depois as regras de firewall voltem às configurações anteriores?

    
por ro. 25.02.2010 / 00:16

9 respostas

3

Outra opção seria ter uma sessão de tela aberta no servidor e ter um trabalho na sessão de tela que durma por alguns minutos e depois libere as tabelas. Depois de ter feito suas alterações, você pode simplesmente matar o trabalho. Você também pode fazer com que o script altere a política INPUT para ACCEPT, ou algo assim.

Pode ser um pouco mais conveniente que o cron, mas a mesma ideia. Eu faço uma coisa semelhante com os roteadores reload in 10 . Então, se eu me bloquear, o roteador irá reiniciar e restaurar a configuração para o estado antes de fazer a alteração.

    
por 25.02.2010 / 01:44
1

Eu uso firehol como front-end para o iptables. O FireHol tem um ótimo recurso que permite testar com segurança um novo conjunto de regras.

Quando você executa o comando firehol try , o Firehol se define para ignorar o HUP, faz um backup do conjunto de regras atual, aplica o novo conjunto de regras e, em seguida, fornece ao usuário um aviso perguntando se deseja se comprometer com o novo conjunto de regras. Se você não responder dentro de trinta segundos, o firehol restaura o conjunto anterior de regras.

    
por 25.02.2010 / 01:57
0

O ideal é sempre ter acesso ao console, é claro, mesmo que seja emulado o acesso ao console por meio de outra interface.

Se você estiver usando algo que usa um serviço iptables (como /etc/init.d/iptables) que você pode ativar e desativar, você pode configurar um cronjob simples para desativá-lo a cada 30 minutos. Uma solução mais geral seria executar o seguinte em algum intervalo: Como limpar o Linux ou remover todas as regras do iptables . Isso pode ser feito por um cronjob, ou apenas executando a tela e fazendo um loop de sono no bash para executar esse pequeno script ocasionalmente.

Se você está experimentando o iptables e aprendendo como usá-lo, nada é melhor do que ter um monitor plugado, por precaução.

    
por 25.02.2010 / 00:21
0

Saindo do que rjewell disse. Você poderia criar um cron job que libera e recarrega todas as suas regras a partir de um arquivo de configuração a cada 30 minutos. Então, quando você estiver testando, altere as regras diretamente com os comandos e salve-as apenas no arquivo de configuração, assim que tiver certeza de que funciona.

    
por 25.02.2010 / 00:33
0

Para nossos servidores remotos, usamos o KVM sobre IP. Isso nos permite ter um teclado / mouse / display remoto que seja independente de nossos conjuntos de regras iptables.

    
por 25.02.2010 / 00:42
0

Eu definiria um trabalho por alguns minutos para recarregar o conjunto anterior de regras, embora eu ache que uma maneira melhor seria garantir o acesso do seu IP como uma das primeiras regras - se não a primeira regra. Dessa forma, você pode tirá-lo quando estiver satisfeito com isso.

Também é importante notar que se você está permitindo conexões estabelecidas e estabelecidas (ou seja, -m state --state RELATED,ESTABLISHED -j ACCEPT ) e você consegue bloquear o acesso SSH, quaisquer conexões existentes devem ser mantidas - então certifique-se de verificar o SSH novamente antes de logar da sua sessão existente!

    
por 25.02.2010 / 02:32
0

Como regra, nunca mudo a política da minha cadeia INPUT para DENY. Em vez disso, adiciono em vez disso, adicionar uma regra final:

iptables -A INPUT -i <dev> -j REJECT

Se o seu script morrer no meio da execução (digamos que você está executando remotamente em um link incorreto e for desconectado) e tiver definido uma política DENY, você poderá se bloquear. Dessa forma, você aumentou as chances de ter pelo menos acesso em caso de falha.

Você ainda precisa se certificar de que suas regras concedam acesso suficiente para que a regra final não inicialize você, mas acho que as outras respostas são suficientes.

    
por 25.02.2010 / 04:10
0

Para ser mais preciso do que algumas das outras respostas aqui. Acabei fazendo o seguinte:

Faço backup das minhas regras atuais do iptables:

sudo iptables-save > original-iptables.save

Eu criei uma nova sessão usando o tmux:

tmux

Eu divido a sessão do tmux em dois painéis usando:

<C>-b %

No primeiro painel que eu executei: (execute isso como usuário root sudo su )

sleep 5m && sudo iptables-restore original-iptables.save

Isso redefinirá suas regras do iptables após 5 minutos. Este comando, na verdade, garante que você não possa se desligar do seu servidor por acidente. Você pode usar o outro painel para testar novas regras. (alternar painéis usando <C>-b o ) Se as novas regras funcionarem, você sempre poderá cancelar o comando original usando -c para garantir que as novas regras permaneçam ativas e não sejam redefinidas.

Você pode encontrar um bom & cheatsheet simples sobre tmux aqui .

    
por 31.10.2017 / 03:29
0

Neste caso, gosto de usar CSF que é um gerenciador de iptables, mas muito mais simples, você pode especificar as portas de entrada e de saída, bem como os intervalos de ip. Ele também tem uma testing festure onde ela habilita as regras por 5 minutos, depois que as regras desaparecem, dessa forma você pode ter certeza que mesmo se você for bloqueado, após 5 minutos você será capaz para entrar novamente.

Espero que isso ajude!

    
por 31.10.2017 / 05:49

Tags