GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Snort su Ubuntu 20.04

Snort è un sistema di prevenzione delle intrusioni di rete leggero e open source per l'esecuzione di un sistema di rilevamento delle intrusioni di rete (NIDS). Snort viene utilizzato per monitorare i dati del pacco inviati/ricevuti tramite una specifica interfaccia di rete. I sistemi di rilevamento delle intrusioni di rete possono rilevare le minacce che prendono di mira i punti deboli e le vulnerabilità del sistema utilizzando tecnologie di rilevamento e analisi del protocollo basate su firme.

Quando il software NIDS è installato e configurato correttamente, è in grado di identificare diversi tipi di attacchi e sospetti, come attacchi CGI, violazioni delle policy di rete, sonde SMB, infezioni da malware, un sistema compromesso, scansione delle porte invisibile, ecc.

In questo tutorial impariamo come installare Snort 3 su Ubuntu 20.04 .

Alcune delle nuove funzionalità di Snort 3:

  • Supporta più thread di elaborazione dei pacchetti
  • Consente l'elaborazione di più pacchetti
  • Genera automaticamente la documentazione di riferimento
  • Utilizza una semplice configurazione con script
  • Rendi i componenti chiave collegabili
  • Consente agli utenti di scrivere i propri plugin
  • Configurazione condivisa e tabella degli attributi
  • Consente alle regole di essere eseguite più velocemente

Fase 1:aggiorna il sistema

Innanzitutto, aggiorna e aggiorna il tuo sistema Ubuntu

sudo apt update
sudo apt upgrade

Passaggio 2:installa le dipendenze richieste

Il repository predefinito di Ubuntu ha il pacchetto snort. Il pacchetto snort disponibile è la vecchia versione. Per installare Snort 3, dobbiamo costruire dal sorgente. Prima di installare Snort 3, è necessario installare i prerequisiti e le librerie richieste.

Installa i pacchetti delle dipendenze di Snort 3 con il seguente comando:

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

Dopo aver installato le dipendenze, è stata creata una directory in cui compilare e mantenere i file di origine per Snort con il seguente comando:

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

Quindi, scarica e installa l'ultima versione della libreria Snort Data Acquisition (LibDAQ). Per l'installazione di LibDAQ dovremo compilarlo e installarlo dal sorgente con il seguente comando.

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

La dipendenza successiva è Tcmalloc, che ottimizzerà l'allocazione della memoria e fornirà un migliore utilizzo della memoria.

Installa Tcmalloc con il seguente comando.

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

Passaggio 3:installa Snort 3 su Ubuntu 20.04

Dopo aver impostato le dipendenze, scaricheremo e installeremo Snort 3 su Ubuntu 20.04.

01. Clona il repository GitHub ufficiale di Snort 3.

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

02. Cambia la directory in Snort3

cd snort3/

03. Da lì configura e abilita tcmalloc con il seguente comando.

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

04. Passa alla directory build e compila e installa Snort 3 usando make e make install con il comando seguente.

cd build
make 
make install

05. Al termine dell'installazione, aggiorna le librerie condivise.

sudo ldconfig

Snort per impostazione predefinita è installato nella directory /usr/local/bin/snort, è buona norma creare un collegamento simbolico per /usr/sbin/snort

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

06. Verifica l'installazione di Snort 3

snort -V

Uscita:

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

Se vedi un output simile, Snort 3 è installato correttamente.

Configura le schede di interfaccia di rete

Trova l'interfaccia su cui Snort sta ascoltando il traffico di rete e abilita promiscuo modalità per poter vedere tutto il traffico di rete inviatogli.

ip link set dev eh0 promisc on

Verifica con il seguente comando.

ip add sh eth0

Uscita:

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

Quindi, disabilita l'offload dell'interfaccia per impedire a Snort 3 di troncare pacchetti di grandi dimensioni, fino a un massimo di 1518 byte. Verifica se questa funzione è abilitata con il seguente comando.

ethtool -k eth0 | grep receive-offload

Se vedi questo output che GRO è abilitato mentre LRO è fisso o LRO è abilitato.

Uscita.

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

Disabilitalo con il seguente comando.

ethtool -K eth0 gro off lro off

