Gibt es ein Tool zur Überwachung, ob iptables (oder shorewall oder ähnliches) mit einem Kernsatz wichtiger Regeln aktiv ist? Ich brauche etwas, das mich entweder benachrichtigt, wenn die Firewall vollständig ausfällt, oder wenn eine von mehreren Regeln aus irgendeinem Grund nicht mehr aktiv ist.
Ich möchte die Funktionalität der Firewall nicht testen, indem ich eine Verbindung zu den Ports herstelle oder (noch schlimmer) überprüfe, ob andere eine Verbindung herstellen.
Server: Debian Wheezy, Standardinstallation. Angenommen, ich möchte überprüfen, ob die Regel für Port 80 für die Welt und für Port 8080 nur für eine bestimmte IP abcd geöffnet ist.
Eine Möglichkeit wäre, die Arbeitsregeln als Textdatei zu speichern und dann einen täglichen Cron-Job auszuführen, der die aktuellen Regeln mit den ursprünglichen vergleicht, aber ich hoffe, dass es etwas anderes gibt, das ich verwenden kann. Ist dies in Munin oder Nagios möglich?
Antwort1
Sie könnennmapWerkzeug für einfache oderhping3für eine erweiterte Sicherheitsüberprüfung Ihrer Firewall-Regeln. Dieser nmap-Befehl, der remote gegen Ihre Firewall ausgeführt wird, kann die Regelsätze Ihrer Firewall testen:
nmap -p 0-65535 -Pn FIREWALL_HOST
Oder Sie können eine Art Auditing mit der iptables- LOG
Zielerweiterung implementieren, um alles zu protokollieren, was nicht mit den vorherigen Regeln übereinstimmt:
# firewal rulesets
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 1.2.3.5 -j ACCEPT
....
....
....
# this rule will log everything suspicious not matched before
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
Schließlich ist Ihre Idee, einen Dump der Regelsätze zu vergleichen, auch nicht schlecht. Sie können diff
dafür Folgendes verwenden und dann den Rückgabecode des Befehls überprüfen:
iptables -L -n > RULESET_FILE
if ! diff RULESETS_FILE <(iptables -L -n) > RULESETS_CHANGES; then
echo "Rulesets changed"
fi
Antwort2
versuche zu vergleichen
iptabes-save
und Startkonfiguration (/etc/sysconfig/iptables usw.). Wenn alles in Ordnung ist, sollte dies identisch sein.