Bagaimana tabel dan rantai iptables dilalui

22

Saya tahu linux memiliki 3 tabel built-in dan masing-masing memiliki rantai sendiri sebagai berikut:

FILTER : PREROUTING, FORWARD, POSTROUTING

NAT : PREROUTING, INPUT, OUTPUT, POSTROUTING

MANGLE : PEMESANAN , INPUT, MAJU, OUTPUT, POSTROUTING

Tapi saya tidak bisa mengerti bagaimana mereka dilalui, dalam urutan apa, jika ada. Misalnya, bagaimana mereka dilalui ketika:

  1. Saya mengirim paket ke komputer di jaringan lokal saya yang sama
  2. ketika saya mengirim paket ke komputer di jaringan yang berbeda
  3. ketika gateway menerima paket dan harus meneruskannya
  4. ketika saya menerima paket yang ditujukan kepada saya
  5. kasus lain (jika ada)
zer0uno
sumber

Jawaban:

28

Wikipedia memiliki diagram yang bagus untuk menunjukkan urutan pemrosesan.

Untuk detail lebih lanjut Anda juga dapat melihat dokumentasi iptables, khususnya bab melintasi dan tabel rantai . Yang juga termasuk diagram alir .

Urutan berubah tergantung pada bagaimana netfilter digunakan (sebagai jembatan atau filter jaringan dan apakah itu berinteraksi dengan lapisan aplikasi).

Secara umum (meskipun ada lebih banyak iblis dalam perincian dalam bab yang ditautkan di atas) rantai diproses sebagai:

  • Lihat rantai INPUT sebagai "lalu lintas masuk dari luar ke host ini".
  • Lihat rantai FORWARD sebagai "lalu lintas yang menggunakan host ini sebagai router" (sumber dan tujuan bukan host ini).
  • lihat rantai OUTPUT sebagai "lalu lintas yang ingin dikirim oleh tuan rumah ini ".
  • PREROUTING / POSTROUTING memiliki kegunaan yang berbeda untuk masing-masing tipe tabel (misalnya untuk tabel nat, PREROUTING adalah untuk inbound (routed / forwarded) lalu lintas SNAT dan POSTROUTING adalah untuk lalu lintas DNAT outbound (dialihkan / diteruskan). Lihat dokumen untuk lebih spesifik.

Berbagai tabel adalah:

  • Mangle adalah untuk mengubah paket (Jenis Layanan, Waktu Untuk Hidup, dll.) Pada traversal.
  • Nat harus dimasukkan ke dalam aturan NAT.
  • Raw digunakan untuk menandai dan melacak koneksi.
  • Filter adalah untuk menyaring paket.

Jadi untuk lima skenario Anda:

  1. Jika pengirim mengirimkan host Anda dengan iptables, OUTPUT
  2. Sama seperti di atas
  3. Rantai FORWARD (asalkan gateway adalah host dengan iptables)
  4. Jika "saya" adalah host dengan iptables, INPUT
  5. Lihatlah aturan rantai di atas (yang merupakan aturan umum) dan diagram alir (dan ini juga bervariasi pada apa yang ingin Anda capai dengan IPTables)
Drav Sloan
sumber
Saya juga baru-baru ini menemukan tautan ini - stuffphilwrites.com/2014/09/iptables-processing-flowchart . Ada diagram alur yang bagus di sana oleh Phil Hagen.
slm
1
Sumber daya bagus lainnya - digitalocean.com/community/tutorials/… .
slm