Iptables-Regeln unter Linux verwalten

17

Ich habe eine Menge Regeln für mein iptables-Setup (Routing, SSH-Verbote usw.). Ich habe auch eine Liste von IPs aufgesucht, die von hier http://blacklist.linuxadmin.org verbannt werden sollen, und jetzt wird es wirklich kompliziert.

Mein /etc/sysconfig/iptablesist wirklich lang. Gibt es eine Möglichkeit, die Regeln zu verwalten, indem Regeln aus externen Dateien einbezogen werden?

Beispielsweise:

#include "pre_routing_rules"
#include "ssh_bans"

Dies schließt die Regeln ein, die in den Dateien "pre_routing_rules" und "ssh_bans" hinzugefügt wurden. Auf diese Weise kann ich meine Regeln einfach verwalten, ohne herumzusuchen cat /etc/sysconfig/iptables.

sagt Peter, stell Monica wieder her
quelle

Antworten:

11

Probieren Sie die Iptables-Ipsets aus . ipsets werden separat konfiguriert und sind auch schneller, wenn Sie über genügend IP-Adressen zum Verwalten verfügen.

Die iptables-Regel kann sich auf ipset wie folgt beziehen:

iptables -A FORWARD -m set --set blocklist src, dst -j DROP

Alexey Naidyonov
quelle
Mein größtes Problem ist die IP-Adresse, damit ich diese verwenden kann.
Ich benutze diese Funktion. Meine Blacklist / White List-IPs sind die größten, sodass sie in einem IPSet gespeichert werden können. Ich denke, das Pre-Routing-Zeug kann in der Hauptkonfigurationsliste bleiben
Dieser Forenthread enthält
mivk
3

Eine einfache Lösung besteht darin, mehrere Bash-Skripte für jeden Abschnitt zu verwenden.

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

Führen Sie diese Dateien über ein Masterskript aus.

Andrei Savu
quelle
Nun ja, das ist was ich tue. Wenn ich jedoch die Liste der iptables-Regeln anzeigen muss (z. B. cat / etc / sysconfig / iptables), werden alle Regeln
2

iptables liest die Datei nicht direkt, sondern wird von einem Programm namens iptables-restore ausgeführt. Dies wird normalerweise von einem Ihrer Init-Skripte aus aufgerufen.

Sie können Ihrer Zeile iptables-restore zusätzliche Eingabedateien hinzufügen. Sie müssen herausfinden, wo sich diese Zeile in Ihrem System befindet, aber in meiner Debain-Box in /etc/init.d/nat

Die Zeile lautet derzeit folgendermaßen:

/sbin/iptables-restore < /etc/network/iptables

Vielleicht könnte es so geändert werden:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore
Adam Pierce
quelle
2

Ich verwende in der Regel eines der vielen Firewall-Skripte / Tools auf Iptables, z. B. Firestarter oder Shorewall. Sie enthalten viele Dateien, die nach Zweck getrennt sind, und fügen interessante Regeln zum Schutz vor bestimmten Arten von gefälschten Paketen hinzu. In der Regel funktionieren sie Gut.

Vinko Vrsalovic
quelle
Sind diese über die Kommandozeile nutzbar? Mein Server ist ein Remote-Server und ich bevorzuge es nicht, X gegenüber SSH zu
Shorewall besteht aus einer Reihe von flachen Textdateien, die Iptables-Regeln generieren. Es ist sehr benutzerfreundlich über die Befehlszeile und verfügt über hervorragende Dokumentations- und Diagnosetools.
Paul Gear
0

Ich bin mir nicht sicher, welche Distribution Sie ausführen, da meine nicht die Datei besitzt, auf die Sie verweisen - aber normalerweise sind Dateien, die iptables-Regeln enthalten, nur Shell-Skripte -, sodass Sie in der Lage sein sollten, mit einer Zeile das zu tun, was Sie wollen sowie :

. / etc / sysconfig / pre_routing_rules

oder so ähnlich wie oben in der Iptables-Datei, auf die Sie verweisen.

GodEater
quelle
Ich verwende Fedora und CentOS