Comment configurer une installation OSSEC locale sur Debian 8

introduction

OSSEC est un système de détection d’intrusion (HIDS) à source ouverte basé sur l’hôte qui effectue l’analyse de journal, la vérification de l’intégrité, la surveillance du registre Windows, la détection de rootkit, les alertes en fonction du temps et les réponses actives. C’est l’application à installer sur votre serveur si vous voulez garder un œil sur ce qui se passe à l’intérieur.

OSSEC peut être installé pour surveiller uniquement le serveur sur lequel il est installé (installation local au sens propre du mot OSSEC) ou bien être installé en tant que server pour surveiller un ou plusieurs agents. Dans ce tutoriel, vous apprendrez à installer OSSEC pour surveiller le serveur Debian 8 sur lequel il est installé, c’est-à-dire une installation local OSSEC.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

Étape 1 - Installation des packages requis

Dans cette étape, nous installerons les packages requis pour OSSEC. Tout d’abord, mettez à jour la base de données de paquets.

sudo apt-get update

Ensuite, installez les mises à jour disponibles.

sudo apt-get -y upgrade

Enfin, installez les dépendances d’OSSEC (+ build-essential + et + inotify-toops +) et + ntp +, qui est un service Network Time Protocol.

sudo apt-get install build-essential inotify-tools ntp

Enfin, activez le service NTP. Cela aide le serveur à garder l’heure exacte automatiquement.

sudo systemctl start ntp

Étape 2 - Activer un pare-feu

Une nouvelle installation d’un serveur Debian 8 n’a pas d’application pare-feu active. Dans cette étape, nous allons apprendre à activer l’application de pare-feu IPTables et à nous assurer que les règles d’exécution persistent après un redémarrage.

La méthode la plus simple consiste à installer le paquetage + iptables-persistent + en utilisant:

sudo apt-get install -y iptables-persistent

Une fois l’authentification effectuée, vous serez invité à enregistrer les règles de pare-feu IPv4 et IPv6 dans des fichiers séparés. Appuyez sur * ENTER * aux deux invites pour accepter les emplacements par défaut, qui sont + / etc / iptables / rules.v4 + et + / etc / iptables / rules.v6 +.

Par défaut, ces fichiers ne contiennent aucune règle. Nous devons donc les créer pour protéger le serveur et maintenir la connexion SSH ouverte. Nous ne nous intéressons qu’aux règles IPv4, nous ne modifierons donc que le fichier + rules.v4 +.

Ouvrez le fichier de règles + rules.v4 + en utilisant + nano + ou votre éditeur de texte préféré.

sudo nano /etc/iptables/rules.v4

Le contenu complet de ce fichier ressemble à ceci:

/Etc/iptables/rules.v4 d’origine

# Generated by iptables-save v1.4.21 on Sat May  9 01:27:00 2015
*filter
:INPUT ACCEPT [5722:416593]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4372:503060]
COMMIT
# Completed on Sat May  9 01:27:00 2015

Le jeu de règles par défaut suivant sera suffisant pour protéger le serveur et la connexion SSH. Vous devez donc le copier et le coller entre les lignes *: OUTPUT ACCEPT [4372: 503060] * et * COMMIT *. Ces règles ont été extraites de la official Debian documentation; vous pouvez voir ce que chaque règle fait par les commentaires en ligne.

#  Allow all loopback traffic. Drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic
-A OUTPUT -j ACCEPT

#  Uncomment the next two lines to allow HTTP and HTTPS connections
#-A INPUT -p tcp --dport 80 -j ACCEPT
#-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections. If you changed your SSH port, do same here.
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

Enregistrez et fermez le fichier. Ensuite, pour appliquer le nouveau jeu de règles, redémarrez + iptables-persistent +.

sudo systemctl restart netfilter-persistent

Vous pouvez maintenant vérifier que les règles sont en place avec cette commande.

sudo iptables -L

Votre sortie ressemblera à ceci:

iptables -L sortie

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable

. . .

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Étape 3 - Télécharger et vérifier OSSEC

OSSEC est livré sous forme d’archive compressée. Au cours de cette étape, vous allez le télécharger, ainsi que son fichier de somme de contrôle, utilisé pour vérifier que l’archive n’a pas été falsifiée. Vous pouvez consulter le site Web project pour obtenir la dernière version. Au moment de la rédaction de ce document, OSSEC 2.8.1 est la dernière version stable.

