Perché le regole di iptables scompaiono quando si riavvia il mio sistema Debian?


48

Aggiungo questa regola:

sudo iptables -t nat -A OUTPUT -d a.b.c.d -p tcp \
       --dport 1723 -j DNAT --to-destination a.b.c.d:10000
  1. Quando si riavvia, le regole del computer vengono eliminate. Perché?
  2. Cosa posso fare per far persistere le regole?

Risposte:


45

Non esiste alcuna opzione in iptables che renderà permanenti le tue regole. Ma puoi usare iptables-savee iptables-restoreper adempiere al tuo compito.

Per prima cosa aggiungi la regola iptable usando il comando che hai dato.

Quindi salva le regole di iptables in alcuni file come /etc/iptables.confusando il seguente comando:

$  iptables-save > /etc/iptables.conf

Aggiungi il seguente comando /etc/rc.localper ricaricare le regole in ogni riavvio.

$  iptables-restore < /etc/iptables.conf

15
Su Debian c'è il iptables-persistentpacchetto che lo farà.
bahamat,

7
È una pessima idea inserirla in rc.localquanto ci sarebbe una finestra aperta tra l'avvio dei servizi e l'applicazione della politica del firewall. Io preferisco usare pre-up il gancio per l'interfaccia di loopback in /etc/network/interfacesper superare questo.
poige,

@poige: sono d'accordo al 100%, rc.localpotrebbe avere l'effetto desiderato, ma è un kludge in questa situazione.
JM Becker,

3
@bahamat: l'installazione di quel pacchetto è la soluzione migliore, merita la sua risposta.
JM Becker,

1
@TechZilla: Fatto.
bahamat,

53

(Perché è stato suggerito di rendere questa una risposta a sé stante ...)

All'installazione di debian iptables-persistent.

Il pacchetto verrà caricato automaticamente /etc/iptables/rulesdurante l'avvio.

Ogni volta che modifichi le tue regole, corri /sbin/iptables-save > /etc/iptables/rulesper salvarle. Se lo desideri, puoi anche aggiungerlo alla sequenza di spegnimento.


12
Ci sono due diversi file di regole: /etc/iptables/rules.v4e /etc/iptables/rules.v6per IPv4 e IPv6, rispettivamente. Se si desidera applicare una tabella a entrambi i tipi di connessioni, è necessario salvarla in entrambi i file delle regole.
PetaspeedBeaver

11
Non aggiungerlo alla sequenza di spegnimento! Se si sbagliano le regole durante le modifiche / l'installazione, almeno un buon vecchio riavvio riporterà le cose allo stato precedentemente funzionante.
VertigoRay,

1

Dopo l'installazione iptables-persistentsopra puoi anche salvare le regole con il seguente comando più breve su Ubuntu 16.04+: sudo netfilter-persistent save

E possono anche essere ripristinati come erano stati l'ultima volta che li hai salvati con: sudo netfilter-persistent reload

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.