แม้ว่าคำตอบจะได้รับการยอมรับและได้รับการโหวตฉันไม่คิดว่ามันจะเป็นคำตอบที่ถูกต้อง ฉันไม่พบคำอธิบายที่ชัดเจนในเอกสารประกอบ แต่จากพฤติกรรมที่นำมาใช้ดูเหมือนว่า:
- ส่วนต่อประสานและแหล่งที่มาถูกใช้เป็นตัวเลือก - โซนใดที่จะเปิดใช้งาน
- ทั้งสองจะถูกละเว้นสำหรับโซนเริ่มต้น (ใช้งานอยู่เสมอ)
ดังนั้นคำตอบคือ:
- ล็อคโซนเริ่มต้นพูดว่า "สาธารณะ" - ไม่มีพอร์ตที่เปิดอยู่หรือไม่มีบริการ
- ในโซนอื่นให้พูดว่า "งาน" - กำหนดแหล่งที่มาและเปิดพอร์ต
ตัวอย่างเช่นสมมติว่าโซนเริ่มต้นเป็นสาธารณะและไม่มีพอร์ตที่เปิดเพิ่มแหล่งที่มาและช่วงพอร์ตลงในโซน "งาน"
$ sudo firewall-cmd --zone=work --add-source=192.168.0.0/24
$ sudo firewall-cmd --zone=work --add-port=8080-8090/tcp
ตอนนี้ตรวจสอบโซนที่ใช้งานอยู่ (โซนเริ่มต้นใช้งานอยู่เสมอ):
$ sudo firewall-cmd --get-active-zones
คุณจะได้รับ:
work
sources: 192.168.0.0/24
ดังนั้นกฎโซน "งาน" จะใช้กับซับเน็ตเฉพาะ คุณจะมีช่วงของพอร์ตที่เปิดอยู่สำหรับ "whitelist" = subnetตามที่ร้องขอ และแน่นอนใช้--permanent
ตัวเลือกใน--add-xxx
งบเพื่อให้พฤติกรรมติด
ในทางกลับกันพอร์ตหรือบริการใด ๆ ที่คุณมีในโซน "สาธารณะ" (ค่าเริ่มต้น) จะใช้กับอินเทอร์เฟซและแหล่งที่อยู่ทั้งหมด
$ sudo firewall-cmd --list-all-zones
public (default)
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
work (active)
interfaces:
sources: 192.168.0.0/24
services: dhcpv6-client ipp-client ssh
ports: 8080-8090/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
ระบบเดียวกันใช้งานได้สำหรับอินเตอร์เฟส พูดโดยการเพิ่มส่วนต่อประสาน "ens3" ลงใน "work" zone:
$ sudo firewall-cmd --zone=work --add-interface=ens3
คุณจะใช้กฎโซน "งาน" กับคำขอใด ๆ จากอินเทอร์เฟซเฉพาะ - ตัวเลือกคร่าวๆมากกว่า "แหล่งที่มา"