Saya memiliki rantai yang ditambahkan dengan banyak aturan seperti:
> :i_XXXXX_i - [0:0]
> -A INPUT -s 282.202.203.83/32 -j i_XXXXX_i
> -A INPUT -s 222.202.62.253/32 -j i_XXXXX_i
> -A INPUT -s 222.202.60.62/32 -j i_XXXXX_i
> -A INPUT -s 224.93.27.235/32 -j i_XXXXX_i
> -A OUTPUT -d 282.202.203.83/32 -j i_XXXXX_i
> -A OUTPUT -d 222.202.62.253/32 -j i_XXXXX_i
> -A OUTPUT -d 222.202.60.62/32 -j i_XXXXX_i
> -A OUTPUT -d 224.93.27.235/32 -j i_XXXXX_i
ketika saya mencoba menghapus rantai ini dengan:
iptables -X XXXX
tetapi mendapat kesalahan seperti (mencoba iptables -F XXXXX sebelumnya):
iptables: Terlalu banyak tautan.
Apakah ada cara mudah untuk menghapus rantai dengan sekali perintah?
linux
iptables
linux-networking
tepat waktu
sumber
sumber
iptables-save | grep -v i_XXXXX_i | iptables-restore
Jawaban:
Anda tidak dapat menghapus rantai ketika aturan dengan '-j CHAINTODELETE' merujuknya. Cari tahu apa yang mereferensikan rantai Anda (tautan), dan hapus itu. Juga, siram kemudian bunuh.
sumber
Ini berpotensi di luar topik, tetapi itulah yang saya lakukan setelah saya menemukan posting ini! Untuk beberapa kasus penggunaan, opsi iptables -D mungkin berguna. Karena memungkinkan Anda untuk menghapus aturan rujukan yang ditambahkan secara terprogram dengan -A (jika Anda tahu persis bagaimana Anda menambahkannya).
Misalnya
dapat dibalik dengan
sumber
Anda perlu dua langkah, tetapi ini melakukannya dalam satu perintah.
Buat file, dan letakkan ini di dalamnya.
Simpan file sebagai "hapus semua aturan". Sekarang, lakukan perintah ini:
Sekarang Anda dapat menghapusnya kapan saja hanya dengan satu perintah.
sumber
Ini rencana alternatif. Ini melibatkan tiga perintah, bukan satu, tetapi dengan keberuntungan, itu harus bekerja.
Buang
iptables
aturan Anda ke file:Hapus SEMUA penggunaan (dan referensi ke) rantai yang menyinggung:
Kemudian muat ulang aturan:
sumber
Sesuatu di sepanjang baris ini akan membuat semuanya dalam satu baris tanpa menurunkan iptables dengan cara apa pun.
sumber
Di file iptables man ada opsi
-S
Dengan menggunakan
iptables -S | grep <CHAINNAMEHERE>
. Sebagai contoh:Anda kemudian dapat melihat aturan mana yang memblokir penghapusan rantai dari tabel. Telusuri setiap aturan (kecuali
iptables -N <CHAINNAMEHERE>
dan hapus aturan dengan menggunakan-D
opsiSebagai contoh
iptables -D FORWARD -i eth0 -j TRAFFICLOG
. Setelah Anda menghapus setiap aturan untuk rantai Anda siram rantai dengan-F
opsiiptables -F <CHAINNAMEHERE>
,.Kemudian hapus rantai Anda dengan
-X
opsi,iptables -X <CHAINNAMEHERE>
Iptables adalah seperangkat alat yang rumit sehingga diperlukan tutorial yang ideal. Anda dapat mencobanya di www.iptables.info
sumber
Ini akan memuntahkan rantai dan menghapusnya
sumber
Saya telah menemukan bahwa Anda dapat menghapus aturan dan rantai dengan mengedit file aturan di /etc/iptables/rules.v4. Jika Anda menghapus rantai yang tidak diinginkan dalam file ini dan kemudian memuat ulang iptables, Anda seharusnya tidak lagi melihat rantai ketika melakukan iptables -L.
sumber