Headlines

Un sistema IDS semplice ed efficace con OSSEC e Ubuntu

Ciao a tutti,

Oggi vediamo come realizzare IDS (Intrusion Detection System) semplice ma efficace, basato su OSSEC, un sistema di rilevamento e risposta basato open source, OSSEC versioe open source, include:

  • Rilevamento delle intrusioni basato sul registro
  • Rilevamento di Rootkit
  • Rilevamento di malware
  • La risposta attiva
  • Auditing della conformità
  • Monitoraggio dell’integrità dei file
  • Inventario del sistema

Lo installaremo su una Ubuntu server 24.04 TLS e lo adatteremo di una GUI da interfaccia web, il server avra’ le seguenti caratteristiche, 1 CPU da 2 o 4 core, da 2 a 8 Gb di ram e un disco che varia dagli 80 a 160 Gb dipende dal traffico.

Il sistema monitorera’ i server Linux e Windows con IIS installato, ma mettiamoci al lavoro.

Iniziamo l’Installazione

Apriamo un terminale e iniziamo! Aggiorniamo prima di installare le dipendenza ad aggiornare il nostro server.

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

Installiamo le dipendenze

Una volta aggiornato il sistema, installiamo le dipendenze necessarie:

sudo apt upgrade python3-distupgrade ubuntu-release-upgrader-core

eseguiamo un reboot del sistema. Andiamo avanti con le dipendenze.

sudo apt install build-essential make zlib1g-dev libpcre2-dev libevent-dev libssl-dev libsqlite3-dev mysql-dev postgresql-dev wget

Installare OSSEC

Ora che abbiamo le dipendene giuste possiamo installare ossec, se usiamo i repository di ubuntu installeremo la versione ossec 3.7,mentre l’ultima versione e’ la 3.8 che troviamo a questo indrizzo, https://www.ossec.net/download-ossec.

Noi per semplicita’ useremo la versione dei repository forniti da Ubuntu, pertanto procederemo con l’installazione, dando il seguente comando:

sudo apt install ossec-hids-server

Durante la fase di installazione ci verrano poste delle domande, la prima e’ la scelta della lingua di installazione,  la secondo ls piu’ importante e come vogliamo installare ossec, qui dovremmo rispondere come server

 1- What kind of installation do you want (server, agent, local, hybrid or help)? server

la domanda che segue ci chiede se il path scellto dove verra’ installato ossec-server puo andare bene

– Server installation chosen.
2- Setting up the installation environment.
– Choose where to install the OSSEC HIDS [/var/ossec]: 

qui battiamo solo l’invio

Se vogliamo che ci venga inviata una notifica ad ogni alert, rispondiamo y a questa domanda

– Installation will be made at /var/ossec .
3- Configuring the OSSEC HIDS.
3.1- Do you want e-mail notification? (y/n) [y]: y

Se rispondiamo si inseriamo i parametri necessari, se rispodniamo no il sistema ndara avanti comunque e potremo sempre impostare manualmente questa opzione editando il file /var/ossec/etc/ossec.conf

alla domanda se vogliamo attivare il controllo diintefgrita’ rispondiamo con un y

3.2- Do you want to run the integrity check daemon? (y/n) [y]:
– Running syscheck (integrity check daemon). 

Abilitiamo anche il rootkit detection premendo enter

3.3- Do you want to run the rootkit detection engine? (y/n) [y]:
– Running rootcheck (rootkit detection). 

Alla domando successiva, premere Invio per attivare la risposta firewall-drop

– Do you want to enable the firewall-drop response? (y/n) [y]:
– firewall-drop enabled (agents) for levels >= 6 

La prossima doanda ci chiede se voglaimo inserire degli indirizzi IP nella white list, se voglimao farlo ora rispondiamo con un y altrmineti se vofliamo farlo in un secondo momento  editando /var/ossec/etc/ossec.conf diamo n

– Default white list for the active response:
– 192.168.152.1
– Do you want to add more IPs to the white list? (y/n)? [n]: n 

nella domanda che segue ci viene chiesto se vogliamo abilitare un syslog eserno dove inviare tutti  i log del nostro IDS, rispondete a vostra discrezione

3.5- Do you want to enable remote syslog (port 514 udp)? (y/n) [y]:
– Remote syslog enabled. 

bene ora se abbiamo risposto a tutto corettamente ci viene chiesto di avviare l’installzone di ossec premento Enter

– If you want to monitor any other file, just change the ossec.conf and add a new localfile entry. Any questions about the configuration can be answered by visiting us online at http://www.ossec.net . — Press ENTER to continue — 

avviamo ossec

sudo /var/ossec/bin/ossec-control start

Accediamo ora al file ossec.conf per aportare alcune modifiche necessare al nostro scopo;

sudo nano /var/ossec/etc/ossec.conf

