Suricata - Ein Intrusionserkennungs-, Präventions- und Sicherheitsinstrument

Suricata - Ein Intrusionserkennungs-, Präventions- und Sicherheitsinstrument

Suricata ist eine leistungsstarke, vielseitige und Open-Source-Bedrohungserkennungsmaschine, die Funktionalitäten für die Intrusion Detection (IDS), die Intrusion Prevention (IPS) und die Überwachung der Netzwerksicherheit bietet. Es führt eine tiefe Paketprüfung durch, zusammen mit dem Muster, der eine Mischung entspricht, die unglaublich mächtig in der Bedrohungserkennung ist.

Zum Zeitpunkt des Schreibens dieses Handbuchs die neueste Version von Suricata Ist 6.0.5.

Suricata -Funktionen

  • IDS/IPS - Suricata ist eine regelbasierte Intrusionserkennung Und Verhütung Engine, die extern entwickelte Regeln wie Talos Ruleset und aufkommende Bedrohungen suricata Regeln nutzt.
  • Automatische Protokollerkennung - Suricata Engine erkennt automatisch Protokolle wie HTTP und HTTPS. FTP und SMB auf einem beliebigen Anschluss und wenden Sie die richtige Erkennungs- und Protokollierungslogik an. Dies ist praktisch bei der Erkennung von Malware und CNC -Kanälen.
  • Lua Scripting - Suricata kann anrufen Lua Skripte, die eine erweiterte Malware -Erkennung liefern, um den Malwareverkehr zu erkennen und zu dekodieren.
  • Multi-Threading - Suricata bietet Geschwindigkeit und Bedeutung bei der Bestimmung des Netzwerkverkehrs. Die Engine wurde entwickelt, um die erhöhte Verarbeitungsleistung anzuwenden, die von modernen Multi-Core-Hardware-Chipsätzen angeboten wird.

Installieren von Suricata Intrusion Detection Tool unter Linux

In diesem Abschnitt werden wir demonstrieren, wie man installiert Suricata auf Debian-basierte und rhelbasierte Verteilungen.

Installieren Sie Suricata auf Debian/Ubuntu & Mint

Suricata wird bereitgestellt von Debian / Ubuntu Repositorys und können einfach mit dem APT -Paketmanager installiert werden. Es ist jedoch erwähnenswert, dass dies nicht die neueste Version von Suricata installiert. Um die neueste Version zu installieren, müssen Sie sie aus einer Quelle installieren, die wir später in diesem Handbuch abdecken werden.

Installieren Suricata Verwendung der geeignet Paketmanager, den Befehl ausführen:

$ sudo apt installieren suricata -y 
Installieren Sie Suricata in Ubuntu

Suricata beginnt automatisch nach der Installation. Sie können dies wie folgt bestätigen.

$ sudo systemctl Status suricata 
Überprüfen Sie Suricata in Ubuntu

Installieren Sie Suricata auf Rhel, Rocky, Almalinux & Fedora

Installieren Suricata An Rhel Verteilungen wie CentOS Stream, Rocky Linux, Almalinux, Fedora und Rhel müssen Sie zuerst das Epel -Repository aktivieren.

$ dnf install https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-9.Keinarch.Drehzahl [Rhel 9] $ dnf install https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-8.Keinarch.Drehzahl [Rhel 8] $ yum install https: // dl.Fedoraproject.org/pub/epel/epel-release-latest-8.Keinarch.Drehzahl [Rhel 7] 

Einmal Epel ist aktiviert, installieren Sie die folgenden erforderlichen Pakete und fügen Sie die hinzu Oisf Repository zu Ihrem System.

----------- Auf Fedora -Systemen ----------- $ sudo dnf install DNF-Plugins-Core $ sudo dnf copr aktivieren @oisf/suricata-6.0 ----------- Auf Rhel -Systemen ----------- $ sudo dnf install yum-plugin-cop.0 

Als nächstes installieren Sie Suricata Verwenden Sie den DNF -Paketmanager oder den Yum Paket -Manager wie gezeigt.

$ sudo dnf installieren suricata -y oder $ sudo yum Installieren Sie Suricata -y -y 
Installieren Sie Suricata in Rhel

Einmal Suricata wird installiert, starten und überprüfen Sie seinen Status.

$ sudo systemctl starten suricata $ sudo systemctl Status suricata 
Überprüfen Sie Suricata in Rhel

Installieren Sie Suricata von Source unter Linux

Die Standard -OS -Repositorys bieten nicht die neueste Version von Suricata. Wenn Ihr Ziel ist, die neueste Version von zu installieren Suricata, Dann müssen Sie es aus der Quelle installieren.

