Outils personnels

RKHunter installation : Différence entre versions

De wikiGite

Ligne 118 : Ligne 118 :
 
  ALLOWHIDDENDIR=/dev/.initramfs
 
  ALLOWHIDDENDIR=/dev/.initramfs
 
  ALLOWHIDDENDIR=/dev/.initramfs-tools
 
  ALLOWHIDDENDIR=/dev/.initramfs-tools
 +
 +
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
 
  ALLOWHIDDENFILE=/etc/.pwd.lock
 
  ALLOWHIDDENFILE=/etc/.pwd.lock
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
 
  
 
En plus sur '''CentOS''' :
 
En plus sur '''CentOS''' :

Version du 3 décembre 2008 à 18:00

Procédure validée sur CentOS
A valider sur Debian

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)
(sur CentOS : ligne supplémentaire pathmunge dans le bloc "# Path manipulation" sur CentOS.)

Reconnecter root (ou "su -" pour les tests).

CentOS: créer les scripts d'automatisation (inclus au .deb sur Debian) /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
# 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 :
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
S'il y a trop d'erreurs de ce type mettre PKGMGR à NONE.

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).

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é".