Navighiamo ora fino alla sezione

<remote>
<connection>secure</connection>
</remote>

e apportiamo la seguente modifica

<remote>
<connection>secure</connection>
<allowed-ips>192.168.152.0/24</allowed-ips>
</remote>

Assicurati di sostituire <192.168.152.0/24> con l’intervallo IP della tua rete . Ciò consentirà al server OSSEC di accettare connessioni in arrivo dagli agenti da quegli IP.

Sopra la sezione remote troviamo la sezione globa e whitelist, inseriamo li dentro gli IP delle macchine che accederanno al server per visualizzarne il monitoraggio.

Riavviamo ora il servizio di ossec

sudo /var/ossec/bin/ossec-control restart

 sudo /var/ossec/bin/ossec-control status 

Installare la GUI

Il server e’ stato installato e configurato, ora vediamo come installare la web gui, ammetto che la versione che qui installermo, e’ un po vecchiotta e pertando dovremo prendere degli accorgimenti, e uno di questi e’ la versione di PHP che installeremo per farla funzionare, ovvero la 5.6.

Iniziamo con l’installazione dei repository necessari, dala console digitiamo i seguenti comandi.

sudo add-apt-repository -y ppa:ondrej/php
sudo apt update
ora installiamo php 5.6
sudo apt install php5.6
Una volta installato la versione di PHP necessaria scarichiamo l’interfaccia web
sudo apt install git clone
sudo apt install git
git clone https://github.com/ossec/ossec-wui.git 

Installiamo ora apache;

sudo apt install apache2

spostiamo la cartella di ossec-wui in /var/www/html/

sudo mv ossec-wui* /var/www/html/ossec 

diamo i giusti permessi alla cartella tmp

sudo chown ossec:ossec /var/www/html/ossec/tmp 

accediamo ora alla cartella /var/www/html/ossec e installiamo l’interfaccia con

sudo ./setup.sh

ora possiamo riavviare apache con

sudo systemctl restart apache2

ora la wui e’ installata

digitiamo al browser

http://192.168.152.10/ossec

Installare un agent su un server linux

Vedremo qui come installare i pacchetti agent su un apio di distribuzioni, iniziamo da prima come installare i repository necessari.

per derivate red hat

dnf install build-essential make zlib1g-dev libpcre2-dev libevent-dev libssl-dev libz-dev libsqlite3-dev -y 

per derivate debian

sudo apt install build-essential make zlib1g-dev libpcre2-dev libevent-dev libssl-dev libz-dev libsqlite3-dev -y 

Installazione per derivate redhat

wget -q -O – https://updates.atomicorp.com/installers/atomic | sh 

yum install ossec-hids ossec-hids-agent 

Vediamo invece l’installazione tramite derivate Debian

wget -q -O – https://updates.atomicorp.com/installers/atomic | sudo bash 

apt-get update 

apt-get install ossec-hids-agent 

Configurare l’agent

Una volta installato l’agent vediamo come configurarlo.

Accediamo al file ossec.conf

nano /var/ossec/etc/ossec.conf e modifichiamo questa sezione.

<client>
<server-ip>192.168.152.10</server-ip>
</client>

Questo IP è dove l’agente invia i suoi report. Utilizzando l’IP privato dei server OSSEC dalla rete , l’agente invierà i report tramite questa rete privata, aggiungendo un ulteriore livello di sicurezza incapsulando il traffico in una rete privata. 

Ora torniamo sul server e andiamo in cd /var/ossec/bin, lanciando il comando ls, troveremo una serie di script, quello che interessa a noi e’ manage_agents, avviandolo ci troveremo in questo menu.

avviamo lo script con

sudo ./manage_agents

questo e’ quello che vederemo

****************************************
* OSSEC HIDS v3.8.0 Agent manager. *
* The following options are available: *
****************************************
(A)dd an agent (A).
(E)xtract key for an agent (E).
(L)ist already added agents (L).
(R)emove an agent (R).
(Q)uit.
Choose your action: A,E,L,R or Q: 

Per aggiungere un agent premiamo la lettera A, ci verrano poste alcune domande per inserire la macchna da monitorare che sono le segenti:inseriremo il nome dell-agent che volgiamo monitorare, di solito si mette il nome della macchina da controllare noi metteremo server1

– Adding a new agent (use ‘\q’ to return to the main menu).
Please provide the following:
* A name for the new agent: server1

premendo invio ci verra’ richiesto di inserire l’IP della macchina da monitorare

* The IP Address of the new agent: 192.168.152.30

premendo un altra volta invio ci verra’ mostrato l’id che verra’ attribuito automaticamente a quella macchina, se va bene la numerazine che ci mostra, confermiamo con un semplice invio, altrimenti inseriamo un nostro id personalizzato

* An ID for the new agent[003]: 

