iptables-Verwaltungstools für große Umgebungen

15

Die Umgebung, in der ich tätig bin, ist ein umfangreicher Webhosting-Vorgang (mehrere hundert verwaltete Server, fast alle öffentlichen Adressen usw. - alles, was über das Verwalten von ADSL-Links spricht, funktioniert wahrscheinlich nicht gut). Wir suchen nach einer Lösung, mit der Sie sowohl den zentralen Regelsatz (derzeit ca. 12.000 Einträge in iptables) als auch die hostbasierten Regelsätze, die wir für Kunden verwalten, komfortabel verwalten können. Unser zentraler Router-Regelsatz ändert sich einige Male am Tag, und die hostbasierten Regelsätze ändern sich möglicherweise 50 Mal im Monat (auf allen Servern, also möglicherweise eine Änderung pro fünf Server pro Monat).

Wir verwenden derzeit Filtergen (das sind Bälle im Allgemeinen und Super-Bälle in unserem Maßstab) und ich habe in der Vergangenheit bei anderen Jobs Shorewall verwendet (was Filtergen vorzuziehen wäre, aber ich denke, es muss sein etwas da draußen, das besser ist).

Die "Musts", die wir uns für jedes Ersatzsystem ausgedacht haben, sind:

  • Muss ziemlich schnell einen Regelsatz generieren (ein Filter-Lauf in unserem Regelsatz dauert 15-20 Minuten; das ist einfach verrückt) - das hängt mit dem nächsten Punkt zusammen:
  • Es muss eine Iptables-Restore-Stildatei generiert und diese in einem Treffer geladen werden, und nicht für jede Regeleinfügung muss Iptables aufgerufen werden
  • Die Firewall darf nicht über einen längeren Zeitraum heruntergefahren werden, während der Regelsatz neu geladen wird (dies ist wiederum eine Konsequenz aus dem obigen Punkt).
  • Muss IPv6 unterstützen (wir stellen nichts Neues bereit, das nicht IPv6-kompatibel ist)
  • Muss DFSG-frei sein
  • Muss Nur-Text-Konfigurationsdateien verwenden (da wir alles über die Revisionskontrolle ausführen und die Verwendung von Standard-Unix-Tools zur Textbearbeitung unsere SOP sind)
  • Muss sowohl RedHat als auch Debian unterstützen (bevorzugt verpackt, aber zumindest nicht offen gegen die Standards der beiden Distributionen sein)
  • Muss die Möglichkeit unterstützen, beliebige iptables-Befehle auszuführen, um Funktionen zu unterstützen, die nicht Teil der "Muttersprache" des Systems sind.

Alles, was diese Kriterien nicht erfüllt, wird nicht berücksichtigt. Folgendes sind unsere "nice to haves":

  • Sollte die Konfigurationsdatei "Fragmente" unterstützen (das heißt, Sie können einen Stapel von Dateien in ein Verzeichnis ablegen und der Firewall sagen, "alles in diesem Verzeichnis in den Regelsatz aufnehmen"; wir verwenden das Konfigurationsmanagement ausgiebig und möchten diese Funktion nutzen, um dienstspezifische Regeln automatisch bereitstellen)
  • Sollte rohe Tabellen unterstützen
  • Ermöglicht die Angabe eines bestimmten ICMP sowohl in eingehenden Paketen als auch in REJECT-Regeln
  • Sollte Hostnamen, die sich zu mehr als einer IP-Adresse auflösen, mit Würde unterstützen (wir wurden von dieser ein paar Mal mit filtergen erwischt; es ist ein ziemlich königlicher Schmerz im Hintern)
  • Je mehr optionale / seltsame iptables-Funktionen das Tool unterstützt (entweder nativ oder über vorhandene oder einfach zu beschreibende Plugins), desto besser. Wir verwenden ab und zu seltsame Funktionen von iptables, und je mehr davon "nur funktionieren", desto besser für alle.
womble
quelle
Ich werde beißen - was bedeuten die Begriffe "Bälle" und "Superbälle" in Ihrem Beitrag? Ich nehme an, Sie sprechen nicht über Gummisprungkugeln, aber ich kann nicht schließen, ob der Kontext "gut" oder "schlecht" bedeutet.
Evan Anderson
Bälle == schlecht. Super Bälle == extra schlimm.
womble
Stellen Sie bei so vielen Regeln sicher, dass Sie oben eine ACCEPT-Regel haben, die hergestellte und verwandte Verbindungen akzeptiert. PCs haben kein TCAM und so viele Regeln wirken sich auf die Leistung aus. Viel.
Thomas
@thomas: Ja, es gibt eine gewisse Optimierung, die in den Regelsatz einfließt. Das "Wissen" über die Optimierung in einem beliebigen Firewall-Tool wäre natürlich ein Bonus.
womble

