Score:0

สคริปต์ cmd ไฟร์วอลล์ CentOS เพื่ออนุญาตการเข้าถึงจาก IP ที่แสดงในแหล่งที่มาเท่านั้น

ธง id

ฉันใช้สคริปต์นี้เพื่อตั้งค่าไฟร์วอลล์ ฉันคาดว่าจะมีการเข้าถึง 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 เท่านั้น

cn flag
นั่นคือผลลัพธ์ที่ถูกต้อง คุณคาดหวังให้แสดงรายการพอร์ต บริการ ฯลฯ หรือไม่ นั่นไม่ใช่สิ่งที่เกิดขึ้น หากคุณต้องการให้ทุกอย่างอยู่ในโซนที่ใช้งานอยู่ ให้ใช้คำสั่งต่อไปนี้: `firewall-cmd --list-all-zones | sed -n '/calzone/,/rich/p'`
Score:0
ธง id

หลังจากอ่านเอกสารเกี่ยวกับไฟร์วอลล์ของ RedHat เป็นเวลาหลายชั่วโมงและหมั่นเขียนสคริปต์ ฉันก็จัดการเพื่อให้ได้ลักษณะการทำงานที่ต้องการ อย่างไรก็ตาม ฉันไม่มั่นใจ 100% เพราะฉันยังไม่ชัดเจนว่าเหตุใดการตั้งค่าอินเทอร์เฟซจึงไม่ทำงาน อย่างไรก็ตามดูเหมือนว่าสคริปต์นี้จะใช้งานได้ ฉันใช้โซนงานที่มีอยู่ซึ่งดูเหมือนจะใช้งานได้เมื่อฉันเพิ่มแหล่งที่มาเข้าไป

#!/bin/bash
#
# รีเซ็ตเป็นการติดตั้งเริ่มต้นของ firewalld
#
rm -f /etc/firewalld/โซน/*
ไฟร์วอลล์ cmd - โหลดใหม่เสร็จสมบูรณ์
firewall-cmd --runtime-to-permanent
ไฟร์วอลล์ cmd --reload
systemctl รีสตาร์ทไฟร์วอลล์
ไฟร์วอลล์สถานะ systemctl
#
# ลบบริการออกจากโซนทั้งหมด
#  
# วนซ้ำผ่านโซนเริ่มต้น
สำหรับโซนในบล็อกสาธารณะ dmz ภายนอกที่ทำงานที่บ้านภายในที่เชื่อถือได้
ทำ
# วนซ้ำผ่านบริการเริ่มต้น
    สำหรับ srv ใน $(firewall-cmd --list-services --zone=$zone)
    ทำ
      echo "กำลังลบบริการ $srv ออกจาก $zone"
      ไฟร์วอลล์ cmd --zone=$zone --remove-service=$srv
      ไฟร์วอลล์ cmd --zone=$zone --remove-service=$srv --permanent
    เสร็จแล้ว
เสร็จแล้ว
#
# ยกเลิกการเข้าชมสาธารณะทั้งหมดหรือไม่
# อนุญาตให้โซนงานเห็น ssh จากโฮสต์
#
ไฟร์วอลล์-cmd --zone=public --set-target=DROP --permanent
ไฟร์วอลล์ cmd --zone = งาน --add-source = 10.0.0.177 -- ถาวร
ไฟร์วอลล์ cmd --zone = งาน --add-service = ssh --permanent
firewall-cmd --runtime-to-permanent
ไฟร์วอลล์ cmd --reload
systemctl รีสตาร์ทไฟร์วอลล์
ไฟร์วอลล์สถานะ systemctl

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา