GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Snort unter Ubuntu 20.04

Snort ist ein leichtes Open-Source-Netzwerk-Intrusion-Prevention-System zum Ausführen eines Netzwerk-Intrusion-Detection-Systems (NIDS). Snort wird verwendet, um die Paketdaten zu überwachen, die über eine bestimmte Netzwerkschnittstelle gesendet/empfangen werden. Systeme zur Erkennung von Netzwerkangriffen können Bedrohungen erkennen, die auf Schwachstellen und Schwachstellen Ihres Systems abzielen, indem sie signaturbasierte Erkennungs- und Protokollanalysetechnologien verwenden.

Wenn die NIDS-Software korrekt installiert und konfiguriert ist, kann sie verschiedene Arten von Angriffen und Verdachtsmomenten wie CGI-Angriffe, Verstöße gegen Netzwerkrichtlinien, SMB-Untersuchungen, Malware-Infektionen, ein kompromittiertes System, Stealth-Port-Scan usw. identifizieren.

In diesem Tutorial lernen wir, wie man Snort 3 installiert auf Ubuntu 20.04 .

Einige der neuen Funktionen von Snort 3:

  • Unterstützt mehrere Threads zur Paketverarbeitung
  • Erlaubt die Verarbeitung mehrerer Pakete
  • Referenzdokumentation automatisch generieren
  • Verwenden Sie eine einfache skriptfähige Konfiguration
  • Schlüsselkomponenten austauschbar machen
  • Ermöglicht es Benutzern, ihre eigenen Plugins zu schreiben
  • Gemeinsam genutzte Konfigurations- und Attributtabelle
  • Ermöglicht eine schnellere Ausführung von Regeln

Schritt 1:Aktualisieren Sie das System

Aktualisieren und aktualisieren Sie zuerst Ihr Ubuntu-System

sudo apt update
sudo apt upgrade

Schritt 2:Erforderliche Abhängigkeiten installieren

Das Ubuntu-Standard-Repository enthält das Snort-Paket. Das dort verfügbare snort-Paket ist die alte Version. Um Snort 3 zu installieren, müssen wir aus der Quelle bauen. Vor der Installation von Snort 3 müssen wir die vorausgesetzten und erforderlichen Bibliotheken installieren.

Installieren Sie Snort 3-Abhängigkeitspakete mit dem folgenden Befehl:

sudo apt install build-essential libpcap-dev libpcre3-dev libnet1-dev zlib1g-dev luajit hwloc libdnet-dev libdumbnet-dev bison flex liblzma-dev openssl libssl-dev pkg-config libhwloc-dev cmake cpputest libsqlite3-dev uuid-dev libcmocka-dev libnetfilter-queue-dev libmnl-dev autotools-dev libluajit-5.1-dev libunwind-dev

Erstellen Sie nach der Installation der Abhängigkeiten mit dem folgenden Befehl ein Verzeichnis, in dem Sie die Quelldateien für Snort kompilieren und aufbewahren:

mkdir snort-source-files
cd snort-source-files

Laden Sie dann die neueste Version der Snort Data Acquisition Library (LibDAQ) herunter und installieren Sie sie. Zur Installation von LibDAQ wir müssen es mit dem folgenden Befehl aus der Quelle erstellen und installieren.

git clone https://github.com/snort3/libdaq.git
cd libdaq
./bootstrap
./configure
make
make install

Die nächste Abhängigkeit ist Tcmalloc, die die Speicherzuweisung optimiert und eine bessere Speichernutzung bietet.

Installieren Sie Tcmalloc mit dem folgenden Befehl.

cd ../
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9/gperftools-2.9.tar.gz
tar xzf gperftools-2.9.tar.gz 
cd gperftools-2.9/
./configure
make 
make install

Schritt 3:Snort 3 auf Ubuntu 20.04 installieren

