การแข่งขันของคุณไม่ถูกต้อง พวกเขาจะยิงถ้า ปลายทาง เคยเป็น 192.168.1.2
. ในกรณีของคุณ แหล่งที่มา เป็น 192.168.1.2
และปลายทางคือ 192.168.1.3
.
นอกจากนี้ ดูเหมือนว่าคุณต้องการเพียงแค่เท่านั้น ดีเอ็นเอท
กฎ หรือ ก เปลี่ยนเส้นทาง
กฎไม่ใช่ทั้งสองอย่าง
กฎการกรองควรอยู่ใน ป้อนข้อมูล
chain เนื่องจากปลายทางคือเครื่องท้องถิ่น ฉันไม่เห็นประโยชน์ที่จะใช้ สถานะ
โมดูลในกฎนี้ แต่อาจจำเป็นต้องเพิ่มกฎที่เกี่ยวข้องกับการติดตามการเชื่อมต่ออื่นๆ ไม่ชัดเจนว่าสิ่งเหล่านี้จำเป็นหรือไม่ ขึ้นอยู่กับส่วนที่เหลือของไฟร์วอลล์ หากไม่มีสิ่งใดในไฟร์วอลล์ ก็ไม่จำเป็นต้องมีกฎการกรอง เนื่องจากทุกอย่างจะถูกเปิดใช้งานอยู่แล้ว
ยังไงซะ, สถานะ
ล้าสมัยคุณควรใช้ คอนแทรค
โมดูล, ctstate
จับคู่แทน
ดูเหมือนว่าคุณต้องการกฎสองข้อต่อไปนี้:
iptables -t nat -A PREROUTING -s 192.168.1.2 -d 192.169.1.3 -p udp --dport 1003 -j REDIRECT --to-ports 1004
iptables -t filter -A INPUT -s 192.168.1.2 -p udp --dport 1004 -j ยอมรับ
กฎข้อแรกเปลี่ยนเส้นทางแพ็กเก็ตขาเข้าเป็น 1003 ไปยังพอร์ต 1004 (และย้อนกลับสำหรับแพ็กเก็ตขาออก) กฎข้อที่สองอนุญาตให้แพ็กเก็ตที่แปลแล้วเข้าถึงกระบวนการในเครื่อง