Intrusion-Detection-System Snort: Netzwerke wirkungsvoll absichern

Intrusion-Detection-Systeme (IDS) wie Snort analysieren den Netzwerkverkehr und erkennen unautorisierte Zugriffe. Wie zeigen, wie Sie Snort konfigurieren und Regeln erstellen, um solche Angriffe abzuwehren.
Bildergalerie
Funktioniert mit: Snort 2.9
Foto: igor.stevanovic_shutterstock

03Regeln für Snort aktualisieren

Die Regeldateien laden Sie direkt auf der Download-Seite von Snort herunter. Die ausführbaren Dateien befinden sich im Unterverzeichnis \bin des Snort-Installationsverzeichnisses. Im Verzeichnis \Logs speichert Snort wichtige Protokolldateien. Die Regeln zum Entdecken von Angreifern sind im Verzeichnis \rules gespeichert.

Entpacken Sie danach das Archiv auf dem Rechner. Im entpackten Regelverzeichnis finden Sie jetzt das Unterverzeichnis Rules. Öffnen Sie das Verzeichnis, und kopieren Sie alle Regeldateien in das Verzeichnis Rules des Snort-Installationsverzeichnisses.

Danach kopieren Sie die Dateien aus dem Verzeichnis \etc des entpackten Archivs in das Verzeichnis \etc der Snort-Installation.

Nach der Installation von Snort müssen Sie noch einige Aktualisierungen vornehmen und die Regeldateien in das Verzeichnis kopieren.
Nach der Installation von Snort müssen Sie noch einige Aktualisierungen vornehmen und die Regeldateien in das Verzeichnis kopieren.

04Snort konfigurieren - Netzwerke hinterlegen und mehr

Um Snort zu konfigurieren, verwenden Sie die Datei snort.conf im Verzeichnis \etc des Snort-Installationsverzeichnisses. Die Datei können Sie mit einem normalen Editor bearbeiten. Zu empfehlen ist die Open-Source-Software Notepad++, da diese die Zeilen nummeriert und die Datei besser anzeigen kann.

Mit Notepad++ bearbeiten Sie die Konfigurationsdatei von Snort optimal.
Mit Notepad++ bearbeiten Sie die Konfigurationsdatei von Snort optimal.

Die Konfigurationsdatei besteht aus neun Bereichen. Diese werden zu Beginn der Datei aufgelistet. Im ersten Schritt müssen Sie im Bereich 1 die IP-Adressen in Ihrem Netzwerk sowie die Subnetzmaske angeben.

Suchen Sie dazu nach der Zeile "ipvar HOME_NET any". Ersetzen Sie das Wort "any" durch die IP-Adresse und das Subnetz, zum Beispiel mit: "ipvar HOME_NET 192.168.178.0/24"

Danach legen Sie eine Zeile weiter unten fest, welche IP-Adressen nicht zu Ihrem Netzwerk gehören. Hier verwenden Sie am besten alle Adressen und Subnetze, außer Ihrem internen Netzwerk. Dazu bearbeiten Sie die Zeile "ipvar EXTERNAL_NET any". Auch hier ersetzen Sie das Wort "any". Verwenden Sie die Variable "!$HOME_NET", also: "ipvar EXTERNAL_NET !$HOME_NET".

Optional haben Sie jetzt noch die Möglichkeit, die IP-Adressen von Anwendungsservern zu hinterlegen, wie SQL, SMTP und Webserver. Sie können an dieser Stelle aber auch jeweils die Variable "$Home_NET" belassen. Auf Wunsch lassen sich auch die erlaubten Ports für Webserver anpassen. Diese finden Sie in der Zeile "List of ports you run web servers on".

Ein wichtiger Bereich liegt in der Zeile 104, wenn Sie mit Notepad++ arbeiten. Hier legen Sie fest, in welchem Verzeichnis die Regeln für das Finden von Angreifern gespeichert werden sollen. Sie müssen an dieser Stelle das komplette Verzeichnis angeben, also zum Beispiel "C:\Snort\rules". Die Zeile hat dann die Syntax: "var RULE_PATH c:\snort\rules". Sie finden die Zeile im Abschnitt "Path to your rules files"

Im gleichen Abschnitt kommentieren Sie mit "#" die Zeile "var SO_RULE_PATH ../so_rules" aus, sodass diese nicht mehr angewendet wird. Die Zeile "var PREPROC_RULE_PATH ../preproc_rules" müssen Sie ebenfalls bearbeiten und den Pfad zu den Regeln angeben. Die Syntax ist:

