Installazione e Configurazione Base di Suricata IDS su Ubuntu 22.04 con Interfaccia Grafica Elastic Stack

da | Gen 17, 2024

Suricata è un IPS (Intrusion Prevention System), un sistema per la prevenzione delle intrusioni in rete. Il software analizza tutto il traffico che attraversa il firewall alla ricerca di attacchi noti e anomalie.

Quando un attacco o un’anomalia sono stati rilevati, il sistema può decidere se bloccare il traffico o limitarsi a salvare l’evento sul log

In questo tutorial installeremo Suricata IDS insieme ad Elastic Stack su un server Ubuntu 22.04. I vari componenti dello stack sono:

Elasticsearch: per archiviare, indicizzare, correlare e ricercare gli eventi di sicurezza dal server.
Kibana: per visualizzare i log archiviati in Elasticsearch.
Filebeat: per analizzare il file di registro eve.json di Suricata e inviare ogni evento a Elasticsearch per l’elaborazione.
Suricata: per scansionare il traffico di rete alla ricerca di eventi sospetti ed eliminare i pacchetti non validi.

PREREQUISITI

Ubuntu Server 22.04 Installato
Password di root del server con accesso SSH attivo

AGGIORNAMENTO DEL SISTEMA

Prima di procedere con l’installazione di Suricata eseguire i comandi in sequenaza per l’aggiornamento del sistema:

Dopo aver effettuato l’aggiornamento installare tutte le dipendenze necessarie con i seguenti comandi:

INSTALLAZIONE DI SURICATA

Prima di scaricare il pacchetto di installazione di Suricata andare sul sito ufficiale e verificare l’ultima versione

Download

Individuare l’ultima versione stabile quindi cliccare sul pacchetto tar.gz con il tasto destro e copiare il link del download come mostrato nell’immagine sovrastante

ATTENZIONE: durante la stesura del seguente articolo l’ultima versione stabile di Suricata è la 7.0.2 del 19 Ottobre 2023

Dalla console SSH del server procedere al download del pacchetto di installazione con il comando:

Dpo aver scaircato il file compresso scompattarlo con il seguente comando:

Posizionarsi nella cartella appena scompattata con il comando:

Quindi avviare la configurazione con il comando:

Se è andato tutto a buon fine dovremmo vedere il seguente output:

Procedere con l’installazione si Suricata con il comando:

NOTA BENE: l’esecuziione di questo comando durerà circa 10 minuti.

Quindi eseguire il comando:

Se è andato tutto a buon fine dovremmo vedere il seguente output:

CONFIGURAZIONE DI SURICATA

La prima configurazione da fare è quella relativa all’interfaccia di rete e alle rete modificando il file suricata.yaml con il comando:

Individuare las seguenti righe:

Quindi modificare come di seguito:

NOTA BENE: in corrispondenza del valore HOME_NET inserire la propria subnet di rete e in corrispondenza di -interface: inserire il nome dell’interfaccia di rete

Salvare e chiudere il file di configurazione

ATTENZIONE: per verificare il nome dell’interfaccia di rete eseguire il comando:

Dovremmo visualizzare il seguente output con i nomi delle interfacce di rete presenti sul server:

Aggiornare Suricata con il comando:

Quindi verificare il file di configurazione con il comando:

Se è tutto ok dovremmo vedere un output come di seguito:

A questo punto verificare che il servizio si Suricata parta con il seguente comando:

NOTA BENE: al posto di ETHERNET inserire il nome dell’interfaccia di rete. Nel mio caso è ens160

Se il servizio è paritito correttamante dovremmo vedere il seguente output:

Per stoppare il servizio premere CTRL-C

Se il servizio è stato toppato dovremmo vedere il seguente output:

AUTOMAZIONE DEL SERVIZIO SURICATA

Per fare in modo che il servizio di Suricata parta in automatico all’avvio del server proceder ecome segue.

