เครื่องมือการจัดการ iptables สำหรับสภาพแวดล้อมขนาดใหญ่


15

สภาพแวดล้อมที่ฉันทำงานอยู่นั้นเป็นการดำเนินการบนเว็บโฮสติ้งขนาดใหญ่ (เซิร์ฟเวอร์หลายร้อยเครื่องภายใต้การจัดการการจัดการที่อยู่เกือบทุกสาธารณะ ฯลฯ ดังนั้นสิ่งใดก็ตามที่พูดถึงการจัดการลิงค์ ADSL นั้นไม่น่าจะทำงานได้ดี) และเรา กำลังมองหาบางอย่างที่สะดวกสบายในการจัดการทั้งชุดกฎหลัก (ประมาณ 12,000 รายการใน iptables ตามจำนวนปัจจุบัน) พร้อมชุดกฎพื้นฐานที่เราจัดการให้กับลูกค้า ชุดกฎเราเตอร์หลักของเรามีการเปลี่ยนแปลงวันละสองสามครั้งและชุดกฎที่ใช้โฮสต์จะเปลี่ยนเดือนละ 50 ครั้ง (ในเซิร์ฟเวอร์ทั้งหมดดังนั้นอาจมีการเปลี่ยนแปลงหนึ่งครั้งต่อเซิร์ฟเวอร์ห้าเครื่องต่อเดือน)

ขณะนี้เรากำลังใช้ filtergen (ซึ่งก็คือลูกบอลทั่วไปและซุปเปอร์บอลในระดับปฏิบัติการของเรา) และฉันเคยใช้ชอร์วอลล์ในอดีตที่งานอื่น ๆ (ซึ่งน่าจะดีกว่ากับ filtergen แต่ฉันคิดว่ามันต้องมี เป็นอะไรที่ดีกว่านั้น)

"musts" ที่เรามีมาพร้อมกับระบบการเปลี่ยนใด ๆ คือ:

  • ต้องสร้างชุดกฎอย่างรวดเร็ว (ตัวกรองใช้ชุดกฎของเราใช้เวลา 15-20 นาทีนี่เป็นเพียงสติ) - มันเกี่ยวข้องกับประเด็นต่อไป:
  • ต้องสร้างไฟล์สไตล์ iptables-restore และโหลดในครั้งเดียวไม่ใช่ call iptables สำหรับทุกกฎการแทรก
  • ต้องไม่ใช้ไฟร์วอลล์เป็นระยะเวลานานในขณะที่โหลดชุดกฎ (อีกครั้งนี่เป็นผลมาจากประเด็นข้างต้น)
  • ต้องรองรับ IPv6 (เราไม่ได้ปรับใช้สิ่งใหม่ที่ไม่รองรับ IPv6)
  • ต้องปลอดจาก DFSG
  • ต้องใช้ไฟล์การกำหนดค่าข้อความล้วน (ในขณะที่เรารันทุกอย่างผ่านการควบคุมการแก้ไขและการใช้เครื่องมือจัดการข้อความ Unix มาตรฐานคือ SOP ของเรา)
  • ต้องรองรับทั้ง RedHat และ Debian (เป็นแพ็คเกจที่ต้องการ แต่อย่างน้อยที่สุดจะต้องไม่เป็นปฏิปักษ์กับมาตรฐานของ distro อย่างใดอย่างหนึ่ง)
  • ต้องรองรับความสามารถในการเรียกใช้คำสั่ง iptables โดยพลการเพื่อรองรับคุณสมบัติที่ไม่ได้เป็นส่วนหนึ่งของ "ภาษาพื้นเมือง" ของระบบ