Antworten:

4

Wenn Sie vielleicht einen Schritt von einem regelbasierten Ansatz zu einer Methode zur Beschreibung des erforderlichen Endzustands machen möchten, schauen Sie sich fwbuilder an.

Vorteile:

  • Es werden mehrere Firewalls unterstützt - Ihre Kern- und Host-basierten Regeln - aus einem Satz von Objekten
  • SQL-artiger Ansatz "Sag mir, was du willst" anstatt "Sag mir, wie es geht"
  • Es ist eine grafische Benutzeroberfläche, ähnlich wie bei kommerziellen Hardware-Schnittstellen von Anbietern, sodass es möglich ist, einige Aufgaben auf den Mitarbeiter- / Skills-Stack zu verlagern
  • unterstützt die meisten "komischen" Anwendungen, die ich ausprobiert habe
  • kann Regeln für eine Vielzahl von f / w-Implementierungen generieren - BSD / cicso / iptables / etc
  • trennt das Front-End vom Regel-Compiler, was mich hoffnungsvoll macht, dass die Autoren Wert auf Geschwindigkeit legen. NB Ich habe nichts in der Nähe der Skala, auf die Sie anspielen
  • Das Dateiformat ist nicht binär
  • macht IPv6
  • Erstellt eine Konfiguration im Iptables-Save-Stil für atomares und schnelles Laden

Nachteile:

  • Es ist eine GUI
  • Es ist unwahrscheinlich, dass das Verschieben Ihres vorhandenen Regelsatzes schmerzfrei ist
  • Während GPL und Debian Windows + OSX-Clients 30 Tage lang testen, hat noch niemand eine kostenlose Version für diese Betriebssysteme kompiliert. Daher hat der kommerzielle Arm der Entwickler ein Monopol auf diese Binaries
  • Das Dateiformat ist technisch XML; Hinweis: Lassen Sie sich dadurch nicht abschrecken: Schauen Sie sich die von ihnen bereitgestellten Tools an (Sie können sie beispielsweise mit der GUI-Binärdatei über die CLI bearbeiten) und die bereits vorhandenen CLI-XML-Tools scale - ein Anschein von Metadaten + Struktur ist keine / schlechte / Sache! Es unterscheidet sich ziemlich gut über Bearbeitungen, IIRC.

Link: http://www.fwbuilder.org

Jonathan Matthews
quelle
Hrm ... ich schau mal. Das Vorhandensein einer GUI (ganz zu schweigen von XML) lässt mich ziemlich heftig zucken, aber Sie bringen einige interessante Ideen auf (einzelne Regeln für die gesamte Infrastruktur). Das OS X-Ding wird kein Problem sein.
womble
Ich stimme zu, eine GUI hat mich ursprünglich zu WTF gemacht, aber ich war auch zufrieden mit dem, was ich von der CLI-Seite gesehen habe. Wie dynamisch ist Ihr Setup überhaupt? Wäre es 10 Änderungen pro Tag oder 10 Änderungen pro Jahr? Das könnte hier ein nützlicher Faktor sein, um Einzelheiten zu erläutern. Eine nette Funktion des XML-Dateiformats könnte auch sein, dass Sie mit XML-fähigen Tools die gesamte Konfiguration in einer Datei haben und Objekte mit einer Definition verwenden können, aber ein knotenspezifisches Änderungsprotokoll zur Dokumentation der Konfigurationen und Änderungssätze einzelner Server erstellen können . Nur ein Gedanke ...
Jonathan Matthews
@ Jonathan: Du hast recht, die Dynamik des Regelsatzes ist wichtig zu wissen. Ich habe die Frage bearbeitet. Es ist ein paar Mal am Tag, die meisten Arbeitstage für den Kern-Regelsatz.
womble
3

schreibe dein Eigenes. ernsthaft - in dieser Größenordnung ist es vernünftig.

benutze ipset und / oder viele iptable Tabellen / Untertabellen. Laden Sie nach Möglichkeit nur einige Untertabellen / einige Sätze von ipset neu - dies beschleunigt die Neukonfiguration.

Wahrscheinlich tun Sie es bereits, aber es ist trotzdem erwähnenswert - verwenden Sie verschachtelte Tabellen, um die Auslastung des Routers und die durchschnittliche Anzahl von Suchvorgängen zu verringern, die zum Einrichten neuer Verbindungen für Pakete erforderlich sind. Offensichtlich - A FORWARD - m state - state ESTABLISHED, RELATED ist Ihre oberste Regel.

