rkhunter (Rootkit Hunter) est un scanner de sécurité Linux qui détecte les rootkits, les backdoors et les modifications suspectes de fichiers système. Un rootkit est un logiciel malveillant qui s'infiltre profondément dans le système pour échapper à la détection et donner un accès total à un attaquant. rkhunter vérifie l'intégrité des fichiers critiques et alerte au moindre changement anormal.
Ce guide s'adresse aux administrateurs de serveurs Linux. Vous allez installer rkhunter, créer une baseline de référence, lancer une analyse, puis interpréter les avertissements et écarter les faux positifs.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Installer rkhunter depuis le dépôt de votre distribution.
- Générer une baseline des propriétés des fichiers système.
- Lancer une analyse complète et n'afficher que les avertissements.
- Interpréter les alertes (fichiers modifiés, rootkits, SSH).
- Écarter les faux positifs via la liste blanche.
Pourquoi utiliser rkhunter ?
Section intitulée « Pourquoi utiliser rkhunter ? »rkhunter renforce la sécurité d'un serveur en surveillant ce qui échappe aux outils classiques. Au-delà de la chasse aux rootkits, il analyse les permissions des fichiers sensibles, les configurations réseau et SSH, et les variables d'environnement. C'est une couche de détection d'intrusion simple à mettre en place, complémentaire d'un pare-feu et d'un outil comme Lynis.
Installer rkhunter
Section intitulée « Installer rkhunter »Le plus sûr est d'installer rkhunter depuis le dépôt signé de votre distribution, qui fournit la version upstream (1.4.6) avec les correctifs de sécurité de l'éditeur.
# Debian / Ubuntusudo apt update && sudo apt install rkhunter
# Fedora / RHEL / Rocky / Almasudo dnf install rkhunterVérifiez l'installation et l'existence d'une mise à jour éventuelle :
sudo rkhunter --versioncheckMettez ensuite à jour les bases de signatures de rootkits et d'anomalies :
sudo rkhunter --updateConfiguration initiale
Section intitulée « Configuration initiale »Pour permettre à RKHunter de détecter les modifications des fichiers système, vous devez générer un fichier de référence. Cela crée une base de données contenant les propriétés actuelles des fichiers critiques.
sudo rkhunter --propupdLe fichier principal de configuration, /etc/rkhunter.conf, contient des
options qui permettent d’adapter le comportement de l’outil à vos besoins.
Voici quelques paramètres :
UPDATE_MIRRORS=1- Active les mises à jour automatiques des miroirs.
DB_UPDATE=1- Permet de mettre à jour la base de données utilisée pour les vérifications.
ALLOWHIDDENDIR=/chemin/vers/repertoire- Autorise un répertoire caché spécifique (exemple :
/etc/.java).
- Autorise un répertoire caché spécifique (exemple :
ALLOWHIDDENFILE=/chemin/vers/fichier- Autorise un fichier caché spécifique (exemple :
/etc/.myconfig).
- Autorise un fichier caché spécifique (exemple :
SCRIPTWHITELIST=/chemin/vers/script- Ajoute un script à la liste blanche pour éviter les alertes (exemple :
/usr/bin/which).
- Ajoute un script à la liste blanche pour éviter les alertes (exemple :
DISABLE_TESTS=<liste_de_tests>- Désactive certains tests spécifiques, comme
suspscan(analyse des fichiers suspects).
- Désactive certains tests spécifiques, comme
PORT_WHITELIST="22 80 443"- Spécifie les ports réseau à autoriser, pour éviter des avertissements inutiles.
ALLOW_SSH_ROOT_USER=0- Signale si l’utilisateur root est autorisé à se connecter via SSH.
ALLOW_SSH_PROT_V1=0- Désactive les alertes si le protocole SSH v1 est utilisé.
Exécution de RKHunter
Section intitulée « Exécution de RKHunter »Maintenant que rkhunter est installé et à jour, il est temps de le mettre au travail : lancer une analyse complète du système et interpréter ses résultats.
La commande la plus courante pour utiliser RKHunter est :
sudo rkhunter --checkCette commande effectue une vérification complète de votre système. Voici ce qui se passe :
- Examen des fichiers système critiques, comme
/etc/passwdet/etc/shadow. - Recherche de rootkits connus.
- Vérification des permissions des fichiers importants.
- Analyse des ports réseau ouverts pour détecter des comportements suspects.
Pendant l’analyse, vous verrez des messages détaillés apparaître à l’écran. Chaque vérification est marquée comme :
- [OK] si tout est normal.
- [Warning] si quelque chose semble suspect.
Lorsque RKHunter détecte un problème potentiel, il vous le signale avec un avertissement. Pour réduire le nombre d’avertissements non pertinents (faux positifs), utilisez l’option suivante lors de l’analyse :
sudo rkhunter --report-warnings-only --checkLe flag --report-warnings-only permet de n’afficher que les avertissements
importants.
Exemple de sortie de RKHunter :
Warning: The command '/usr/sbin/adduser' has been replaced by a script: /usr/sbin/adduser: Perl script text executableWarning: The command '/usr/bin/egrep' has been replaced by a script: /usr/bin/egrep: POSIX shell script, ASCII text executableWarning: The command '/usr/bin/fgrep' has been replaced by a script: /usr/bin/fgrep: POSIX shell script, ASCII text executableWarning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne-Again shell script, ASCII text executableWarning: The command '/usr/bin/lwp-request' has been replaced by a script: /usr/bin/lwp-request: Perl script text executableWarning: The command '/usr/bin/which.debianutils' has been replaced by a script: /usr/bin/which.debianutils: POSIX shell script, ASCII text executableWarning: The SSH configuration option 'PermitRootLogin' has not been set. The default value may be 'yes', to allow root access.Warning: The SSH configuration option 'Protocol' has not been set. The default value may be '2,1', to allow the use of protocol version 1.Warning: Hidden directory found: /etc/.javaWarning: Hidden file found: /etc/.resolv.conf.systemd-resolved.bak: ASCII textWarning: Hidden file found: /etc/.updated: ASCII textCes avertissements générés par RKHunter montrent des points potentiellement préoccupants sur votre système. Analysons ensemble ce qu’ils signifient et comment y répondre.
Interprétation des avertissements RKHunter
Section intitulée « Interprétation des avertissements RKHunter »Après avoir lancé une analyse avec RKHunter, vous obtenez un rapport détaillé qui met en lumière les éventuels problèmes détectés. Comprendre et interpréter ces résultats est une étape cruciale pour déterminer si votre système est en sécurité ou non.
Par défaut, le rapport d’analyse est enregistré dans ce fichier log :
/var/log/rkhunter.logPour consulter rapidement son contenu, utilisez une des commandes suivantes :
sudo cat /var/log/rkhunter.log # Affiche tout le fichiersudo less /var/log/rkhunter.log # Pour naviguer plus facilementsudo grep Warning /var/log/rkhunter.log # Filtre les avertissementsLe rapport est organisé en sections. Voici un aperçu des éléments clés et ce qu’ils signifient :
Quelques exemples d’avertissements courants
Section intitulée « Quelques exemples d’avertissements courants »Vérification des fichiers critiques
Section intitulée « Vérification des fichiers critiques »Examine les fichiers essentiels comme /etc/passwd, /etc/shadow et autres.
Exemple d’avertissement :
Warning: File properties have changed: /etc/passwd-
Explication : Cela indique que les propriétés (permissions, taille, hash) du fichier ont été modifiées.
-
Action : Si vous n’avez pas effectué de mise à jour ou de modification intentionnelle, investiguez immédiatement :
Fenêtre de terminal ls -l /etc/passwdVérifiez également l’historique des modifications avec
auditdou des outils commegrep.
Détection des rootkits
Section intitulée « Détection des rootkits »Cette section signale la présence potentielle de rootkits connus. Exemple :
Warning: Possible rootkit detected: X-
Explication : Cela signifie que des traces ou comportements associés à un rootkit spécifique ont été détectés.
-
Action : Vérifiez manuellement les fichiers ou processus suspects. Par exemple, pour un fichier suspect :
Fenêtre de terminal file /chemin/vers/fichier_suspectSupprimez-le uniquement si vous êtes sûr qu’il est malveillant.
Permissions des fichiers et répertoires
Section intitulée « Permissions des fichiers et répertoires »Vérifie si des fichiers ou répertoires sensibles ont des permissions trop permissives. Exemple :
Warning: Suspicious file permissions: /usr/bin/sudo-
Explication : Cela indique que des fichiers exécutables critiques sont mal configurés.
-
Action : Corrigez les permissions :
Fenêtre de terminal sudo chmod 4755 /usr/bin/sudo
Comportements inhabituels dans les commandes
Section intitulée « Comportements inhabituels dans les commandes »Certaines commandes standard peuvent être remplacées par des scripts ou des exécutables suspects. Exemple :
Warning: The command '/usr/bin/which' has been replaced by a script.-
Explication : Les commandes remplacées peuvent être légitimes (dépendant de la distribution), mais cela nécessite une vérification.
-
Action : Identifiez le type du fichier :
Fenêtre de terminal file /usr/bin/whichComparez-le avec une version saine ou réinstallez le paquet contenant cette commande :
Fenêtre de terminal sudo apt reinstall debianutils # Exemple pour Ubuntu/Debian
Si vous ne maitrisez pas le gestionnaire de paquets apt, je vous recommande de lire mon guide sur apt pour mieux comprendre son fonctionnement.
Configuration SSH
Section intitulée « Configuration SSH »Analyse les paramètres de sécurité dans /etc/ssh/sshd_config. Exemple :
Warning: The SSH configuration option 'PermitRootLogin' has not been set.-
Explication : Si des paramètres sensibles comme
PermitRootLoginouProtocolne sont pas explicitement définis, cela peut ouvrir des vulnérabilités. -
Action : Configurez le fichier SSH :
Fenêtre de terminal sudo nano /etc/ssh/sshd_configAjoutez ou modifiez les lignes suivantes :
PermitRootLogin noProtocol 2
Identifier les faux positifs
Section intitulée « Identifier les faux positifs »Certains avertissements de RKHunter peuvent être des faux positifs, notamment sur des fichiers ou scripts modifiés par des mises à jour système ou des outils légitimes. Exemple :
Warning: Hidden directory found: /etc/.java-
Explication : Les fichiers ou répertoires cachés ne sont pas toujours malveillants. Par exemple,
/etc/.javaest souvent créé par des environnements Java. -
Action : Inspectez leur contenu pour confirmer leur légitimité :
Fenêtre de terminal ls -la /etc/.java
Si vous êtes sûr qu’il s’agit d’un faux positif, ajoutez ces éléments à la liste
blanche dans /etc/rkhunter.conf :
ALLOWHIDDENDIR=/etc/.javaQuand prévoir une réinstallation du système ?
Section intitulée « Quand prévoir une réinstallation du système ? »Une réinstallation devient nécessaire lorsqu’un système montre des signes clairs
de compromission. Si RKHunter détecte un rootkit ou des altérations
inexpliquées sur des fichiers critiques comme /etc/passwd ou /usr/bin/sudo,
cela peut indiquer une attaque. Une activité réseau suspecte ou des
modifications dans des configurations sensibles, comme SSH, sont également des
signaux d’alerte. Avant de réinstaller, sauvegardez uniquement les données
essentielles et les journaux pour enquête, sans inclure de binaires
potentiellement compromis. Préparez une ISO officielle et réinstallez
proprement. Après l’installation, effectuez une analyse initiale avec
RKHunter, appliquez les mises à jour, configurez la sécurité, changez les
mots de passe et installez des outils comme un pare-feu ou Fail2Ban. Une
réinstallation est souvent la meilleure solution pour garantir la fiabilité et
la sécurité d’un système compromis.
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »sudo rkhunter --check. On y ajoute souvent --sk (skip keypress) pour enchaîner les étapes et --report-warnings-only pour n'afficher que les avertissements. Le rapport complet est écrit dans /var/log/rkhunter.log, consultable avec grep Warning./etc/rkhunter.conf avec des directives comme ALLOWHIDDENDIR, ALLOWHIDDENFILE ou SCRIPTWHITELIST, puis on régénère la baseline.À retenir
Section intitulée « À retenir »- rkhunter détecte rootkits, backdoors et modifications suspectes de fichiers système.
- Installez-le via le dépôt signé de la distribution (l'upstream est figé à la 1.4.6).
--propupdcrée la baseline, à lancer uniquement sur un système sain.--check --report-warnings-onlylance l'analyse et n'affiche que les alertes.- Beaucoup d'avertissements sont des faux positifs : vérifiez, puis mettez en liste blanche dans
/etc/rkhunter.conf. - En cas de compromission avérée, la réinstallation propre reste la solution la plus sûre.