Snort ist ein kostenloses Network Intrusion Detection System (IDS). In weniger offiziellen Begriffen können Sie Ihr Netzwerk in Echtzeit auf verdächtige Aktivitäten überwachen . Derzeit bietet Snort Pakete für Fedora-, CentOS-, FreeBSD- und Windows-basierte Systeme an. Die genaue Installationsmethode variiert zwischen den Betriebssystemen. In diesem Tutorial werden wir direkt aus den Quelldateien für Snort installieren. Dieser Leitfaden wurde für Debian geschrieben.
Aktualisieren, aktualisieren und neu starten
Bevor wir die Snort-Quellen tatsächlich in die Hände bekommen, müssen wir sicherstellen, dass unser System auf dem neuesten Stand ist. Wir können dies tun, indem wir die folgenden Befehle eingeben.
sudo apt-get update
sudo apt-get upgrade -y
sudo reboot
Konfiguration vorinstallieren
Nach dem Neustart Ihres Systems müssen wir eine Reihe von Paketen installieren, um sicherzustellen, dass wir SBPP installieren können. Ich konnte herausfinden, dass einige der Pakete benötigt wurden, daher ist der Basisbefehl unten.
sudo apt-get install flex bison build-essential checkinstall libpcap-dev libnet1-dev libpcre3-dev libnetfilter-queue-dev iptables-dev libdumbnet-dev zlib1g-dev -y
Sobald alle Pakete installiert sind, müssen Sie ein temporäres Verzeichnis für Ihre Quelldateien erstellen - sie können sich an einer beliebigen Stelle befinden. Ich werde verwenden /usr/src/snort_src. Um diesen Ordner zu erstellen, müssen Sie als rootBenutzer angemeldet sein oder über sudoBerechtigungen verfügen - dies rootmacht es nur einfacher.
sudo mkdir /usr/src/snort_src
cd /usr/src/snort_src
Installieren der Datenerfassungsbibliothek (DAQ)
Bevor wir die Quelle für Snort erhalten können, müssen wir den DAQ installieren. Es ist ziemlich einfach zu installieren.
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
Extrahieren Sie die Dateien aus dem Tarball.
tar xvfz daq-2.0.6.tar.gz
Wechseln Sie in das DAQ-Verzeichnis.
cd daq-2.0.6
Konfigurieren und installieren Sie den DAQ.
./configure; make; sudo make install
Diese letzte Zeile wird ./configurezuerst ausgeführt. Dann wird es ausgeführt make. Zuletzt wird es ausgeführt make install. Wir verwenden hier die kürzere Syntax, um ein wenig beim Tippen zu sparen.
Snort installieren
Wir möchten sicherstellen, dass wir wieder im /usr/src/snort_srcVerzeichnis sind. Wechseln Sie also in dieses Verzeichnis mit:
cd /usr/src/snort_src
Nachdem wir uns im Verzeichnis für die Quellen befinden, laden wir die tar.gzDatei für die Quelle herunter . Zum Zeitpunkt dieses Schreibens ist die neueste Version von Snort 2.9.8.0.
wget https://www.snort.org/downloads/snort/snort-2.9.8.0.tar.gz
Die Befehle zum tatsächlichen Installieren von snort sind denen für den DAQ sehr ähnlich, haben jedoch unterschiedliche Optionen.
Extrahieren Sie die Snort-Quelldateien.
tar xvfz snort-2.9.8.0.tar.gz
Wechseln Sie in das Quellverzeichnis.
cd snort-2.9.8.0
Konfigurieren und installieren Sie die Quellen.
./configure --enable-sourcefire; make; sudo make install
Nachinstallation von Snort
Sobald wir Snort installiert haben, müssen wir sicherstellen, dass unsere gemeinsam genutzten Bibliotheken auf dem neuesten Stand sind. Wir können dies mit dem Befehl tun:
sudo ldconfig
Testen Sie anschließend Ihre Snort-Installation:
snort --version
Wenn dieser Befehl nicht funktioniert, müssen Sie einen Symlink erstellen. Sie können dies tun, indem Sie Folgendes eingeben:
sudo ln -s /usr/local/bin/snort /usr/sbin/snort
snort --version
Die resultierende Ausgabe ähnelt der folgenden:
,,_ -*> Snort! <*-
o" )~ Version 2.9.7.5 GRE (Build 262)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.6.2
Using PCRE version: 8.35 2014-04-04
Using ZLIB version: 1.2.8
Snort ohne Wurzeln
Nachdem wir snort installiert haben, möchten wir nicht, dass es als ausgeführt rootwird. Daher müssen wir einen snortBenutzer und eine Gruppe erstellen . Um einen neuen Benutzer und eine neue Gruppe zu erstellen, können Sie diese beiden Befehle verwenden:
sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort
Da wir das Programm unter Verwendung der Quelle installiert haben, müssen wir die Konfigurationsdateien und die Regeln für Snort erstellen.
sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/preproc_rules
sudo touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules
Nachdem wir die Verzeichnisse und Regeln erstellt haben, müssen wir jetzt das Protokollverzeichnis erstellen.
sudo mkdir /var/log/snort
Und bevor wir Regeln hinzufügen können, benötigen wir einen Speicherort für die dynamischen Regeln.
sudo mkdir /usr/local/lib/snort_dynamicrules
Nachdem alle vorherigen Dateien erstellt wurden, legen Sie die richtigen Berechtigungen für sie fest.
sudo chmod -R 5775 /etc/snort
sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules
Einrichten der Konfigurationsdateien
Um viel Zeit zu sparen und nicht alles kopieren und einfügen zu müssen, kopieren Sie einfach alle Dateien in das Konfigurationsverzeichnis.
sudo cp /usr/src/snort_src/snort*/etc/*.conf* /etc/snort
sudo cp /usr/src/snort_src/snort*/etc/*.map /etc/snort
Nachdem die Konfigurationsdateien vorhanden sind, können Sie zwei Dinge tun:
- Sie können Barnyard2 aktivieren
- Oder Sie lassen die Konfigurationsdateien einfach in Ruhe und aktivieren selektiv die gewünschten Regeln.
In jedem Fall werden Sie noch einige Dinge ändern wollen. Weiter lesen.
Aufbau
In der /etc/snort/snort.confDatei müssen Sie die Variable ändern HOME_NET. Es sollte auf den IP-Block Ihres internen Netzwerks eingestellt sein, damit die Versuche Ihres eigenen Netzwerks, sich beim Server anzumelden, nicht protokolliert werden. Dies kann 10.0.0.0/24oder sein 192.168.0.0/16. /etc/snort/snort.confÄndern Sie in Zeile 45 die Variable HOME_NETauf den Wert des IP-Blocks Ihres Netzwerks.
In meinem Netzwerk sieht es so aus:
ipvar HOME_NET 192.168.0.0/16
Dann müssen Sie die EXTERNAL_NETVariable auf Folgendes setzen :
any
Was sich einfach EXERNAL_NETin das verwandelt, was du HOME_NETnicht bist .
Regeln festlegen
Nachdem ein Großteil des Systems eingerichtet ist, müssen wir unsere Regeln für dieses kleine Schweinchen konfigurieren. Irgendwo um Zeile 104 in Ihrer /etc/snort/snort.confDatei, sollten Sie eine „var“ Deklaration und die Variablen sehen RULE_PATH, SO_RULE_PATH, PREPROC_RULE_PATH, WHITE_LIST_PATH, und BLACK_LIST_PATH. Ihre Werte sollten auf die Pfade eingestellt werden, in denen wir verwendet haben Un-rooting Snort.
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
Sobald diese Werte festgelegt sind, löschen oder kommentieren Sie die aktuellen Regeln ab Zeile 548.
Überprüfen Sie nun, ob Ihre Konfiguration korrekt ist. Sie können es mit überprüfen snort.
# snort -T -c /etc/snort/snort.conf
Sie sehen eine Ausgabe ähnlich der folgenden (der Kürze halber abgeschnitten).
Running in Test mode
--== Initializing Snort ==--
Initializing Output Plugins!
Initializing Preprocessors!
Initializing Plug-ins!
.....
Rule application order: activation->dynamic->pass->drop->sdrop->reject->alert->log
Verifying Preprocessor Configurations!
--== Initialization Complete ==--
,,_ -*> Snort! <*-
o" )~ Version 2.9.8.0 GRE (Build 229)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2015 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.7.4
Using PCRE version: 8.35 2014-04-04
Using ZLIB version: 1.2.8
Rules Engine: SF_SNORT_DETECTION_ENGINE Version 2.4 <Build 1>
Preprocessor Object: SF_IMAP Version 1.0 <Build 1>
Preprocessor Object: SF_FTPTELNET Version 1.2 <Build 13>
Preprocessor Object: SF_SIP Version 1.1 <Build 1>
Preprocessor Object: SF_REPUTATION Version 1.1 <Build 1>
Preprocessor Object: SF_POP Version 1.0 <Build 1>
Preprocessor Object: SF_DCERPC2 Version 1.0 <Build 3>
Preprocessor Object: SF_SDF Version 1.1 <Build 1>
Preprocessor Object: SF_GTP Version 1.1 <Build 1>
Preprocessor Object: SF_DNS Version 1.1 <Build 4>
Preprocessor Object: SF_SSH Version 1.1 <Build 3>
Preprocessor Object: SF_DNP3 Version 1.1 <Build 1>
Preprocessor Object: SF_SSLPP Version 1.1 <Build 4>
Preprocessor Object: SF_SMTP Version 1.1 <Build 9>
Preprocessor Object: SF_MODBUS Version 1.1 <Build 1>
Snort successfully validated the configuration!
Snort exiting
Nachdem alles fehlerfrei konfiguriert wurde, können Sie Snort testen.
Schnauben testen
Der einfachste Weg, Snort zu testen, ist das Aktivieren von local.rules. Dies ist eine Datei, die Ihre benutzerdefinierten Regeln enthält.
Wenn Sie in der snort.confDatei irgendwo in Zeile 546 bemerkt haben , existiert diese Zeile:
include $RULE_PATH/local.rules
Wenn Sie es nicht haben, fügen Sie es bitte um 546 hinzu. Sie können die local.rulesDatei dann zum Testen verwenden. Als Basistest muss Snort nur eine Ping-Anfrage (ICMP-Anfrage) verfolgen. Sie können dies tun, indem Sie in der folgenden Zeile zu Ihrer local.rulesDatei hinzufügen .
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)
Sobald Sie das in Ihrer Datei haben, speichern Sie es und lesen Sie weiter.
Führen Sie den Test aus
Der folgende Befehl startet Snort und druckt Warnungen im "Schnellmodus", während der Benutzer unter der Gruppe schnaubt, unter Verwendung der Konfiguration /etc/snort/snort.confund überwacht die Netzwerkschnittstelle eno1. Sie müssen zu eno1der Netzwerkschnittstelle wechseln , die Ihr System abhört.
$ sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i eno1
Sobald Sie es ausgeführt haben, pingen Sie diesen Computer an. Sie sehen eine Ausgabe, die wie folgt aussieht:
01/07−16:03:30.611173 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.105 -> 192.168.1.104
01/07−16:03:31.612174 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.104 -> 192.168.1.105
01/07−16:03:31.612202 [**] [1:10000001:0] ICMP test [**] [Priority: 0] 192.168.1.105 -> 192.168.1.104
^C*** Caught Int−Signal
Sie können Strg + C drücken , um das Programm zu beenden, und das war's. Snort ist fertig. Sie können jetzt alle gewünschten Regeln verwenden.
Abschließend möchte ich darauf hinweisen, dass es einige öffentliche Regeln der Community gibt, die Sie von der offiziellen Website unter der Registerkarte "Community" herunterladen können . Suchen Sie nach "Snort", dann gibt es direkt darunter einen Community-Link. Laden Sie das herunter, extrahieren Sie es und suchen Sie nach der community.rulesDatei.