Apakah iptables -F secara permanen menghapus semua aturan iptables?

8

Dalam dokumen pelatihan RHEL, penulis mengatakan:

... jalankan perintah berikut untuk menonaktifkan firewall di sistem saat ini: iptables -F

Dia secara eksplisit menggunakan kata "disable" yang bagi saya menunjukkan bahwa itu akan mudah untuk diaktifkan kembali. Saat membaca halaman manual untuk iptables, saya melihat ini:

Bilas rantai yang dipilih (semua rantai dalam tabel jika tidak ada yang diberikan). Ini sama dengan menghapus semua aturan satu per satu.

Bisakah saya mendapatkan klarifikasi tentang perilaku yang diharapkan?

Mike B
sumber
2
Perhatikan bahwa iptables -Fmem - flush semua aturan di tabel "filter", itu tidak mem-flush tabel lain (nat, mangle ...) dan tidak mengembalikan kebijakan ke default, sehingga mereka tidak bisa dikatakan menonaktifkan. firewall .
Stéphane Chazelas

Jawaban:

13

The iptablesaturan disimpan di dua tempat pada sistem Red Hat:

  • Dalam memori di dalam kernel yang berjalan, di mana kode firewall memeriksanya pada I / O jaringan. Membilas aturan dengan iptables -Fmenyingkirkan aturan ini saja.

  • Dari /etc/sysconfig/iptablesmana mereka dimuat saat boot. Anda dapat memaksa memuat ulang tanpa me-reboot dengan service iptables reloadatau ...restart.

Jadi jawabannya tidak, menyiram aturan dengan iptables -Ftidak permanen.

Ketika Anda masuk setupdan memodifikasi aturan firewall, itu menyimpannya /etc/sysconfig/iptables. Anda tidak seharusnya mengedit file itu secara langsung, tetapi jika Anda tahu iptablesformat baris perintah, Anda dapat dengan mudah mengetahui format file ini.

Warren Young
sumber
Jawaban yang fantastis. Saya menghargai detail dan klarifikasi. Warren terima kasih.
Mike B
9

Juga, sebagai titik referensi, berikut cara menyiram SEMUA aturan iptables saat ini:

#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables=/sbin/iptables
$iptables -F
$iptables -X
$iptables -t nat -F
$iptables -t nat -X
$iptables -t mangle -F
$iptables -t mangle -X
$iptables -P INPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptables -P OUTPUT ACCEPT
Steve Dibb
sumber
4
Sebenarnya ada lebih banyak tabel dari itu. Setidaknya -t rawdan -t security. Alih-alih hard coding, gunakan/proc/net/ip_tables_names
derobert