เมื่อใช้งาน ตัวกรองสุทธิ
คุณต้องเข้าใจว่าแพ็กเก็ตไหลผ่านเคอร์เนลอย่างไร นั่นคือ ซึ่ง ห่วงโซ่ (คล้ายกับ 'จุดตรวจสอบถนน') เยี่ยมชมและประเภทใด กำลังประมวลผล มันได้รับในแต่ละห่วงโซ่ (อ้างถึงด้วยคำ ตาราง). การประมวลผลและห่วงโซ่แสดงใน ภาพประกอบนี้, แต่ละกล่องมีห่วงโซ่ที่ส่วนล่างและประเภทการประมวลผลที่ด้านบน (คุณต้องมุ่งเน้นไปที่เลเยอร์เครือข่าย) ขึ้นอยู่กับเส้นทางแพ็กเก็ต มีเพียงส่วนย่อยของเชนเท่านั้นที่เกี่ยวข้อง: แพ็กเก็ตที่ไหลผ่านราสเบอร์รี่ของคุณจะผ่านไปเท่านั้น การเตรียมการ
, ซึ่งไปข้างหน้า
และ โพสต์
.
มี ซึ่งไปข้างหน้า
chain ไม่ได้หมายความว่ามันกำหนดเส้นทางแพ็กเก็ต คุณต้องเปิดใช้งานโดยใช้คำสั่ง sysctl -w net.ipv4.ip_forward=1
(ไม่คงทน).
อนึ่ง ตามรูปไม่มี แนท
การประมวลผลใน ซึ่งไปข้างหน้า
โซ่เท่านั้น ยุ่งเหยิง
และ กรอง
ดังนั้นคำสั่ง
iptables -t nat -d <รายการ IPs> -A FORWARD -j NFQUEUE --queue-num 1
ไม่ถูกต้อง
การประมวลผลแพ็กเก็ตสำหรับแต่ละตาราง/เชนนั้นขับเคลื่อนโดยรายการคำสั่งของกฎ ตาราง ที่คุณกำหนดด้วย iptables
สั่งการ. กฎแต่ละข้อประกอบด้วยเกณฑ์ที่ตรงกันและการดำเนินการซึ่งขึ้นอยู่กับประเภทตาราง (nfqueue
อนุญาตให้เข้าได้เท่านั้น กรอง
ตาราง สวมหน้ากาก
ใน แนท
โต๊ะ ฯลฯ)
ทีนี้มาถึง nfqueue
. เราใช้การดำเนินการดังกล่าวเมื่อต้องประมวลผลเพิ่มเติมของบางแพ็กเก็ตนอกเคอร์เนล โดยโปรแกรมที่คุณสร้างขึ้นเอง (ดู ตัวอย่างหลามที่นี่ตัวอย่างเช่น ในระบบตรวจจับการบุกรุกแพ็คเก็ตถูกวางในคิว (ระบุด้วยหมายเลข 16 บิต) ประมวลผลแล้วส่งคืนไปยังเคอร์เนลเพื่อดำเนินการโฟลว์ต่อที่ตาราง/เชนถัดไป (สามารถทิ้งในพื้นที่ผู้ใช้ได้เช่นกัน)
ในสถานการณ์ทั่วไป คุณจะต้องส่งเฉพาะแพ็กเก็ตที่ยอมรับไปยังพื้นที่ผู้ใช้ (ซึ่งกรองแล้วจะถูกละเว้นที่ระดับเคอร์เนล)
คุณต้องระวังความต้องการที่แน่นอนของคุณซึ่งยังไม่ชัดเจน ฉันจะพยายามยกตัวอย่างเพื่ออธิบายวิธีการทำงานโดยใช้สถานการณ์ของคุณ:
sudo iptables -F
sudo iptables -t แนท -F
sudo iptables -t nat -A POSTROUTING -o $eth -j MASQUERADE
sudo iptables -A FORWARD -i $eth -o $wlan -m state --state RELATED,ESTABLISHED -j NFQUEUE --queue-num 1
sudo iptables -A FORWARD -i $wlan -o $eth -j NFQUEUE --queue-num 1
ซึ่งหมายความว่าแพ็กเก็ตที่ไหลระหว่าง $เอธ
และ $wlan
จะได้อยู่คิวเดียวกัน คุณต้องแน่ใจว่ามีบางโปรแกรมจัดการกับหมายเลขคิว 1 และพร้อมที่จะดำเนินการแพ็กเก็ต