iptables dan target KEMBALI

15

Saya tidak mengerti apa yang dilakukan RETURNtarget dalam perintah iptables.

Keraguan datang dari panduan ini di mana tertulis:

Rantai adalah seperangkat aturan yang diperiksa terhadap suatu paket secara berurutan. Ketika paket cocok dengan salah satu aturan, ia mengeksekusi tindakan terkait dan tidak dicentang terhadap aturan yang tersisa dalam rantai.

Jadi, jika suatu paket cocok dengan aturan dan berhenti memeriksa aturan lain mengapa saya perlu RETURN?

Misalnya saya menemukan ini di internet:

iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j MARK --set-mark 30;
iptables -A PREROUTING -t mangle -i wlan0 -s 192.168.1.10 -j RETURN;

Mengapa saya harus RETURN? Jika suatu paket cocok dengan aturan pertama maka secara otomatis berhenti menjalankan aturan lain.

zer0uno
sumber

Jawaban:

32

Paket melintasi rantai sampai mereka memukul ACCEPT, DROP, REJECT, atau RETURN. Mereka tidak berhenti pada pertandingan kecuali jika pertandingan itu berisi tindakan penghentian. Dalam contoh Anda, paket yang cocok dengan aturan pertama akan ditandai, tetapi kemudian akan diperiksa (dan mungkin diproses) oleh aturan kedua.

Murni untuk referensi, berikut adalah bagian yang relevan dari halaman manual :

Aturan firewall menentukan kriteria untuk paket dan target. Jika paket tidak cocok, aturan selanjutnya dalam rantai adalah diperiksa; jika cocok, maka aturan selanjutnya ditentukan oleh nilai target, yang dapat berupa nama rantai yang ditentukan pengguna atau salah satu dari nilai khusus ACCEPT, DROP[, REJECT], QUEUEatau RETURN.

  • ACCEPT berarti membiarkan paket lewat.
  • DROP berarti menjatuhkan paket di lantai, yaitu membuangnya dan tidak mengirim respons apa pun
  • [ REJECTdigunakan untuk mengirim kembali paket kesalahan sebagai tanggapan terhadap paket yang cocok: jika tidak, itu setara dengan DROPjadi itu adalah TARGET yang mengakhiri, mengakhiri aturan traversal.]
  • QUEUE artinya meneruskan paket ke userspace.
  • RETURNberarti berhenti melintasi rantai ini dan melanjutkan pada aturan berikutnya dalam rantai (panggilan) sebelumnya. Jika akhir rantai bawaan tercapai atau aturan dalam rantai bawaan dengan target RETURNdicocokkan, target yang ditentukan oleh kebijakan rantai menentukan nasib paket tersebut.

Menanggapi kekhawatiran spesifik Anda, saya akan mengatakan bahwa panduan Anda menyesatkan. Kecuali jika "aksi terkait" adalah salah satu dari lima aksi terminal, paket akan terus mengalir melalui rantai sampai mencapai implisit RETURNdi akhir.

roaima
sumber
Saya akan memilih jawaban ini lebih dari sekali jika saya bisa.
JakeRobb
Perlu dicatat bahwa tindakan default untuk rantai yang ditentukan pengguna adalah RETURN.
stark
@stark bukankah itu yang dikatakan kalimat terakhir?
roaima
1
Ah, sekarang saya mengerti DROP dengan lebih baik. Itu menjelaskan mengapa saya tidak punya ruang kaki di bawah meja ini juga.
Jonathan Neufeld