var PREPROC_RULE_PATH c:\snort\preproc_rules

Stellen Sie sicher, dass sich die Regeln auch in den entsprechenden Verzeichnissen befinden. Anschließend müssen Sie im nächsten Abschnitt für die beiden Variablen der White Lists und Black Lists ebenfalls das Verzeichnis zu den Regeln festlegen, in diesem Beispiel also "c:\snort\ rules". Die Syntax der beiden Zeilen lautet:

# If you are using reputation preprocessor set thesevar WHITE_LIST_PATH c:\snort\rulesvar BLACK_LIST_PATH c:\snort\rules

An dieser Stelle haben Sie die Konfiguration des ersten Abschnitts abgeschlossen.

Im zweiten Abschnitt ist das Protokollverzeichnis zu konfigurieren. Suchen Sie dazu nach der Zeile "config logdir". Diese befindet sich in Zeile 182 von Notepad++. Die Zeile ist durch ein "#" deaktiviert. Dieses Zeichen müssen Sie entfernen und das Protokollverzeichnis ausgeben. Die Zeile hat die Syntax:

config logdir: c:\snort\log

Danach suchen Sie die Zeile:

# path to dynamic preprocessor librariesdynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/

Diese befindet sich in Notepad++ in der Zeile 242. Den Wert hinter "directory" müssen Sie so anpassen, dass er auf das Verzeichnis "C:\Snort\lib\snort_dynamicpreprocessor" zeigt. Die Zeile hat dann folgende Syntax:

dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

Auch die nächste Zeile müssen Sie so bearbeiten, dass diese auf das korrekte Verzeichnis zeigt. Überprüfen Sie, ob das Verzeichnis mit Ihrer Snort-Installation übereinstimmt. In der zweiten Zeile achten Sie außerdem darauf, dass die Datei "sf_engine.dll" eingetragen ist:

dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

Die nächste Zeile (249) Zeile "dynamicdetection directory /usr/local/lib/snort_dynamicrules" können Sie wieder mit "#" auskommentieren.

Im Abschnitt 5 sollten Sie einige Zeilen mit "#" auskommentieren:

Zeile 261: # preprocessor normalize_ip4Zeile 262: # preprocessor normalize_tcp: block, rsv, pad, urp, req_urg, req_pay, req_urp, ips, ecn streamZeile 263: # preprocessor normalize_icmp4Zeile 264: # preprocessor normalize_ip6Zeile 265: # preprocessor normalize_icmp6

Suchen Sie danach nach der Zeile "# Portscan detection" Standardmäßig sind Portscans an dieser Stelle deaktiviert. Entfernen Sie die Raute (#), damit Portscans durchgeführt werden. Die Zeile 413 sieht dann folgendermaßen aus:

preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }

Erstellen Sie danach im Verzeichnis "C:\Snort\rules" zwei Textdateien mit den Bezeichnungen "white.list" und "black.list". In diesen beiden Dateien können Sie später in jeder Zeile IP-Adressen für White Lists und Black Lists pflegen. Die beiden Dateien müssen Sie in der Config-Datei noch hinterlegen. Dazu öffnen Sie den Abschnitt "# Reputation preprocessor" ab Zeile 501. Bearbeiten Sie die beiden Zeilen 506 und 507 so, dass der Name, der von Ihnen erstellten Datei verwendet und die Syntax von Snort beibehalten bleibt. Die Zeilen sehen dann so aus:

whitelist $WHITE_LIST_PATH\white.list, \blacklist $BLACK_LIST_PATH\black.list

Ab Zeile 540 finden Sie den Abschnitt "# site specific rules". Hier sollten Sie bis Zeile 658 in allen Zeilen das Slash-Zeichen (/) durch Back-Slash (\) ersetzen. Das können Sie in Notepad über Suchen\Ersetzen durchführen.

Mit Notepad++ können Sie Textteile ersetzen und Snort konfigurieren.
Mit Notepad++ können Sie Textteile ersetzen und Snort konfigurieren.

Anschließend aktivieren Sie im Bereich 8 der Konfigurationsdatei die drei Zeilen:

include $PREPROC_RULE_PATH/preprocessor.rulesinclude $PREPROC_RULE_PATH/decoder.rulesinclude $PREPROC_RULE_PATH/sensitive-data.rules

Speichern Sie die Datei ab. Sie können natürlich noch weitere Einstellungen abändern, um Snort an Ihre Bedürfnisse anzupassen.