Una volta dato l’invio ci verra’ mostrato il riepilogo dei dai inseriti per impostare l’agent, se tutto va bene diamo un y e invio

Agent information:
ID:003
Name:Server1
IP Address:192.168.152.30
Confirm adding it?(y/n): 

Bene ora l’agend e’ stato creato sul server, ma non e’ ancora finita ci manca ancora qualche passaggio per terminare. Vediamo intanto la lista dei nostri agent installati lanciando sempre lo script manage_agents e questa vola premiamo la lettera L. Qui avremo la lista di tutti i nostri agent, prendiamo ora nota dell’ID dell-agent appena creato

Available agents:
ID: 003, Name: Server1, IP: 192.168.152.30
** Press ENTER to return to the main menu. 
Da qui premiamo Enter e clicchiamo questa vola sulla lettera E, questo ci permettera’ di esttrare una chiave SHA1 da attribuire all’agent installato sulla macchina da monitorare

Choose your action: A,E,L,R or Q: E
Available agents: ID: 003, Name: Server1, IP: 192.168.152.30
Provide the ID of the agent to extract the key (or ‘\q’ to quit): 003

Inserendo l’ID e otteremo questa chiave

Agent key information for ‘003’ is: MDAzIFNlcnZlcjEgMTkyLjE2OC4xNTIuMzAgY2RiNTQ1ZmM4NmIwZjQxYmZhODIwYTE5NTU2MDlhZGJhY2I4ZGRmNTM4ZmNjZTc2YjM3MmYzNzY1NGFjZmM0Zg==

** Press ENTER to return to the main menu.

e poi premiamo la lettera Q per uscire

Copiamo la chiave su blocco note di windows e premiamo Enter.

Ci spostiamo ora sulla macchina linux da monitorare, e anche qui andremo in cd /var/ossec/bin,

troveremo anche qui lo script manage_agents, avviandolo citroveremo questo menu;

****************************************
* OSSEC HIDS v3.7.0 Agent manager. *
* The following options are available: *
****************************************
(I)mport key from the server (I).
(Q)uit.  

Premiamo la lettera I e inseriamo la chiave slavata precedentemente, premiamo invio e poi la lettera Q per uscire, e riavviamo l’agent

sudo /var/ossec/bin/ossec-control restart 

controlliamo se l’agent si e’ avviato

sudo /var/ossec/bin/ossec-control status 

questo e’ l’output che dovremo vedere

ossec-logcollector is running…
ossec-syscheckd is running…
ossec-agentd is running…
ossec-execd is running…  

Bene ci siamo quasi, torniamo nuovamente sul server e riavviamo il servizio di ossec

sudo /var/ossec/bin/ossec-control restart 

sudo /var/ossec/bin/ossec-control status 

questo e’ l’ouput che dovrebbe restituire 

ossec-monitord is running…
ossec-logcollector is running…
ossec-remoted is running…
ossec-syscheckd is running…
ossec-analysisd is running…
ossec-execd is running…  

bene ora non ci resta che testarlo, faremo apparire un alert, i log saranno sul server al path

/var/ossec/logs/alerts/alerts.log 

da server diamo questo comado

$ tail -f /var/ossec/logs/alerts/alerts.log 

Ora ci spostiamo sulla nostra macchina windows e tramite Putty o altro emulatroe di terminale ssh cerchere mod collegarci alla macchina da monitorare, simuleremo un errore di login, pertanto alla richiesta di credenziali, inseiremo la password sbagliata, tornado sul server vedremo in tempo reale l’alert generato.

** Alert 1724484444.4973: – syslog,sshd,invalid_login,authentication_failed, 2025 Gen 31 09:27:24 ossec-server->/var/log/auth.log Rule: 5710 (level 5) -> ‘Attempt to login using a non-existent user’ Src IP: XX.XX.XX.XX 2025-01-31T09:27:23.282997+00:00 ossec-server sshd[4938]: Failed none for invalid user test from XX.XX.XX.XX port 59850 ssh2 .

Questo lo rivedremo anche sull’interfaccia grafica accedendo tramite browser all’indirizzo del server

http://192.168.152.10/ossec.

Ora vediamo come rimuovere un agent. Anche qui ci basta eseguire nuovamente lo script mange_agents

sudo /var/ossec/bin/mange_agents

e selezioanre la lettera R, vedremo la lista di tutti i nostri agent, ci bastera’ inserire l’ID dell’agent da eliminare, confermare e premere Q per uscire

Choose your action: A,E,L,R or Q: R
Available agents:
 ID: 003, Name: Server1, IP: 192.168.152.30
Provide the ID of the agent to be removed (or ‘\q’ to quit):003
Confirm deleting it?(y/n):y

Bene ora abbiamo finito, buon monitoring

Adam

 

Lascia un commento

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

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.