Wie testen Sie iptables-Regeln, um eine Remote-Sperrung zu verhindern und Übereinstimmungen zu überprüfen?

13

Als ich etwas über Iptables lerne, habe ich ein paar Fehler gemacht und mich ausgesperrt.

Mit welchen Methoden testen Sie Regeln, ohne sich selbst auszusperren?

Ich benutze Ubuntu Server 12.04 LTS


Alle Antworten unten waren hilfreich. Am Ende habe ich eine Kombination von Optionen verwendet. Es ist auch hilfreich, IPMI-Zugriff auf Ihren Remote-Server zu haben, nur für den Fall! Testen Sie die Regeln jedoch idealerweise lokal in einer replizierten Umgebung und testen Sie diese zuerst. Vagrant hilft in dieser Hinsicht dabei, Test-Setups schnell zum Laufen zu bringen.

Matt
quelle

Antworten:

17

iptables-applyist speziell dafür konzipiert. Es wendet Ihre Regeln an und fordert Sie dann zur Bestätigung auf. Wenn Sie dies nicht bejahen, werden sie zurückgerollt. Wenn Sie das System ziegeln oder sich durch Anwenden aussperren, wird es zurückgesetzt.

Craig Constantine
quelle
7

Mit welchen Methoden testen Sie Regeln, ohne sich selbst auszusperren?

Überlegen Sie, welche Auswirkungen Ihre Eingabe hat, bevor Sie sie eingeben.

mich ausgesperrt

Fügen Sie am Anfang der Liste eine Ihrer Verbindung entsprechende Annahmeregel ein, bevor Sie remote Änderungen vornehmen, die Sie möglicherweise blockieren. Sichern Sie dies mit einem Watchdog-Skript, das alle Regeln auf den Stand zurücksetzt, den Sie beim Start hatten, wenn Sie den Timer nicht zurücksetzen. Sie können dies mit einer Dateiüberwachungsschleife tun und den touchBefehl ausführen, um den Zeitstempel zurückzusetzen, während Sie an Dingen arbeiten. Denken Sie daran, es auszuschalten, wenn Sie die Regeln fertig stellen. Das sehr einfache Format dafür ist:

sleep $((10*60)) && iptables-restore /path/to/working/script
Jeff Ferland
quelle
2
sleep 10mfunktioniert auch :)
melsayed
Obwohl das OP nach Ubuntu gefragt hat und somit die Antwort auf "iptables-apply" ideal wäre (für alle Debian-Hybride), bevorzuge ich für andere Distributionen wie Fedora, die nicht "iptables-apply" haben, diese Methode Übung / Vorschlag.
HidekiAI
3

Sie können iptables ohne eine Standard-DROP-Regel in Ihrer Eingabekette einrichten. Wenn Sie eine Regel erstellen und dann diesen Befehl eingeben:

$ iptables -nvL

Dann sehen Sie die Anzahl der Pakete und sehen, ob Sie Treffer von Ihrem Host erhalten haben.

Eine weitere Möglichkeit ist, eine Crontab zu erstellen, auf der ein Skript ausgeführt wird. Innerhalb dieses Skripts können Sie schreiben

$ iptables -F

Mit diesem Befehl können Sie Ihre IPTABLES-config.

Dave Greebe
quelle