ฉันใช้สคริปต์นี้เพื่อตั้งค่าไฟร์วอลล์ ฉันคาดว่าจะมีการเข้าถึง ssh จาก IP เดียวเท่านั้น แต่นั่นไม่ใช่กรณีหลังจากการทดสอบ อะไรหายไป?
#!/bin/bash
#
# รีเซ็ตเป็นการติดตั้งเริ่มต้นของ firewalld
#
rm -f /etc/firewalld/โซน/*
ไฟร์วอลล์ cmd - โหลดใหม่เสร็จสมบูรณ์
firewall-cmd --runtime-to-permanent
ไฟร์วอลล์ cmd --reload
#
# สร้าง / ตั้งค่าโซนที่กำหนดเอง
#
ไฟร์วอลล์ cmd --calzone โซนใหม่ --ถาวร
ไฟร์วอลล์ cmd --reload
ไฟร์วอลล์ cmd --zone=calzone --add-service={ssh,dhcpv6-client}
ไฟร์วอลล์ cmd --zone=calzone --add-source=10.0.0.177
ไฟร์วอลล์-cmd --change-interface enp1s0 --zone calzone --permanent
firewall-cmd --runtime-to-permanent
ไฟร์วอลล์ cmd --reload
เมื่อฉันเรียกใช้: firewall-cmd --get-active-zones ฉันได้รับสิ่งต่อไปนี้
คัลโซเน่
อินเทอร์เฟซ: enp1s0
แหล่งที่มา: 10.0.0.177
ฉันเข้าใจว่าการตั้งค่าอินเทอร์เฟซจะนำทราฟฟิกทั้งหมดจากอินเทอร์เฟซนั้นไปยังโซนนั้นก่อน และเนื่องจากมีรายการในแหล่งที่มา ทราฟฟิกจึงถูกจำกัดไว้ที่ IP เหล่านั้น ขอบคุณล่วงหน้า
เพื่อตอบสนองต่อความคิดเห็นของ Nasir คำสั่งนี้ firewall-cmd --list-all-zones | sed -n '/calzone/,/rich/p' สร้าง:
แคลโซเน (ใช้งานอยู่)
เป้าหมาย: ค่าเริ่มต้น
icmp-block-inversion: ไม่
อินเทอร์เฟซ: enp1s0
แหล่งที่มา: 10.0.0.177
บริการ: dhcpv6-client ssh
พอร์ต:
โปรโตคอล:
ไปข้างหน้า: ไม่
สวมหน้ากาก: ไม่
พอร์ตไปข้างหน้า:
พอร์ตต้นทาง:
icmp บล็อก:
กฎมากมาย:
ฉันยังรีสตาร์ทไฟร์วอลล์ deamon และสามารถ ssh จาก 10.0.0.188 ฉันคาดว่าจะเข้าถึงได้จาก 10.0.0.177 เท่านั้น