วิธีที่ iptables สำรวจตารางและโซ่เชื่อมโยงกัน


22

ฉันรู้ว่า linux มีตารางในตัว 3 ตัวและแต่ละตัวมีโซ่ของตัวเองดังต่อไปนี้:

ตัวกรอง : การเตรียมการก้าวไปข้างหน้าการโพสต์ข้อความ

NAT : การเตรียมการ, อินพุต, เอาต์พุต, การโพสต์

MANGLE : PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

แต่ฉันไม่เข้าใจว่าพวกมันถูกสำรวจโดยวิธีใดถ้ามี ตัวอย่างเช่นพวกเขาสำรวจเส้นทางอย่างไรเมื่อ:

  1. ฉันส่งแพ็คเก็ตไปยังพีซีในเครือข่ายท้องถิ่นเดียวกัน
  2. เมื่อฉันส่งแพ็คเก็ตไปยังพีซีในเครือข่ายอื่น
  3. เมื่อเกตเวย์ได้รับแพ็คเก็ตและมันจะต้องส่งต่อ
  4. เมื่อฉันได้รับแพ็คเก็ตปลายทางให้ฉัน
  5. กรณีอื่น ๆ (ถ้ามี)

คำตอบ:


28

Wikipedia มีไดอะแกรมที่ยอดเยี่ยมเพื่อแสดงลำดับการประมวลผล

สำหรับรายละเอียดเพิ่มเติมคุณยังสามารถดูเอกสาร iptables เฉพาะtraversing ของตารางและโซ่บท ซึ่งยังรวมถึงแผนภาพการไหล

ลำดับการเปลี่ยนแปลงขึ้นอยู่กับวิธีการใช้ netfilter (เป็นตัวกรองบริดจ์หรือเครือข่ายและมีการโต้ตอบกับเลเยอร์แอปพลิเคชัน) หรือไม่

โดยทั่วไป (แม้ว่าจะมีปีศาจมากขึ้นในรายละเอียดในบทที่เชื่อมโยงด้านบน) โซ่มีการประมวลผลเป็น:

  • ดู INPUT chain เป็น "traffic ขาเข้าจากภายนอกสู่โฮสต์นี้"
  • ดูเครือข่าย FORWARD เป็น "การรับส่งข้อมูลที่ใช้โฮสต์นี้เป็นเราเตอร์" (ต้นทางและปลายทางไม่ใช่โฮสต์นี้)
  • ดูเชนเอาท์พุทว่าเป็น "ทราฟฟิกที่โฮสต์นี้ต้องการส่งออก"
  • PREROUTING / POSTROUTING มีการใช้งานที่แตกต่างกันสำหรับแต่ละประเภทตาราง (ตัวอย่างเช่นสำหรับตาราง nat, PREROUTING ใช้สำหรับขาเข้า (กำหนดเส้นทาง / ส่งต่อ) ทราฟฟิก SNAT และ POSTROUTING ใช้สำหรับทราฟฟิก DNAT ขาออก (ส่งแล้ว / ส่งต่อ) รายละเอียด

ตารางต่างๆ ได้แก่ :

  • Mangle คือการเปลี่ยนแพ็กเก็ต (ประเภทของบริการ, เวลาในการใช้ชีวิต ฯลฯ ) ในการส่งผ่าน
  • แน็ตคือการใส่ในกฎ NAT
  • Raw จะใช้สำหรับการทำเครื่องหมายและการติดตามการเชื่อมต่อ
  • ตัวกรองใช้สำหรับกรองแพ็คเก็ต

ดังนั้นสำหรับห้าสถานการณ์ของคุณ:

  1. หากโฮสต์ส่งโฮสต์ของคุณด้วย iptables OUTPUT
  2. เช่นเดียวกับข้างต้น
  3. ห่วงโซ่ไปข้างหน้า (ให้เกตเวย์เป็นโฮสต์ที่มี iptables)
  4. ถ้า "me" เป็นโฮสต์ที่มี iptables ให้ป้อน
  5. ดูกฎลูกโซ่ด้านบน (ซึ่งเป็นกฎทั่วไปของหัวแม่มือ) และแผนภาพการไหล (และสิ่งนี้ก็แตกต่างกันไปตามสิ่งที่คุณพยายามจะบรรลุด้วย IPTables)

ฉันยังเพิ่งมาในลิงค์นี้ - stuffphilwrites.com/2014/09/iptables-processing-flowchart มีผังงานที่สวยงามโดย Phil Hagen
slm

1
ทรัพยากรที่ดีอีก - digitalocean.com/community/tutorials/...
slm
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.