Mengapa aturan iptables hilang saat memulai ulang sistem Debian saya?

48

Saya menambahkan aturan ini:

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. Ketika restart aturan komputer dihapus. Mengapa?
  2. Apa yang bisa saya lakukan untuk membuat peraturan tetap ada?
Jhonathan
sumber

Jawaban:

45

Tidak ada opsi di iptables yang akan membuat aturan Anda permanen. Tetapi Anda dapat menggunakan iptables-savedan iptables-restoreuntuk memenuhi tugas Anda.

Pertama tambahkan aturan iptable menggunakan perintah yang Anda berikan.

Kemudian simpan aturan iptables ke beberapa file seperti /etc/iptables.confmenggunakan perintah berikut:

$  iptables-save > /etc/iptables.conf

Tambahkan perintah berikut ini /etc/rc.localuntuk memuat ulang aturan di setiap reboot.

$  iptables-restore < /etc/iptables.conf
pradeepchhetri
sumber
15
Di Debian ada iptables-persistentpaket yang akan melakukan ini.
bahamat
7
Ini ide yang buruk untuk menempatkannya rc.localkarena akan ada celah jendela terbuka antara layanan mulai dan kebijakan firewall berlaku. Saya lebih suka menggunakan pre-up hook untuk antarmuka loopback dalam /etc/network/interfacesuntuk mengatasi hal ini.
poige
@poige: Saya setuju 100%, rc.localmungkin memiliki efek yang dimaksudkan, tetapi ini adalah kludge dalam situasi ini.
JM Becker
3
@ Bahahamat: Menginstal paket itu adalah solusi terbaik, Ini layak untuk dijawab sendiri.
JM Becker
1
@ TechZilla: Selesai.
bahamat
53

(Karena itu disarankan untuk membuat ini menjadi jawabannya sendiri ...)

Di instal debian iptables-persistent.

Paket ini akan secara otomatis memuat /etc/iptables/rulesuntuk Anda saat boot.

Setiap kali Anda mengubah aturan, jalankan /sbin/iptables-save > /etc/iptables/rulesuntuk menyimpannya. Anda juga dapat menambahkan itu ke urutan shutdown jika Anda mau.

bahamat
sumber
12
Ada dua file aturan yang berbeda: /etc/iptables/rules.v4dan /etc/iptables/rules.v6untuk IPv4 dan IPv6 masing-masing. Jika Anda ingin tabel berlaku untuk kedua jenis koneksi Anda harus menyimpannya ke kedua file aturan.
PetaspeedBeaver
11
Jangan menambahkannya ke urutan shutdown Anda! Jika Anda merusak aturan Anda selama perubahan / pengaturan setidaknya reboot lama yang baik akan mengembalikan semuanya ke kondisi sebelumnya.
VertigoRay
1

Setelah menginstal di iptables-persistentatas, Anda juga dapat menyimpan aturan dengan perintah pendek berikut di Ubuntu 16.04+: sudo netfilter-persistent save

Dan mereka juga dapat dikembalikan kembali ke bagaimana mereka terakhir kali Anda menyelamatkan mereka dengan: sudo netfilter-persistent reload

Robin Wilson
sumber