Come salvare le regole degli iptables? [duplicare]

82

Creo le regole su iptables. Ma quando riavvio il computer, le regole non funzionano! Come salvare le regole su Ubuntu?

Il problema è stato risolto!

fare:

Dopo aver scritto i comandi iptables, fai:

 1. sudo su
 2. iptables-save > /etc/iptables.rules
 3. In /etc/network/if-pre-up.d/iptables,put:

 #!/bin/sh
 iptables-restore < /etc/iptables.rules
 exit 0

 4. After, in /etc/network/if-post-down.d/iptables,put:
 #!/bin/sh
 iptables-save -c > /etc/iptables.rules
 if [ -f /etc/iptables.rules ]; then
 iptables-restore < /etc/iptables.rules
 fi
 exit 0
 5. After, give permission to the scripts:
 sudo chmod +x /etc/network/if-post-down.d/iptables
 sudo chmod +x /etc/network/if-pre-up.d/iptables

Ulteriori informazioni: link Buona fortuna!

    
posta Gustavo 06.04.2012 - 08:08

2 risposte

122

Il modo semplice è utilizzare iptables-persistent .

Installa iptables-persistent :

sudo apt-get install iptables-persistent

Dopo averlo installato, puoi salvare / ricaricare le regole di iptables in qualsiasi momento:

sudo /etc/init.d/iptables-persistent save 
sudo /etc/init.d/iptables-persistent reload

Server di Ubuntu 16.04

L'installazione come descritto sopra funziona senza problemi, ma i due comandi per il salvataggio e il ricaricamento sopra non sembrano funzionare con un server 16.04. I seguenti comandi funzionano con quella versione:

sudo netfilter-persistent save
sudo netfilter-persistent reload
    
risposta data user213088 09.11.2013 - 15:53
37

Il metodo generico per salvare le regole di iptables è usare il comando iptables-save, che scrive su stdout.

iptables-save > /etc/network/iptables.rules

L'output creato da iptables-save può quindi leggere su stdin da iptables-restore. Se su un server, senza NetworkManager, un approccio comune è quindi quello di utilizzare un comando pre-up in / etc / network / interfaces.

iface eth0 inet static
        ....
        pre-up iptables-restore < /etc/network/iptables.rules

Se si utilizza NetworkManager dovrebbe essere possibile eseguire lo stesso comando da uno script creato in /etc/NetworkManager/dispatcher.d/. Nella documentazione comunitaria - iptables howto , vedi Configurazione all'avvio per NetworkManager per ulteriori informazioni.

Si noti che i comandi iptables, iptables-save e iptables-restore sono solo IPv4. Per il traffico IPv6 i comandi equivalenti sono ip6tables, ip6tables-save e ip6tables-restore.

    
risposta data andol 06.04.2012 - 08:27

Leggi altre domande sui tag