La prima cosa da fare è craere un servizio systemd per far si che Suricata si avvii automaticamante all’avvio del Server Ubuntu.

Eseguire il comando:

Quindi aggiungere all’interno del file le seguenti righe:

Salvare e chiudere il file di configurazione.

NOTA BENE: al posto di ETHERNET inserire il nome dell’interfaccia di rete. Nel mio caso è ens160

Abilitare Suricata con il comando:

Dovremmo vedere il seguente output:

Avviare Suricata con il comando:

Quindi verificare lo stato di Suricata con il comando:

Se è tutto OK dovremmo vedere una schermata come quella sovrastante

INSTALLAZIONE DI ELASTISEARCH E DI KIBANA

Il primo passaggio nell’installazione di Elasticsearch prevede l’aggiunta della chiave Elastic GPG al server con il comando:

Creare un repository per il pacchetto Elasticsearch creando il file /etc/apt/sources.list.d/elastic-7.x.list con il comando:

Quindi aggiornare il repository con il comando:

Installare Elasticsearch e Kibana con il comando:

CONFIGURAZIONE DI ELASTISEARCH

Procedere con la configurazione di Elasticsearch editando il file /etc/elasticsearch/elasticsearch.yml con il seguente comando:

Elasticsearch accetta solo connessioni locali per impostazione predefinita. Dobbiamo cambiarlo in modo che Kibana possa accedervi tramite l’indirizzo IP privato.

Individuare queste righe all’interno del file di configurazione:

Quindi modificarle come segue:

ATTENZIONE: al posto di INDIRIZZO IP PRIVATO inserire l’IP privato del server Ubuntu. Nel mio caso 192.168.100.236

Il passaggio successivo consiste nell’attivare alcune funzionalità di sicurezza e assicurarsi che Elastic sia configurato per l’esecuzione su un singolo nodo.
Per fare questo, aggiungere le seguenti righe alla fine del file di configurazione.

Se abbiamo fatto tutto correttamante dovremmo vedere una schermata come mostrato nell’immagine sovrastante

Salvare e chiudere il file di configurazione

ATTENZIONE: Se si intende utilizzare più nodi di Elastisearch non inserire la prima riga all’interno del file di configurazione.

Procedere con il reload del servizio daemon con il comando:

Quindi abilitare il servizio di Elasticsearch con il comando:

Avviare il servizio di Elastisearch con il comando:

Verificare lo stato del servizio di Elasticsearch con il comando:

Se è tutto corretto dovremmo vedere una schermata come nell’immagine sovrastante

Dopo aver abilitato l’impostazione di sicurezza di Elasticsearch, il passaggio successivo è quello di generare alcune password per le utenze predefinito.
Elasticsearch viene fornito con un’utilità per la creazione di password in /usr/share/elasticsearch/bin/elasticsearch-setup-passwords che può generare password casuali.

Poisizionarsi nella cartella /usr/share/elasticsearch/bin con il comando:

Quindi creare le password con il comando:

Dovremmo vedere il seguente output:

Premere Y per proseguire

Se è andato tutto a buon fine dovremmo vedere il seguente output con tutte le password generate:

ATTENZIONE: Segnare le password in un luogo sicuro perchè è possibile eseguire l’utility una sola volta

CONFIGURAZIONE DI KIBANA

Il primo passo nella configurazione di Kibana è abilitare la funzione di sicurezza di xpack generando chiavi segrete.
Kibana utilizza queste chiavi segrete per archiviare i dati in Elasticsearch. È possibile accedere all’utilità per generare chiavi segrete dalla directory /usr/share/kibana/bin.

Posizionarsi nella cartella /usr/share/kibana/bin/ con il comando:

Quindi generare le password con il comando:

Dovremmo visualizzare il seguente output:

Copiare questo output quindi editare il file kibana.yml con il comando:

Copiare l’output al fondo del file di configurazione

Se è tutto corretto dovremmo vedere una schermata come quella sovrastante

