Auch unter Linux (Debian) gibt es bösartige Software. Ein Tool das den Server nach so genannten Rootkits durchsucht, heißt rkhunter (Rootkit Hunter) und ist relativ schnell, einfach installiert und konfiguriert.
rkhunter sollte man nicht über das Repository installieren, da es bei der Version zu Updateproblemen kommt. Also installieren wir rkhunter manuell!
Manuelle Installation von rkhunter:
- Benötigte Pakete installieren:
apt-get install binutils libreadline5 libruby1.8 ruby ruby1.8 unhide mailutils
- Zu aller erst sollten wir rkhunter von Sourceforge (http://sourceforge.net/projects/rkhunter/) herunterladen. Zum Zeitpunkt der Anleitung hier, ist rkhunter-1.4.2.tar.gz aktuell:
wget http://skylink.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz
- rkhunter entpacken, in den Ordner wechseln und die Installation starten:
tar zxf rkhunter-1.4.2.tar.gz cd rkhunter-1.4.2/ ./installer.sh --layout /usr --install
- Überprüfen ob auch wirklich die aktuelle Version installiert wurde:
rkhunter --versioncheck
- rkhunter updaten:
rkhunter --update && rkhunter --propupd
- nun in der Konfigurationsdatei (nano /etc/rkhunter.conf) einstellen, das er uns bei Warnungen informiert:
MAIL-ON-WARNING="root"
- Cronjob erstellen (nano /etc/cron.daily/rkhunter) mit folgendem Inhalt:
#!/bin/sh RKHUNTER=/usr/bin/rkhunter test -x $RKHUNTER || exit 0 # source our config . /etc/default/rkhunter if [ -z "$NICE" ]; then NICE=0 fi $RKHUNTER --versioncheck $RKHUNTER --update case "$CRON_DAILY_RUN" in [Yy]*) OUTFILE=`mktemp` || exit 1 /usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only --appendlog > $OUTFILE if [ -s "$OUTFILE" ]; then ( echo "Subject: [rkhunter] $(hostname -f) - Daily report" echo "To: $REPORT_EMAIL" echo "" cat $OUTFILE ) | /usr/sbin/sendmail $REPORT_EMAIL fi rm -f $OUTFILE ;; *) exit 0 ;; esac
- die Cronjobdatei ausführbar machen:
chmod +x /etc/cron.daily/rkhunter
- Default Datei für den rkhunter Cronjob (nano /etc/default/rkhunter) mit folgendem Inhalt erstellen. Hier kann bei „REPORT_EMAIL=“root““ definiert werden, wer den täglichen Report bekommt:
# 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="root" # 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="no" # Set this to yes to enable rkhunter daily runs CRON_DAILY_RUN="yes" # Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable). NICE="0"
- Testen ob der Cronjob soweit funktioniert:
sh /etc/cron.daily/rkhunter
- das wärs. rkhunter wird nun jeden Tag einmal ausgeführt! Jetzt nocht weiter unten evtl Sonstiges beachten!
Alte Version über das Repository installieren:
- rkhunter installieren:
apt-get install rkhunter
- Konfigurationsdatei öffnen:
nano /etc/rkhunter.conf
- damit der Administrator E-Mails bekommt muss nach „MAIL-ON-WARNING=“““ gesucht werden und wie zum Beispiel angepasst werden:
MAIL-ON-WARNING="root"
- Cronjob Datei öffnen:
nano /etc/cron.daily/rkhunter
- und Versionsprüfung und Update hinzufügen (zwischen fi und case „$CRON_DAILY_RUN“):
/usr/bin/rkhunter --versioncheck /usr/bin/rkhunter --update
das sollte dann schlussendlich so aussehen:
#!/bin/sh RKHUNTER=/usr/bin/rkhunter test -x $RKHUNTER || exit 0 # source our config . /etc/default/rkhunter if [ -z "$NICE" ]; then NICE=0 fi /usr/bin/rkhunter --versioncheck /usr/bin/rkhunter --update case "$CRON_DAILY_RUN" in [Yy]*) OUTFILE=`mktemp` || exit 1 /usr/bin/nice -n $NICE $RKHUNTER --cronjob --report-warnings-only --appendlog > $OUTFILE if [ -s "$OUTFILE" ]; then ( echo "Subject: [rkhunter] $(hostname -f) - Daily report" echo "To: $REPORT_EMAIL" echo "" cat $OUTFILE ) | /usr/sbin/sendmail $REPORT_EMAIL fi rm -f $OUTFILE ;; *) exit 0 ;; esac
- nun noch testen ob rkhunter funktioniert:
sh /etc/cron.daily/rkhunter
Sonstiges:
Fehlermeldungen unterdrücken:
Wenn eingestellt ist, das root sich direkt via SSH einloggen darf (ohne erst durch ein extra Benutzer), dann kommt diese Warnung:
Warning: The SSH and rkhunter configuration options should be the same: SSH configuration option 'PermitRootLogin': yes Rkhunter configuration option 'ALLOW_SSH_ROOT_USER': no
Diese Meldung kann man unterdrücken wenn man in der Konfigurationsdatei „/etc/rkhunter.conf“ die Zeile:
ALLOW_SSH_ROOT_USER=no von no auf yes umstellt ALLOW_SSH_ROOT_USER=yes
Es kann auch passieren das solche eine Warnungen erscheint:
Warning: Hidden directory found: /dev/.udev Warning: Hidden directory found: /dev/.initramfs
Hier muss man dann in der Konfigurationsdatei (/etc/rkhunter.conf) einstellen, das er die ignorieren soll (einfach dort die # entfernen):
# # Allow the specified hidden directories. # One directory per line (use multiple ALLOWHIDDENDIR lines). # #ALLOWHIDDENDIR=/etc/.java ALLOWHIDDENDIR=/dev/.udev #ALLOWHIDDENDIR=/dev/.udevdb #ALLOWHIDDENDIR=/dev/.udev.tdb #ALLOWHIDDENDIR=/dev/.static ALLOWHIDDENDIR=/dev/.initramfs #ALLOWHIDDENDIR=/dev/.SRC-unix #ALLOWHIDDENDIR=/dev/.mdadm
weitere Warnungen:
Warning: The command '/usr/sbin/adduser' has been replaced by a script: /usr/sbin/adduser: a /usr/bin/perl script text executable Warning: The command '/usr/bin/ldd' has been replaced by a script: /usr/bin/ldd: Bourne-Again shell script text executable Warning: The command '/bin/which' has been replaced by a script: /bin/which: POSIX shell script text executable
Hier muss SCRIPTWHITELIST angepasst werden, z.B. so:
SCRIPTWHITELIST=/usr/sbin/adduser SCRIPTWHITELIST=/usr/bin/ldd SCRIPTWHITELIST=/bin/which
oder:
Warning: Application 'gpg', version '1.4.9', is out of date, and possibly a security risk. Warning: Application 'openssl', version '0.9.8g', is out of date, and possibly a security risk. Warning: Application 'sshd', version '5.1p1', is out of date, and possibly a security risk.
dann muss „APP_WHITELIST“ auskommentiert und folgendes so geändert werden:
APP_WHITELIST="gpg:1.4.9 openssl:0.9.8g sshd:5.1p1"
oder
Warning: No output found from the lsmod command or the /proc/modules file: /proc/modules output: lsmod output:
dann muss bei „DISABLE_TESTS“ noch „os_specific“ hinzugefügt werden, wie zum Beispiel so:
DISABLE_TESTS=suspscan hidden_ports hidden_procs deleted_files packet_cap_apps os_specific
und bei
Warning: The file properties have changed: File: /etc/rkhunter.conf Current hash: c65f5db297791babedd78a08ef5e5db0c5d73d5c Stored hash : 0c24cf86da44da5a1fec1ac70a042f151cba5ecc Current size: 44842 Stored size: 44596 Current file modification time: 1400349457 (17-May-2014 19:57:37) Stored file modification time : 1400345132 (17-May-2014 18:45:32)
muss nach dem ganzen konfigurieren zum Schluss noch folgendes ausgeführt werden:
rkhunter --propupd