GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Snort na Ubuntu 20.04

Snort je odlehčený síťový systém prevence narušení s otevřeným zdrojovým kódem pro provozování systému detekce narušení sítě (NIDS). Snort se používá ke sledování dat balíčku odeslaných/přijatých přes specifické síťové rozhraní. Systémy detekce narušení sítě mohou zachytit hrozby zacílené na slabiny a zranitelnosti vašeho systému pomocí technologií detekce a analýzy protokolů založené na signaturách.

Když je software NIDS nainstalován a správně nakonfigurován, dokáže identifikovat různé druhy útoků a podezření na věci, jako jsou útoky CGI, porušení síťových zásad, sondy SMB, infekce malwaru, kompromitovaný systém, skenování portů stealth atd.

V tomto tutoriálu se naučíme, jak instalovat Snort 3 na Ubuntu 20.04 .

Některé z nových funkcí Snortu 3:

  • Podpora více vláken zpracování paketů
  • Umožňuje zpracování více paketů
  • Automaticky generovat referenční dokumentaci
  • Použijte jednoduchou skriptovatelnou konfiguraci
  • Umožněte připojit klíčové komponenty
  • Umožňuje uživatelům psát vlastní pluginy
  • Sdílená tabulka konfigurace a atributů
  • Umožňuje rychlejší spouštění pravidel

Krok 1:Aktualizujte systém

Nejprve aktualizujte a upgradujte svůj systém Ubuntu

sudo apt update
sudo apt upgrade

Krok 2:Nainstalujte požadované závislosti

Výchozí úložiště Ubuntu má balíček snort. Balíček snort, který je tam k dispozici, je stará verze. Chcete-li nainstalovat Snort 3, musíme sestavit ze zdroje. Před instalací Snortu 3 musíme nainstalovat nezbytné a požadované knihovny.

Nainstalujte balíčky závislostí Snort 3 pomocí následujícího příkazu:

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

Po instalaci závislostí vytvořte adresář, do kterého kompilujete a uchováváte zdrojové soubory pro Snort pomocí následujícího příkazu:

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

Poté si stáhněte a nainstalujte nejnovější verzi knihovny Snort Data Acquisition (LibDAQ). Pro instalaci LibDAQ budeme ho muset sestavit a nainstalovat ze zdroje pomocí následujícího příkazu.

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

Další závislostí je Tcmalloc, který optimalizuje alokaci paměti a poskytuje lepší využití paměti.

Nainstalujte Tcmalloc pomocí následujícího příkazu.

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

Krok 3:Nainstalujte Snort 3 na Ubuntu 20.04

Po nastavení závislostí si stáhneme a nainstalujeme Snort 3 na Ubuntu 20.04.

01. Klonování oficiálního úložiště GitHub Snort 3.

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

02. Změňte adresář na Snort3

cd snort3/

03. Odtud nakonfigurujte a povolte tcmalloc pomocí následujícího příkazu.

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

04. Přejděte do adresáře build a zkompilujte a nainstalujte Snort 3 pomocí make a make install s následujícím příkazem.

cd build
make 
make install

05. Po dokončení instalace aktualizujte sdílené knihovny.

sudo ldconfig

Snort se standardně instaluje do adresáře /usr/local/bin/snort, je dobrým zvykem vytvořit symbolický odkaz pro /usr/sbin/snort

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

06. Ověřte instalaci Snort 3

snort -V

Výstup:

,,_     -> 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

Pokud vidíte podobný výstup, pak je Snort 3 úspěšně nainstalován.

Konfigurace karet síťového rozhraní

Najděte rozhraní, na kterém Snort naslouchá síťovému provozu, a povolte promiskuitní režimu, abyste mohli vidět veškerý síťový provoz, který je do něj odeslán.

ip link set dev eh0 promisc on

Ověřte pomocí následujícího příkazu.

ip add sh eth0

Výstup:

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

Dále deaktivujte stahování rozhraní, abyste zabránili Snortu 3 zkracovat velké pakety, max. na 1518 bajtů. Zkontrolujte, zda je tato funkce povolena pomocí následujícího příkazu.

ethtool -k eth0 | grep receive-offload

Pokud vidíte tento výstup, GRO je povoleno, zatímco LRO je pevné nebo je povoleno LRO.

Výstup.

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

Vypněte jej pomocí následujícího příkazu.

ethtool -K eth0 gro off lro off

Dva zajistí, že změny přetrvají i po restartu systému, budeme muset vytvořit a povolit servisní jednotku systemd, která provede změny.

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