สิ่งใดที่ไม่เป็นไปตามเกณฑ์เหล่านี้จะไม่ได้รับการพิจารณา ต่อไปนี้เป็น "ยินดีที่ได้รับ" ของเรา:

  • ควรสนับสนุนไฟล์ config "fragments" (นั่นคือคุณสามารถปล่อยไฟล์จำนวนมากในไดเรกทอรีและพูดกับไฟร์วอลล์ "รวมทุกอย่างในไดเรกทอรีนี้ใน ruleset" เราใช้การจัดการการกำหนดค่าอย่างกว้างขวางและต้องการใช้คุณลักษณะนี้เพื่อ ให้กฎเฉพาะบริการโดยอัตโนมัติ)
  • ควรสนับสนุนตารางดิบ
  • ควรอนุญาตให้คุณระบุ ICMP เฉพาะในแพ็กเก็ตขาเข้าและกฎการปฏิเสธ
  • ควรสนับสนุนชื่อโฮสต์ที่แก้ไขได้มากกว่าหนึ่งที่อยู่ IP (เราได้รับการตรวจสอบโดยตัวกรองสองสามครั้งมันเป็นความเจ็บปวดในก้น)
  • คุณลักษณะเพิ่มเติมของ iptables แปลก ๆ ที่เครื่องมือสนับสนุน (ไม่ว่าจะเป็นแบบดั้งเดิมหรือผ่านปลั๊กอินที่มีอยู่หรือเขียนได้ง่าย) ยิ่งดี เราใช้คุณสมบัติที่แปลกของ iptables ในตอนนี้และยิ่งคุณสมบัติที่ "ใช้งานได้ดี" ยิ่งดีสำหรับทุกคน

ฉันจะกัด - คำว่า "ball" และ "super ball" ในการโพสต์ของคุณคืออะไร? ฉันเดาว่าคุณไม่ได้พูดถึงทรงกลมยางเด้ง แต่ฉันไม่สามารถอนุมานได้ว่าบริบทหมายถึง "ดี" หรือ "ไม่ดี"
Evan Anderson

ลูก == ไม่ดี ลูกซุปเปอร์ == ไม่ดีเป็นพิเศษ
womble

ด้วยกฎมากมายนั้นตรวจสอบให้แน่ใจว่าคุณมีกฎ ACCEPT ที่ด้านบนยอมรับการเชื่อมต่อที่สร้างขึ้นและเกี่ยวข้อง พีซีไม่มี TCAM และกฎหลายข้อมีผลต่อประสิทธิภาพ มาก.
โทมัส

@ โทมัส: ใช่มีจำนวนของการเพิ่มประสิทธิภาพที่จะเข้าสู่ ruleset การมี "ความรู้" เกี่ยวกับการปรับให้เหมาะสมในเครื่องมือไฟร์วอลล์ใดก็ตามที่เลือกจะเป็นโบนัสแน่นอน
womble

คำตอบ:


4

หากคุณอาจต้องการที่จะย้ายจากวิธีการที่ขับเคลื่อนด้วยกฎไปยัง "อธิบายถึงสถานะสุดท้ายที่จำเป็น" ในการทำสิ่งต่าง ๆ ให้ดูที่ fwbuilder

ข้อดี:

  • รองรับไฟร์วอลล์หลายตัว - กฎหลัก + โฮสต์ของคุณ - จากออบเจ็กต์ 1 ชุด
  • SQL-esque "บอกสิ่งที่คุณต้องการ" แทนที่จะเป็น "บอกฉันว่าจะทำอย่างไร" (NB ฉันไม่ได้บอกว่ามี SQL อยู่ในนั้น! เพียงแค่มันเป็นคำอธิบาย Vs โพรซีเดอร์ :-)
  • มันเป็น GUI ซึ่งก็เหมือนกับอินเทอร์เฟซผู้ขายฮาร์ดแวร์ f / w ของผู้ค้าดังนั้นจึงเป็นไปได้ที่จะผลักภาระบางอย่างให้กับพนักงาน / ทักษะกองซ้อน
  • รองรับการใช้งานส่วนใหญ่ "แปลก" ฉันได้ลอง
  • สามารถสร้างกฎสำหรับความหลากหลายของการใช้งาน f / w - BSD / cicso / iptables / etc
  • แยกส่วนหน้าจากกฎคอมไพเลอร์ซึ่งทำให้ฉันหวังว่าความเร็วเป็นสิ่งที่ผู้เขียนกังวล NB ฉันไม่ได้อยู่ใกล้ขนาดที่คุณยิ่งทำให้ตกใจ
  • รูปแบบไฟล์ไม่ใช่ไบนารี
  • IPv6 ทำอะไร
  • สร้างการกำหนดค่าสไตล์บันทึก iptables สำหรับการโหลดอะตอมมิกและรวดเร็ว

