Snort ist ein IDS-System auf Basis von Open Source, das sich zum Beispiel auf Ubuntu oder Kali installieren lässt. Dadurch können Unternehmen ein eigenes IDS-System aufbauen und den Netzwerkverkehr in Echtzeit analysieren. Wir zeigen in diesem Tool-Tipp die Installation, Einrichtung und ersten Schritte mit Snort unter Kali.
In diesem Tool-Tipp zeigen wir die Installation, Einrichtung und ersten Schritte mit dem Open-Source-IDS Snort unter Kali.
(Bild: AIPERA - stock.adobe.com)
Snort gehört zu den bekanntesten IDS-Systemen aus dem Open Source Bereich und lässt sich zum Beispiel schnell und unproblematisch in Kali oder Ubuntu betreiben. Die Installation auf RHEL und CentOS oder anderen Distributionen ist natürlich ebenso möglich. In diesem Beitrag konzentrieren wir uns auf die Installation der neuen Version Snort 3, die dem Vorgänger in einigen Punkten überlegen ist.
In diesem Tool-Tipp-Video und der Bildergalerie zeigen wir die Installation, Einrichtung und ersten Schritte mit Snort unter Kali.
Bildergalerie
Snort setzt sich aus mehreren Schlüsselkomponenten zusammen. Die Herzstücke von Snort sind die Regeln (Rules), die als spezifische Kriterien für die Erkennung von verdächtigem oder schädlichem Datenverkehr dienen. Diese Regeln, die in einer leicht verständlichen Syntax geschrieben sind, ermöglichen es Snort, Muster im Netzwerkverkehr zu identifizieren, die auf Angriffe oder Sicherheitsverletzungen hinweisen könnten.
Darüber hinaus spielen Preprozessoren eine wichtige Rolle, indem sie den Netzwerkverkehr vor der Analyse durch die Regeln vorverarbeiten, um Verschleierungen zu entfernen, Anomalien zu erkennen oder bestimmte Protokolle effizienter zu analysieren. Snort verfügt auch über Output-Plugins, die definieren, wie Alarme und Logs gehandhabt werden, sei es durch Ausgabe auf der Konsole, Speicherung in Dateien oder Weiterleitung an eine Management-Plattform. Diese modulare Architektur erlaubt es Administratoren, Snort flexibel zu konfigurieren und an die spezifischen Anforderungen ihres Netzwerks anzupassen.
Vorbereitungen für die Installation von Snort auf Kali-Linux
Die Installation von Snort auf Kali oder einem anderen System sollte möglichst mit einer Aktualisierung des Systems beginnen. Das geht mit:
sudo apt update && sudo apt upgrade -y
Bei einer großen Anzahl an Aktualisierungen schaden es nicht, das System neu zu starten. Generell ist es sinnvoll danach die Sources-List von Kali zu sichern, und Packetinformationen auf dem System zu bereinigen:
Das stellt sicher, dass später die Installation wegen Daten aus dem Cache blockiert wird oder nicht sauber durchläuft. Im Anschluss wird die Datei „sources.list“ bearbeitet, um die notwendigen Repositories für Snort hinzuzufügen. In diesem Beispiel verwenden wir den Editor Nano, die Aktionen lassen sich aber auch mit anderen Editoren durchführen, zum Beispiel mit vi oder leafpad:
sudo nano /etc/apt/sources.list
Der Inhalt der Datei wird mit dem folgenden Inhalt ersetzt
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu/ focal-updates main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu/ focal-security main restricted universe multiversedeb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiversedeb-src http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiversedeb http://archive.canonical.com/ubuntu focal partnerdeb-src http://archive.canonical.com/ubuntu focal partner
Nach der Anpassung werden die öffentlichen Schlüssel für die neu eingetragenen Repositories hinzugefügt:
In diesem Tool-Tipp-Video und der Bildergalerie zeigen wir die Installation, Einrichtung und ersten Schritte mit Snort unter Kali.
Bildergalerie
Snort installieren und einrichten
Wenn die Repositories auf dem System eingerichtet sind, erfolgt die Installation mit:
sudo apt install snort
Danach ist Snort auf dem System verfügbar. Die installierte Version lässt sich mit dem folgenden Befehl anzeigen:
snort --version
Eine Hilfe zur Verwendung von Snort lässt sich mit dem Befehl „snort --help“ anzeigen. Um den Quellcode der aktuellsten Version herunterzuladen und zu kompilieren, kann zum Beispiel das Repository geklont werden. Das geht über die Github-Seite des Projekts.
Die Platzierung der Systemdateien von Snort kann je nach Betriebssystem und Installationsmethode variieren. Typischerweise finden sich die wichtigsten Dateien und Verzeichnisse von Snort jedoch in den folgenden Pfaden:
Konfigurationsdateien: Diese befinden sich in der Regel im Verzeichnis /etc/snort/ oder /usr/local/etc/snort/. Hier liegt die Hauptkonfigurationsdatei snort.conf sowie weitere Konfigurationsdateien wie classification.config, reference.config und die Regeldateien.
Regeldateien: Standardmäßig sind die Snort-Regeldateien im Unterverzeichnis rules/ innerhalb des Konfigurationsverzeichnisses zu finden, also /etc/snort/rules/ oder /usr/local/etc/snort/rules/. Hier werden benutzerdefinierte Regeln sowie von der Snort-Community bereitgestellte Regeln abgelegt.
Logdateien: Die Logdateien von Snort werden üblicherweise in einem separaten Verzeichnis abgelegt, oft unter /var/log/snort/ oder einem benutzerdefinierten Pfad, der in der snort.conf Datei spezifiziert wurde. Hier werden Alarme, Paketdumps und andere Protokollierungsdaten gespeichert.
Binärdateien: Die ausführbaren Dateien von Snort sind meistens unter /usr/bin/, /usr/local/bin/, oder einem ähnlichen Verzeichnis für ausführbare Programme zu finden, abhängig davon, wie Snort installiert wurde.
Dynamische Regeln und Preprozessoren: Falls verwendet, können dynamische Regeln und Preprozessoren in einem spezifischen Verzeichnis, wie /usr/local/lib/snort_dynamicrules/ oder einem ähnlichen Pfad, basierend auf der Installationskonfiguration, abgelegt werden.
Um die exakte Platzierung der Dateien in einer spezifischen Installation zu bestimmen, kann die Dokumentation der verwendeten Snort-Version oder die Snort-Konfigurationsdatei (snort.conf) konsultiert werden. Diese enthält Pfade und Einstellungen, die für die Installation spezifisch sind.
Einrichtung und Verwendung von Snort nach der Installation
Um Snort im einfachsten Modus zu starten, dem Sniffer-Modus, der den Netzwerkverkehr einfach nur mitliest und auf der Konsole ausgibt, kann der folgende Befehl verwendet werden:
snort -v -i eth0
Hierbei bedeutet -v (verbose), dass die Paketheader angezeigt werden, und -i eth0 gibt die Netzwerkschnittstelle an, auf der Snort lauschen soll.
Um den Netzwerkverkehr in Dateien zu protokollieren, anstatt ihn nur auf der Konsole auszugeben, kann Snort im Paket-Log-Modus verwendet werden:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
snort -dev -l ./log -i eth0
In diesem Befehl bedeutet -dev eine detailliertere Ausgabe (inklusive Daten-Link- und Netzwerkschicht), -l ./log spezifiziert das Verzeichnis, in dem die Protokolle abgelegt werden sollen (hier ein lokales Verzeichnis log), und -i eth0 gibt wieder die zu überwachende Schnittstelle an.
Snort im Netzwerk-Intrusion-Detection-Modus
Um Snort mit einer Basiskonfiguration im Netzwerk-Intrusion-Detection-Modus zu starten, der den Netzwerkverkehr basierend auf vordefinierten Regeln analysiert und Alarme auslöst, kann der folgende Befehl genutzt werden:
snort -q -A console -c /etc/snort/snort.conf -i eth0
Hierbei schaltet -q den stillen Modus ein (keine Paketausgabe auf der Konsole), -A console bestimmt, dass Alarme auf der Konsole ausgegeben werden, -c /etc/snort/snort.conf spezifiziert den Pfad zur Konfigurationsdatei, und -i eth0 legt die Netzwerkschnittstelle fest.
Um zu testen, ob die Snort-Konfiguration funktioniert, ohne den Netzwerkverkehr zu überwachen oder zu analysieren, kann folgender Befehl verwendet werden:
snort -T -c /etc/snort/snort.conf
Der Schalter -T bewirkt, dass Snort die Konfiguration testet, und -c /etc/snort/snort.conf verweist auf die Konfigurationsdatei, deren Gültigkeit geprüft werden soll.
Nach der Installation von Snort erfolgt die Einrichtung zunächst über die Anpassung der Konfigurationsdatei „snort.conf“, wobei spezifische Netzwerkparameter wie das zu überwachende Subnetz eingestellt werden. Im Falle eines Subnetzes 10.0.0.0/16 würde die entsprechende Zeile in der „snort.conf“ so angepasst, dass Snort dieses Netzwerksegment als internes Netzwerk erkennt:
var HOME_NET 10.0.0.0/16
Anschließend ist die Definition von Regeln entscheidend, um spezifische Bedrohungen zu identifizieren. Regeln werden in der Datei „local.rules“ hinzugefügt. Zum Beispiel, um Zugriffe auf einen nicht autorisierten Port zu detektieren, könnte folgende Regel implementiert werden:
alert tcp $HOME_NET any -> $EXTERNAL_NET 12345 (msg:"Zugriff auf unautorisierten Port"; sid:1000002;)
Nach der Konfiguration und Definition der Regeln wird Snort in der Regel über die Kommandozeile mit spezifischen Parametern gestartet, um den Netzwerkverkehr zu überwachen. Ein einfacher Befehl zum Starten von Snort im Überwachungsmodus könnte so aussehen:
snort -q -A console -i eth0 -c /etc/snort/snort.conf -l /var/log/snort
Hier startet Snort im stillen Modus (-q), gibt Alarme in der Konsole aus (-A console), überwacht die Schnittstelle eth0 (-i eth0), verwendet die Konfigurationsdatei unter /etc/snort/snort.conf und speichert Protokolle in /var/log/snort. Nach dem Start analysiert Snort den Netzwerkverkehr gemäß den definierten Regeln und protokolliert bzw. alarmiert bei Erkennung von Anomalien oder Bedrohungen, wodurch Administratoren handeln können, um die Sicherheit des Netzwerks zu gewährleisten.
Beispiel für die Erkennung von SQL-Injection-Angriffen
Für die Erkennung von SQL-Injection-Angriffen, die speziell auf Webanwendungen innerhalb des 10.0.0.0/16 Netzwerks abzielen, kann folgende Snort-Regel eingesetzt werden:
Diese Regel prüft den HTTP-Datenverkehr auf das Vorhandensein von typischen SQL-Befehlsteilen wie "select", "from" und "where" in einer einzigen Anfrage, was auf einen SQL-Injection-Versuch hindeuten könnte.
Anpassung von Snort für den Einsatz als Intrusion Prevention System (IPS)
Um Snort nicht nur als IDS, sondern auch als IPS zu konfigurieren, also um potenziell schädlichen Datenverkehr aktiv zu blockieren, wird der Inline-Modus verwendet. Der Startbefehl könnte dann folgendermaßen erweitert werden:
Hierbei ermöglicht -Q den Inline-Modus, --daq afpacket legt das Data Acquisition Plugin fest, und -i eth0:eth1 definiert das Paar von Netzwerkschnittstellen für den eingehenden und ausgehenden Datenverkehr. Diese Konfiguration erlaubt es Snort, erkannten schädlichen Datenverkehr direkt zu blockieren, bevor er das Ziel im Netzwerk erreicht.
Überwachung spezifischer Protokolle
Snort kann auch so konfiguriert werden, dass es ausschließlich Verkehr von spezifischen Protokollen überwacht. Zum Beispiel könnte die Überwachung auf DNS-Verkehr beschränkt werden, um DNS-basierte Angriffe wie DNS Tunneling zu erkennen:
alert udp $HOME_NET any -> $EXTERNAL_NET 53 (msg:"Ungewöhnlicher DNS Verkehr"; sid:1000004;)
Durch die Fokussierung auf Port 53, den Standardport für DNS-Anfragen, kann Snort speziell den DNS-Verkehr analysieren und ungewöhnliche Muster identifizieren, die auf kompromittierte Systeme oder Exfiltrationsversuche hinweisen könnten.
In diesem Tool-Tipp-Video und der Bildergalerie zeigen wir die Installation, Einrichtung und ersten Schritte mit Snort unter Kali.