Pour télécharger l’archive tar, tapez:

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1.tar.gz

Ensuite, téléchargez le fichier de contrôle en utilisant

wget -U ossec http://www.ossec.net/files/ossec-hids-2.8.1-checksum.txt

Après avoir téléchargé les deux fichiers, vérifiez la somme md5 de l’archive compressée.

md5sum -c ossec-hids-2.8.1-checksum.txt

Le résultat devrait être:

sortie md5sum

ossec-hids-2.8.1.tar.gz: OK
md5sum: WARNING: 1 line is improperly formatted

Suivez cela en vérifiant la somme de contrôle SHA1.

sha1sum -c ossec-hids-2.8.1-checksum.txt

Sa sortie devrait être:

sortie sha1sum

ossec-hids-2.8.1.tar.gz: OK
sha1sum: WARNING: 1 line is improperly formatted

Dans chaque cas, ignorez la ligne * WARNING *. La ligne * OK * confirme ce que le fichier est bon.

Étape 4 - Installer OSSEC

Dans cette étape, nous allons installer OSSEC. Pour commencer, commencez par le détartrer.

tar xf ossec-hids-2.8.1.tar.gz

Il sera décompressé dans un répertoire appelé + ossec-hids-2.8.1 +. Changer dans ce répertoire.

cd ossec-hids-2.8.1

Pour résoudre le bogue + / etc / hosts.deny +, ouvrez le fichier + host-deny.sh + dans le répertoire + / var / ossec / active-response + après avoir extrait OSSEC de l’archive téléchargée.

nano active-response/host-deny.sh

Vers la fin du fichier, recherchez deux lignes dans le code, comme ci-dessous, qui commencent par + TMP_FILE = +, sous le commentaire + # Suppression de hosts.deny +. Modifiez les deux lignes pour supprimer les espaces de part et d’autre du signe + = + afin que le bloc de code ressemble à ceci.

Bloc de code host-deny.sh modifié

# Deleting from hosts.deny
elif [ "x${ACTION}" = "xdelete" ]; then
  lock;

  if [ "X${TMP_FILE}" = "X" ]; then
    # Cheap fake tmpfile, but should be harder then no random data

  fi

Enregistrez et fermez le fichier. Ceci termine le correctif.

Ensuite, commencez l’installation.

sudo ./install.sh

Tout au long du processus d’installation, vous serez invité à fournir des informations. On vous demandera d’abord de choisir la langue d’installation, qui est par défaut Anglais (en). Appuyez sur * ENTER * si cela est votre langue préférée. Sinon, tapez d’abord les 2 lettres de la liste des langues prises en charge. Ensuite, appuyez de nouveau sur * ENTER * pour lancer l’installation.

La question 1 demandera * Quel type d’installation souhaitez-vous (serveur, agent, local, hybride ou aide)? *. Tapez * local * et appuyez sur * ENTER *.

Pour toutes les questions suivantes, appuyez sur * ENTER * pour accepter la valeur par défaut, mais notez que la question 3.1 vous demandera votre adresse électronique. Entrez-le et le programme d’installation l’utilisera pour rechercher automatiquement le serveur SMTP correspondant.

Si l’installation réussit, les dernières lignes de la sortie post-installation doivent indiquer:

Sortie OSSEC d’installation réussie

- Configuration finished properly.

- To start OSSEC HIDS:
               /var/ossec/bin/ossec-control start

- To stop OSSEC HIDS:
               /var/ossec/bin/ossec-control stop

- The configuration can be viewed or modified at /var/ossec/etc/ossec.conf

. . .

Étape 4 - Personnalisation des paramètres de messagerie d’OSSEC

Nous allons ici vérifier que les informations d’identification de messagerie spécifiées à l’étape précédente et celles que OSSEC a configurées automatiquement sont correctes.

