Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Statistiken zeigen, dass das Volumen des Netzwerkverkehrs jedes Jahr um etwa 50 % zunimmt. Dies führt zu einer höheren Belastung der Hardware und insbesondere zu gestiegenen Anforderungen an die Leistung von IDS/IPS. Man kann teure spezialisierte Hardware kaufen, aber es gibt eine günstigere Alternative – die Implementierung eines der Open-Source-Systeme. Viele angehende Administratoren glauben, dass die Installation und Konfiguration eines kostenlosen IPS recht kompliziert ist. In Bezug auf Suricata ist das jedoch nicht ganz richtig – man kann Suricata installieren und innerhalb weniger Minuten mit einer Sammlung kostenloser Regeln gängige Angriffe abwehren.

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.
Snort oder Suricata. Teil 1: Auswahl einer kostenlosen IDS/IPS zum Schutz des Unternehmensnetzwerks

Warum noch ein weiteres Open-Source-IPS?

Das seit langem als Standard geltende System Snort wird seit Ende der 90er Jahre entwickelt und war ursprünglich einstängig. Im Laufe der Jahre hat es alle modernen Funktionen erhalten, wie die Unterstützung von IPv6, die Möglichkeit zur Analyse von Protokollen auf Anwendungsebene sowie ein universelles Modul für den Datenzugriff.

Der Basismotor Snort 2.X kann mit mehreren Kernen arbeiten, bleibt jedoch einseitig und kann daher die Vorteile moderner Hardware-Plattformen nicht optimal nutzen.

Das Problem wurde in der dritten Version des Systems gelöst, jedoch wurde diese so lange vorbereitet, dass bereits die von Grund auf neu entwickelte Suricata auf den Markt kam. 2009 begann die Entwicklung von Suricata als mehrfädige Alternative zu Snort, die von Anfang an über IPS-Funktionen verfügte. Der Code wird unter der GPLv2-Lizenz veröffentlicht, wobei die finanziellen Partner des Projekts Zugang zu einer geschlossenen Version des Motors haben. Einige Skalierbarkeitsprobleme in den ersten Versionen des Systems traten auf, wurden jedoch relativ schnell behoben.

Warum Suricata?

Suricata verfügt über mehrere Module (ähnlich wie Snort): zur Erfassung, Sammlung, Dekodierung, Erkennung und Ausgabe. Standardmäßig wird der erfasste Datenverkehr in einem einzigen Stream bis zur Dekodierung verarbeitet, was die Systemressourcen stärker belastet. Bei Bedarf können die Streams in den Einstellungen aufgeteilt und auf verschiedene Prozessoren verteilt werden — Suricata lässt sich sehr gut an spezifische Hardware anpassen, wobei dieser Aspekt jedoch nicht für beginnende Benutzer geeignet ist. Außerdem bietet Suricata fortschrittliche HTTP-Inspektionswerkzeuge, die auf der HTP-Bibliothek basieren. Diese können auch zur Protokollierung von Datenverkehr ohne Erkennung eingesetzt werden. Das System unterstützt zudem die Dekodierung von IPv6, einschließlich IPv4-in-IPv6-Tunneln, IPv6-in-IPv6 und weiteren.

Für die Abfangung von Datenverkehr können verschiedene Schnittstellen verwendet werden (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING). Im Unix-Socket-Modus können automatisch von einem anderen Sniffer erfasste PCAP-Dateien analysiert werden. Zudem erleichtert die modulare Architektur von Suricata das Anbinden neuer Komponenten für das Abfangen, Dekodieren, Analysieren und Verarbeiten von Netzwerkpaketen. Es ist auch wichtig zu erwähnen, dass in Suricata die Sperrung von Datenverkehr durch die integrierten Filter der Betriebssystem. In GNU/Linux stehen zwei IPS-Betriebsarten zur Verfügung: über die NFQUEUE (NFQ-Modus) und über Zero Copy (AF_PACKET-Modus). Im ersten Fall wird das in iptables eingehende Paket in die NFQUEUE geleitet, wo es auf Benutzerebene verarbeitet werden kann. Suricata überprüft es anhand seiner Regeln und gibt eines von drei Urteilen ab: NF_ACCEPT, NF_DROP oder NF_REPEAT. Die ersten beiden erfordern keine Erklärungen, während letzteres es ermöglicht, Pakete zu kennzeichnen und an den Anfang der aktuellen iptables-Tabelle zu senden. Der AF_PACKET-Modus zeichnet sich durch höhere Geschwindigkeit aus, bringt jedoch eine Reihe von Einschränkungen mit sich: das System muss über zwei Netzwerkschnittstellen verfügen und als Gateway fungieren. Das blockierte Paket wird einfach nicht an die zweite Schnittstelle weitergeleitet.

