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

