Da es ab und an zu Problemen mit unsicheren Kundenwebseiten kommt, die dann als SPAM oder Virenschleuder missbraucht werden, haben wir ein kleines Shell Script für unsere Kunden entwickelt, mit denen Sie den Webserver jede Nacht auf Viren prüfen können. Das Script versendet beim erfolgreichen Virenfund automatisch eine E-Mail an den Systemadministrator.

So funktionierts:

Zunächst müssen die entsprechenden Tools installiert werden

 

apt-get install mailutils clamav

Mailutils benötigt man für das versenden von E-Mails über die Linux Shell, clamav ist das Anti-Virenprogramm, welches wir bevorzugt auf Linux Servern einsetzen. Sollte keine aktuelle Clamav Version zur Verfügung stehen, findet man unter www.clamav.net die Sources um die aktuelle Version zu installieren.

 

Anschließend erstellen wir das Verzeichnis, wo ClamAV die nächtlichen Scanlogs ablegt.

 

mkdir /home/clamav/

 

 

Jetzt kommen wir zum Shellscript, welches wir im Verzeichnis root ablegen.

 

nano /root/clam-scan.sh

 

 

Scriptinhalt:

 

 

#!/bin/sh
### Allgemeine Angaben
mailbetreff="Root-Server 123456 Virenwarnung"
administratormail="info@ip-projects.de"

### Script
### Auslösen des Scans
rm -R /home/clamav/scanlog-www.log
clamscan /var/www/virtual/ --recursive=yes --log=/home/clamav/scanlog-www.log --infected --scan-html=yes --scan-pdf=yes --exclude=backups --exclude=logs --exclude=errors
rm -R /home/clamav/scanlog-mail.log
clamscan /var/mail/ --recursive=yes --log=/home/clamav/scanlog-mail.log --infected --scan-html=yes --scan-pdf=yes --exclude=new

### Versenden der E-Mail
if grep -rl 'Infected files: 0' /home/clamav/scanlog-www.log
then echo "kein Virus auf www gefunden"
else cat /home/clamav/scanlog-www.log | mail -s "$mailbetreff" $administratormail
fi
if grep -rl 'Infected files: 0' /home/clamav/scanlog-mail.log
then echo "kein Virus auf mail gefunden"
else cat /home/clamav/scanlog-mail.log | mail -s "$mailbetreff" $administratormail
fi

Unter dem Bereich „### Allgemeine Angaben“ wird der Wert für den E-Mail Betreff und die E-Mail Adresse des Administrators definiert.

Damit jetzt unser kleines Script jede Nacht seine Arbeit aufnimmt, muss lediglich ein Cron Job angelegt werden:

 

 

crontab -e

 

 

## Virenscan
30 3 * * * /bin/bash /root/clam-scan.sh

 

 

 

Jetzt noch die Schreibrechte korrekt setzen, da sonst ein Ausführen nicht möglich ist:

 

 

chmod 755 /root/clam-scan.sh

 

 

In diesem Fall wird um 3:30 an jedem Tag der Scan ausgeführt.

Dieses Kleine Script hat mich ca. 2 Stunden Zeit gekostet und bringt einen massiven Vorteil gerade im Webserver Betrieb. Wir haben beim Shell Script die Backups bewusst ausgeklammert, ich denke, dass das prüfen von Backups den Scanprozess nur unnötig in die Länge zieht, da die Backups sowieso jede Nacht neu generiert werden. Durch hinzufügen von –remove=yes beim Scanparameter, könnte man die Viren auch automatisch löschen lassen. Dies sollte aber mit Vorsicht passieren, da z.B. beim Mail Virenscan die E-Mails möglicherweise in Systemdateien abgelegt werden, die nicht gelöscht werden sollten.

Nicht immer sind die Virenwarnungen zutreffend, da ClamAV auch Sicherheitslücken im Webseiten Code sucht, daher gilt es die Löschung lieber durch die Webseitenbetreuer vorzunehmen.
Beim Scannen der Mails werden auch trash Ordner mitgescanned, es kann also sein, dass ein Kunde bereits die Virenmail in einen „zu Löschen“ Ordner verschoben hat, hier kann die Löschung unbedenklich durchgeführt werden.