Due assicurano che le modifiche persistano durante il riavvio del sistema, dovremo creare e abilitare un'unità di servizio systemd per implementare le modifiche.

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

Incolla la seguente configurazione che punta alla tua interfaccia di rete.

[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

Ricarica le impostazioni di configurazione del sistema:

sudo systemctl daemon-reload

Avvia e abilita il servizio all'avvio con il seguente comando:

sudo systemctl enable --now snort3-nic.service

Uscita.

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

Verifica snort3-nic.service con:

sudo systemctl status snort3-nic.service

Uscita.

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

Installa i set di regole della community di Snort 3

In Snort, i set di regole sono il principale vantaggio del motore di rilevamento delle intrusioni. Esistono tre tipi di regole Snort:regole della community, regole registrate, regole per gli abbonati. Le regole della community vengono inviate dalla community open source o dagli integratori di snort.

Mostreremo come installare le regole della community.

Innanzitutto, crea una directory per le Regole in /usr/local/etc/snort

mkdir /usr/local/etc/rules

Scarica le regole della community di Snort 3. Puoi trovarlo sulla pagina di download ufficiale di Snort3.

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

Estrai le regole scaricate e inseriscile nella directory che abbiamo creato in precedenza /usr/local/etc/rules/

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

Snort 3 include due file di configurazione principali, snort_defaults.lua e snort.lua .

snort.lua contiene la configurazione principale di Snort, consentendo l'implementazione e la configurazione dei preprocessori Snort, l'inclusione di file di regole, la registrazione, i filtri di eventi, l'output, ecc.

Il snort_defaults.lua i file contengono valori predefiniti come percorsi di regole, AppID, elenchi di intelligence e variabili di rete.

Quando i file delle regole vengono estratti e posizionati, configureremo uno di questi file di configurazione chiamato snort.lua. Apri il file con il tuo editor preferito e vedrai qualcosa di simile config.

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

Imposta la rete che vuoi proteggere dagli attacchi come valore per HOME_NET variabile e punto EXTERNAL_NET variabile su HOME_NET variabile.

Salva ed esci.

Puoi anche modificare le impostazioni predefinite di Snort in /usr/local/etc/snort/snort_defaults.lua e nella sezione IPS puoi definire la posizione delle tue regole.

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

Salva ed esci.

Eseguire Snort come servizio

Se hai intenzione di eseguire Snort come demone di servizio in background, è anche possibile creare un'unità di servizio systemd per Snort. È prudente eseguirlo come utente di sistema senza privilegi

Crea un account utente di sistema senza accesso.

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

Quindi, crea un'unità di servizio systemd per Snort da eseguire come utente snort. Regola e abbina alla tua interfaccia di rete.

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

Incolla la seguente configurazione.

[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

Ricarica la configurazione di sistema.

sudo systemctl daemon-reload

Imposta la proprietà e le autorizzazioni sul file di registro.

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

Avvia e abilita Snort per l'esecuzione all'avvio del sistema:

sudo systemctl enable --now snort3

Controlla lo stato del servizio per confermare se è in esecuzione.

sudo systemctl status snort3

Uscita.

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

Conclusione

In questo tutorial come installare il sistema di rilevamento delle intrusioni di rete Snort 3 su Ubuntu 20.04.

Linux non è immune al 100% da virus e cose sospette, è sempre meglio avere qualche strumento installato ed essere sicuri che nessuno stia provando qualcosa di sospetto attraverso il tuo dispositivo e la tua rete. Altre alternative per Snort che puoi esaminare:Ossec, Palo Alto Networks Next-Generation Firewall, Next-Generation Intrusion Prevention System (NGIPS).

Grazie per la lettura, fornisci i tuoi commenti e suggerimenti nella sezione commenti.


Ubuntu
  1. Come installare Odoo su Ubuntu

  2. Come installare Maven su Ubuntu

  3. Come installare Wine su Ubuntu

  4. Come installare R su Ubuntu 16.04

  5. Come installare Vai su Ubuntu 18.04

Come installare Vai su Ubuntu 18.04

Come installare R su Ubuntu 18.04

Come installare qt su Ubuntu 20.04

Come installare Go in Ubuntu 20.04

Come installare Vai su Ubuntu 22.04

Come installare Snort su Ubuntu 22.04