Vous êtes ici : Accueil / Debian GNU/Linux / Système / Sécurité / Installer Rootkit Hunter (rkhunter) sur Debian

Installer Rootkit Hunter (rkhunter) sur Debian

Par Pierre-Yves Landuré Dernière modification 26/11/2016 11:53

Rootkit Hunter est un outil spécialisé de recherche de rootkits. Il vous alerte si votre système a été compromis. C'est un outil indispensable pour assurer la sécurité de vos serveurs.

Ce guide est testé sur:

  • Debian 5.0 Lenny
  • Debian 6.0 Squeeze
  • Debian 7.0 Wheezy

Installation

Pour installer rapidement l'outil, suivez les commandes ci-dessous.

Installez l'outil:

if [ -n "$(command apt-cache pkgnames libmd5-perl)" ]; then
  command apt-get -y install rkhunter libmd5-perl
else
  command apt-get -y install rkhunter libdigest-md5-file-perl
fi

Configurez le:

command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.udev\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.static\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.initramfs\)$|\1|' \
         "/etc/rkhunter.conf"
if [ -e "/etc/.java" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/etc/.java\)$|\1|' \
         "/etc/rkhunter.conf"
fi
if [ -x "/sbin/mdadm" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.mdadm\)$|\1|' \
         "/etc/rkhunter.conf"
fi
if [ -x "/sbin/hdparm" ]; then
  command sed -i -e 's|^[#]*\(RTKT_FILE_WHITELIST="\)\(.*\)$|\1/etc/init.d/.depend.boot /etc/init.d/hdparm\2|' \
         "/etc/rkhunter.conf"
fi
if [ ! -e "/proc/modules" ]; then
command sed -i -e 's|^[#]*\(DISABLE_TESTS="\)\(.*\)$|\1os_specific \2|' \
"/etc/rkhunter.conf"
fi
command sed -i -e '0,/ALLOWHIDDENFILE/{//a\ ALLOWHIDDENFILE=/dev/.tmp-block-* ;}' \ "/etc/rkhunter.conf" if [ -e "/dev/shm/network/ifstate" ]; then command sed -i -e '0,/ALLOWDEVFILE/{//a\ ALLOWDEVFILE=/dev/shm/network/ifstate ;}' \ "/etc/rkhunter.conf" fi if [ -n "$(command apt-cache show ssh | command grep "5.1p1")" ]; then command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"exim:4.69 gpg:1.4.9 openssl:0.9.8g sshd:5.1p1"|' \ "/etc/rkhunter.conf" fi if [ -n "$(command apt-cache show ssh | command grep "5.5p1")" ]; then command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"gpg:1.4.10 openssl:0.9.8o sshd:5.5p1"|' \ "/etc/rkhunter.conf" fi SSH_ROOT_ALLOWED=no TEST_ROOT_ALLOWED=$(/bin/grep -i "PermitRootLogin.*yes" /etc/ssh/sshd_config) if [ -n "$TEST_ROOT_ALLOWED" ]; then SSH_ROOT_ALLOWED=yes fi command sed -i \ -e "s|^[#]*\\(ALLOW_SSH_ROOT_USER=\\).*$|\\1${SSH_ROOT_ALLOWED}|" \ "/etc/rkhunter.conf" command sed -i -e 's|^[#]*\(HASH_FUNC=\).*$|\1md5sum|' \ -e 's|^[#]*\(PKGMGR=\).*$|\1DPKG|' \ "/etc/rkhunter.conf" if [[ ! -e '/etc/apt/apt.conf.d/90rkhunter' ]]; then
command echo '// Update rkhunter file signatures databases after running dpkg. DPkg::Post-Invoke { "if [ -x /usr/bin/rkhunter ]; then if [ $(/usr/bin/rkhunter --help | /bin/grep "propupd" | /usr/bin/wc -l) -gt 0 ]; then /usr/bin/rkhunter --propupd; fi; fi"; };' > '/etc/apt/apt.conf.d/90rkhunter'
fi
[[ -e '/etc/default/rkhunter' ]] && command sed -i -e 's/^APT_AUTOGEN=.*$/APT_AUTOGEN="yes"/' '/etc/default/rkhunter' command rkhunter --propupdate command rkhunter --update

Vérifiez que la configuration est correcte:

command rkhunter --configfile /etc/rkhunter.conf --report-warnings-only --checkall

Détails de l'installation

Installez l'outil:

if [ -n "$(command apt-cache pkgnames libmd5-perl)" ]; then
  command apt-get -y install rkhunter libmd5-perl
else
  command apt-get -y install rkhunter libdigest-md5-file-perl
fi

Ignorez les faux positifs déclenchés par les dossiers et fichiers systèmes cachés:

command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.udev\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.static\)$|\1|' \
            -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.initramfs\)$|\1|' \
         "/etc/rkhunter.conf"

Si votre système utilise Java, ignorez le dossier associé:

if [ -e "/etc/.java" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/etc/.java\)$|\1|' \
         "/etc/rkhunter.conf"
fi

Si votre système utilise le raid logiciel, ignorez le dossier associé:

if [ -x "/sbin/mdadm" ]; then
  command sed -i -e 's|^[#]*\(ALLOWHIDDENDIR=/dev/.mdadm\)$|\1|' \
         "/etc/rkhunter.conf"
fi

Si votre système utilise l'utilitaire hdparm, ignorez les fichiers associés:

if [ -x "/sbin/hdparm" ]; then
  command sed -i -e 's|^[#]*\(RTKT_FILE_WHITELIST="\)\(.*\)$|\1/etc/init.d/.depend.boot /etc/init.d/hdparm\2|' \
         "/etc/rkhunter.conf"
fi

Si votre système de dispose pas du fichier /proc/modules, désactivez le test concerné:

if [ ! -e "/proc/modules" ]; then
  command sed -i -e 's|^[#]*\(DISABLE_TESTS="\)\(.*\)$|\1os_specific \2|' \
         "/etc/rkhunter.conf"
fi

Ignorez les fichiers block temporaires:

command sed -i -e '0,/ALLOWHIDDENFILE/{//a\
ALLOWHIDDENFILE=/dev/.tmp-block-*
;}' \
           "/etc/rkhunter.conf"

Autorisez la présence des informations de configuration réseau:

if [ -e "/dev/shm/network/ifstate" ]; then
  command sed -i -e '0,/ALLOWDEVFILE/{//a\
ALLOWDEVFILE=/dev/shm/network/ifstate
;}' \
           "/etc/rkhunter.conf"
fi

La distribution Debian mettant en place des patchs de sécurité sans mettre à jour les numéros de version des applications, nous ajoutons les applications concernées en liste blanche:

if [ -n "$(command apt-cache show ssh | command grep "5.1p1")" ]; then
  command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"exim:4.69 gpg:1.4.9 openssl:0.9.8g sshd:5.1p1"|' \
      "/etc/rkhunter.conf"
fi
if [ -n "$(command apt-cache show ssh | command grep "5.5p1")" ]; then
  command sed -i -e 's|^[#]*\(APP_WHITELIST=\).*$|\1"gpg:1.4.10 openssl:0.9.8o sshd:5.5p1"|' \
      "/etc/rkhunter.conf"
fi

Si votre système autorise les connexions de l'utilisateur root en SSH, désactivez l'alerte associée:

SSH_ROOT_ALLOWED=no
TEST_ROOT_ALLOWED=$(/bin/grep -i "PermitRootLogin.*yes" /etc/ssh/sshd_config)
if [ -n "$TEST_ROOT_ALLOWED" ]; then
  SSH_ROOT_ALLOWED=yes
fi
command sed -i \
            -e "s|^[#]*\\(ALLOW_SSH_ROOT_USER=\\).*$|\\1${SSH_ROOT_ALLOWED}|" \
         "/etc/rkhunter.conf"

Rootkit Hunter permet de maintenir une base de signatures des fichiers système basées sur les informations fournies par le gestionnaire de paquets Debian. Cette base est ensuite utilisée pour vérifier si les fichiers systèmes critiques ont subit une modification par un tiers. De telles modifications sont souvent le signe d'une infection. Activez cette fonctionnalité à l'aide de la commande:

command sed -i -e 's|^[#]*\(HASH_FUNC=\).*$|\1md5sum|' \
            -e 's|^[#]*\(PKGMGR=\).*$|\1DPKG|' \
    "/etc/rkhunter.conf"

Activez la mise à jour automatique de la base des signatures après chaque utilisation d'apt-get:

if [[ ! -e '/etc/apt/apt.conf.d/90rkhunter' ]]; then
command echo '// Update rkhunter file signatures databases after running dpkg. DPkg::Post-Invoke { "if [ -x /usr/bin/rkhunter ]; then if [ $(/usr/bin/rkhunter --help | /bin/grep "propupd" | /usr/bin/wc -l) -gt 0 ]; then /usr/bin/rkhunter --propupd; fi; fi"; };' > '/etc/apt/apt.conf.d/90rkhunter'
fi
[[ -e '/etc/default/rkhunter' ]] && command sed -i -e 's/^APT_AUTOGEN=.*$/APT_AUTOGEN="yes"/' '/etc/default/rkhunter'

Mettez à jour la base des signatures:

command rkhunter --propupdate

Mettez à jour la base des menaces de Rootkit Hunter (par la suite elle est mise à jour chaque semaine):

command rkhunter --update

La commande qui suit est exécutée quotidiennemend. Son résultat est envoyé par e-mail à l'utilisateur root si un problème est détecté. Exécutez-le une première fois pour vérifier que tout fonctionne correctement:

command rkhunter --configfile /etc/rkhunter.conf --report-warnings-only --checkall

Remerciements