Nachdem die Abhängigkeiten eingerichtet sind, werden wir Snort 3 auf Ubuntu 20.04 herunterladen und installieren.

01. Snort 3 offizielles GitHub-Repository klonen.

cd ../
git clone git://github.com/snortadmin/snort3.git

02. Wechseln Sie in das Verzeichnis zu Snort3

cd snort3/

03. Von dort konfigurieren und aktivieren Sie tcmalloc mit dem folgenden Befehl.

./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc

04. Navigieren Sie zum Build-Verzeichnis und kompilieren und installieren Sie Snort 3 mit make und make install mit dem folgenden Befehl.

cd build
make 
make install

05. Wenn die Installation abgeschlossen ist, aktualisieren Sie gemeinsam genutzte Bibliotheken.

sudo ldconfig

Snort wird standardmäßig im Verzeichnis /usr/local/bin/snort installiert, es empfiehlt sich, einen symbolischen Link für /usr/sbin/snort

zu erstellen
sudo ln -s /usr/local/bin/snort /usr/sbin/snort

06. Überprüfen Sie die Installation von Snort 3

snort -V

Ausgabe:

,,_     -> Snort++ <-
   o"  )~   Version 3.1.10.0
    ''''    By Martin Roesch & The Snort Team
            http://snort.org/contact#team
            Copyright (C) 2014-2021 Cisco and/or its affiliates. All rights reserved.
            Copyright (C) 1998-2013 Sourcefire, Inc., et al.
            Using DAQ version 3.0.4
            Using LuaJIT version 2.1.0-beta3
            Using OpenSSL 1.1.1f  31 Mar 2020
            Using libpcap version 1.9.1 (with TPACKET_V3)
            Using PCRE version 8.39 2016-06-14
            Using ZLIB version 1.2.11
            Using LZMA version 5.2.4

Wenn Sie eine ähnliche Ausgabe sehen, wurde Snort 3 erfolgreich installiert.

Netzwerkkarten konfigurieren

Suchen Sie die Schnittstelle, auf der Snort auf Netzwerkverkehr lauscht, und aktivieren Sie promiscuous Modus, um den gesamten an ihn gesendeten Netzwerkverkehr sehen zu können.

ip link set dev eh0 promisc on

Überprüfen Sie dies mit dem folgenden Befehl.

ip add sh eth0

Ausgabe:

2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER UP> mtu 1500 qdisc mq state UP group default qlen 1000
     link/ether f2:3c:92:ed:7e:d8 brd ff:ff:ff:ff:ff:ff
     inet 74.207.230.186/24 brd 74.207.230.255 scope global dynamic eth0
        valid_lft 72073sec preferred_lft 72073sec
     inet6 2600:3c02::f03c:92ff:feed:7ed8/64 scope global dynamic mngtmpaddr noprefixroute 
        valid_lft 60sec preferred_lft 20sec
     inet6 fe80::f03c:92ff:feed:7ed8/64 scope link 
        valid_lft forever preferred_lft forever

Deaktivieren Sie als Nächstes das Schnittstellen-Offloading, um zu verhindern, dass Snort 3 große Pakete abschneidet, maximal auf 1518 Bytes. Überprüfen Sie mit dem folgenden Befehl, ob diese Funktion aktiviert ist.

ethtool -k eth0 | grep receive-offload

Wenn diese Ausgabe angezeigt wird, ist GRO aktiviert, während LRO festgelegt oder LRO aktiviert ist.

Ausgabe.

generic-receive-offload: on
large-receive-offload: on

Deaktivieren Sie es mit dem folgenden Befehl.

ethtool -K eth0 gro off lro off

Zweitens:Um sicherzustellen, dass die Änderungen über einen Systemneustart hinweg bestehen bleiben, müssen wir eine systemd-Diensteinheit erstellen und aktivieren, um die Änderungen zu implementieren.

sudo nano /etc/systemd/system/snort3-nic.service

Fügen Sie die folgende Konfiguration ein, die auf Ihre Netzwerkschnittstelle verweist.

[Unit]
Description=Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/sbin/ip link set dev eth0 promisc on
ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off 
TimeoutStartSec=0 
RemainAfterExit=yes

[Install]
WantedBy=default.target

Systemd-Konfigurationseinstellungen neu laden:

sudo systemctl daemon-reload

Starten und aktivieren Sie den Dienst beim Booten mit dem folgenden Befehl:

sudo systemctl enable --now snort3-nic.service

Ausgabe.

Created symlink /etc/systemd/system/default.target.wants/snort3-nic.service → /etc/systemd/system/snort3-nic.service.

Überprüfen Sie den snort3-nic.service mit:

sudo systemctl status snort3-nic.service

Ausgabe.

● snort3-nic.service - Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
      Loaded: loaded (/etc/systemd/system/snort3-nic.service; enabled; vendor preset: enabled)
      Active: active (exited) since Sat 2021-09-18 12:35:17 UTC; 4min 59s ago
     Process: 182782 ExecStart=/usr/sbin/ip link set dev eth0 promisc on (code=exited, status=0>
     Process: 182783 ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off (code=exited, status=0>
    Main PID: 182783 (code=exited, status=0/SUCCESS)
 Sep 18 12:35:17 li72-186 systemd[1]: Starting Set Snort 3 NIC in promiscuous mode and Disable >
 Sep 18 12:35:17 li72-186 systemd[1]: Finished Set Snort 3 NIC in promiscuous mode and Disable >

Installieren Sie Snort 3 Community-Regelsätze

In Snort sind Regelsätze der Hauptvorteil für die Intrusion Detection Engine. Es gibt drei Arten von Snort-Regeln:Community-Regeln, registrierte Regeln, Abonnentenregeln. Community-Regeln werden von der Open-Source-Community oder Snort-Integratoren eingereicht.

Wir zeigen Ihnen, wie Sie die Community-Regeln installieren.

Erstellen Sie zuerst ein Verzeichnis für die Regeln in /usr/local/etc/snort

mkdir /usr/local/etc/rules

Laden Sie die Community-Regeln von Snort 3 herunter. Sie finden es auf der offiziellen Snort3-Downloadseite.

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

Extrahieren Sie die heruntergeladenen Regeln und legen Sie sie in das zuvor erstellte Verzeichnis /usr/local/etc/rules/

tar xzf snort3-community-rules.tar.gz -C /usr/local/etc/rules/

Snort 3 enthält zwei Hauptkonfigurationsdateien, snort_defaults.lua und snort.lua .

Die snort.lua Die Datei enthält die Hauptkonfiguration von Snort, die die Implementierung und Konfiguration von Snort-Präprozessoren, die Einbeziehung von Regeldateien, Protokollierung, Ereignisfilter, Ausgabe usw. ermöglicht.

Die snort_defaults.lua Dateien enthalten Standardwerte wie Pfade zu Regeln, AppID, Intelligenzlisten und Netzwerkvariablen.

Wenn Regeldateien extrahiert und abgelegt werden, konfigurieren wir eine dieser Konfigurationsdateien namens snort.lua. Öffnen Sie die Datei mit Ihrem bevorzugten Editor und Sie sehen eine ähnliche Konfiguration.

... -- HOME_NET and EXTERNAL_NET must be set now -- setup the network addresses you are protecting
HOME_NET = 'server_public_IP/32'

-- set up the external network addresses.
-- (leave as "any" in most situations)
EXTERNAL_NET = 'any' EXTERNAL_NET = '!$HOME_NET' ... 

Stellen Sie als Wert für das HOME_NET das Netzwerk ein, das Sie vor Angriffen schützen möchten -Variable und zeigen Sie auf EXTERNAL_NET Variable zu HOME_NET Variable.

Speichern und beenden.

Sie können die Snort-Standardeinstellungen auch in /usr/local/etc/snort/snort_defaults.lua bearbeiten und im Abschnitt IPS den Speicherort für Ihre Regeln definieren.

ips = 
{     
-- use this to enable decoder and inspector alerts     
--enable_builtin_rules = true,     

-- use include for rules files; be sure to set your path     
-- note that rules files can include other rules files     
include = '/usr/local/etc/rules/snort3-community-rules/snort3-community.rules' 
}
 ...

Speichern und beenden.

Snort als Dienst ausführen

Wenn Sie Snort als Dienst-Daemon im Hintergrund ausführen möchten, ist es auch möglich, eine systemd-Diensteinheit für Snort zu erstellen. Es ist ratsam, es als nicht privilegierter Systembenutzer auszuführen

Erstellen Sie ein Systembenutzerkonto ohne Anmeldung.

sudo useradd -r -s /usr/sbin/nologin -M -c SNORT_IDS snort

Erstellen Sie dann eine systemd-Diensteinheit für Snort, die als Snort-Benutzer ausgeführt werden soll. Anpassung und Anpassung an Ihre Netzwerkschnittstelle.

sudo nano /etc/systemd/system/snort3.service

Fügen Sie die folgende Konfiguration ein.

[Unit]
Description=Snort 3 NIDS Daemon
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none -l /var/log/snort -D -i eht0 -m 0x1b -u snort -g snort

[Install]
WantedBy=multi-user.target

Laden Sie die systemd-Konfiguration neu.

sudo systemctl daemon-reload

Legen Sie den Besitz und die Berechtigungen für die Protokolldatei fest.

sudo chmod -R 5775 /var/log/snort
sudo chown -R snort:snort /var/log/snort

Snort starten und aktivieren, damit es beim Systemstart ausgeführt wird:

sudo systemctl enable --now snort3

Überprüfen Sie den Dienststatus, um zu bestätigen, ob er ausgeführt wird.

sudo systemctl status snort3

Ausgabe.

● snort3.service - Snort 3 NIDS Daemon
      Loaded: loaded (/etc/systemd/system/snort3.service; enabled; vendor preset: enabled)
      Active: active (running) since Sat 2021-09-18 12:44:32 UTC; 6s ago
    Main PID: 182886 (snort)
       Tasks: 2 (limit: 1071)
      Memory: 62.6M
      CGroup: /system.slice/snort3.service
              └─182886 /usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none >
 Sep 18 12:44:32 li72-186 systemd[1]: Started Snort 3 NIDS Daemon.

Schlussfolgerung

In diesem Tutorial erfahren Sie, wie Sie das Snort 3 Network Intrusion Detection System unter Ubuntu 20.04 installieren.

Linux ist nicht zu 100 % immun gegen Viren und verdächtige Dinge, es ist immer besser, ein Tool installiert zu haben und sicher zu sein, dass niemand etwas Verdächtiges auf Ihrem Gerät und in Ihrem Netzwerk versucht. Andere Alternativen für Snort, die Sie untersuchen können:Ossec, Palo Alto Networks Next-Generation Firewall, Next-Generation Intrusion Prevention System (NGIPS).

Vielen Dank fürs Lesen. Bitte geben Sie Ihr Feedback und Ihre Vorschläge im Kommentarbereich ein.


Ubuntu
  1. So installieren Sie Odoo auf Ubuntu

  2. So installieren Sie Maven auf Ubuntu

  3. So installieren Sie Wine auf Ubuntu

  4. So installieren Sie R unter Ubuntu 16.04

  5. So installieren Sie Go unter Ubuntu 18.04

So installieren Sie Go unter Ubuntu 18.04

So installieren Sie R unter Ubuntu 18.04

So installieren Sie qt unter Ubuntu 20.04

So installieren Sie Go in Ubuntu 20.04

So installieren Sie Go unter Ubuntu 22.04

So installieren Sie Snort unter Ubuntu 22.04