iptables และ RETURN target


16

ฉันไม่เข้าใจสิ่งที่RETURNเป้าหมายทำในคำสั่ง iptables

ข้อสงสัยมาจากคู่มือนี้ที่กล่าวว่า:

chain คือชุดของกฎที่ตรวจสอบแพ็กเก็ตตามลำดับ เมื่อแพ็คเก็ตตรงกับกฎข้อใดข้อหนึ่งมันจะประมวลผลการกระทำที่เกี่ยวข้องและไม่ได้ตรวจสอบกับกฎที่เหลืออยู่ในสายโซ่

ดังนั้นถ้าแพ็คเก็ตตรงกับกฎและจะหยุดการตรวจสอบกฎระเบียบอื่น ๆ ทำไมฉันต้องRETURN?

ตัวอย่างเช่นฉันพบสิ่งนี้ทางอินเทอร์เน็ต:

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;

ทำไมฉันต้องRETURN? หากแพ็กเก็ตตรงกับกฎข้อแรกมันจะหยุดการเรียกใช้กฎอื่นโดยอัตโนมัติ

คำตอบ:


33

แพ็คเก็ตตัดผ่านห่วงโซ่จนกว่าพวกเขาจะตีACCEPT, DROP, หรือREJECT RETURNพวกเขาจะไม่หยุดในการแข่งขันเว้นแต่ว่าการแข่งขันนั้นจะมีการยกเลิก ในตัวอย่างของคุณแพ็กเก็ตที่ตรงกับกฎข้อแรกจะถูกทำเครื่องหมาย แต่จะถูกตรวจสอบ (และอาจประมวลผล) โดยกฎข้อที่สอง

สำหรับการอ้างอิงเท่านั้นนี่คือส่วนที่เกี่ยวข้องจากหน้าคน :

กฎไฟร์วอลล์ระบุเกณฑ์สำหรับแพ็กเก็ตและเป้าหมาย หากแพ็กเก็ตไม่ตรงกันกฎถัดไปในเชนคือการตรวจสอบ ถ้ามันไม่ตรงกับกฎนั้นต่อไปคือการระบุโดยมูลค่าของเป้าหมายซึ่งอาจจะเป็นชื่อของห่วงโซ่ที่ผู้ใช้กำหนดหรือค่าใดค่าหนึ่งพิเศษACCEPT, DROP[ REJECT] หรือQUEUERETURN

  • ACCEPT หมายถึงการให้แพ็คเก็ตผ่าน
  • DROP หมายถึงการวางแพ็คเก็ตบนพื้นคือการทิ้งมันและไม่ส่งการตอบสนองใด ๆ
  • [ REJECTถูกใช้เพื่อส่งกลับแพ็คเก็ตข้อผิดพลาดในการตอบสนองต่อแพ็คเก็ตที่ตรงกัน: มิฉะนั้นมันจะเทียบเท่ากับDROPดังนั้นจึงเป็นเป้าหมายที่ยุติยุติการสำรวจกฎที่สิ้นสุด]
  • QUEUE หมายถึงการส่งแพ็คเก็ตไปยัง userspace
  • RETURNหมายถึงหยุดการเคลื่อนที่ข้ามสายโซ่นี้และกลับสู่กฎต่อไปในห่วงโซ่ก่อนหน้า (การโทร) หากถึงจุดสิ้นสุดของห่วงโซ่ในตัวหรือกฎในห่วงโซ่ในตัวที่มีเป้าหมายRETURNตรงกันเป้าหมายที่ระบุโดยนโยบายลูกโซ่จะเป็นตัวกำหนดชะตากรรมของแพ็กเก็ต

เพื่อเป็นการตอบข้อกังวลของคุณโดยเฉพาะฉันจะบอกว่าไกด์ของคุณทำให้เข้าใจผิด เว้นแต่ว่า "การกระทำที่เกี่ยวข้อง" เป็นหนึ่งในห้าการกระทำของเทอร์มินัลแพ็คเก็ตจะยังคงไหลผ่านสายโซ่จนกว่าพวกเขาจะมาถึงโดยนัยRETURNในตอนท้าย


ฉันตอบคำถามนี้มากกว่าหนึ่งครั้งถ้าทำได้
JakeRobb

เป็นที่น่าสังเกตว่าการกระทำเริ่มต้นสำหรับเครือข่ายที่ผู้ใช้กำหนดคือ RETURN
สิ้นเชิง

@ เริ่มต้นนั่นไม่ได้เป็นสิ่งที่ประโยคสุดท้ายพูดว่า?
roaima

1
อ่าตอนนี้ฉันเข้าใจ DROP ดีขึ้นแล้ว นั่นอธิบายว่าทำไมฉันไม่มีที่วางขาใต้โต๊ะนี้ด้วย
Jonathan Neufeld
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.