Installation et configuration de Rkhunter (CentOS 7.2)

Ajout du dépôt EPEL (Extra Packages for Entreprise Linux)

rkhunter (pour Rootkit Hunter) est un programme qui essaye de détecter les rootkits, portes dérobées et exploits. Pour cela, il compare le hash SHA256, SHA512, SH1 et MD5 des fichiers importants avec les hash connus, qui sont accessibles à partir d’une base de données en ligne. Il alerte également l’utilisateur lorsqu’il trouve des permissions qu’il juge anormales, des fichiers cachés, des chaînes suspectes dans le kernel etc.
Rkhunter n’étant pas disponible dans les dépôts officiel de CentOS nous allons ajout un nouveau dépôt. C’est le dépôt EPEL. Pour cela nous allons taper la commande suivante :

# yum install epel-release

Ajout et configuration du plugin « Yum Priorities »

Afin de ne pas installer des packages qui peuvent mettre à mal la stabilité de notre système nous allons installer le plugin « Yum Priorities ». En temps normal si un paquet est présent dans plus d’un dépôt, c’est le numéro de version le plus haut qui sera proposé dans yum. Ce plugin permet de changer cela et de non plus tenir compte du numéro de version mais de la valeur de la priorité du dépôt. Pour cela, nous allons le faire à l’aide de la commande suivante :

# yum install yum-plugin-priorities

Maintenant que le plugin est installé, il faut définir la priorité pour chaque dépôt. La priorité est une valeur de 1 à 99, le dépôt ayant 1 comme priorité étant le plus prioritaire. Les dépôts où la valeur de n’est pas renseignée ont automatiquement la valeur 99. Pour cela, nous allons éditer chaque fichier .repo pour ajouter la ligne priority=XX. Les fichiers de configuration des dépôts se trouvent dans /etc/yum.repo.d/. On édit le fichier via la commande suivante:

# vi /etc/yum.repo.d/CentOS-Base.repo

Voici le contenu de mon fichier CentOS-Base.repo après modification :

[base]
name=CentOS-$releasever – Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

#released updates
[updates]
name=CentOS-$releasever – Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

#additional packages that may be useful
name=CentOS-$releasever – Extra
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

#additional packages that extend functionality of existing packages
[extras]
name=CentOS-$releasever – Extra
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever – Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

Il faut reproduire la même opération pour les fichiers suivant :

CentOS-Debuginfo.repo
CentOS-Media.repo
CentOS-Vault.repo

Concernant le fichier de configuration du dépôt EPEL, il faudra mettre la priorité à 99, donc la plus basse. Voici le contenu de mon fichier epel.repo après modification :

[epel]
name=Extra Packages for Entreprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
priority=99

[epel-debuginfo]
name=Extra Packages for Entreprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
priority=99

[epel-source]
name=Extra Packages for Entreprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
priority=99

Il faut à nouveau reproduire la même opération pour le fichier epel-testing.repo

Installation de Rkhunter

Maintenant que les dépôts sont configurés, nous pouvons installer Rkhunter via la commande suivante :

# yum install rkhunter

Configuration de Rkhunter

Avant de modifier le fichier de configuration, nous allons le sauvegarder via la commande suivante :

# cp /etc/rkhunter.conf{,.ori}

Nous allons maintenant l’éditer via la commande suivante :

# vi /etc/rkhunter.conf

Il faut remplacer la valeur de la variable « COPY_LOG_ON_ERROR » (ligne 255) et « ALLOW_SSH_ROOT_USER » (ligne 309) comme ci-dessous :

COPY_LOG_ON_ERROR=0

par

COPY_LOG_ON_ERROR=1

et

ALLOW_SSH_ROOT_USER=unset

par

ALLOW_SSH_ROOT_USER=no

Activer la variable « COPY_LOG_ON_ERROR » va générer un fichier de log contenant les erreurs détectées dans le répertoire /var/log/rkhunter/ dont le nom sera du type rkhunter.log.2013-10-23_00:00:10.
Mettre la variable « ALLOW_SSH_ROOT_USER » à « no » va indiquer à Rkhunter de vérifier que l’utilisateur root n’a pas été autorisé à se connecter via ssh à la machine.
Maintenant que Rkhunter est installé et configuré, il faut télécharger la base de données et l’initialiser via les commandes suivantes :

# rkhunter --update
# rkhunter --propupdate

A ce stade Rkhunter est fonctionnel. Le problème c’est qu’après chaque mise à jour du système, il faudra retaper ces commandes. Afin d’éviter cela nous allons l’automatiser. Nous allons donc installer le plugin yum « post-transaction-actions » via la commande suivante :

# yum install yum-plugin-post-transaction-actions

Maintenant que le plugin est installé, il faut que l’on créé un fichier contenant les commandes à exécuter après chaque mise à jour du système. Les fichiers devront obligatoirement être stockés dans le répertoire /etc/yum/post-actions/ et leur nom devront être du type « ce_que_vous_voulez.action ». Les fichiers .actions sont des scripts shell.
Nous allons créer un fichier rkhunter.action via la commande suivante :

# vi /etc/yum/post-actions/rkhunter.action

Voici ce qu’il doit contenir :

#!/bin/bash
*:update:/usr/bin/rkhunter --update
*:update:/usr/bin/rkhunter --propupdate

Maintenant après chaque mise à jour du système, yum exécutera les commandes contenues dans le fichier rkhunter.action

Ajouter un Commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *