2012-02-17 5 views
37

Sto provando a reindirizzare il traffico http sulla porta 8080 sullo stesso computer e avere le regole iptables sotto funzionanti.Come aggiornare in modo permanente iptables

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 
iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080 

Sto cercando di capire come rendere permanente questo cambiamento in caso di riavvio del sistema.

Utilizzo il server Ubuntu 11.10.

+0

http://askubuntu.com/questions/66890/how-can-i -make-a-specifico-set-of-iptables-rules-permanent – azerafati

risposta

18

Un modo per fare questo sarebbe:

vim /etc/network/interfaces 

modificare la linea di seguito insieme con le vostre direttive LO:

Ora eseguire il comando di seguito

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

I spero che questo ti aiuti.

+10

Chiunque lo trovi dovrebbe considerare la risposta molto migliore su 'iptables-persistent' di yomimono di seguito. – zakx

+1

Non usare mai in questo modo, che lascia una finestra aperta almeno per un momento, una connessione errata può essere considerata "ESTABLISHED". L'interfaccia dovrebbe essere 'lo' (loopback) invece di' eth0' e 'pre-up' invece di' post-up'. – poige

+0

Ricevo un permesso negato quando provo a scrivere su/etc, anche in modalità root – puk

2

Aggiungili a /etc/ufw/before.rules. La sintassi è leggermente diversa ma vedrai come funziona.

UFW è il frontend del firewall di Ubuntu per iptables. Potrebbe essere necessario abilitare UFW utilizzando sudo ufw enable, ma non è possibile impostare alcuna regola all'interno di ufw.

6

non possiamo fare la stessa cosa con rc.local ma effettuare le seguenti operazioni

iptables-save > current_iptables_rules 

andare poi in /etc/rc.local e immettere le seguenti

iptables-restore < current_iptables_rules 

Won' Che compia la stessa cosa? Potrei mancare qualcosa.

+0

Sì, dovrebbe funzionare anche questo. –

132

Ubuntu (e Debian) offrono il pacchetto iptables-persistent (Debian: http://packages.debian.org/wheezy/iptables-persistent, Ubuntu: http://packages.ubuntu.com/saucy/iptables-persistent), che fa esattamente ciò che si desidera. Come root, o tramite sudo:

apt-get install iptables-persistent 
iptables-save > /etc/iptables/rules.v4 

Se si lavora con ip6tables, ti consigliamo di anche ip6tables-save > /etc/iptables/rules.v6.

È necessario salvare nuovamente le tabelle (iptables-save > /etc/iptables/rules.v4, ip6tables-save > /etc/iptables/rules.v6) dopo ogni modifica apportata.

Nelle versioni più vecchie (prima iptables-0.5, e prima di Debian Wheezy) sarà necessario scrivere in un file diverso:

iptables-save > /etc/iptables/rules 
+12

Nel caso in cui aiuti qualcun altro ... mi ci è voluto un po 'per rintracciare che avevo davvero bisogno di fare questo: iptables-save> /etc/iptables/rules.v4 – mdahlman

+9

Se stai usando anche IPv6, può essere un dolore per assicurarsi che le regole arrivino nel posto giusto. È possibile eseguire quanto segue affinché ciò avvenga automaticamente: 'invoke-rc.d iptables-persistent save' –

+1

@mdahlman dipende dalla versione Debian/Ubuntu. Credo che Debian <7 richiede '>/etc/iptables/rules' e 7+ richiede'>/etc/iptables/rules.v4' –