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.