Outils personnels

RKHunter installation : Différence entre versions

De wikiGite

 
(28 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
<span style="color:green">Procédure validée sur CentOS</span><br>
 
<span style="color:green">Procédure validée sur CentOS</span><br>
−
<span style="color:red">A valider sur Debian</span>
+
<!-- # ARCHIVE
−
 
 
 
'''NOTE''' : Le paquet .deb est trop ancien (1.2.9). La 1.3.0 apporte beaucoup de chose (notamment suspscan)
 
'''NOTE''' : Le paquet .deb est trop ancien (1.2.9). La 1.3.0 apporte beaucoup de chose (notamment suspscan)
  
−
=> install à partir des sources sur Debian et CentOS
+
=> install à partir des sources sur Debian
  
 
Vérifier la dernière version à l'adresse http://sourceforge.net/project/showfiles.php?group_id=155034
 
Vérifier la dernière version à l'adresse http://sourceforge.net/project/showfiles.php?group_id=155034
−
  wget http://downloads.sourceforge.net/rkhunter/rkhunter-1.3.2.tar.gz
+
  wget http://downloads.sourceforge.net/rkhunter/rkhunter-1.3.6.tar.gz
−
Eventuellement regarder ici :
 
−
wget http://garr.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.3.0.tar.gz
 
  
−
  tar -xvzf rkhunter-1.3.2.tar.gz
+
  tar -xvzf rkhunter-*.tar.gz
−
  cd rkhunter-1.3.2
+
  cd rkhunter-*
 
  mkdir -p /opt/rkhunter
 
  mkdir -p /opt/rkhunter
 
  ./installer.sh --layout custom /opt/rkhunter --install
 
  ./installer.sh --layout custom /opt/rkhunter --install
  
 
'''NOTE''' : Pour une MISE A JOUR, appliquer la même procédure, l'installateur détecte l'ancienne install.
 
'''NOTE''' : Pour une MISE A JOUR, appliquer la même procédure, l'installateur détecte l'ancienne install.
−
 
−
<strike>1.3.0 : Copier la version modifiée du script (systeap1:/home/fsoyer/Documents/Documents divers - logiciels/Sécurité/RKHunter/rkhunter_modifié_bug_suspscan) vers /opt/rkhunter/bin/rkhunter.</strike>
 
  
 
Editer /etc/profile, ajouter /opt/rkhunter/bin dans le PATH root (id 0)<br>
 
Editer /etc/profile, ajouter /opt/rkhunter/bin dans le PATH root (id 0)<br>
Ligne 24 : Ligne 19 :
  
 
Reconnecter root (ou "su -" pour les tests).
 
Reconnecter root (ou "su -" pour les tests).
 +
# END ARCHIVE -->
 +
= Installation =
 +
yum install --enablerepo=rpmforge rkhunter
 +
Déplacer la config dans un sous-répertoire de /etc pour plus de clarté
 +
mkdir /etc/rkhunter
 +
mv /etc/rkhunter.conf /etc/rkhunter
 +
Il faudra juste penser à appeler systématiquement rkhunter par "rkhunter --configfile /etc/rkhunter/rkhunter.conf".
 +
 +
= Configuration =
 +
Editer /etc/rkhunter/rkhunter.conf. Fichier standard pour une CentOS (uniquement les lignes décommentées) :
 +
ROTATE_MIRRORS=1
 +
UPDATE_MIRRORS=1
 +
MIRRORS_MODE=0
 +
MAIL-ON-WARNING=""
 +
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
 +
UPDATE_LANG=""
 +
LOGFILE=/var/log/rkhunter.log
 +
APPEND_LOG=0
 +
COPY_LOG_ON_ERROR=0
 +
COLOR_SET2=0
 +
AUTO_X_DETECT=1
 +
WHITELISTED_IS_WHITE=0
 +
ALLOW_SSH_ROOT_USER=without-password
 +
ALLOW_SSH_PROT_V1=0
 +
ENABLE_TESTS="all"
 +
DISABLE_TESTS="suspscan hidden_ports hidden_procs deleted_files packet_cap_apps"
 +
 +
SCRIPTWHITELIST="/sbin/ifup /sbin/ifdown"
 +
SCRIPTWHITELIST="/usr/bin/groups"
 +
SCRIPTWHITELIST="/usr/bin/GET"
 +
SCRIPTWHITELIST="/usr/bin/ldd"
 +
SCRIPTWHITELIST="/usr/bin/whatis"
 +
 +
IMMUTABLE_SET=0
 +
 +
ALLOWHIDDENDIR="/etc/.java"
 +
ALLOWHIDDENDIR="/dev/.udev /dev/.udevdb /dev/.udev.tdb"
 +
ALLOWHIDDENDIR="/dev/.static"
 +
ALLOWHIDDENDIR="/dev/.initramfs"
 +
ALLOWHIDDENDIR="/dev/.SRC-unix"
 +
ALLOWHIDDENDIR="/dev/.mdadm"
 +
ALLOWHIDDENFILE="/usr/share/man/man1/..1.gz"
 +
ALLOWHIDDENFILE="/etc/.pwd.lock"
 +
ALLOWHIDDENFILE="/etc/.passwd.pre-uid-fix"
 +
ALLOWHIDDENFILE="/usr/bin/.fipscheck.hmac"
 +
ALLOWHIDDENFILE="/usr/bin/.ssh.hmac"
 +
ALLOWHIDDENFILE="/usr/sbin/.sshd.hmac"
 +
 +
PHALANX2_DIRTEST=0
 +
 +
ALLOWDEVFILE="/dev/.udev/db/*"
 +
ALLOWDEVFILE="/dev/.udev/uevent_seqnum"
 +
 +
'''XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd'''
 +
'''UID0_ACCOUNTS="root-admin"'''
 +
ALLOW_SYSLOG_REMOTE_LOGGING=0
 +
'''APP_WHITELIST="httpd openssl sshd"'''
 +
 +
SUSPSCAN_TEMP=/dev/shm
 +
SUSPSCAN_MAXSIZE=10240000
 +
SUSPSCAN_THRESH=200
 +
USE_LOCKING=0
 +
LOCK_TIMEOUT=300
 +
SHOW_LOCK_MSGS=1
 +
INSTALLDIR=/usr
 +
DBDIR=/var/lib/rkhunter/db
 +
SCRIPTDIR=/usr/lib64/rkhunter/scripts
 +
TMPDIR=/var/lib/rkhunter/tmp
 +
USER_FILEPROP_FILES_DIRS=/etc/rkhunter/rkhunter.conf
  
−
'''CentOS''': créer les scripts d'automatisation (inclus au .deb sur Debian) /etc/default/rkhunter :
+
= Scripts d'automatisation =
 +
== rkhunter-cron.conf ==
 +
D'abord un fichier /etc/rkhunter/rkhunter-cron.conf (ATTENTION au '''REPORT_EMAIL''') qui permettra de piloter le fonctionnement de rkhunter lancé par cron :
 
  # Defaults for rkhunter cron jobs
 
  # Defaults for rkhunter cron jobs
 
  # sourced by /etc/cron.*/rkhunter
 
  # sourced by /etc/cron.*/rkhunter
Ligne 32 : Ligne 98 :
 
  #
 
  #
 
  # Set this to the email address where reports and run output should be sent
 
  # Set this to the email address where reports and run output should be sent
−
  #REPORT_EMAIL="fsoyer@systea.net" #Note : REPORT_MAIL ne sert a rien si on utilise le script cron.daily/rkhunter
+
  REPORT_EMAIL="<mail_admin>@example.net"
 
  # Set this to yes to enable rkhunter weekly database updates
 
  # Set this to yes to enable rkhunter weekly database updates
−
  CRON_DB_UPDATE="yes"
+
  CRON_DB_UPDATE="y"
 
  # Set this to yes to enable reports of weekly database updates
 
  # Set this to yes to enable reports of weekly database updates
−
  DB_UPDATE_EMAIL="yes"
+
  DB_UPDATE_EMAIL="y"
 
  # Set this to yes to enable rkhunter daily runs
 
  # Set this to yes to enable rkhunter daily runs
−
  CRON_DAILY_RUN="yes"
+
  CRON_DAILY_RUN="y"
 +
 
 +
== rkhunter.sh ==
 +
Le script principal effectue des tâches différentes selon le nom qu'on lui donne.
 +
 
 +
# Pour le scan journalier, créer un lien symbolique /etc/cron.daily/rkhunter_'''scan'''.
 +
 
 +
# Pour vérifier une fois par semaine si le programme nécessite une mise à jour (envoi d'un message à l'administrateur), et/ou s'il y a de nouvelles bases de règles (/var/lib/rkhunter - mise à jour automatique), créer un lien symbolique /etc/cron.daily/rkhunter_'''update'''.
  
−
/etc/cron.daily/rkhunter (scan journalier) :
+
  #!/bin/bash
−
  #!/bin/sh
+
  CONFDIR=/etc/rkhunter
−
  RKHUNTER=/opt/rkhunter/bin/rkhunter
+
  RKHUNTER="/usr/bin/rkhunter --configfile $CONFDIR/rkhunter.conf"
−
  EXCLUDE=/opt/rkhunter/bin/rkhunter.exclude
+
   
−
if [ ! -x $RKHUNTER ]; then
 
−
  exit 0
 
−
  fi
 
 
  # source our config
 
  # source our config
−
  . /etc/default/rkhunter
+
  . $CONFDIR/rkhunter-cron.conf
−
  case "$CRON_DAILY_RUN" in
+
−
    [Yy]*)
+
  case $0 in
 +
  *scan)
 +
      if [ "$CRON_DAILY_RUN" == "y" -o "$CRON_DAILY_RUN" == "Y" ]
 +
      then
 
         OUTFILE=`mktemp` || exit 1
 
         OUTFILE=`mktemp` || exit 1
 
         $RKHUNTER --cronjob --report-warnings-only --createlogfile /var/log/rkhunter.log > $OUTFILE
 
         $RKHUNTER --cronjob --report-warnings-only --createlogfile /var/log/rkhunter.log > $OUTFILE
−
         if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
+
         if [ $(stat -c %s $OUTFILE) -ne 0 ]
−
          cat $OUTFILE | grep -v -e '^$' > /tmp/rkhunter.a1
+
        then
−
          while read LINE
+
          (
−
          do
+
            echo "Subject: [rkhunter] Daily run"
−
            cat /tmp/rkhunter.a1 | grep -v "$LINE" > /tmp/rkhunter.a2
+
            echo ""
−
            mv /tmp/rkhunter.a2 /tmp/rkhunter.a1
+
            cat $OUTFILE
−
          done < $EXCLUDE
+
          ) | /usr/sbin/sendmail $REPORT_EMAIL
−
          if [ -s /tmp/rkhunter.a1 ]
 
−
          then
 
−
            (
 
−
              echo "Subject: [rkhunter] Daily run"
 
−
              echo ""
 
−
              cat $OUTFILE
 
−
            ) | /usr/sbin/sendmail $REPORT_EMAIL
 
−
          fi
 
 
         fi
 
         fi
 
         rm -f $OUTFILE
 
         rm -f $OUTFILE
−
        rm -f /tmp/rkhunter.a1
+
      fi
−
        ;;
+
      ;;
−
      *)
+
  *update)
−
      exit 0
+
      if [ "$CRON_DB_UPDATE" == "y" -o "$CRON_DAILY_RUN" == "Y" ]
−
      ;;
+
       then
−
esac
+
        OUTFILE=`mktemp` || exit 1
−
Le fichier EXCLUDE sert à supprimer des faux-positif sans toucher au script rkhunter. On met sur chaque ligne un mot/une phrase à filtrer.<br/>
+
        if [ "$DB_UPDATE_EMAIL" = "y" -o "$DB_UPDATE_EMAIL" = "Y" ]
−
Exemple : /opt/rkhunter/bin/rkhunter.exclude
+
        then
−
Warning: Package manager verification has failed:
+
          (
−
File:
 
−
Try running the command 'prelink
 
−
The file modification time has changed
 
−
The file hash value has changed
 
−
The file size has changed
 
−
One or more warnings have been found while checking the system.
 
−
Please check the log file (/var/log/rkhunter.log)
 
−
 
 
−
NE PAS OUBLIER
 
−
chmod 700 /etc/cron.daily/rkhunter
 
−
 
 
−
/etc/cron.weekly/rkhunter (update des bases) :
 
−
#!/bin/sh
 
−
RKHUNTER=/opt/rkhunter/bin/rkhunter
 
−
if [ ! -x $RKHUNTER ]; then
 
−
  exit 0
 
−
fi
 
−
# source our config
 
−
. /etc/default/rkhunter
 
−
case "$CRON_DB_UPDATE" in
 
−
       [Yy]*)
 
−
        OUTFILE=`mktemp` || exit 1
 
−
        if [ "$DB_UPDATE_EMAIL" = "no" ]
 
−
        then
 
−
            $RKHUNTER --versioncheck 1>/dev/null 2>$OUTFILE
 
−
            $RKHUNTER --update 1>/dev/null 2>$OUTFILE
 
−
        else
 
−
            (
 
 
           echo "Subject: [rkhunter] Weekly database update"
 
           echo "Subject: [rkhunter] Weekly database update"
 
           echo ""
 
           echo ""
−
           $RKHUNTER --versioncheck  
+
           $RKHUNTER --nocolors --versioncheck 2>&1
−
              $RKHUNTER --update
+
          $RKHUNTER --nocolors --update 2>&1
−
            ) | /usr/sbin/sendmail $REPORT_EMAIL
 
−
        fi
 
−
        if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
 
−
          (
 
−
            echo "Subject: [rkhunter] Weekly database update"
 
−
            echo ""
 
−
            cat $OUTFILE
 
 
           ) | /usr/sbin/sendmail $REPORT_EMAIL
 
           ) | /usr/sbin/sendmail $REPORT_EMAIL
−
        fi
+
        else
−
        rm -f $OUTFILE
+
          $RKHUNTER --nocolors --versioncheck 1>/dev/null 2>$OUTFILE
−
        ;;
+
          if [ $? -eq 2 ]
−
      *)
+
          then
−
        exit 0
+
              echo "Une nouvelle version de RKHUNTER est disponible !" >> $OUTFILE
−
        ;;
+
          fi
 +
          $RKHUNTER --nocolors --update 1>/dev/null 2>>$OUTFILE
 +
          if [ $? -eq 2 ]
 +
          then
 +
              echo "Une nouvelle version des bases de RKHUNTER a été installée." >> $OUTFILE
 +
          fi
 +
        fi
 +
        if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
 +
          (
 +
          echo "Subject: [rkhunter] Weekly database update"
 +
          echo ""
 +
          cat $OUTFILE
 +
          ) | /usr/sbin/sendmail $REPORT_EMAIL
 +
        fi
 +
        rm -f $OUTFILE
 +
      fi
 +
      ;;
 +
  *)
 +
      exit 0
 +
      ;;
 
  esac
 
  esac
  
 
NE PAS OUBLIER
 
NE PAS OUBLIER
−
  chmod 700 /etc/cron.weekly/rkhunter
+
  chmod 700 rkhunter.sh
−
 
+
et
−
Editer /opt/rkhunter/etc/rkhunter.conf :
+
  ln -s /<REPERTOIRE DU SCRIPT>/rkhunter.sh /etc/cron.daily/rkhunter_scan
−
MAIL-ON-WARNING=fsoyer@systea.net
+
  ln -s /<REPERTOIRE DU SCRIPT>/rkhunter.sh /etc/cron.weekly/rkhunter_update
−
# ALLOW_SSH_ROOT_USER DOIT ETRE à la même valeur que PermitRootLogin de sshd_config
 
−
  ALLOW_SSH_ROOT_USER=without-password
 
−
PKGMGR=DPKG # (ou RPM)
 
−
ALLOWHIDDENDIR=/dev/.udev
 
−
ALLOWHIDDENDIR=/dev/.static
 
−
ALLOWHIDDENDIR=/dev/.initramfs
 
−
  ALLOWHIDDENDIR=/dev/.initramfs-tools
 
−
 
−
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
 
−
ALLOWHIDDENFILE=/etc/.pwd.lock
 
−
 
 
−
En plus sur '''CentOS''' :
 
−
SCRIPTWHITELIST=/sbin/ifup
 
−
SCRIPTWHITELIST=/sbin/ifdown
 
−
SCRIPTWHITELIST=/usr/bin/groups
 
−
 
−
XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd
 
−
UID0_ACCOUNTS="root-admin"
 
−
Et si certaines version de logiciels ne sont pas à jour :
 
−
APP_WHITELIST="openssl:0.9.7a php:4.3.9"
 
−
 
 
−
Toujours sur '''CentOS''' :<br>
 
−
Enlever /sbin/ifup de PROP_FILE_LIST (fonction set_file_prop_dirs_files() dans /opt/rkhunter/bin/rkhunter), même s'il est dans la SCRIPTWHITELIST il met une erreur de vérif PKGMGR<br>
 
−
Selon les version de CentOS, on peut aussi avoir à enlever "grep" de PROP_FILE_LIST<br>
 
−
S'il y a trop d'erreurs de ce type mettre PKGMGR à NONE.
 
  
 +
= Initialisation =
 
Pour initialiser la base, lancer une première fois :
 
Pour initialiser la base, lancer une première fois :
 +
su -
 
  rkhunter --propupd
 
  rkhunter --propupd
 +
Et relancer cette commande à chaque fois que nécessaire (fichiers ajoutés ou supprimés, par exemple).
  
−
Lancer /etc/cron.daily/rkhunter sur la ligne de commande pour voir les faux-positifs et ajuster la configuration (résultat dans /var/log/rkhunter.log, chercher "Warning", et par mail)
+
Lancer /etc/cron.daily/rkhunter_scan sur la ligne de commande pour voir les faux-positifs et ajuster la configuration (résultat dans /var/log/rkhunter.log, chercher "Warning", et par mail)
  
−
=== SUSPSCAN ===
+
= SUSPSCAN =
 
rkhunter peut scanner des répertoire pour des "suspicious contents". Suspscan est gourmand en CPU, il est désactivé par défaut dans rkhunter.conf (DISABLE_TESTS).
 
rkhunter peut scanner des répertoire pour des "suspicious contents". Suspscan est gourmand en CPU, il est désactivé par défaut dans rkhunter.conf (DISABLE_TESTS).
  
 
suspscan désactivé 14/03/08 : vraiment trop gourmand... Et trop de faux positifs.
 
suspscan désactivé 14/03/08 : vraiment trop gourmand... Et trop de faux positifs.
  
 +
<!-- # ARCHIVE
 
--------------------------------------------
 
--------------------------------------------
 
Pour mémoire, première install par apt-get -> version 1.2.9
 
Pour mémoire, première install par apt-get -> version 1.2.9
Ligne 183 : Ligne 211 :
 
  "723:Debian 4.0 (i386):/usr/bin/md5sum:/bin:"
 
  "723:Debian 4.0 (i386):/usr/bin/md5sum:/bin:"
 
pour éviter des mails intempestifs sur "OS non supporté".
 
pour éviter des mails intempestifs sur "OS non supporté".
 +
# END ARCHIVE -->

Version actuelle datée du 8 août 2013 à 10:06

Procédure validée sur CentOS

Installation

yum install --enablerepo=rpmforge rkhunter

Déplacer la config dans un sous-répertoire de /etc pour plus de clarté

mkdir /etc/rkhunter
mv /etc/rkhunter.conf /etc/rkhunter

Il faudra juste penser à appeler systématiquement rkhunter par "rkhunter --configfile /etc/rkhunter/rkhunter.conf".

Configuration

Editer /etc/rkhunter/rkhunter.conf. Fichier standard pour une CentOS (uniquement les lignes décommentées) :

ROTATE_MIRRORS=1
UPDATE_MIRRORS=1
MIRRORS_MODE=0
MAIL-ON-WARNING=""
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}"
UPDATE_LANG=""
LOGFILE=/var/log/rkhunter.log
APPEND_LOG=0
COPY_LOG_ON_ERROR=0
COLOR_SET2=0
AUTO_X_DETECT=1
WHITELISTED_IS_WHITE=0
ALLOW_SSH_ROOT_USER=without-password
ALLOW_SSH_PROT_V1=0
ENABLE_TESTS="all"
DISABLE_TESTS="suspscan hidden_ports hidden_procs deleted_files packet_cap_apps"

SCRIPTWHITELIST="/sbin/ifup /sbin/ifdown"
SCRIPTWHITELIST="/usr/bin/groups"
SCRIPTWHITELIST="/usr/bin/GET"
SCRIPTWHITELIST="/usr/bin/ldd"
SCRIPTWHITELIST="/usr/bin/whatis"

IMMUTABLE_SET=0

ALLOWHIDDENDIR="/etc/.java"
ALLOWHIDDENDIR="/dev/.udev /dev/.udevdb /dev/.udev.tdb"
ALLOWHIDDENDIR="/dev/.static"
ALLOWHIDDENDIR="/dev/.initramfs"
ALLOWHIDDENDIR="/dev/.SRC-unix"
ALLOWHIDDENDIR="/dev/.mdadm"
ALLOWHIDDENFILE="/usr/share/man/man1/..1.gz"
ALLOWHIDDENFILE="/etc/.pwd.lock"
ALLOWHIDDENFILE="/etc/.passwd.pre-uid-fix"
ALLOWHIDDENFILE="/usr/bin/.fipscheck.hmac"
ALLOWHIDDENFILE="/usr/bin/.ssh.hmac"
ALLOWHIDDENFILE="/usr/sbin/.sshd.hmac"

PHALANX2_DIRTEST=0

ALLOWDEVFILE="/dev/.udev/db/*"
ALLOWDEVFILE="/dev/.udev/uevent_seqnum"

XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd
UID0_ACCOUNTS="root-admin"
ALLOW_SYSLOG_REMOTE_LOGGING=0
APP_WHITELIST="httpd openssl sshd"

SUSPSCAN_TEMP=/dev/shm
SUSPSCAN_MAXSIZE=10240000
SUSPSCAN_THRESH=200
USE_LOCKING=0
LOCK_TIMEOUT=300
SHOW_LOCK_MSGS=1
INSTALLDIR=/usr
DBDIR=/var/lib/rkhunter/db
SCRIPTDIR=/usr/lib64/rkhunter/scripts
TMPDIR=/var/lib/rkhunter/tmp
USER_FILEPROP_FILES_DIRS=/etc/rkhunter/rkhunter.conf

Scripts d'automatisation

rkhunter-cron.conf

D'abord un fichier /etc/rkhunter/rkhunter-cron.conf (ATTENTION au REPORT_EMAIL) qui permettra de piloter le fonctionnement de rkhunter lancé par cron :

# Defaults for rkhunter cron jobs
# sourced by /etc/cron.*/rkhunter
#
# This is a POSIX shell fragment
#
# Set this to the email address where reports and run output should be sent
REPORT_EMAIL="<mail_admin>@example.net"
# Set this to yes to enable rkhunter weekly database updates
CRON_DB_UPDATE="y"
# Set this to yes to enable reports of weekly database updates
DB_UPDATE_EMAIL="y"
# Set this to yes to enable rkhunter daily runs
CRON_DAILY_RUN="y"

rkhunter.sh

Le script principal effectue des tâches différentes selon le nom qu'on lui donne.

  1. Pour le scan journalier, créer un lien symbolique /etc/cron.daily/rkhunter_scan.
  1. Pour vérifier une fois par semaine si le programme nécessite une mise à jour (envoi d'un message à l'administrateur), et/ou s'il y a de nouvelles bases de règles (/var/lib/rkhunter - mise à jour automatique), créer un lien symbolique /etc/cron.daily/rkhunter_update.
#!/bin/bash
CONFDIR=/etc/rkhunter
RKHUNTER="/usr/bin/rkhunter --configfile $CONFDIR/rkhunter.conf"

# source our config
. $CONFDIR/rkhunter-cron.conf

case $0 in
  *scan)
     if [ "$CRON_DAILY_RUN" == "y" -o "$CRON_DAILY_RUN" == "Y" ]
     then
       OUTFILE=`mktemp` || exit 1
       $RKHUNTER --cronjob --report-warnings-only --createlogfile /var/log/rkhunter.log > $OUTFILE
       if [ $(stat -c %s $OUTFILE) -ne 0 ]
       then
          (
           echo "Subject: [rkhunter] Daily run"
           echo ""
           cat $OUTFILE
          ) | /usr/sbin/sendmail $REPORT_EMAIL
       fi
       rm -f $OUTFILE
     fi
     ;;
  *update)
     if [ "$CRON_DB_UPDATE" == "y" -o "$CRON_DAILY_RUN" == "Y" ]
     then
       OUTFILE=`mktemp` || exit 1
       if [ "$DB_UPDATE_EMAIL" = "y" -o "$DB_UPDATE_EMAIL" = "Y" ]
       then
         (
          echo "Subject: [rkhunter] Weekly database update"
          echo ""
          $RKHUNTER --nocolors --versioncheck 2>&1
          $RKHUNTER --nocolors --update 2>&1
          ) | /usr/sbin/sendmail $REPORT_EMAIL
       else
         $RKHUNTER --nocolors --versioncheck 1>/dev/null 2>$OUTFILE
         if [ $? -eq 2 ]
         then
             echo "Une nouvelle version de RKHUNTER est disponible !" >> $OUTFILE
         fi
         $RKHUNTER --nocolors --update 1>/dev/null 2>>$OUTFILE
         if [ $? -eq 2 ]
         then
             echo "Une nouvelle version des bases de RKHUNTER a été installée." >> $OUTFILE
         fi
       fi
       if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
         (
          echo "Subject: [rkhunter] Weekly database update"
          echo ""
          cat $OUTFILE
         ) | /usr/sbin/sendmail $REPORT_EMAIL
       fi
       rm -f $OUTFILE
     fi
     ;;
  *)
     exit 0
     ;;
esac

NE PAS OUBLIER

chmod 700 rkhunter.sh

et

ln -s /<REPERTOIRE DU SCRIPT>/rkhunter.sh /etc/cron.daily/rkhunter_scan
ln -s /<REPERTOIRE DU SCRIPT>/rkhunter.sh /etc/cron.weekly/rkhunter_update

Initialisation

Pour initialiser la base, lancer une première fois :

su -
rkhunter --propupd

Et relancer cette commande à chaque fois que nécessaire (fichiers ajoutés ou supprimés, par exemple).

Lancer /etc/cron.daily/rkhunter_scan sur la ligne de commande pour voir les faux-positifs et ajuster la configuration (résultat dans /var/log/rkhunter.log, chercher "Warning", et par mail)

SUSPSCAN

rkhunter peut scanner des répertoire pour des "suspicious contents". Suspscan est gourmand en CPU, il est désactivé par défaut dans rkhunter.conf (DISABLE_TESTS).

suspscan désactivé 14/03/08 : vraiment trop gourmand... Et trop de faux positifs.