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