blog-image

OSSEC HIDS - Détecteur d'intrusions

  • dHENRY
  • 15/11/2018
  • (Durée de lecture : 4 mn)

Cette procédure indique comment installer OSSEC HIDS sur un Raspberry PI3 ou un ROCK64 (pine64) en architecture serveur/agents, à partir des sources OSSEC

Pour plus d’informations sur ce détecteur d’intrusion consulter le site https://www.ossec.net/index.html

Pré-conditions

Pour installer OSSEC HIDS à partir des sources vous devrez disposer de certains paquets :

apt install unzip build-essential  

Le serveur doit disposer d’un service de mails opérationnel pour l’ensemble serveur/agents

Installation

Récupérez les sources au format zip sur https://github.com/ossec/ossec-hids/archive/master.zip

Vous souhaitez que OSSEC (Pour le serveur seulement) stocke les alertes dans une base de données Mysql, installer le paquet “mysql-client(mariadb)” :

apt install mariadb-client 

unzip [Fichier zip]  
cd ossec-hids-xxxxxx

Pour ajouter le support Mysql : Editez le fichier install.sh, rendez-vous à la ligne :

${MAKEBIN} PREFIX=${INSTALLDIR} TARGET=${INSTYPE} build 

Remplacez la par :

${MAKEBIN} PREFIX=${INSTALLDIR} TARGET=${INSTYPE} DATABASE=mysql build  

Enregistrez puis : exécutez

./install.sh   

Sélectionnez le mode d’installation souhaité (voir le site https://www.ossec.net/docs/
Si vous rencontrer des erreurs à la compilation, (ELF etc..)

cd src  
make clean  
cd  
./install.sh 

Mode serveur

Un seul serveur pour l’ensemble serveur/agents. Lors de l’installation sélectionnez le mode : serveur.

* activer les alertes par email,  
* donnez l'adresse de réception,  
* l'adresse du serveur SMTP,  
* démarrer le démon de vérification d'intégrité,  
* démarrer le moteur de détection de rootkit,  
* démarrer la réponse active,  
* activer la réponse pare-feu (firewall-drop),  
* ajoutez les adresses ip que vous souhaitez dans la liste blanche,  
* activer fonctionnalité syslog (port udp 514),  
* l'installateur indique la liste des fichiers surveillés et la méthode d'ajout :

Si vous voulez surveiller d'autres fichiers, changez
le fichier ossec.conf en ajoutant une nouvelle valeur
de nom de fichier local.

Pour toutes vos questions sur la configuration,
consultez notre site web http://www.ossec.net .
- Configuration correctement terminée.

Firewall

Toujours sur le serveur, ouvrir le port UDP 1514 (INPUT) sur les interfaces réseaux qui communiquent avec les agents.

Ajouter un agent

Déclaration de l’agent sur le serveur

L’agent se connectera au serveur pour fournir les informations collectées. Avant de procéder à l’installation de l’agent, vous devrez le déclarer sur le serveur en utilisant la commande :

 /var/ossec/bin/manage_agents

Tapez “a”, puis le nom hôte du serveur disposant de l’agent OSSEC HIDS, l’adresse IP de l’agent, confirmer la création.

Extraire la clé de l’agent créé en tapant “e”, indiquez l’ID de l’agent et copiez la clé affichée. Vous pouvez quitter. Redémarrer OSSEC HIDS :

service ossec restart

Installation de l’agent

Connectez vous au serveur qui disposera de l’agent, et procéder à l’installation en indiquant le type “agent” :

  • Renseignez l’adresse IP du serveur OSSEC HIDS,
  • démarrer le démon de vérification d’intégrité,
  • démarrer le moteur de détection de rootkit,
  • démarrer la réponse active.

Exécutez la commande :

/var/ossec/bin/manage_agents

Tapez “i”, coller la clé précédemment copiée (sans espaces ou lignes vides supplémentaires), validez, et démarrer OSSEC HIDS en exécutant la commande :

/var/ossec/bin/ossec-control start

Si l’affichage indique une erreur similaire :

_2018/11/15 13:30:10 ossec-syscheckd(1210): ERROR: Queue '/var/ossec/queue/ossec/queue' not accessible: 'Connection refused'._  

La clé copiée au niveau de la gestion de l’agent est incorrecte.

Firewall

Autorisez les sorties à destination du port UDP 1514 (OUTPUT) sur les agents.

Démarrage

Exécutez la commande :

/var/ossec/bin/ossec-control start

Vous pouvez utiliser la commande

systemctl start ossec

mais nous ne verrez pas les traces de démarrage.

Arrêt

Exécutez la commande

/var/ossec/bin/ossec-control stop

ou

systemctl stop ossec

Redémarrer OSSEC HIDS

systemctl restart ossec

ou

/var/ossec/bin/ossec-control restart

Démarrage au boot

exécutez la commande :

service --status-all

Vérifiez que “ossec” apparaît bien dans la liste des services démarrés au boot du serveur.

Dans le cas où ce service n’est pas inscrit au démarrage, tapez la commande :

systemclt enable ossec

Traces

Chaque serveur/agent dispose de traces disponibles dans le fichier : /var/ossec/logs/ossec.log

Réinstallation

Avant de réinstaller OSSEC HIDS, bien que l’installateur le propose, vous devrez supprimer le répertoire /var/ossec

Désinstallation

service ossec stop  
rm -f /etc/ossec-init.conf  
rm -rf /var/ossec

ERREURS

ossec-remoted(1403): ERROR: Incorrectly formatted message from '172.28.0.4'.  

Réimporter la clé agent sur le serveur indiqué par son adresse IP.

Dans le log :

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

J’observe :

ossec-execd(1103): ERROR: Could not open file '/var/ossec/etc/shared/ar.conf' due to [(2)-(No such file or directory)]. 

Rencontré sur une seule installation !!!

Créer le fichier :

vi /var/ossec/etc/shared/ar.conf

puis ajoutez-y ce contenu :

restart-ossec0 - restart-ossec.sh - 0  
restart-ossec0 - restart-ossec.cmd - 0  
host-deny600 - host-deny.sh - 600  
firewall-drop600 - firewall-drop.sh - 600

Conclusion

Quand tout est correctement paramétré et démarré, le flux de réception des courriels commence. Vous serez surpris de constater les alertes détectées par ce type de technologie : première connexion d’un utilisateur, changement dans le système après une mise à jour, démarrage des agents, etc.. L’aspect actif ? Essayez de vous connecter par ssh à un des serveurs en fournissant un mot de passe erroné, à partir d’une machine qui n’apparaît pas dans la liste blanche du serveur, vous serez bloqué, rapidement, pendant 10 minutes. Ceci limite les tentatives d’accès par force brute.

Licence de ce document : Creative Commons (CC BY-NC-ND 4.0)

CETTE DOCUMENTATION EST LIVRÉE “EN L’ÉTAT”, SANS GARANTIE D’AUCUNE SORTE ET DISTRIBUÉE DANS UN BUT ÉDUCATIF EXCLUSIVEMENT. L’AUTEUR, CONTRIBUTEURS DE CETTE DOCUMENTATION OU ©MYTINYDC.COM NE SAURAIENT EN AUCUN CAS ÊTRE TENUS RESPONSABLES DES DOMMAGES DIRECTS OU INDIRECTS POUVANT RÉSULTER DE L’APPLICATION DES PROCÉDURES MISES EN ŒUVRE DANS CETTE DOCUMENTATION, OU DE LA MAUVAISE INTERPRÉTATION DE CE DOCUMENT.