Vložte následující konfiguraci, která ukazuje na vaše síťové rozhraní.

[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

Znovu načtěte nastavení konfigurace systemd:

sudo systemctl daemon-reload

Spusťte a povolte službu při spouštění pomocí následujícího příkazu:

sudo systemctl enable --now snort3-nic.service

Výstup.

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

Ověřte službu snort3-nic.service pomocí:

sudo systemctl status snort3-nic.service

Výstup.

● 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 >

Nainstalujte si pravidla komunity Snort 3

Ve Snortu jsou sady pravidel hlavní výhodou pro motor detekce narušení. Existují tři typy pravidel Snortu:Pravidla komunity, Registrovaná pravidla, Pravidla odběratele. Pravidla komunity předkládá komunita open source nebo integrátoři snortu.

Ukážeme si, jak nainstalovat pravidla komunity.

Nejprve vytvořte adresář pro Pravidla v /usr/local/etc/snort

mkdir /usr/local/etc/rules

Stáhněte si pravidla komunity Snort 3. Najdete jej na oficiální stránce ke stažení Snort3.

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

Rozbalte stažená pravidla a vložte je do adresáře, který jsme dříve vytvořili /usr/local/etc/rules/

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

Snort 3 obsahuje dva hlavní konfigurační soubory, snort_defaults.lua a snort.lua .

snort.lua obsahuje hlavní konfiguraci Snortu, umožňující implementaci a konfiguraci preprocesorů Snort, zahrnutí souborů pravidel, protokolování, filtry událostí, výstup atd.

Soubor snort_defaults.lua soubory obsahují výchozí hodnoty, jako jsou cesty k pravidlům, AppID, seznamy informací a síťové proměnné.

Když jsou soubory pravidel extrahovány a umístěny, nakonfigurujeme jeden z těchto konfiguračních souborů s názvem snort.lua. Otevřete soubor pomocí svého oblíbeného editoru a uvidíte něco podobného.

... -- 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' ... 

Nastavte síť, kterou chcete chránit před útoky, jako hodnotu pro HOME_NET proměnná a bod EXTERNAL_NET proměnná na HOME_NET variabilní.

Uložte a ukončete.

Výchozí nastavení Snortu můžete také upravit v /usr/local/etc/snort/snort_defaults.lua a v sekci IPS můžete definovat umístění pro vaše pravidla.

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' 
}
 ...

Uložte a ukončete.

Spuštění Snortu jako služby

Pokud se chystáte spustit Snort jako servisního démona na pozadí, je také možné vytvořit systémovou servisní jednotku pro Snort. Je rozumné jej spouštět jako neprivilegovaný uživatel systému

Vytvořte systémový uživatelský účet bez přihlášení.

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

Poté vytvořte systémovou servisní jednotku pro Snort, která bude spuštěna jako uživatel Snortu. Upravte a přizpůsobte se vašemu síťovému rozhraní.

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

Vložte následující konfiguraci.

[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

Znovu načtěte konfiguraci systemd.

sudo systemctl daemon-reload

Nastavte vlastnictví a oprávnění k souboru protokolu.

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

Spusťte a povolte spuštění Snortu při spouštění systému:

sudo systemctl enable --now snort3

Zkontrolujte stav služby a ověřte, zda je spuštěna.

sudo systemctl status snort3

Výstup.

● 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.

Závěr

V tomto tutoriálu, jak nainstalovat systém detekce narušení sítě Snort 3 na Ubuntu 20.04.

Linux není 100% imunní vůči virům a podezřelým věcem, vždy je lepší mít nainstalovaný nějaký nástroj a mít jistotu, že ve vašem zařízení a síti nikdo nezkouší něco podezřelého. Další alternativy pro Snort, které můžete prozkoumat:Ossec, Palo Alto Networks Firewall nové generace, Next-Generation Intrusion Prevention System (NGIPS).

Děkujeme za přečtení, poskytněte nám prosím svůj názor a návrhy v sekci komentářů.


Ubuntu
  1. Jak nainstalovat Odoo na Ubuntu

  2. Jak nainstalovat R na Ubuntu 16.04

  3. Jak nainstalovat Go na Ubuntu 18.04

  1. Jak nainstalovat Maven na Ubuntu

  2. Jak nainstalovat Wine na Ubuntu

  3. Jak nainstalovat Ruby na Ubuntu 20.04

  1. Jak nainstalovat PuTTY na Ubuntu

  2. Jak nainstalovat Ruby na Ubuntu 18.04

  3. Jak nainstalovat Pip na Ubuntu 18.04