จุดด้อย:

  • มันเป็น GUI
  • การย้ายชุดกฎที่มีอยู่ของคุณไม่น่าจะเป็นไปได้อย่างราบรื่น
  • ในขณะที่ GPL และใน Debian ลูกค้า Windows + OSX เป็นรุ่นทดลองใช้ 30 วันเนื่องจากไม่มีการคอมไพล์ข้ามเวอร์ชั่นฟรีสำหรับระบบปฏิบัติการเหล่านั้น ดังนั้นแขนเชิงพาณิชย์ของผู้พัฒนาจึงมีการผูกขาดกับไบนารีเหล่านั้น
  • รูปแบบไฟล์เป็น XML ทางเทคนิค NB อย่าปล่อยให้เรื่องนี้ทำให้คุณ: ดูเครื่องมือที่พวกเขาให้ (คุณสามารถใช้ gui ไบนารีเพื่อจัดการมันผ่าน CLI ตัวอย่าง), เครื่องมือ CLI XML ที่มีอยู่แล้วและจำไว้ว่า - ที่ของคุณ สเกล - รูปร่างหน้าตาของโครงสร้างเมตาดาต้า + บางส่วนนั้นไม่ได้มีอะไรที่ไม่ดี มันแตกต่างอย่างมากกับการแก้ไข IIRC

ลิงก์: http://www.fwbuilder.org


อืม ... ข้าจะดู การมีอยู่ของ GUI (ไม่ต้องพูดถึง XML) ทำให้ฉันกระตุกอย่างรุนแรง แต่คุณเพิ่มแนวคิดที่น่าสนใจ (กฎชุดเดียวสำหรับโครงสร้างพื้นฐานทั้งหมด) สิ่งที่ OS X จะไม่เป็นปัญหา
womble

ฉันเห็นด้วย GUI ทำ WTF ให้ฉันตั้งแต่แรก แต่ฉันก็พอใจกับสิ่งที่ฉันเห็นจากด้าน CLI ด้วย ตั้งค่าของคุณเป็นแบบไดนามิกอย่างไร มันจะเป็น 10 การเปลี่ยนแปลงต่อวันหรือ 10 การเปลี่ยนแปลงต่อปี? นั่นอาจเป็นปัจจัยที่มีประโยชน์สำหรับรายละเอียดที่นี่ นอกจากนี้ฟังก์ชั่นที่ดีของรูปแบบไฟล์ XML อาจเป็นเช่นนั้นได้โดยใช้เครื่องมือที่รับรู้ถึง XML คุณสามารถกำหนดค่าทั้งหมดในไฟล์เดียวโดยใช้ออบเจ็กต์คำจำกัดความเดียว แต่สร้างการเปลี่ยนแปลงเฉพาะโหนดสำหรับบันทึกการกำหนดค่า . แค่คิด ...
Jonathan Matthews

@ โจนาธาน: ถูกต้องความไดนามิกของชุดกฎเป็นสิ่งสำคัญที่ต้องรู้ ฉันแก้ไขคำถามแล้ว มันเป็นวันทำงานสองสามครั้งต่อวันสำหรับกฎหลัก
womble

3

เขียนของคุณเอง อย่างจริงจัง - ในระดับนี้ถือว่าสมเหตุสมผล

ใช้ipsetและ / หรือตาราง / subtables มากมายของ iptable เมื่อใดก็ตามที่เป็นไปได้ให้โหลดไฟล์ย่อยบางไฟล์ / ชุด ipset บางชุด - ซึ่งจะเพิ่มความเร็วในการกำหนดค่าใหม่

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


"เขียนของเราเอง" ไม่ได้อยู่นอกโต๊ะ แต่มันเป็นสิ่งที่ทำให้เรามี filtergen ในตอนแรกมันถูกเขียนโดยพนักงานเก่าตอนนี้ เราต้องการที่จะไม่ผลิตเครื่องมือจัดการไฟร์วอลล์อีกอันถ้าเป็นไปได้
womble

IPSET นั้นเร็วเกินไปสำหรับชุดกฎขนาดใหญ่ "เก็บที่อยู่ IP หรือหมายเลขพอร์ตจำนวนมากและจับคู่กับการรวบรวมโดย iptables ที่หนึ่ง swoop แบบไดนามิกปรับปรุงกฎ iptables กับที่อยู่ IP หรือพอร์ตโดยไม่มีการลงโทษประสิทธิภาพแสดงที่อยู่ IP ที่ซับซ้อนและชุดกฎที่อิงกับกฎเดียวกับกฎ iptables เดียวและรับประโยชน์จากความเร็ว ของชุด IP "ฉันใช้กับ shorewall ฉันไม่มีความคิดว่าจะให้การแสดงในระดับที่คุณต้องการ
artifex

