จะสร้างกฎไฟร์วอลล์อัตโนมัติได้อย่างไร?


2

มีระบบถ่ายทอดสดที่ซับซ้อน - vlans น้อย ในแต่ละเซิร์ฟเวอร์มีเซิร์ฟเวอร์ลินุกซ์และทุกเซิร์ฟเวอร์มีบริการต่างๆ บริการเชื่อมต่อกัน - ตัวอย่างเช่นบริการ http บนโฮสต์ A เชื่อมต่อกับบริการ mysql บนโฮสต์ B ไปยังพอร์ต 3306 / tcp

ฉันต้องการแมปการกำหนดค่าประเภทนี้โดยอัตโนมัติกับฐานข้อมูลและสร้างกฎไฟร์วอลล์สำหรับเซิร์ฟเวอร์แต่ละเครื่อง - เพื่ออนุญาตการเชื่อมต่อที่จำเป็นระหว่างโฮสต์เท่านั้น

ฉันคิดเกี่ยวกับ:

  • รับรายการการเชื่อมต่อโดยใช้ netstat บนเซิร์ฟเวอร์แต่ละเครื่อง (หรือการเชื่อมต่อการบันทึกจาก iptables?) จากนั้นใส่ลงในฐานข้อมูล
  • เห็นภาพโดยใช้ graphvis หรืออะไรทำนองนั้น
  • สร้างกฎไฟร์วอลล์ตามกฎจากฐานข้อมูล
  • สร้างกฎ iptables เพื่อบันทึกการเชื่อมต่อซึ่งไม่เหมาะกับกฎก่อนหน้าและเตือนเกี่ยวกับพวกเขา

เป็นสิ่งที่สามารถทำได้ดีขึ้น / เร็วขึ้น / วิธีอัตโนมัติมากขึ้น? อาจจะไม่จำเป็นต้องบูรณาการล้อหรือไม่

อัปเดต: ส่วน "ยาก" ไม่ได้สร้างกฎไฟร์วอลล์ แต่สร้างโดยอัตโนมัติจากนั้นจัดการรายการการเชื่อมต่อที่ต้องการ

คำตอบ:


3

ในความคิดของฉันทางออกที่ดีที่สุดของคุณคือการใช้เครื่องมือจัดการการกำหนดค่าเช่นPuppet , Chef , CFEngineหรือAnsibleเพื่อให้คุณสามารถกำหนดนโยบายของคุณตามประเภทโฮสต์และนำไปใช้กับโฮสต์ใหม่


ตกลง - แต่ฉันต้องการจะทำวิธีอัตโนมัติให้มากกว่านี้โดยไม่ต้องเขียนกฎ "ansible / puppet" ด้วยมือ "ด้วยมือ ฉันไม่ทราบว่าระบบทำงานอย่างไร - ฉันต้องการสร้างกฎเพิ่มเติม "สด" - ด้วยข้อมูลเมื่อการเปลี่ยนแปลงพฤติกรรมของระบบ (ตัวอย่างเช่นเมื่อเซิร์ฟเวอร์ A แทนที่จะเชื่อมต่อกับเซิร์ฟเวอร์ B / mysql เริ่มเชื่อมต่อกับเซิร์ฟเวอร์ C / ssh)
undefine

2

บางเวลาที่ผ่านมาฉันใช้fermและสคริปต์ทุบตีที่เรียบง่ายและกำหนดเองเพื่อสร้าง rulesets และใส่ในลำดับที่ถูกต้อง "รวม" คำสั่งในferm

หากคุณต้องการการเชื่อมต่อการบันทึก ฯลฯ ... คุณสามารถใช้ulog-mysqlและบันทึกข้อมูลเฉพาะที่ตรงกับกฎ iptables เฉพาะใน mysql และกราฟสิ่งที่คุณต้องการจากจุดนี้ไปข้างหน้า

ความเป็นไปได้อีกอย่างคือใช้บทบาท iptables ในการสำรวจบางทีคุณอาจพบว่าบทบาทที่ดีกว่าสำหรับฉากของคุณ


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