Les paramètres de messagerie se trouvent dans le fichier de configuration principal d’OSSEC - + ossec.conf +, qui se trouve dans le répertoire `` + / var / ossec / etc + `. Pour accéder à un fichier OSSEC et le modifier, vous devez d’abord passer à l’utilisateur root.

sudo su

Maintenant que vous êtes root, allez dans le répertoire où se trouve le fichier de configuration d’OSSEC.

cd /var/ossec/etc

Faites ensuite une copie de sauvegarde du fichier de configuration.

cp ossec.conf ossec.conf.00

Ouvrez le fichier d’origine à l’aide de l’éditeur de texte + nano + ou de votre éditeur de texte préféré.

nano ossec.conf

Les paramètres de messagerie sont en haut du fichier, ce qui ressemble à ceci.

/var/ossec/etc/ossec.conf

<global>
   <email_notification>yes</email_notification>
   <email_to></email_to>
   <smtp_server></smtp_server>
   <email_from></email_from>
</global>
  • <email_to> * est le courrier électronique que vous avez donné lors de l’installation. Les alertes seront envoyées à cette adresse e-mail et * <smtp_server> * est le serveur SMTP détecté automatiquement par le script d’installation. Vous n’avez pas à changer ces valeurs.

  • <email_from> * est l’adresse électronique à partir de laquelle les alertes d’OSSEC sembleraient provenir. Par défaut, il est créé en fonction du compte utilisateur de messagerie d’OSSEC et du nom d’hôte du serveur. Vous devriez en faire une adresse électronique valide afin de réduire les risques que vos courriels soient marqués comme courrier indésirable par le serveur SMTP de votre fournisseur de messagerie. Notez que * <email_to> * et * <email_from> * peuvent être identiques si le serveur SMTP de destination n’a pas de stratégie de spam stricte.

Après avoir modifié les paramètres de messagerie, enregistrez et fermez le fichier. Puis démarrez OSSEC.

/var/ossec/bin/ossec-control start

Vérifiez votre boîte de réception pour un email qui indique que OSSEC a commencé. Si vous recevez un e-mail de votre installation OSSEC, vous savez que les futures alertes atteindront également votre boîte de réception. Si ce n’est pas le cas, vérifiez votre dossier de courrier indésirable.

Étape 6 - Ajout d’alertes

Par défaut, OSSEC émettra des alertes sur les modifications de fichiers et autres activités sur le serveur, mais pas sur les nouveaux ajouts ni sur les alertes en temps réel - uniquement après l’analyse planifiée du système, qui est de 79 200 secondes (ou heures) par défaut. Dans cette section, nous allons modifier OSSEC afin qu’il puisse alerter sur les ajouts de fichiers et en temps réel.

Premièrement, ouvrez + ossec.conf +.

nano ossec.conf

Faites défiler jusqu’à la section * <syscheck> *. Juste sous la balise + <fréquence> +, ajoutez + <alert \ _new \ _files> oui </ alert \ _new \ _files> +.

<syscheck>

   <frequency>79200</frequency>

Alors que vous avez toujours + ossec.conf + ouvert, consultez la liste des répertoires système surveillés par OSSEC, qui se trouve juste en dessous de la dernière ligne modifiée. Ajoutez + report_changes =" yes "realtime =" yes "+ aux deux balises de répertoire.

<directories  check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories  check_all="yes">/bin,/sbin</directories>

Outre la liste par défaut des répertoires que OSSEC a été configurée pour surveiller, vous pouvez également ajouter ceux que vous souhaitez surveiller. Par exemple, vous pouvez ajouter votre répertoire personnel. Pour ce faire, ajoutez cette nouvelle ligne directement sous d’autres lignes du répertoire, en remplaçant votre nom d’utilisateur.

<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin</directories>
</directories><^>

Maintenant, sauvegardez et fermez + ossec.conf +.

Le prochain fichier à modifier se trouve dans le répertoire + / var / ossec / rules +, accédez donc à ce répertoire.

cd /var/ossec/rules

Le répertoire + / var / ossec / rules + contient de nombreux fichiers XML, notamment + ossec_rules.xml +, qui contient les définitions de règles par défaut d’OSSEC, et + local_rules.xml +, où vous pouvez ajouter des règles personnalisées.

Dans + ossec ruleset.xml, la règle 554 est déclenchée lorsqu’un fichier est ajouté à un répertoire surveillé. Par défaut, OSSEC n’envoie pas d’alertes lorsque cette règle est déclenchée; la tâche consiste donc à modifier ce comportement. Voici à quoi ressemble la règle 554 par défaut:

Règle 554 de /var/ossec/rules/ossec_rules.xml

<rule id="554" level="0">
<category>ossec</category>
<decoded_as>syscheck_new_entry</decoded_as>
<description>File added to the system.</description>
<group>syscheck,</group>
</rule>

OSSEC n’envoie pas d’alerte si une règle est définie sur le niveau 0. Nous allons donc copier cette règle dans localrules.xml et la modifier pour déclencher une alerte. Pour ce faire, ouvrez localrules.xml