2

ลูกศักดิ์สิทธิ์ (รักษาธีมไว้!) มนุษย์ ... กฎหลัก 12,000 กฎ?

ฉันสมมติว่าคุณได้พิจารณาตัวเลือกง่าย ๆ ทุกอย่างอย่างง่าย ๆ เพียงแค่ดรอปเซ็ตลงใน CVS? หุ่นเชิดหรือ CFengine?

จริงๆแล้วจากภาพรวมคร่าวๆที่คุณให้มาฉันขอแนะนำให้ประเมินการออกแบบเครือข่ายของคุณใหม่ ฉันอาจจะง่ายเกินไปเล็กน้อย แต่ฉันก็ไม่สามารถเข้าใจการออกแบบที่จำเป็นต้องใช้กฎ iptables 12k ดูเหมือนว่าบางสิ่งที่จะได้ประโยชน์จากโซลูชันประเภท SLB มากกว่าวิธีที่ดีกว่าในการจัดการกฎไฟร์วอลล์

ในหมายเหตุด้านหนึ่งจะเพิ่มความคิดเห็นอย่างไรกับการเพิ่ม "คำตอบ"?


คุณต้องมีชื่อเสียงขั้นต่ำในการแสดงความคิดเห็น เมื่อคุณทำลิงค์จะปรากฏขึ้น
jay_dubya

อาจมีความซ้ำซ้อนจำนวนหนึ่งในกฎ iptables ของเรา แต่ส่วนใหญ่ฟังก์ชั่นของตัวกรองอาจจะไม่ได้ประสิทธิภาพเท่าที่ควร เรามี / 19 ของพื้นที่ IP แม้ว่าและต่อ VLAN ของลูกค้าและค่อนข้าง จำกัด "นโยบายเริ่มต้น" (จำเป็นต้องมีข้อยกเว้นต่อ IP เพื่อเปิดพอร์ตตามที่ลูกค้าต้องการ) แน่นอนว่าเราจะไม่สามารถกำจัดกฎเหล่านี้ได้มากกว่าสองสามข้อ โอ้และใช่เราใช้หุ่นเชิดแล้วและเราไม่ได้เริ่มเขียนกฎด้วยมือในระดับปฏิบัติการของเรา
womble

แน่นอนว่าคุณรักษาพื้นที่ IP ที่ใหญ่กว่าตัวเอง แต่ฉันก็ยังพบว่ามันยากที่จะพิสูจน์ว่ากฎหลายข้อนั้นยาก คุณเคยคิดที่จะแยกสิ่งเหล่านี้ออกเป็นโครงสร้างต้นไม้ที่คุณสามารถใช้การตั้งค่ากฎตกผ่านที่ chokepoints หรือไม่? เช่นเซิร์ฟเวอร์ทั้งหมดของเว็บเท่านั้นในเครือข่ายย่อย X, เซิร์ฟเวอร์ web + smtp ทั้งหมดในเครือข่ายย่อย Y หรือไม่ คุณไม่จำเป็นต้อง subnet พวกมันออกไปเพียงแค่จัดกลุ่มมันไว้หลังไฟร์วอลล์ที่ทำเป็นชั้น ... ขออภัยถ้าฉันเพิ่งจะเพิ่มจุดรบกวน ... ฉันชอบก

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

0

12,000 กฎ คุณเป็นบ้า คุณไม่ประสบปัญหาด้านประสิทธิภาพเมื่อมีการกรองจำนวนนี้เกิดขึ้นหรือไม่ ฉันไม่เห็นว่าทำไมคุณต้องมี 12,000 กฎ คุณจะตรวจสอบได้อย่างไรว่าชุดกฎที่คุณใช้นั้นบังคับใช้นโยบายจริง ๆ

นโยบายคืออะไร

คุณทดสอบนโยบายของคุณอย่างไร

อาจมี 12,000 กฎแบ่งกฎความปลอดภัยในหนังสือ


-2

นอกจากนี้คุณยังสามารถลองใช้โซลูชัน SAAS เพื่อจัดการ iptables -> https://www.efw.io/Forumสามารถทำการรวมระบบคลาวด์ AWS ได้เช่นกัน


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