Zum Zeitpunkt des Schreibens dieses Handbuchs ist die neueste Version von Suricata 6.0.5. Installieren Suricata von der Quelle auf Ubuntu/Debian Und Rhel Verteilungen, installieren Sie die folgenden Bibliotheken, Kompilierungstools und Abhängigkeiten.

----------- Auf Debian Systems ----------- $ sudo apt install rustc build-essential cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap -ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 libnetfilter-queue-dev libnfnetlink-dev -y -y ----------- Auf Rhel -Systemen ----------- $ sudo yum install GCC libpcap-Devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel ns Devel -y 

Installieren Sie als Nächstes das Tool von Suricata-Update, um die Suricata-Regeln zu aktualisieren.

$ sudo apt installieren python3-pip [auf Debian] $ sudo yum install Python3-pip [on Rhel] $ pip3 install-upgrade suricata-update 

Erstellen Sie dann einen symbolischen Link zu /usr/bin/suricata-update.

$ sudo ln -s/usr/local/bin/suricata-update/usr/bin/suricata-update 

Gehen Sie nun zur offiziellen Suricata -Download -Seite und laden Sie die neueste Tarball -Datei für Linux mit dem Befehl wGet herunter.

$ wget https: // www.OpenInfosecFoundation.org/download/suricata-6.0.6.Teer.gz 

Extrahieren Sie nach dem Herunterladen die Tarballdatei und installieren Sie sie.

$ sudo tar -xvf suricata -6.0.6.Teer.GZ $ CD Suricata-6.0.6 $ ./configure-enable-nfqueue -prefix =/usr--Sysconfdir =/etc---localstatedir =/var $ make $ make install-full 

Suricata unter Linux konfigurieren

Zu konfigurieren Suricata, Wir müssen das interne IP und das externe Netzwerk angeben. Greifen Sie dazu auf die Konfigurationsdatei zu.

$ sudo vim/etc/suricata/suricata.Yaml 

Für die Home_net Anweisung geben die IP -Adresse Ihres Linux -Systems an.

Home_net: "[173.82.235.7] " 

Als nächstes setzen Sie die External_net Richtlinie zu “!$ Home_net“.

External_net: "!$ Home_net " 
Konfigurieren Sie Suricata unter Linux

Geben Sie als Nächstes die Netzwerkschnittstelle an, auf der Suricata wird den Netzwerkverkehr inspizieren. In unserem Fall ist dies das Eth0 Schnittstelle.

Sie können Ihre aktive Netzwerkschnittstelle mit dem Befehl IP überprüfen:

$ ip a 

Aktualisieren Sie in der Konfigurationsdatei die Schnittstellenanweisung mit dem Namen der Netzwerkschnittstelle.

- Schnittstelle: ETH0 
Konfigurieren Sie die Suricata -Netzwerkschnittstelle

Stellen Sie als nächstes sicher, dass die Standard-Rule-Pfad Attribut wird auf eingestellt /etc/suricata/Regeln.

Konfigurieren Sie Suricata -Regeln

Speichern Sie dann die Änderungen und schließen Sie die Konfigurationsdatei. Dann neu starten Suricata Damit die Änderungen angewendet werden müssen.

$ sudo systemctl Status suricata 

Aktualisieren von Suricata -Regeln unter Linux

Standardmäßig, Suricata Schiffe mit begrenzten Erkennungsregeln in der /etc/suricata/Regeln Verzeichnis. Diese werden jedoch als schwach und unwirksam angesehen, um Intrusionen zu erkennen. Sie müssen die laden Aufkommende Bedrohung (ET) Regeln, die als die umfassendsten Regelsätze für Suricata gelten.

Suricata Bietet ein Tool, das als bekannt ist suricata-update Das holt Regeln von externen Anbietern ab. Führen Sie den folgenden Befehl aus, um einen aktuellen Regeln für Ihren Server zu erhalten.

$ sudo suricata -update -o/etc/suricata/Regeln 
Aktualisieren von Suricata -Regeln Laden Sie Suricata Emerging Bedrohungen Regeln herunter

Aus der Ausgabe können Sie die sehen suricata-update das freie holen Aufkommende Bedrohungen und offene Regeln und sie bei Suricata retten /etc/suricata/Regeln/suricata Regelne Datei. Darüber hinaus zeigt es die Anzahl der verarbeiteten Regeln an. In diesem Beispiel insgesamt insgesamt 35941 wurden hinzugefügt. Von diesen, 28221 wurden aktiviert, 18 wurden entfernt und 1249 wurden modifiziert.

Hinzufügen von Suricata -Regeln unter Linux