pQd
quelle
"Write our own" ist nicht vom Tisch, aber es hat uns in erster Linie gefiltert - es wurde von einem ehemaligen Mitarbeiter geschrieben. Wir würden es vorziehen, kein weiteres Firewall-Management-Tool zu produzieren, wenn dies überhaupt möglich ist.
womble
IPSET ist für große Regelsätze blitzschnell. "Speichern Sie mehrere IP-Adressen oder Portnummern und vergleichen Sie sie mit der Sammlung von iptables auf einen Schlag. Aktualisieren Sie die iptables-Regeln dynamisch mit IP-Adressen oder Ports ohne Leistungseinbußen. Drücken Sie komplexe, auf IP-Adressen und Ports basierende Regelsätze mit einer einzigen iptables-Regel aus und profitieren Sie von der Geschwindigkeit von IP-Sätzen "Ich verwende es mit Shorewall. Ich habe keine Ahnung, wie Shorewall auf Ihrer Skala durchführen würde.
Artifex
2

Heilige Bälle (das Thema am Leben erhalten!) Mann ... 12.000 Grundregeln?

Ich nehme an, Sie haben alle einfachen Optionen in Betracht gezogen, wie einfach die Sets in CVS abzulegen. Puppet oder CFengine?

In Anbetracht der von Ihnen gegebenen allgemeinen Übersicht würde ich dringend empfehlen, Ihr Netzwerkdesign neu zu bewerten. Ich bin wahrscheinlich ein bisschen zu simpel, aber ich kann einfach kein Design ergründen, das 12k-Iptables-Regeln erfordern würde. Dies hört sich wirklich nach etwas an, das von einer SLB-Lösung mehr profitiert als von einer besseren Verwaltung der Firewall-Regeln.

Wie fügt man einen Kommentar oder eine "Antwort" hinzu?

Greeblesnort
quelle
Sie benötigen ein Mindestmaß an Reputation, um Kommentare abzugeben. Wenn Sie dies tun, wird ein Link angezeigt.
Jay_Dubya
Es gibt wahrscheinlich ein gewisses Maß an Redundanz in unseren iptables-Regeln, aber das hängt größtenteils damit zusammen, dass filtergen möglicherweise nicht so effizient ist, wie es könnte. Wir verfügen jedoch über einen IP-Speicherplatz von / 19 und VLANs pro Kunde sowie über eine recht restriktive "Standardrichtlinie" (die Ausnahmen pro IP erfordert, um Ports zu öffnen, wie dies von Kunden gefordert wird). Wir werden sicherlich nicht in der Lage sein, mehr als ein paar dieser Regeln loszuwerden. Oh, und ja, wir verwenden Puppet bereits, und wir werden nicht damit beginnen, Regelsätze auf unserer Skala von Operationen von Hand zu schreiben.
womble
Nun, Sie haben sicherlich einen größeren IP-Bereich als ich, aber ich finde es immer noch schwierig, so viele Regeln irgendwie zu rechtfertigen. Haben Sie darüber nachgedacht, diese in eine Baumstruktur aufzuteilen, in der Sie Fall-Thru-Regel-Setups an Chokepoints verwenden können? dh alle Nur-Web-Server in Subnetz X, alle Web + SMTP-Server in Subnetz Y? Sie müssten sie nicht wirklich vernetzen, sondern sie logisch hinter einer gestuften Firewall gruppieren. Entschuldigung, wenn ich an dieser Stelle nur Rauschen hinzufüge. Ich mag meine Firewall-Regelsätze kurz und brutal =)
Greeblesnort
Wir sind nicht wirklich in der Lage, solche Dinge zu "stufen". Wir sind größtenteils ein dedizierter Server-Hosting-Anbieter. Was unsere Kunden von Tag zu Tag mit ihren Rechnern tun, kann sich ändern und erfordert viel mehr Tanzen als nur eine dedizierte Infrastruktur für einen internen Service.
womble
0

12000 Regeln? bist du verrückt? Haben Sie keine Leistungsprobleme mit dieser Filterung? Ich kann nicht sehen, warum Sie 12.000 Regeln benötigen würden? Wie vergewissern Sie sich, dass Ihr Regelsatz die Richtlinie tatsächlich erzwingt?

Was ist die Politik?

Wie testen Sie Ihre Richtlinie?

12.000 Regeln brechen möglicherweise jede Sicherheitsregel im Buch.

Der Unix-Hausmeister
quelle
-2

Sie können auch eine SAAS-Lösung zum Verwalten von iptables ausprobieren -> https://www.efw.io/Forum. Sie kann auch die AWS-Cloud-Integration durchführen.

Paul Ma
quelle
Ich bezweifle, dass ein SaaS-Angebot DFSG-frei sein wird.
womble