Addons:Guardian

Aus IPFireWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Was ist Guardian

Guardian ist eine intelligente Erweiterung für Snort um auf die erkannten Angriffe mittels IPBlock zu reagieren. Die im IPFire verwendete Version von Guardian ist die 1.7. Diese Version wurde um 2 Features erweitert; zum einen die Fähigkeit auf Portscans zu reagieren und zum anderen die Überwachung der fehlgeschlagenen SSH Login versuche. Die Letztere Funktionalität steht also auch ohne Snort zur Verfügung.


Wie funktioniert das Ganze

Guardian wird als Deamon vom Snort init Skript gestartet und läuft per default auf dem roten Interface, dies funktioniert auch wenn Snort nicht aktiv ist. Anschließend prüft der Deamon in regelmäßigen Abständen (Sekunde) die jeweiligen Logfiles auf neue Einträge. Wird in den Zeilen ein verdächtiger Eintrag gefunden wird für diesen ein Zähler gesetzt, dh der Zähler wird inkrementiert. Erreicht ein Zähler für eine IP auf Grund der gefundenen Einträge die Zahl 3 so wird diese IP für einen festgelegten Zeitintervall über eine IPTables Regel beblockt, dh jeder Verkehr von dieser Adresse wird verworfen. Nach Ablauf des Zeitintervalls wird diese IP wieder zugelassen. Ebenso verhält es sich mit der SSH Überwachung hier wird nur ein anderes Logfiles ausgewertet und nicht auf ein bestimmtes Interface geachtet (dh man könnte sich per ssh auch selber aussperren).

Welche Vorteile bringt mir das

Snort ist an sich nur ein reines Intrusion Detection System und nur sehr wenige Leute machen sich den Aufwand die Logs zu analysieren, was im Endeffekt auf ein schnelles Deaktivieren hinausläuft. Durch den Deamon werden die Logs automatisch untersucht und diverse IPs geblockt, das allein erweitert Snort um eine Intrusion Prevetion Komponente. Genauso verhält es sich mit SSH, wird SSH für externen Zugang freigegeben kann man so verhindern, dass ein Angreifer beliebig viele Passwortkombinationen versucht (ggf. durch einen Robot).

Welche Grenzen hat das Ganze

Guardian ist auf ein ordentliches Snort Log angewiesen, dh laufen hier permanent Falschmeldungen ein wird Guardian dennoch fleissig die IPs blocken, dh die Inteligenz des Ganzen liegt beim Snort. Da der Mechanismus IP basierend ist wird nur eine IP vom Angreifer geblockt, dh wechselt dieser die IP erkennt Guardian keinen Zusammenhang und fährt nach Schema A fort (Count 1 2 3). Ebenso kann es passieren, dass eine IP geblockt ist und mittlerweile jmd Anderem (vertrauenswürdigen) zugewiesen wurde, dieser aber kein Zugriff auf Grund der noch gültigen Blocktime erhält. Wird iptables reinitialisiert(red restart usw usw) werden die Block Rules nicht erneut eingetragen, dh auch hier beginnt Snort wieder beim Schema A (analog Reboot).

Wie kann ich sehen was hier passiert

Guardian loggt seine Aktivitäten nach

/var/log/guardian/guardian.log 

dort kann im Zweifelsfall alles nachgelesen werden.

Wie verhindere ich dass eine IP geblockt wird (zb SSH)

Hierfür gibt es ein ignore File, welches von Guardian ausgewertet wird

/var/ipfire/guardian.ignore 

diese hier aufgelisteten IPs werden von Guardian ignoriert. Ausserdem gibt es in Guardian einen Mechanismus der verhindert, dass das System sich selbst blockt, dh die eigene IP Adresse wird nie geblockt (Guardian Interface), falls mehr als eine IP verwendet wird kann diese in

/var/ipfire/guardian.target 

eingetragen werden und wird ebenfalls ignoriert.

Ich habe mich aus Versehen geblockt was kann ich tun

Die härteste Methode wäre ein Reboot, bis hin zu den "softeren" Varianten wie red restart. Der einfachste Weg ist das Skript

/var/ipfire/guardian/guardian_unblock.sh <IP> 

per Konsole oder an einem anderen Client per SSH auszuführen, das sollte die sperren ebenfalls aufheben.

Persönliche Werkzeuge