เป้าหมาย: เพื่อบล็อกการรับส่งข้อมูล UDP ไปยังอุปกรณ์บนฝั่ง LAN ของเกตเวย์นี้ (โดยใช้เฟิร์มแวร์ dd-wrt) ที่สื่อสารกับอินเทอร์เน็ตและระหว่างกัน เพื่อทดสอบแอปพลิเคชันการสื่อสารเฉพาะที่ทำงานบนอุปกรณ์แต่ละเครื่อง
ข้อยกเว้น: อนุญาตให้ใช้ UDP ขั้นต่ำที่จำเป็นในการสนับสนุนการทำงานของเครือข่ายขั้นพื้นฐานสำหรับอุปกรณ์เหล่านี้เพื่อดำเนินการสื่อสาร (เช่น: ผ่าน TCP) กับอินเทอร์เน็ตและระหว่างกัน
สิ่งที่ฉันได้ลองไปแล้ว:
เพิ่มกฎ (ผ่านเซสชัน SSH) บนเราเตอร์/เกตเวย์นี้:
iptables -I FORWARD -p udp -j DROP
iptables -I อินพุต -p udp -j DROP
สังเกต (สิ่งที่ได้ผลดี):
- กฎ
iptables -I FORWARD -p udp -j DROP
บล็อกอุปกรณ์ในฝั่ง LAN ไม่ให้สื่อสารผ่าน UDP กับอุปกรณ์ในฝั่ง WAN ได้สำเร็จ ซึ่งตรวจสอบโดยไม่สามารถสื่อสารระหว่างอุปกรณ์เหล่านี้ด้วยยูทิลิตี้ ncat -u
.
สังเกต (สิ่งที่ไม่ทำงาน):
- อุปกรณ์บนฝั่ง LAN สามารถสื่อสารระหว่างกันโดยใช้ UDP:
- บนอุปกรณ์ 1 (บนฝั่ง LAN):
ncat -lvu
# เปิดตัวฟัง ncat โดยใช้ UDP บนพอร์ตเริ่มต้น 31337
- บนอุปกรณ์-2 (บนฝั่ง LAN):
ncat -vu <ip-addr-device-1>
# เปิดตัวผู้โทร ncat โดยใช้ UDP บนพอร์ตเริ่มต้น 31337
ความคาดหวัง (ผลลัพธ์ที่ต้องการ):
- ผู้โทร ncat บนอุปกรณ์-2 ไม่สามารถ เพื่อสื่อสารโดยใช้ UDP เพื่อ ncat ผู้ฟังบนอุปกรณ์ 1
- ผู้โทร ncat บนอุปกรณ์-2 สามารถ เพื่อสื่อสารโดยใช้ TCP เพื่อฟัง ncat บนอุปกรณ์ 1 โดยไม่ใช้ ncat param
-ยู
.
ข้อมูลเพิ่มเติม:
- โดยใช้คำสั่ง
iptables -I อินพุต -p udp -j DROP
ส่งผลกระทบต่อการสื่อสารอื่นๆ มากเกินไป แต่ยังไงก็ตาม เพื่อแสดงให้เห็นถึงความไม่มีประสิทธิภาพของกฎนี้ในการป้องกันการสื่อสาร UDP ระหว่างอุปกรณ์ทั้งสองนี้
- ใช้ฮาร์ดแวร์: tp-link AC1750 (Archer C7 v5)
- ใช้เฟิร์มแวร์: dd-wrt พร้อมการตั้งค่า "โหมดการทำงาน = เกตเวย์"
- อุปกรณ์ที่อยู่หลังเกตเวย์ ได้แก่ UWP, iOS, Android ตัวอย่างที่ให้ไว้ที่นี่โดยใช้อุปกรณ์ UWP (Windows 10)
- ฉันเคยเห็น ฉันจะบล็อก UDP ในขณะที่ยังอนุญาตการเชื่อมต่อ UDP ขาออกกับ iptables ได้อย่างไรแต่ดูเหมือนจะไม่ได้ผลในกรณีของฉัน ดังที่แสดงโดยการพยายาม
iptables -I อินพุต -p udp -j DROP
.