TP : Sécuriser le système Linux avec
RKHunter
Objectifs
- Vérifier la présence de rootkits sur le système Linux avec RKHunter.
- Comprendre les étapes d’installation, de configuration et d’analyse.
- Intégrer RKHunter dans une routine de sécurité système.
1. Installation de RKHunter
sudo apt update
sudo apt install rkhunter
2. Mise à jour des bases de données
sudo rkhunter --update
Si vous avez une erreur liée à `WEB_CMD=/bin/false`, modifiez la configuration :
sudo nano /etc/[Link]
Cherchez la ligne :
WEB_CMD=/bin/false
Et remplacez-la par :
WEB_CMD=wget
3. Analyse du système
Ce que RKHunter analyse exactement :
Fichiers système critiques
RKHunter vérifie les hashs (somme de contrôle) de fichiers système importants
(comme /bin/ls, /usr/bin/ps, /usr/sbin/inetd, etc.)
Il compare leur empreinte à une base de référence ([Link]) pour détecter
des modifications suspectes.
1/6
Signatures de rootkits connus
Il recherche des fichiers, noms de fichiers, chemins et modules suspects
correspondant à des signatures de rootkits connus.
Par exemple : lrk, t0rn, Adore, RH-Sharpe's, etc.
Permissions inhabituelles ou anomalies
Fichiers système avec des droits SUID/SGID suspects.
Fichiers cachés dans des endroits critiques (ex. : /dev, /etc, /proc, /usr/lib).
Fichiers exécutables dans des répertoires non standards.
Modifications suspectes dans le shell ou les binaires
Vérifie si certaines commandes comme passwd, netstat, ls, ps, etc. ont été
altérées.
Recherche des binaires avec des liens symboliques trompeurs.
Modules du noyau
Recherche de modules du noyau non documentés ou inconnus.
lsmod permet de lister tous les modules du noyau actuellement chargés sous
/proc/modules
Si un module chargé suspect ou inconnu on doit :
le chercher sur Internet
le vérifier avec modinfo <nom_module>
le retirer avec rmmod <nom_module> ou modprobe -r si nécessaire.
2/6
Ports réseau et services
Détection de services écoutant sur des ports non standards ou inhabituels.
Analyse de la sortie de netstat et des processus associés.
Détections liées aux comptes utilisateurs
Comptes UID 0 (super-utilisateur) autres que root.
Shells de connexion définis sur /bin/false ou /sbin/nologin (souvent
normaux, mais parfois utilisés pour cacher un compte).
En résumé
Élément analysé But de l’analyse
Fichiers binaires système Vérifier s'ils ont été modifiés
Signatures rootkits Détecter des rootkits connus
Permissions SUID/SGID suspectes Trouver des élévations de privilèges non autorisées
Modules noyau Détecter des modules non attendus
Activité réseau Identifier des ports ou services inconnus
Comptes utilisateurs Identifier les comptes root cachés ou suspects
La commande à lancer est :
sudo rkhunter --check
L’analyse est interactive. Appuyez sur Entrée à chaque étape pour avancer.
Résultats possibles de RKHunter et leur signification
Résultat Signification
OK Tout est normal pour cet élément.
Not found
Élément introuvable – peut être normal selon la configuration du
système.
Warning
Comportement suspect ou anomalie potentielle – nécessite
vérification.
Skipped
Le test a été sauté, souvent à cause de paramètres dans le fichier de
config.
Unknown
RKHunter ne reconnaît pas ou ne comprend pas l’état de l’élément
vérifié.
Found Un élément potentiellement malveillant a été détecté.
Unable to read
file Le fichier est inaccessible – permissions insuffisantes ou supprimé.
3/6
Résultat Signification
File does not
exist L’entrée référencée n’existe plus dans le système de fichiers.
Invalid option L’Option de commande incorrecte – souvent en cas d'erreur de
syntaxe ou config.
Exemple de sortie
4. Vérification en mode silencieux
sudo rkhunter --check --skip-keypress
4/6
5. Automatiser avec Cron
Créer un script :
#!/bin/bash
echo "[ $(date) ] Vérification du système avec RKHunter" >>
/var/log/[Link]
rkhunter --update
rkhunter --check --skip-keypress >> /var/log/[Link]
Donner les droits :
sudo chmod +x /usr/local/bin/[Link]
Planifier la tâche cron (une fois par semaine) :
sudo crontab -e
0 3 * * 1 /usr/local/bin/[Link]
6. Consultation des rapports
cat /var/log/[Link]
7. Bonnes pratiques
- Lire les alertes et vérifier manuellement les fichiers suspects.
Exemple :
sudo cat /var/log/[Link] | grep Found
5/6
Checking for local host name [ Found ] RKHunter a trouvé un nom d’hôte local, ce
qui est attendu sur tout système Linux. Donc dans ce cas Found n’est pas un
problème. C’est simplement informatif.
- Garder RKHunter et les bases à jour régulièrement.
- Ne pas ignorer les faux positifs sans analyse.
Conclusion
RKHunter est un outil léger mais puissant pour détecter d’éventuels rootkits. Ce TP permet
d’intégrer son usage dans une démarche proactive de sécurité.
6/6