Kibana deve essere configurato in modo che sia accessibile dall’indirizzo IP privato del server.
Cercare la riga #server.host: “localhost” nel file e aggiungere la riga server.host: “INDIRIZZO IP PRIVATO”

Al posto di INDIRIZZO IP PRIVATO inserire l’ip privato del server Ubuntu. nel mio caso l’IP è sempre lo stesso e quindi 192.168.100.236

Salvare e chiudere il file di configurazione

Il passaggio successivo è quello di creare un nome utente e una password che Kibana possa utilizzare per l’autenticazione.

E’ possibile farlo modificando direttamente il file di configurazione di Kibana, ma ciò può causare un problema di sicurezza.

Il metodo sicuro prevede l’uso dell’applicazione kibana-keystore.

Eseguire i seguenti comandi per impostare un nome utente:

Al seguente Output inserire lo username kibana_system

Quindi premere Invio

Eseguire nuovamente il comando per impostare la password.
Assicurarsi di utilizzare la password creata in precedenza per Kibana_System.
Nel mio caso la password è yQLoBczVHoRbkzHgMK6J

Eseguire il comando:

Al seguente Output inserire la password yQLoBczVHoRbkzHgMK6J

Dopo aver tewrminato la configurazione di Kibana avviare ed abilitare il servizio con il comando:

Quindi verificare lo stato di Kibana con il comando:

Se abbiamo fatto tutto correttamante dovremmo vedere una schermata come quella sovrastante

INSTALLAZIONE E CONFIGURAZIONE DI FILEBEAT

Adesso procedere con l’installazione di Filebeat sul server Suricata.

Aggiungere la chiave Elastic GPG con il comando:

Quindi creare il repository di Elastisearch con il comando:

Aggiornare il repository con il comando:

Installare Filebeat con il comando:

Configurare Filebeat editando il file di configurazione /etc/filebeat/filebeat.yml con il seguente comando:

Quindi individuare nella sezione Kibana la riga #host: “localhost:5601”

Aggiungere sotto questa riga la riga:

Nel mio caso la riga sarà host: “192.168.100.236:5601”

Adesso scorrere il file di configurazione fino alla sezione Elasticsearch Output

Quindi editare i valori come di seguito:

ATTENZIONE: la password dell’utente elastic è quella generata in precedenza

Nel mio caso i parametri da inserire saranno i seguenti:

hosts: [“192.168.100.236:9200”]
username: “elastic”
password: “vjmGXRn787hXhF5PTuE5”

Salvare e chiudere il file di configurazione

Abilitare il modulo Suricata integrato di Filebeat con il comando:

Il passaggio finale nella configurazione di Filebeat consiste nel caricare la dashboard e le pipeline SIEM in Elasticsearch utilizzando il comando filebeat setup

ATTENZIONE: questa operazione richiederà diversi minuti

Se è andato tutto a buon fine dovremmo vedere il seguente output:

ACCESSO ALLA DASHBOARD DI KIBANA

A questo punto è possibile richiamare da un qualsiasi browser l’indirizzo

http://IP-SERVER-UBUNTU:5601

Accedere con le credenziali generate in precedenza per l’utente elastic.

USER: elastic
PASSWORD: vjmGXRn787hXhF5PTuE5

Cliccare Login

Nel campo Search Elastic cercare dashboard suricata overview quindi selezionare [Filebeat Suricata] Events Overview Dashboard come mostrato nell’immagine sovrastante

Questa è la dashboard degli eventi e degli alerts di Suricata

Scritto da Raffaele Chiatto

Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Infrastrutture IT
  • ACT For Cange  Mental Coach
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore Collaboratore

Related Post

2 Commenti

  1. Raffaele Chiatto

    Dovresti editare i file filebeat.yml e impostare setup.ilm.overwrite in true

  2. appena eseguo il comando: sudo filebeat setup mi da errore: Overwriting ILM policy is disabled. Set setup.ilm.overwrite: true for enabling.

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione