Saya mengikuti tutorial ini untuk mengatur aturan IP di ubuntu 12.04. Semuanya bekerja dengan baik pada pengaturan - tapi sekarang saya telah membuat perubahan pada firewall yang tidak bertahan saat reboot. Saya tidak mengerti mengapa itu terjadi. Berikut ini adalah demonstrasi bagaimana saya menggunakan iptables-persistent. Apa yang saya lakukan salah?
$ sudo service iptables-persistent start
* Loading iptables rules... * IPv4... * IPv6...
$ sudo iptables -L //shows a certain rule
$ iptables -D INPUT ... //command successfully drops the rule
$ sudo iptables -L //shows rule has been deleted
$ sudo service iptables-persistent restart
* Loading iptables rules... * IPv4... * IPv6... [ OK ]
$ sudo iptables -L //rule is back
iptables
iptables-persistent
bernie2436
sumber
sumber
iptables -D INPUT
aturannya tidak masuksudo
, Anda yakin ini benar-benar melaporkan kesuksesan? Apakah perilaku berubah jika Anda menjalankannya di dalamsudo
?Jawaban:
iptables-persistent
tidak bekerja seperti itu. Restartiptables-persistent
"layanan" tidak menangkap kondisi saat ini dari iptables dan menyimpannya; semua yang dilakukannya adalah mengembalikan aturan iptables yang disimpan ketika paket terakhir dikonfigurasi.Untuk mengonfigurasi
iptables-persistent
, Anda perlu memberi tahu tentang aturan dasar iptables Anda saat ini.Salah satu cara untuk mencapai itu adalah sebagai berikut:
Atau, yang setara,
iptables-persistent
paket ini juga menyediakan yang berikut:(Anda harus menjawab ya untuk pertanyaan tentang apakah akan menyimpan aturan.)
Setelah itu, waktu berikutnya
iptables-persistent
dimulai / direstart, aturan iptables yang Anda harapkan akan dimuat.sumber
Cara yang sangat sederhana untuk menyimpan aturan iptables saat ini adalah dengan menggunakan perintah:
sudo service netfilter-persistent save
Menggunakan hal di atas, yang berfungsi setidaknya di Ubuntu setelah menginstal paket
netfilter-persistent
(daniptables-persistent
), tidak perlu menjalankan secara manual perintah iptables atau mengkonfigurasi ulang paket (seperti yang disarankan oleh jawaban yang diterima di atas).sumber
sudo service netfilter-persistent save
atausudo service netfilter-persistent save .
? (Dot di akhir.)Bukan itu yang
DROP
berarti atau tidak. Dariman iptables
:Jadi yang Anda lakukan adalah menambahkan aturan baru. Ini mungkin secara efektif menggantikan sejumlah aturan lain, tetapi aturan itu masih ada.
Saat memeriksa hal-hal seperti ini (
iptables -L
output Anda ), saya akan memberinya makangrep "string unique to this rule"
daripada menggunakan mata Anda. Lebih mudah dan lebih cepat untuk dilakukan, dan lebih sedikit rawan kesalahan.Jika Anda ingin menghapus aturan, gunakan
-D
sakelar; halaman manual menjelaskan dua bentuk ini:sumber
-D
singkatan dari "delete" not "DROP" Menggunakan istilah "DROP" berarti apa pun selain target lompatan ketika berbicara tentangiptables
membingungkan membingungkan.Seperti yang dijelaskan oleh @ steven-monday , Anda dapat menyimpan aturan yang Anda tentukan sendiri di direktori yang benar (yaitu:)
/etc/iptables/rules.v{4,6}
.Namun, @OpenITeX benar: memanggil
save
tindakanservice netfilter-persistent
lebih baik.Sampai hari ini (di 18,10), iptables-save builtin, tetapi
iptables-persistent
ini tidak diinstal. Karenanya, direktori plugin yang dipanggil olehservice netfilter-persistent
kosong, dan layanan mencetak bahwa ruleset disimpan, padahal sebenarnya tidak.TLDR: instal
iptables-persistent
dan periksa apakah direktori/usr/share/netfilter-persistent/plugins.d
plugin berisi plugin.Inilah cara saya mengetahuinya:
Kemudian periksa
/usr/sbin/netfilter-persistent
skrip, perhatikan skrip eksternal yang dipanggil:Kemudian saya perhatikan bahwa
/usr/share/netfilter-persistent/plugins.d
itu kosong.sumber
Instal iptables-persistent:
simpan aturan setelah melakukan perubahan yang diinginkan:
sumber