Outils personnels

RKHunter installation : Différence entre versions

De wikiGite

 
Ligne 1 : Ligne 1 :
 
'''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.
+
=> install à partir des sources sur Debian et CentOS
 +
 
 
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.2.tar.gz
Eventuellement
+
Eventuellement regarder ici :
 
  wget http://garr.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.3.0.tar.gz
 
  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-1.3.2.tar.gz
cd rkhunter-1.3.2
+
cd rkhunter-1.3.2
mkdir -p /opt/rkhunter
+
mkdir -p /opt/rkhunter
./installer.sh --layout custom /opt/rkhunter --install
+
./installer.sh --layout custom /opt/rkhunter --install
  
*** 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.
  
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>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) (ligne supplémentaire pathmunge sur CentOS). Reconnecter root (ou "su -" pour les tests).
 
Editer /etc/profile, ajouter /opt/rkhunter/bin dans le PATH root (id 0) (ligne supplémentaire pathmunge sur CentOS). Reconnecter root (ou "su -" pour les tests).
  
Créer les scripts d'automatisation (*repiqués du .deb*) :
+
Créer les scripts d'automatisation (*repiqués du .deb*) /etc/default/rkhunter :
/etc/default/rkhunter :
+
# Defaults for rkhunter cron jobs
# Defaults for rkhunter cron jobs
+
# sourced by /etc/cron.*/rkhunter
# sourced by /etc/cron.*/rkhunter
+
#
#
+
# This is a POSIX shell fragment
# This is a POSIX shell fragment
+
#
#
+
# 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"
REPORT_EMAIL="fsoyer@systea.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="yes"
+
# 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="yes"
+
# 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="yes"
 
  
 
/etc/cron.daily/rkhunter (scan journalier) :
 
/etc/cron.daily/rkhunter (scan journalier) :
#!/bin/sh
+
#!/bin/sh
RKHUNTER=/opt/rkhunter/bin/rkhunter
+
RKHUNTER=/opt/rkhunter/bin/rkhunter
if [ ! -x $RKHUNTER ]; then
+
if [ ! -x $RKHUNTER ]; then
  exit 0
+
  exit 0
fi
+
fi
# source our config
+
# source our config
. /etc/default/rkhunter
+
. /etc/default/rkhunter
case "$CRON_DAILY_RUN" in
+
case "$CRON_DAILY_RUN" in
    [Yy]*)
+
      [Yy]*)
        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 ]; then
          (
+
          (
            echo "Subject: [rkhunter] Daily run"
+
            echo "Subject: [rkhunter] Daily run"
            echo ""
+
            echo ""
            cat $OUTFILE
+
            cat $OUTFILE
          ) | /usr/sbin/sendmail $REPORT_EMAIL
+
          ) | /usr/sbin/sendmail $REPORT_EMAIL
        fi
+
        fi
        rm -f $OUTFILE
+
        rm -f $OUTFILE
 +
        ;;
 +
      *)
 +
        exit 0
 
         ;;
 
         ;;
      *)
+
esac
      exit 0
 
      ;;
 
esac
 
  
**NE PAS OUBLIER LE chmod 700 /etc/cron.daily/rkhunter
+
NE PAS OUBLIER
 +
chmod 700 /etc/cron.daily/rkhunter
  
 
/etc/cron.weekly/rkhunter (update des bases) :
 
/etc/cron.weekly/rkhunter (update des bases) :
#!/bin/sh
+
#!/bin/sh
RKHUNTER=/opt/rkhunter/bin/rkhunter
+
RKHUNTER=/opt/rkhunter/bin/rkhunter
if [ ! -x $RKHUNTER ]; then
+
if [ ! -x $RKHUNTER ]; then
  exit 0
+
  exit 0
fi
+
fi
# source our config
+
# source our config
. /etc/default/rkhunter
+
. /etc/default/rkhunter
case "$CRON_DB_UPDATE" in
+
case "$CRON_DB_UPDATE" in
    [Yy]*)
+
      [Yy]*)
        OUTFILE=`mktemp` || exit 1
+
        OUTFILE=`mktemp` || exit 1
        if [ "$DB_UPDATE_EMAIL" = "no" ]
+
        if [ "$DB_UPDATE_EMAIL" = "no" ]
        then
+
        then
            $RKHUNTER --versioncheck 1>/dev/null 2>$OUTFILE
+
            $RKHUNTER --versioncheck 1>/dev/null 2>$OUTFILE
            $RKHUNTER --update 1>/dev/null 2>$OUTFILE
+
            $RKHUNTER --update 1>/dev/null 2>$OUTFILE
        else
+
        else
            (
+
            (
          echo "Subject: [rkhunter] Weekly database update"
+
          echo "Subject: [rkhunter] Weekly database update"
          echo ""
+
          echo ""
          $RKHUNTER --versioncheck  
+
          $RKHUNTER --versioncheck  
              $RKHUNTER --update
+
              $RKHUNTER --update
            ) | /usr/sbin/sendmail $REPORT_EMAIL
+
            ) | /usr/sbin/sendmail $REPORT_EMAIL
        fi
+
        fi
        if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
+
        if [ $(stat -c %s $OUTFILE) -ne 0 ]; then
          (
+
          (
            echo "Subject: [rkhunter] Weekly database update"
+
            echo "Subject: [rkhunter] Weekly database update"
            echo ""
+
            echo ""
            cat $OUTFILE
+
            cat $OUTFILE
          ) | /usr/sbin/sendmail $REPORT_EMAIL
+
          ) | /usr/sbin/sendmail $REPORT_EMAIL
        fi
+
        fi
        rm -f $OUTFILE
+
        rm -f $OUTFILE
 +
        ;;
 +
      *)
 +
        exit 0
 
         ;;
 
         ;;
      *)
+
esac
      exit 0
 
      ;;
 
esac
 
  
** NE PAS OUBLIER LE chmod 700 /etc/cron.weekly/rkhunter
+
NE PAS OUBLIER
 +
chmod 700 /etc/cron.weekly/rkhunter
  
 
Editer /opt/rkhunter/etc/rkhunter.conf :
 
Editer /opt/rkhunter/etc/rkhunter.conf :
MAIL-ON-WARNING=fsoyer@systea.net
+
MAIL-ON-WARNING=fsoyer@systea.net
PKGMGR=DPKG # (ou RPM)
+
PKGMGR=DPKG # (ou RPM)
ALLOWHIDDENDIR=/dev/.udev
+
ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static
+
ALLOWHIDDENDIR=/dev/.static
ALLOWHIDDENDIR=/dev/.initramfs
+
ALLOWHIDDENDIR=/dev/.initramfs
ALLOWHIDDENDIR=/dev/.initramfs-tools
+
ALLOWHIDDENDIR=/dev/.initramfs-tools
ALLOWHIDDENFILE=/etc/.pwd.lock
+
ALLOWHIDDENFILE=/etc/.pwd.lock
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
+
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
  
 
En plus sur BlueQuartz :
 
En plus sur BlueQuartz :
SCRIPTWHITELIST=/sbin/ifup
+
SCRIPTWHITELIST=/sbin/ifup
SCRIPTWHITELIST=/sbin/ifdown
+
SCRIPTWHITELIST=/sbin/ifdown
SCRIPTWHITELIST=/usr/bin/groups
+
SCRIPTWHITELIST=/usr/bin/groups
XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd
+
XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd
UID0_ACCOUNTS="root-admin"
+
UID0_ACCOUNTS="root-admin"
  
Enlever /sbin/ifup de PROP_FILE_LIST (fonction set_file_prop_dirs_files() ), même s'il est dans la SCRIPTWHITELIST il met une erreur de vérif PKGMGR
+
Enlever /sbin/ifup de PROP_FILE_LIST (fonction set_file_prop_dirs_files() ), 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
  
 
vérifier que ALLOW_SSH_ROOT_USER est bien à la même valeur que PermitRootLogin de sshd_config.
 
vérifier que ALLOW_SSH_ROOT_USER est bien à la même valeur que PermitRootLogin de sshd_config.
  
 
Pour initialiser la base, lancer une première fois :
 
Pour initialiser la base, lancer une première fois :
rkhunter --propupd
+
rkhunter --propupd
  
 
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 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)
Ligne 132 : Ligne 135 :
  
 
--------------------------------------------
 
--------------------------------------------
***** 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
apt-get install rkhunter
+
apt-get install rkhunter
 
Lancer rkhunter une fois pour vérifier le système, et repérer les faux positifs.
 
Lancer rkhunter une fois pour vérifier le système, et repérer les faux positifs.
 +
 
S'il y en a, éditer /etc/rkhunter.conf. Exemple, décommenter :
 
S'il y en a, éditer /etc/rkhunter.conf. Exemple, décommenter :
ALLOWHIDDENDIR=/dev/.udev
+
ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static
+
ALLOWHIDDENDIR=/dev/.static
ALLOWHIDDENDIR=/dev/.initramfs
+
ALLOWHIDDENDIR=/dev/.initramfs
  
 
Editer /etc/default/rkhunter si nécessaire, notamment pour donner une adresse mail valide dans REPORT_EMAIL.
 
Editer /etc/default/rkhunter si nécessaire, notamment pour donner une adresse mail valide dans REPORT_EMAIL.
 +
 
Sur une Etch, éditer /var/lib/rkhunter/db/os.dat. Si "Debian 4.0" n'est pas dans la liste, ajouter :
 
Sur une Etch, éditer /var/lib/rkhunter/db/os.dat. Si "Debian 4.0" n'est pas dans la liste, ajouter :
"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é". *** Plus nécessaire avec V1.3.2 ***
+
pour éviter des mails intempestifs sur "OS non supporté".

Version du 30 septembre 2008 à 15:08

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

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

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
cd rkhunter-1.3.2
mkdir -p /opt/rkhunter
./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.

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.

Editer /etc/profile, ajouter /opt/rkhunter/bin dans le PATH root (id 0) (ligne supplémentaire pathmunge sur CentOS). Reconnecter root (ou "su -" pour les tests).

Créer les scripts d'automatisation (*repiqués du .deb*) /etc/default/rkhunter :

# 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="fsoyer@systea.net"
# Set this to yes to enable rkhunter weekly database updates
CRON_DB_UPDATE="yes"
# Set this to yes to enable reports of weekly database updates
DB_UPDATE_EMAIL="yes"
# Set this to yes to enable rkhunter daily runs
CRON_DAILY_RUN="yes"

/etc/cron.daily/rkhunter (scan journalier) :

#!/bin/sh
RKHUNTER=/opt/rkhunter/bin/rkhunter
if [ ! -x $RKHUNTER ]; then
  exit 0
fi
# source our config
. /etc/default/rkhunter
case "$CRON_DAILY_RUN" in
     [Yy]*)
        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
        ;;
      *)
       exit 0
       ;;
esac

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 ""
          $RKHUNTER --versioncheck 
              $RKHUNTER --update
            ) | /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
        fi
        rm -f $OUTFILE
        ;;
      *)
       exit 0
       ;;
esac

NE PAS OUBLIER

chmod 700 /etc/cron.weekly/rkhunter

Editer /opt/rkhunter/etc/rkhunter.conf :

MAIL-ON-WARNING=fsoyer@systea.net
PKGMGR=DPKG # (ou RPM)
ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static
ALLOWHIDDENDIR=/dev/.initramfs
ALLOWHIDDENDIR=/dev/.initramfs-tools
ALLOWHIDDENFILE=/etc/.pwd.lock
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz

En plus sur BlueQuartz :

SCRIPTWHITELIST=/sbin/ifup
SCRIPTWHITELIST=/sbin/ifdown
SCRIPTWHITELIST=/usr/bin/groups
XINETD_ALLOWED_SVC=/etc/xinetd.d/proftpd
UID0_ACCOUNTS="root-admin"

Enlever /sbin/ifup de PROP_FILE_LIST (fonction set_file_prop_dirs_files() ), même s'il est dans la SCRIPTWHITELIST il met une erreur de vérif PKGMGR
Selon les version de CentOS, on peut aussi avoir à enlever grep de PROP_FILE_LIST

vérifier que ALLOW_SSH_ROOT_USER est bien à la même valeur que PermitRootLogin de sshd_config.

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

rkhunter --propupd

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)

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). Attention à la version, la 1.3.0 est buguée (fichier temporaire /dev/shm/suspscan* est vu comme "suspicious...) Voir note ci-dessus pour version patchée. suspscan désactivé 14/03/08 : vraiment trop gourmand... Et trop de faux positifs.


Pour mémoire, première install par apt-get -> version 1.2.9

apt-get install rkhunter

Lancer rkhunter une fois pour vérifier le système, et repérer les faux positifs.

S'il y en a, éditer /etc/rkhunter.conf. Exemple, décommenter :

ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static
ALLOWHIDDENDIR=/dev/.initramfs

Editer /etc/default/rkhunter si nécessaire, notamment pour donner une adresse mail valide dans REPORT_EMAIL.

Sur une Etch, éditer /var/lib/rkhunter/db/os.dat. Si "Debian 4.0" n'est pas dans la liste, ajouter :

"723:Debian 4.0 (i386):/usr/bin/md5sum:/bin:"

pour éviter des mails intempestifs sur "OS non supporté".