firewalld อนุญาตให้ SSH จาก IP เฉพาะที่เป็นส่วนหนึ่งของโซนอื่นเท่านั้น


0

เป้าหมายของฉันคือการให้บริการ ldap ให้กับลูกค้าทุกคนใน 172.26.143.0/24 แต่ SSH จะต้องมีให้ 172.26.143.3 เท่านั้น ฉันได้ลองทำสิ่งต่อไปนี้แล้ว:

# This is where eth0 is and no services/ports are assigned to this zone:
firewall-cmd --set-default-zone=drop
firewall-cmd --zone=internal --add-source=172.26.143.0/24 --permanent
firewall-cmd --zone=internal --add-service=ldap --permanent
firewall-cmd --zone=trusted --add-source=172.26.143.3 --permanent
firewall-cmd --zone=trusted --add-service=ssh --permanent
firewall-cmd --reload

ด้วยการกำหนดค่านี้ 172.26.143.3 ไม่สามารถ SSH ไปยังโฮสต์นี้ เฉพาะเมื่อฉันเพิ่ม ssh-service ไปที่ zone = internal ซึ่งฉันไม่ต้องการ ฉันจะทำสิ่งนี้ได้อย่างไร


ดูเหมือนว่าคุณควรย้ายโซนที่คุณไว้วางใจไปยังซับเน็ตแยก จากนั้นคุณจะมีซับเน็ตสำหรับผู้ดูแลระบบหากคุณต้องการพีซีสำหรับผู้ดูแลมากกว่าหนึ่งเครื่องแทนที่จะใช้ IP แอดเดรสขลังเดียว วิธีนี้จะช่วยแก้ปัญหาการกำหนดเขตทันทีของคุณ
Aeyoun

คำตอบ:


1

คำตอบที่เฉพาะเจาะจงคือการสร้างกฎสมบูรณ์ (กฎโดยตรงจะทำงานเกินไปฉันคิดว่า) เพราะพวกเขามีการประเมินก่อนแหล่งที่มาและอินเทอร์เฟซ

firewall-cmd --permanent --zone=trusted --add-rich-rule='rule family=ipv4 source address=172.26.143.3 accept'

ทำไมมันไม่ทำงานเป็นเพราะคำนิยามของแหล่งที่มาในโซนภายในและโซนที่เชื่อถือได้ทับซ้อนกัน นี่เป็นจุดอ่อน / รำคาญ / ข้อผิดพลาด (?) ของ firewalld ที่ไม่อนุญาตการทับซ้อนของแหล่งที่มา ใช้งานได้ แต่ขึ้นอยู่กับลำดับไฟร์วอลล์ที่จะทำการประเมินโซนเมื่อมีการทับซ้อนกันเช่นนี้ ฉันไม่ได้ดูรหัส แต่คำอธิบายบางอย่างบอกว่าเมื่อมีการทับซ้อนโซนจะถูกประเมินตามลำดับตัวอักษรและที่อื่น ๆ มันขึ้นอยู่กับลำดับที่กฎถูกกำหนดไว้ ในตัวอย่างของคุณทั้งสองโซนภายในกำลังรับทราฟฟิก SSH และวางมันลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.