RKHunter installation : Différence entre versions
De wikiGite
Ligne 54 : | Ligne 54 : | ||
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 ] | + | if [ $(stat -c %s $OUTFILE) -ne 0 ] |
− | + | then | |
− | + | ( | |
− | + | echo "Subject: [rkhunter] Daily run" | |
− | + | echo "" | |
− | + | cat $OUTFILE | |
− | + | ) | /usr/sbin/sendmail $REPORT_EMAIL | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
fi | fi | ||
rm -f $OUTFILE | rm -f $OUTFILE | ||
− | |||
;; | ;; | ||
*) | *) | ||
Ligne 82 : | Ligne 73 : | ||
et | et | ||
ln -s /<REPERTOIRE DU SCRIPT>/rkhunter-daily.sh /etc/cron.daily/rkhunter_daily | ln -s /<REPERTOIRE DU SCRIPT>/rkhunter-daily.sh /etc/cron.daily/rkhunter_daily | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
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). | 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). |
Version du 8 août 2013 à 09:17
Procédure validée sur CentOS
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".
CentOS: créer les scripts d'automatisation /etc/rkhunter/rkhunter-cron.conf (ATTENTION au REPORT_EMAIL) :
# 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-daily.sh (scan journalier) :
#!/bin/sh CONFDIR=/etc/rkhunter RKHUNTER="/usr/bin/rkhunter --configfile $CONFDIR/rkhunter.conf" EXCLUDE=$CONFDIR/rkhunter.exclude # source our config . $CONFDIR/rkhunter-cron.conf 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 rkhunter-daily.sh
et
ln -s /<REPERTOIRE DU SCRIPT>/rkhunter-daily.sh /etc/cron.daily/rkhunter_daily
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). rkhunter-weekly.sh (update des bases) :
#!/bin/sh CONFDIR=/etc/rkhunter RKHUNTER="/usr/bin/rkhunter --configfile $CONFDIR/rkhunter.conf" # source our config . $CONFDIR/rkhunter-cron.conf case "$CRON_DB_UPDATE" in [Yy]*) OUTFILE=`mktemp` || exit 1 if [ "$DB_UPDATE_EMAIL" = "no" ] then $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 else ( echo "Subject: [rkhunter] Weekly database update" echo "" $RKHUNTER --nocolors --versioncheck 2>&1 $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 fi rm -f $OUTFILE ;; *) exit 0 ;; esac
NE PAS OUBLIER
chmod 700 rkhunter-weekly.sh
et
ln -s /<REPERTOIRE DU SCRIPT>/rkhunter-weekly.sh /etc/cron.weekly/rkhunter_weekly
Editer /etc/rkhunter/rkhunter.conf :
# MAIL-ON-WARNING=<mail_admin>@example.net # Pas nécessaire si on utilise le script /etc/cron.daily/rkhunter # 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"
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_daily 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.