ฉันมีไฟล์กฎ iptable บนเชน INPUT ที่ฉันมี
-A INPUT -i em1 -p tcp -m tcp --dport 54000 -j ACCEPT
-A INPUT -i em1 -p tcp -m tcp --dport 30000 -j ACCEPT
-A INPUT -i em1 -p udp -m udp --dport 54000 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
แล้วฉัน iptables-restore < rule_file
และฉันเริ่มเซิร์ฟเวอร์ UDP ที่พอร์ต 30000 ซึ่งไม่ใช่พอร์ต UDP ที่อนุญาต 54000
แต่เซิร์ฟเวอร์ UDP ยังคงได้รับแพ็กเก็ต UDP ขาเข้าใน 30000
เกิดอะไรขึ้นกับสิ่งนี้?
BTW, iptables -L -n
, ฉันเข้าใจ:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:54000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:30000
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:54000
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ES
TABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0
ฉันใช้ nmap จากเครื่องอื่นเพื่อตรวจสอบเครื่องนี้
nmap -port 30000
หรือ
nmap -port 54000
ผลแสดงให้เห็นว่าทั้งสองพอร์ตปิด!