Beschreibung
Suricata ist ein Program für die Erfassung, Überwachung und Prüfung von Netzwerksicherheitsprotokollen. Dieses Dienstprogramm basiert auf der Gruppe von Regeln, die vordefiniert oder vom Benutzer erstellt wurden. Anschließend wird gemäß diesen Regeln der Verkehrsfluss analysiert und/oder modifiziert.
Suricata verfügt über einige „out-of-the-box“ vordefinierte Regeln, die als „passiver Modus“ bezeichnet werden könnten, da das System lediglich einen Administrator warnt, ohne dass es zu Verkehrsänderungen kommt.
Es ist möglich, diese Software auf dem Gateway des Büros auszuführen, um den gesamten Datenverkehr durchzuleiten, oder sie unabhängig auf allen Hosts auszuführen.
Vor dem Start
Die optimalen Hardwareanforderungen hängen von der LAN-Topologie und Ihren Anforderungen ab. Meistens sollte Suricata für einen großen inspizierten Verkehr benötigt werden und viele Ressourcen zugewiesen werden. In den häufigsten Fällen mindestens 2 CPU Kerne und 4 oder 8 GygaBytes RAM benötigt.
Die Anforderungen lauten also:
Ubuntu 20.04, auf dem Server nicht weniger als 4 GB RAM und 2 CPU Kerne, Berechtigungen, etwas als Root- oder Sudo-Gruppenmitglied zu tun, System firewall aktiviert.
Installationsprozess
- Zunächst müssen Sie ein Drittanbieter-Repo zum Betriebssystem hinzufügen. Einfach als Superuser autorisieren und ausführen:
add-apt-repository ppa:oisf/suricata-stable
Bestätigen Sie, ob eine Sicherheitswarnung angezeigt wird
- Installieren Sie das vorgefertigte Tool des Betreuers:
apt-get update
apt-get install suricata
- Fügen Sie dann einen neuen Dienst zum Autostart-Pool hinzu. Wenn Sie eine Konsolenausgabe wie diese gesehen haben – Startvorgang erfolgreich aktiviert:
systemctl enable suricata
Einmalige Konfiguration
Das Suricata-Dienstprogramm „deckt“ die Bedürfnisse der Mehrheitsbenutzer „out-of-the-box“ ab. Es arbeitet im „sicheren“ Modus, sodass keine Netzwerkpakete verloren gehen, sondern nur Warnungen ausgegeben werden. Diese Vorgehensweise ist gut, solange Sie nicht über „tiefe Kenntnisse“ in diesem Thema verfügen.
Aber selbst die Standardvoreinstellung verfügt wahrscheinlich über einige nützliche Optionen, z. B. die Community-Flow-ID
Dies könnte nützlich sein, wenn andere Komplexe (z. B. Elasticsearch) mit Suricata integriert werden müssen. Die Community-ID könnte in die Suricata-Konfiguration eingefügt werden. Bearbeiten Sie einfach die Direktive „community-id:“ und setzen Sie ihren Wert in der /etc/suricata/suricata.yaml-Konfiguration auf „true“.
cd /etc/suricata/suricata.yaml
Definieren Sie, welche Netzwerkschnittstelle überwacht werden soll. Um einen Netzwerkadapter mit Standardschnittstelle zu finden, sollten Sie den folgenden Befehl ausführen:
ip -j -p route show default
Eine kleine Beschreibung: Die Option -j legt das Ausgabeformat auf JSON fest, das Flag -p verbessert die Lesbarkeit. Der „Main“-Adapter befindet sich in der „Dev“-Zeile.
Um einen Schnittstellennamen zu überprüfen und zu ändern, öffnen Sie bitte die Datei /etc/suricata/suricata.yaml und suchen Sie in der Zeile Nr. 550 nach der Anweisung „interface“. Wenn mehrere Schnittstellen vorhanden sind, ist es möglich, diese auch in die Konfigurationsdatei einzufügen.
Abschließend müssen Sie den Dienst erneut ausführen. Tun
service suricata restart
Aktualisierung der Regelsätze
Um zusätzliche Regeln zu erhalten, sollte das Suricata-Update-Tool verwendet werden. Das Dienstprogramm kann Verkehrsregeln von Ressourcen nichtkommerzieller oder kostenpflichtiger Anbieter beziehen. Es könnte jetzt auch Sets anzeigen, die das System verwendet.
suricata-update list-sources
Dieses Tool dient zum Verwalten, Aktivieren und Deaktivieren von Regelsätzen. Um beispielsweise einen neuen Regelsatz zu installieren, führen Sie bitte Folgendes aus:
suricata-update enable-source <RULESET_NAME>
Führen Sie suricata-update erneut aus, um die Änderungen zu übernehmen.
Überprüfen der aktuellen Einstellungen
Es empfiehlt sich, die Konfiguration nach jeder Änderung zu überprüfen. Führen Sie einfach Folgendes aus:
suricata -T -v -c /etc/suricata/suricata.yaml # -T option is forces Suricata to work in "checking" mode, -c will set path to config file, -v option needs to print more information
Dienst startet
Um den Daemon nach erfolgreicher Konfigurationsprüfung neu zu starten, führen Sie bitte Folgendes aus:
service suricata restart
Dann schauen Sie, ob der Dienst wirklich gestartet ist oder nicht
service suricata status
Testen tatsächlicher Regeln
Um zu überprüfen, ob die Regeln wirklich für die Erwartungen relevant sind oder nicht, installieren Sie einfach das JQ-Tool, um das Protokoll verständlicher zu machen und insbesondere die Datei zu erhalten:
apt-get install jq
apt-get install curl
curl http://testmynids.org/uid/index.html
Um nach Benachrichtigungen zu suchen, gehen Sie bitte wie folgt vor:
tail -f /var/log/suricata/fast.log
tail -f /var/log/suricata/eve.log
Sie sehen eine „gefilterte“ Ausgabe der Protokolle, sortiert nach Warnungs-ID:
jq 'select(.alert .signature_id==<ALERT_ID>)' /var/log/suricata/eve.json
Am Ende
Heute haben Sie das Suricata-Tool installiert. Sie haben gesehen, wie Sie eine Community Flow ID verwenden, um das Dienstprogramm mit anderen nützlichen Tools zu kombinieren. Außerdem wissen wir, wie man Serviceeinstellungen überprüft und testet HTTP der Verkehr.