ฉันกำลังพยายามใช้ไฟร์วอลล์ที่เรียบง่ายใน Fedora ซึ่งอินเทอร์เน็ตสาธารณะสามารถเข้าถึง SSH, HTTP, HTTPS และ Cockpit ได้ แต่ไม่มีอะไรอื่น ในขณะเดียวกัน เซิร์ฟเวอร์จะเรียกใช้ไมโครเซอร์วิสผ่าน Docker ที่สามารถสื่อสารระหว่างกันได้บนพอร์ต 8000-8999
ฉันตั้งค่านี้ในการติดตั้ง Fedora Server ใหม่ด้วยคำสั่งต่อไปนี้:
ไฟร์วอลล์ cmd --zone=public --add-service=ห้องนักบิน
ไฟร์วอลล์ cmd --zone=public --add-service=http
ไฟร์วอลล์ cmd --zone=public --add-service=https
ไฟร์วอลล์-cmd --zone=internal --add-source=192.168.1.65
ไฟร์วอลล์ cmd --zone=internal --add-source=192.168.1.66
ไฟร์วอลล์-cmd --zone=internal --add-port=8000-8999/tcp
firewall-cmd --runtime-to-permanent
เมื่อฉันตรวจสอบการกำหนดค่าด้วย --รายการทั้งหมด
ทุกอย่างถูกต้อง:
> ไฟร์วอลล์-cmd --list-all --zone=internal
ภายใน (ใช้งานอยู่)
เป้าหมาย: ค่าเริ่มต้น
icmp-block-inversion: ไม่
อินเทอร์เฟซ:
ที่มา: 192.168.1.65 192.168.1.66
บริการ: dhcpv6-client ssh
พอร์ต: 8000-8999/tcp
โปรโตคอล:
ไปข้างหน้า: ไม่
สวมหน้ากาก: ไม่
พอร์ตไปข้างหน้า:
พอร์ตต้นทาง:
icmp บล็อก:
กฎมากมาย:
> ไฟร์วอลล์ cmd --list-all --zone=public
สาธารณะ (ใช้งานอยู่)
เป้าหมาย: ค่าเริ่มต้น
icmp-block-inversion: ไม่
อินเทอร์เฟซ: enp2s0
แหล่งที่มา:
บริการ: ห้องนักบิน dhcpv6-client http https ssh
พอร์ต:
โปรโตคอล:
ไปข้างหน้า: ไม่
สวมหน้ากาก: ไม่
พอร์ตไปข้างหน้า:
พอร์ตต้นทาง:
icmp บล็อก:
กฎมากมาย:
อย่างไรก็ตาม เมื่อฉันทดสอบสิ่งนี้ ฉันสามารถตีได้ http://192.168.1.65:8080. ฉันสามารถเรียกใช้จากเครื่องบนเครือข่ายภายในเดียวกัน (192.168.128.128) เช่นเดียวกับคำขอสาธารณะจากเครื่องภายนอก เนื่องจากไม่ได้ระบุไว้ใน ภายใน
's แหล่งที่มา
ฉันคิดว่า firewalld จะไม่อนุญาตให้ส่งคำขอผ่าน
ฉันมีการกำหนดค่าอัตโนมัติ นักเทียบท่า
โซนกับ นักเทียบท่า0
อินเทอร์เฟซ แต่การเอาออกนั้นดูเหมือนจะไม่เปลี่ยนความสามารถของฉันในการเข้าสู่พอร์ตภายใน
เหตุใดฉันจึงสามารถขอ :8080 จากแหล่งที่ไม่ได้อยู่ในรายการได้สำเร็จ ภายใน
?