Sie sind hier

automatische Virenscans für Linux Webserver

Gerade Webserver sind immer wieder Angriffen ausgesetzt. Oft wird dabei ein bisschen PHP Code abgelegt, der dann mit den Rechten des Webservers ausgeführt wird. Je nach Konfiguration können diese relativ weit reichen, was dann entsprechenden Schaden verursachen kann.

Zum Glück findet der OpenSource Virenscanner ClamAV viele dieser PHP Codeteile. Deshalb ist es oft sinnvoll, regelmässig Virenscans über das Filesystem des Webservers laufen zu lassen.

Das ist übrigens immer wieder ein guter Grund, Virenscanner auch auf Linux / Unix Hosts zu installieren. Auch wenn diese Systeme normalerweise immun gegen Viren sind, legen doch oft andere Hosts dort Dateien ab, die Viren enthalten können und andere Hosts, die von dort Dateien holen, gefährlich werden können. Damit ist der *nix Server quasi ein Zwischenwirt.

Unten sieht man ein extrem kurzes Script, das regelmässig aktuelle Virendefinitionen für ClamAV holt und einen Scan durchführt. Das Script führt man per Cron regelmässig (je nach Bedrohungssituation täglich oder wöchentlich) aus. Davor gilt es, die Admin Mail Adresse durch die eigene Adresse zu ersetzen. Eine Zeile ist auskommentiert, diese würde nach einem Virenfund einen zweiten Lauf starten, bei dem Viren auch gelöscht werden. Auf Produktivsystemen ist das nicht immer ratsam, da Virenscanner natürlich auch Fehler machen können. Besser ist es, sich über Virenfunde informieren zu lassen und sie bei Bedarf "händisch" zu löschen.

Natürlich muss vor dem Script noch ClamAV und die Clam-DB installiert sein. Für RHEL bzw. CentOS gibt es fertige RPM Pakete bei RPMForge

Das Script funktioniert auf RHEL4 und 5 und somit auch CentOS 4 und 5. Es an andere Distributionen anzupassen sollte kein Problem sein. Natürlich ist das nur ein Vorschlag und ich kann keine Verantwortung dafür übernehmen, wenn beim Verwenden dieser Tips bzw. dem Ausführen dieses Scripts etwas Negatives passiert.


#!/bin/bash

ADMINMAIL=admin@example.com

SCAN=`which clamscan`
UPDATE=`which freshclam`

TEMPODIR=`mktemp -td viruscheck.XXXXXXXX`

TEMPLOG=${TEMPODIR}/templog

${UPDATE}

${SCAN} -ri / > ${TEMPLOG}

if [ $? -eq 1 ]
then
cat ${TEMPLOG} | mail -s "WARNING! VIRUS FOUND ON `hostname`" ${ADMINMAIL}
# ${SCAN} -ri --remove=yes /
else
echo "No virus found" | mail -s "This is viruscheck on `hostname`" ${ADMINMAIL}
fi

rm -fr ${TEMPODIR}

Neuen Kommentar schreiben

Filtered HTML

  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <div> <span> <br>
  • Twitter: #hashtags sind verlinkt auf search.twitter.com.
  • Twitter-style @usernames are linked to their Twitter account pages.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.
Mit dem Absenden dieses Formulars, akzeptieren Sie die Datenschutzrichtlinie von Mollom.
Nerd