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
Respostas:
Primeiro, crie um arquivo com o conteúdo de
iptables-save
: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.local
e adicione esta linha:A partir de agora, toda vez que o computador ligar ou reiniciar o iptables, as regras do arquivo que você especificou serão carregadas.
fonte
-bash: /etc/iptables_rules: Permission denied
o primeiro comando. O que é estranho usando sudo e tudo.sudo sh -c '/sbin/iptables-save > /etc/iptables.save'
para contornar oPermission denied
erro. Referência/etc/rc.local
para 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.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 :)
fonte
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
fonte