Preciso restaurar sempre as regras do iptable na inicialização?

18

Toda vez que reinicio, perco as regras do iptables que me demoram tanto para entrar. Eu sei que posso salvá-los e restaurá-los na inicialização , mas existe alguma maneira de salvá-los para sempre? Eu realmente preciso restaurá-los na inicialização sempre? Seriamente?

O problema é que tenho uma lista ENORME de IPs em que uso um loop while para carregá-los. Isso pode levar mais de 10 minutos.

Este é o meu servidor FTP doméstico. É uma pequena VM com 1 GB de RAM e muito pouco poder de processamento. Existem muitos IPs porque eu praticamente desisti do continente asiático. Não preciso que eles acessem meu servidor FTP todos os dias com força bruta. Eu também bloqueio gov. monitores, rastreadores e spammers.

Este é o loop while que eu uso para carregar na lista.

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
capdragon
fonte
Sua pergunta é um pouco ambígua, quando você diz 'salve-as para sempre', pensei que você quis dizer isso em um arquivo, mas depois de ler o resto, parece que o que você realmente quer dizer é que não deseja recarregá-las manualmente na inicialização o tempo todo. Além disso, acho que o número de regras que precisam ser recarregadas será o mesmo, por isso ainda levará algum tempo, mas você não precisará fazer isso manualmente, seguindo a resposta de pankaj.
30612 Jeff Welling
possível duplicata de iptables redefine quando o servidor for reinicializado
Elias Kagan

Respostas:

21

Primeiro, crie um arquivo com o conteúdo de iptables-save:

sudo iptables-save > /etc/iptables_rules

Realmente não importa onde você coloca o arquivo, tudo o que você precisa fazer é garantir que a próxima linha se refira ao mesmo arquivo. Em seguida, abra /etc/rc.locale adicione esta linha:

/sbin/iptables-restore < /etc/iptables_rules

A partir de agora, toda vez que o computador ligar ou reiniciar o iptables, as regras do arquivo que você especificou serão carregadas.

pankaj sharma
fonte
11
Eu recebo -bash: /etc/iptables_rules: Permission deniedo primeiro comando. O que é estranho usando sudo e tudo.
Capdagon # 30/12
5
Eu tive que usar sudo sh -c '/sbin/iptables-save > /etc/iptables.save'para contornar o Permission deniederro. Referência
capdragon /
u pode criar arquivos em qualquer diretório não é obrigatório para criar arquivo em / etc /
Pankaj Sharma
8
Eu não recomendaria usar /etc/rc.localpara isso. É executado mais tarde que o restante da inicialização do sistema e, potencialmente, deixa o sistema em um estado sem firewall. Eu sugeriria colocar esse script de uma linha /etc/network/if-up.d/firewall(novo arquivo). Isso garante que ele seja executado sempre que você ativar suas interfaces de rede.
precisa saber é o seguinte
2
O erro de permissão é normal / esperado. O sudo se aplica apenas ao comando antes do ">", o redirecionamento de arquivo é feito separadamente pelo seu shell.
ImaginaryRobots
16
apt-get install iptables-persistent

Na instalação, ele deve salvar sua configuração atual do iptables. Caso contrário, você pode salvá-los nesses arquivos (dependendo da v4 ou v6) e o iptables-persistent os carregará na inicialização :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
Matt Fletcher
fonte
1

Se você possui muitas regras, considere também usar o ipset em conjunto com o iptables. O Ipset usa uma tabela de banco de dados indexada e é muito mais rápido que o iptables ao procurar um endereço para decidir se aceita ou nega.

http://ipset.netfilter.org/index.html

Bob Brunius
fonte