Come posso rendere permanente un set specifico di regole iptables?


42

Esiste una "best practice" o uno standard per rendere permanenti alcune regole di iptables? Voglio dire: applicato automaticamente al riavvio del sistema?

Sto usando un VPS con Ubuntu Server 10.04 LTS (Lucid Lynx).

Grazie.

GRANDE MODIFICA: Non voglio che TUTTA la regola sia mantenuta (come iptables-persistentfa il pacchetto). Voglio ricaricare solo il mio set specifico ... se alla fine vengono aggiunte altre regole eseguendo iptables, queste dovrebbero essere scartate ...

Risposte:


52

Il metodo più semplice consiste nell'utilizzare iptables-save e iptables-restore per salvare le regole iptables attualmente definite in un file e (ri) caricarle (ad es. Al riavvio).

Quindi, per esempio, correresti

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

per salvare le regole iptables correnti in /etc/iptables.confe quindi inserire queste righe in /etc/rc.local:

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf

3
+1 La tua risposta è perfetta per la mia domanda originale. Mi ha anche fatto capire cosa volevo davvero, quindi ho dovuto cambiare la domanda da "Come posso rendere permanenti le regole di iptables?" a "Come posso rendere permanente un set specifico di regole iptables?"
J. Bruni,

Se puoi, per favore, fai una piccola modifica alla tua risposta per riflettere il cambiamento nella domanda ... Sarò felice di accettarlo! Devo usarlo iptables-saveuna volta, e ricaricare sempre (iptables-restore su /etc/rc.local suona bene).
J. Bruni,

1
Se stai ricevendo permission deniedquando si tenta di utilizzare >quindi questa risposta Stack Overflow sarà utile.
David Tuite,

2
Usa sudo sh -c "iptables-save > /etc/iptables.conf"invece disudo iptables-save > /etc/iptables.conf
Rajat Gupta

31

Un rapido aggiornamento a questo come potresti usare 12.04 ora e le cose vanno meglio.

Il iptables-persistentpacchetto ora risolve questo problema. Installare,

sudo apt-get install iptables-persistent

Le regole definite al momento dell'installazione del pacchetto vengono salvate e utilizzate su ogni avvio successivo. Le nuove regole caricate vengono scartate al riavvio.

Il file di configurazione se è necessario modificarli (una volta iptables-persistentinstallato) è /etc/iptables/rules.v4o rispettivamente /etc/iptables/rules.v6per ipv4 e ipv6 iptables.


Se si effettua una modifica a /etc/iptables/rules.v4, come viene applicata [ufficialmente]? Attualmente sto facendosudo iptables-restore < /etc/iptables/rules.v4
Bruno Bronosky il

24

Meglio che /etc/rc.localaggiungere una riga /etc/network/interfacesdopo aver salvato le regole di iptable, in questo modo

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

o è lo stesso per mettere il file dentro /etc/network/if-down.d/o /etc/network/if-post-down.d/o /etc/network/if-pre-up.d/o /etc/network/if-up.d/.


1
@Kreker: chiarisci, come è meglio il tuo approccio rispetto all'esecuzione di uno script di ripristino rc.local? l'altro approccio non funziona in alcuni casi?
Rajat Gupta,

2
Aggiungendolo alla configurazione di rete, viene ricaricato dopo aver eseguito il comando "riavvio rete di servizio". Non è limitato all'avvio del sistema.
K. Darien Freeheart,

4
Perché post-up iptables-restore quando un'interfaccia non funziona?
alphadogg,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.