Como posso tornar um conjunto específico de regras iptables permanentes?

34

Existe uma "melhor prática" ou padrão para tornar permanentes algumas regras do iptables? Quero dizer: aplicado automaticamente em uma reinicialização do sistema?

Estou usando um VPS com o Ubuntu Server 10.04 LTS (Lucid Lynx).

Obrigado.

BIG EDIT: Eu não quero que nenhuma regra seja persistida (como iptables-persistent package). Eu quero apenas que meu próprio conjunto específico seja recarregado ... se outras regras forem eventualmente adicionadas executando o iptables, elas devem ser descartadas ...

    
por J. Bruni 15.10.2011 / 16:45

3 respostas

45

O método mais simples é usar iptables-save e iptables-restore para salve as regras iptables atualmente definidas em um arquivo e (re) carregue-as (por exemplo, após a reinicialização).

Então, por exemplo, você executaria

sudo iptables-save | sudo tee /etc/iptables.conf

para salvar suas regras atuais do iptables em /etc/iptables.conf e depois inserir essas linhas em /etc/rc.local :

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf
    
por Riccardo Murri 15.10.2011 / 17:06
26

Uma atualização rápida para isso, como você pode estar usando 12.04 agora e as coisas são melhores.

O pacote iptables-persistent agora resolve esse problema. Para instalar,

sudo apt-get install iptables-persistent

As regras definidas quando o pacote é instalado são salvas e usadas em cada inicialização subseqüente. Novas regras carregadas são descartadas na reinicialização.

O arquivo de configuração, se você precisar alterá-los (uma vez iptables-persistent está instalado) é /etc/iptables/rules.v4 ou /etc/iptables/rules.v6 para iptables ipv4 e ipv6, respectivamente.

    
por user172020 02.07.2013 / 16:25
23

Melhor que /etc/rc.local é adicionar uma linha em /etc/network/interfaces depois de salvar as regras do iptable, como esta

post-up iptables-restore < /etc/iptables.up.rules

ou é o mesmo para colocar o arquivo em /etc/network/if-down.d/ ou /etc/network/if-post-down.d/ ou /etc/network/if-pre-up.d/ ou /etc/network/if-up.d/ .

    
por Kreker 03.05.2012 / 14:40