iptables, die Standard-Linux-Firewall, speichert keine Regeln zwischen Neustarts. Sie müssen sich selbst darum kümmern. Es gibt viele Möglichkeiten, dies zu tun. Was ist der kanonische Weg, dies zu tun? Was sind Best Practices?
Ich werde mit meiner eigenen Lösung antworten, aber ich bin an anderen / besseren Lösungen interessiert.
Antworten:
Hier sind einige Beispielregeln. Speichern Sie sie in /etc/iptables.rules
Fügen Sie diese Zeile am Ende von / etc / network / interfaces hinzu
quelle
Wir verwenden viele iptables-Regeln . Um die Verwaltung zu vereinfachen, gehen wir wie folgt vor:
Ich weiß nicht, ob dies der beste Weg ist, aber es hat bei uns gut funktioniert.
quelle
Obwohl dies von der Umgebung und der Plattform abhängt, habe ich je nach Plattform zwei gute Ansätze gesehen:
RHEL / CentOS: Speichern Sie alle Regeln in einer einzigen Datei / etc / sysconfig / iptables, die vom Startskript von iptables eingelesen wird.
Debian / Ubuntu: Speichern Sie alle Regeln in separaten dienstspezifischen Dateien im Verzeichnis /etc/iptables.d/. Beispiel: /etc/iptables.d/port_http, /etc/iptables.d/port_dns, wobei port_service einem Dienstnamen in / etc / services zugeordnet ist.
In beiden Fällen werden die Datei oder Dateien von einem Konfigurationstool wie Chef oder Puppet verwaltet und vom Startskript 'master' für iptables eingelesen, das beim Booten ausgeführt wird.
quelle
Zusätzlich zu
iptables-save
(undiptables-restore
) werden komplizierte Firewall-Schemata mit dedizierten Programmen besser behandelt. Zum Beispiel haben wirshorewall
("iptables leicht gemacht") verwendet, um iptables zu konfigurieren.Einfachere Tools sind ebenfalls verfügbar, wie Firestarter und kmyfirewall .
quelle
Dies hängt von der von Ihnen verwendeten Distribution ab. Einige Distributionen, insbesondere solche, die auf einer Red Hat-Distribution basieren, behalten die iptables-Regeln automatisch bei, befinden sich jedoch in einem eigenen speziellen Verzeichnis. Ich bin mit RHEL am besten vertraut und die iptables-Regeln finden Sie unter / etc / sysconfig / iptables. Sich mit der Syntax von iptables-Regeln vertraut zu machen, kann zunächst schwierig sein, ist aber recht einfach, sobald Sie den Dreh raus haben.
Auf der Netfilter-Website finden Sie zahlreiche Dokumentationen zu iptables, einschließlich einiger Einführungen. Wenn Sie etwas lesen möchten, finden Sie hier viele gute Informationen: http://www.netfilter.org/documentation/
quelle
Diese Frage ist sehr nahe daran, ein Dup von 4934 zu sein, und sie hängt mit 397 zusammen .
Ich verwende firehol in Kombination mit einer Webschnittstelle, die ich zur Verwaltung der Konfigurationsdatei entwickelt habe.
Ich mag firehol sehr, es bietet eine einfachere Syntax als die direkte Verwendung von iptables.
quelle
Wir verwenden natürlich ein benutzerdefiniertes Init-Skript. Ich kann for-Schleifen verwenden, um eine Liste von Ports zu durchlaufen, andere Konfigurationsdateien wie die VPN-Benutzer zu analysieren usw. Ausgezeichnet!
Und iptables-restore ist sicherlich die "kanonischste" Art, es zu speichern.
Was ich hinzufügen möchte:
Bitte beachten Sie, dass die aktuelle Version von iptables den Kernel für jeden einzelnen Aufruf auffordert, ihm die vollständige Liste der Ketten zurückzugeben. Dann wird die eine Änderung vorgenommen, die Sie von ihm verlangen. Dann wird die Liste erneut hochgeladen.
Das ist langsam (O (n ^ 2)), für uns braucht es 5 Sekunden, was zu lang ist ;-)
Wenn Sie iptables-restore verwenden, wird alles in einem schnellen Vorgang ausgeführt.
quelle