Der suricata-update Mit dem Tool können Sie Regeln von Regeln -Anbietern abrufen. Einige sind frei wie die ET offen festgelegt, während andere ein kostenpflichtiges Abonnement benötigen.

Führen Sie die Standards der Standardanbieter an, um die Standard -Regelanbieter aufzulisten suricata-update Befehl wie gezeigt.

$ sudo suricata-update list-sources 
Listen Sie Suricata -Regelanbieter auf

Zum Beispiel die hinzuzufügen, um einen Regeln hinzuzufügen, die TGreen/Jagdregelnsatz, Führen Sie den folgenden Befehl aus.

$ sudo suricata-update aktivieren tgreen/jagd 
Fügen Sie Suricata -Regelsatz hinzu

Sobald Sie das hinzugefügt haben Regelnsatz, leiten Sie die suricata-update Befehl noch einmal mit dem -o/etc/suricata/Regeln Flagge.

$ sudo suricata -update -o/etc/suricata/Regeln 
Aktualisieren Sie den Suricata -Regelsatz

Testen von Suricata -Regeln unter Linux

Bevor Sie mit dem Testen beginnen Suricata, Es wird empfohlen, zu testen, ob die Konfiguration in Ordnung ist. Führen Sie dazu den folgenden Befehl aus:

$ sudo suricata -t -c/etc/suricata/suricata.yaml -v 

Stellen Sie sicher, dass keine Fehler gemeldet werden. Wenn Sie Rhel, CentOS Stream, Fedora und Rocky Linux starten und Suricata aktivieren.

$ sudo systemctl starten suricata $ sudo systemctl aktivieren suricata 

Bisher haben wir erfolgreich installiert und konfiguriert Suricata und aktualisierte die Regeln. Der ET Open -Regelsatz enthält über 30.000 Regeln für die Erkennung böswilliger Verkehr. In diesem Abschnitt setzen wir Suricata auf den Test und prüfen, ob er verdächtigen Netzwerkverkehr erkennen kann.

Wir werden die testen ET offen Regelnsatz durch Simulation eines Intrusion, wie von Suricatas QuickStart Guide empfohlen.

Die IDS -Funktionalität wird mit einer Signatur -ID von 2100498 getestet, indem eine HTTP -Anfrage an die gesendet wird testmyniden.Org Website, die ein NIDS ist (Netzwerkeindrückungs- und Erkennungssystem) Rahmen.

$ curl http: // testmynidens.org/uid/Index.html 

Sie sollten die folgende Ausgabe erhalten.

uid = 0 (root) gid = 0 (root) gruppen = 0 (root) 

Der Http Die gesendet Ausweis Befehl, der auf einem kompromittierten Remote -System über eine Shell ausgeführt werden kann.

Lassen Sie uns nun Suricatas Protokolle für eine entsprechende Warnung durchsuchen. Suricata versendet mit zwei Protokolldateien, die standardmäßig aktiviert sind.

/var/log/suricata/schnell.log/var/log/suricata/eva.Protokoll 

Wir werden nach einem Protokolleintrag in der /var/log/suricata/schnell.Protokoll Protokolldatei, die der Curl -Anforderung mit dem GREP -Befehl entspricht. Wir werden nach den Protokolleinträgen mit dem suchen 2100498 Regelkennung aus der QuickStart -Dokumentation.

$ grep 2100948/var/log/suricata/schnell.Protokoll 

Sie erhalten die folgende Ausgabe, die ein Eindringen bedeutet. Hier, 173.82.235.7 ist die öffentliche IP -Adresse des Servers.

09/09/2022-22: 17: 06.796434 [**] [1: 2100498: 7] GPL Attack_Response ID Check zurückgegebener Root [**] [Klassifizierung: potenziell schlechter Verkehr] [Priorität: 2] TCP 13.226.210.123: 80 -> 173.82.235.7: 33822 
Überprüfen Sie die Suricata -Protokolle

Alternativ können Sie die überprüfen /var/log/suricata/eva.Protokoll Protokolldatei für die Signatur -ID von 2100498 wie gezeigt.

$ jq 'select (.Alarm .Signature_id == 2100498) '/var/log/suricata/eva.JSON 
Überprüfen Sie das Suricata -Protokoll auf Signature -ID

Dies war eine umfassende Anleitung zum Installieren und Konfigurieren Suricata unter Linux. Wir haben verschiedene Installationsmethoden angesehen, wie man Konfiguration hat Suricata und Update Suricata Regeln sowie die Verwaltung von Suricata Systemd -Dienst und Durchführung von Netzwerkeindrückungstests.

Wir hoffen, dass Sie jetzt bequem installieren und verwenden können Suricata um Ihr System vor Netzwerk -Intrusionen oder böswilligen Verkehr zu schützen.