Installer et configurer Rootkit-Hunter
- Ressources :
- Notes :
- Fichiers de config :
/etc/rkhunter.conf
et/etc/default/rkhunter
- Fichier de log :
/var/log/rkhunter.log
Installation de RKHunter
- Installer le paquet :
apt install rkhunter
- Indiquer les options du Cron de Rkhunter, en éditant :
vi /etc/default/rkhunter
- /etc/default/rkhunter
CRON_DAILY_RUN="yes" CRON_DB_UPDATE="yes" DB_UPDATE_EMAIL="yes" REPORT_EMAIL="adminsys@<domaine-sinp>" REPORT_EMAIL_FROM="mailer@<domaine-sinp>" APT_AUTOGEN="yes"
- Indiquer les faux positifs, en éditant le fichier de config :
vi /etc/rkhunter.conf
- /etc/rkhunter.conf
ALLOW_SSH_ROOT_USER=prohibit-password # Config permettant la mise à jour pour éviter l'erreur : # Invalid WEB_CMD configuration option: Relative pathname: "/bin/false" UPDATE_MIRRORS=1 MIRRORS_MODE=0 WEB_CMD="" # (Ne pas renseigner MAIL-ON-WARNING ni MAIL_CMD ici pour éviter le flood d'emails sur chaque warning. # L'envoi d'alerte mail est géré uniquement par le script cron patché.) # Option évitant les faux positifs en se basant sur Dpkg # ATTENTION : lancer ''rkhunter --propupd'' après avoir modifié cette option ! PKGMGR=DPKG # Pour Debian 10 uniquement, corriger l'emplacement des scripts suivants (/usr/bin/ au lieu de /bin) : SCRIPTWHITELIST=/usr/bin/egrep SCRIPTWHITELIST=/usr/bin/fgrep SCRIPTWHITELIST=/usr/bin/which # Désactiver les faux positifs sur db-srv ALLOWDEVFILE="/dev/shm/PostgreSQL.*" # Exemples de faux positifs à désactiver : ALLOWHIDDENDIR="/dev/.udev" ALLOWHIDDENDIR="/dev/.static" ALLOWDEVFILE="/dev/.udev/rules.d/root.rules" # Désactiver les faux positifs liés à Byobu : ALLOWDEVFILE="/dev/shm/byobu-*" ALLOWDEVFILE="/dev/shm/byobu-*/*" ALLOWDEVFILE="/dev/shm/byobu-*/*/*"
- ATTENTION : suite à l'installation et configuration de Rkhunter, il est nécessaire de lancer la commande suivante (⇒ indique à Rkhunter que tout est OK) :
rkhunter --propupd
Envoi d'email
Pour recevoir les alertes de RKHunter sur la bonne adresse sans flood inutile :
- Définir l’adresse de réception dans /etc/default/rkhunter :
REPORT_EMAIL="adminsys@<domaine-sinp>" REPORT_EMAIL_FROM="mailer@<domaine-sinp>"
- Ne pas renseigner (ou commenter) les options MAIL-ON-WARNING et MAIL_CMD dans /etc/rkhunter.conf.
- Vérifier que le script cron (/etc/cron.daily/rkhunter) est patché selon la section ci-dessous (voir Patch).
Utilisation et commandes
- Vérifier dernière version :
rkhunter --versioncheck
- Mettre à jour le programme :
rkhunter --update
- Lister les différents tests effectués :
rkhunter --list
- ATTENTION : suite à l'installation et configuration de Rkhunter, il est nécessaire de lancer la commande suivante (⇒ indique à Rkhunter que tout est OK) :
rkhunter --propupd
- Effectuer une vérification :
rkhunter --checkall
- Vérification avec juste les alertes importantes :
rkhunter -c --rwo
- Tester uniquement les malwares :
rkhunter -c -sk --enable malware
- Accéder aux logs de RkHunter :
vi /var/log/rkhunter.log
Avertissements Rkhunter
Suite à mise à jour des paquets
- Lorsqu'on réalise une mise à jour des paquets systèmes, il se peut que Rkhunter signale qu'un logiciel à sa signature modifiée. Ex. :
Warning: The file properties have changed: File: /usr/bin/curl Current inode: 14563 Stored inode: 8252 Current file modification time: 1582383706 (22-févr.-2020 16:01:46) Stored file modification time : 1560536612 (14-juin-2019 20:23:32)
- Dans ce cas là, relever la date de la nouvelle version du binaire et se rendre sur le site suivant : https://www.debian.org/distrib/packages
- Chercher le paquet Debian correspondant et vérifier la date de la dernière version publiée du paquet en question
- Utiliser le moteur de recherche situé en bas de page permettant de rechercher un nom de fichier présent dans un paquet.
- Sur la page du paquet :
- sélectionner votre version de Debian.
- Pour vérifier la date, cliquer dans le menu de droite sur le lien "Journal des modifications Debian". Le changelog du paquet s'affiche et contient la date de la dernière modification.
- Si les 2 dates correspondent, le message d'avertissement de Rkhunter est à ignorer.
- Il faut tout de même :
- Se connecter sur le serveur
- Lancer la commande de vérification (par acquis de conscience) :
rkhunter --checkall
- Si tout semble conforme, indiquer à Rkhunter de considérer les changements comme normaux :
rkhunter --propupd
- NOTE : pour que Rhunter lance automatiquement
rkhunter --propupd
après une mise à jour des paquets, mettreAPT_AUTOGEN="yes"
dans le fichier/etc/default/rkhunter
.
Patch : Limiter les mails de RKHunter aux vraies alertes (rootkit ou fichier suspect)
Par défaut, RKHunter envoie un mail à chaque “Warning”, même mineur (ex : fichiers temporaires de byobu, dossiers cachés, etc.). Pour ne recevoir un mail que si un rootkit ou un fichier suspect est détecté, il faut patcher le script cron `/etc/cron.daily/rkhunter` (ou `/etc/cron.weekly/rkhunter`).
- /etc/cron.daily/rkhunter
# Ancienne section à commenter : # if [ -s "$OUTFILE" -a -n "$REPORT_EMAIL" ]; then # ( # echo "Subject: [rkhunter] $(hostname) - Daily report" # echo "To: $REPORT_EMAIL" # echo "" # cat $OUTFILE # ) | /usr/sbin/sendmail -t -f $REPORT_EMAIL_FROM # fi # Nouvelle section à ajouter : if [ -s "$OUTFILE" ] && [ -n "$REPORT_EMAIL" ]; then if grep -q -E "Possible rootkits:[[:space:]]+[^0]" "$OUTFILE" || \ grep -q -E "Suspect files:[[:space:]]+[^0]" "$OUTFILE"; then ( echo "Subject: [rkhunter] ALERTE sur $(hostname)" echo "To: $REPORT_EMAIL" echo "" cat $OUTFILE ) | /usr/sbin/sendmail -t -f $REPORT_EMAIL_FROM fi fi
Cette modification permet de ne recevoir un mail qu’en cas d’incident réel (fichiers suspects ou rootkits détectés), et d’ignorer tous les faux positifs récurrents (warnings bénins).
Pensez à faire une sauvegarde du script avant modification :
cp /etc/cron.daily/rkhunter /etc/cron.daily/rkhunter.bak
Avertissement "Spam tool component"
- Apparemment un faux positif lié aux services tournant dans des containers Docker : https://sourceforge.net/p/rkhunter/bugs/172/
- Le problème se pose avec Gunicorn et PhpFPM.
- Pas de solution pour l'instant pour le mettre dans une whitelist, il est seulement possible de désactiver les tests correspondant :
- Éditer le fichier de conf de Rkhunter :
vi /etc/rkhunter.conf
- Ajouter
running_procs
à la fin de la liste du paramètreDISABLE_TESTS
.
- Si le problème persiste, une alternative intéressante à RKhunter est Lynis (à tester).