Ein wichtiges Merkmal von Suricata ist die Möglichkeit, auf Entwicklungen von Snort zurückzugreifen. Administratoren stehen unter anderem die Regelsets von Sourcefire VRT und OpenSource Emerging Threats sowie das kommerzielle Emerging Threats Pro zur Verfügung. Die einheitliche Ausgabe kann mithilfe beliebter Backends analysiert werden, außerdem wird die Ausgabe im PCAP- und Syslog-Format unterstützt. Die Systemeinstellungen und Regeln werden in YAML-Dateien gespeichert, die leicht verständlich sind und automatisiert verarbeitet werden können. Der Suricata-Engine erkennt zahlreiche Protokolle, sodass es nicht erforderlich ist, sich an Portnummern in den Regeln zu binden. Zudem wird in den Suricata-Regeln aktiv das Konzept der flowbits verwendet. Zur Nachverfolgung von Auslösungen kommen Sitzungsvariablen zum Einsatz, die es ermöglichen, verschiedene Zähler und Flags zu erstellen und anzuwenden. Viele Intrusion Detection Systeme (IDS) betrachten verschiedene TCP-Verbindungen als separate Entitäten und können keine Zusammenhänge zwischen diesen erkennen, die auf einen Angriff hindeuten. Suricata versucht, das Gesamtbild zu erfassen, und erkennt in vielen Fällen verteilten bösartigen Traffic über unterschiedliche Verbindungen. Man kann lange über ihre Vorteile sprechen, aber lassen Sie uns besser zu Installation und Konfiguration übergehen.

Wie installiert man das?

Wir werden Suricata auf einem virtuellen Server mit Ubuntu 18.04 LTS installieren. Alle Befehle sollten als Superuser (root) ausgeführt werden. Die sicherste Methode besteht darin, sich über SSH mit einem normalen Benutzerkonto mit dem Server zu verbinden und dann das Tool sudo zu verwenden, um die Berechtigungen zu erhöhen. Zuerst müssen wir die benötigten Pakete installieren:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Wir fügen das externe Repository hinzu:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Wir installieren die neueste stabile Version von Suricata:

sudo apt-get install suricata

Falls erforderlich, passen wir die Konfigurationsdateien an, indem wir den standardmäßig verwendeten eth0 durch den tatsächlichen Namen des externen Serverinterfaces ersetzen. Die Standardwerte werden in der Datei /etc/default/suricata gespeichert, während die benutzerdefinierten Einstellungen in /etc/suricata/suricata.yaml abgelegt sind. Die Konfiguration des IDS beschränkt sich größtenteils auf die Bearbeitung dieser Konfigurationsdatei. Darin befinden sich zahlreiche Parameter, deren Namen und Funktionen mit denen von Snort übereinstimmen. Der Syntax ist jedoch völlig anders, aber die Datei ist wesentlich einfacher zu lesen als die Konfigurationen von Snort und zudem gut kommentiert.

sudo nano /etc/default/suricata

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

und

sudo nano /etc/suricata/suricata.yaml

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Achtung! Vor dem Start sollten die Werte der Variablen im Bereich vars überprüft werden.

Um die Konfiguration abzuschließen, muss suricata-update installiert werden, um Regeln zu aktualisieren und herunterzuladen. Das ist recht einfach:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

Als Nächstes müssen wir den Befehl suricata-update ausführen, um das Regelset Emerging Threats Open zu installieren:

sudo suricata-update

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Um die Liste der Regelquellen anzuzeigen, führen wir den folgenden Befehl aus:

sudo suricata-update list-sources

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Wir aktualisieren die Regelquellen:

sudo suricata-update update-sources

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Wir überprüfen die aktualisierten Quellen erneut:

sudo suricata-update list-sources

Falls erforderlich, können die verfügbaren kostenlosen Quellen aktiviert werden:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Danach müssen die Regeln erneut aktualisiert werden:

sudo suricata-update

Damit ist die Installation und Erstkonfiguration von Suricata auf Ubuntu 18.04 LTS abgeschlossen. Nun beginnt der spannende Teil: In dem nächsten Artikel verbinden wir den virtuellen Server über ein VPN mit dem Büronetzwerk und analysieren den gesamten eingehenden und ausgehenden Datenverkehr. Besonderes Augenmerk liegt auf der Blockierung von DDoS-Angriffen, der Aktivität von Malware und den Versuchen, Schwachstellen in öffentlich zugänglichen Diensten auszunutzen. Zur Veranschaulichung werden Angriffe der häufigsten Typen simuliert.

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Snort oder Suricata. Teil 2: Installation und erste Konfiguration von Suricata.

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster