Virenscan mit bdc

Die Firma BitDefender bietet mit der BitDefender Linux Edition einen kostenlosen Virenscanner für Linux an. Herzstück ist das Konsolenprogramm bdc, welches genutzt werden kann um die Virensignaturen aktuell zu halten und um das System nach Viren zu durchsuchen. Dieser Artikel zeigt, wie man von Hand mit dem Programm arbeiten kann und wie man es zur Automatisierung des Scannens nutzen kann. Zum Einsatz kam ein Mandrake Linux-System, daher wird im folgenden auf die RPM-Version der BitDefender Linux Edition eingegangen.



Installation

Die BitDefender Linux Edition lässt sich sehr einfach installieren: Nach dem Download des passenden Pakets (in meinem Fall BitDefender-Console-Antivirus-7.0.1-3.linux-gcc3x.i586.rpm) reicht ein beherztes rpm -ivh BitDefender-Console-Antivirus-7.0.1-3.linux-gcc3x.i586.rpm -- ausgeführt als User root -- um den Virenscanner zu installieren. Danach steht das Programm bdc jedem User zur Verfügung, wobei natürlich nur root das gesamte System scannen und vor allem die Virensignaturen aktuell halten kann. Es empfiehlt sich daher, möglichst als User root mit bdc zu arbeiten. Im folgenden wird davon ausgegangen, dass als User root zum Einsatz kommt.

Signaturen aktualisieren

Vor dem ersten Scanvorgang sollten die Virensignaturen erst einmal aktualisiert werden. Ein Aufruf von bdc --update bei bestehender Internetverbindung erledigt dies vollautomatisch. Ist das Update fertig kann man mit dem eigentlichen Scanvorgang loslegen. Ein Aufruf von bdc /home --files --arc --mail --disinfect scannt alle ausführbaren Dateien (--files), Archive (--arc) sowie Maildatenbanken (--mail) im gesamten /home-Verzeichnis, wobei ein Versuch zur Desinfizierung (--disinfect) von verseuchten Dateien vorgenommen wird. Um andere Verzeichnisse inklusive deren Unterverzeichnissen zu scannen braucht man nur noch das in der Kommandozeile angegebene Verzeichnis zu ändern.

Automatisierung mit cron

Da bdc ein reines Konsolenprogramm ist bietet sich eine Aufnahme in die crontab von root natürlich an. Die Idee: Man lässt jede Nacht die Virensignaturen aktualisieren, später wird dann ein kompletter Systemscan gestartet. Die Ausgaben von bdc sammelt man in Logdateien, zwecks späterer Einsicht. Zur besseren Verwaltung packt man die eigentlichen Aufgaben in Shellskripte, welche dann von cron aufgerufen werden.

Shellskripte für cron

Das Skript zur Aktualisierung der Signaturen (bdc_update.sh) kann wie folgt aussehen:

#!/bin/sh
nice -n -5 /usr/bin/bdc --update > /root/bdc_update_`date +%Y%m%d-%H%M%S`.log

Es ruft bdc mit einer recht hohen Priorität (nice -n -5) und dem Parameter --update auf, wodurch eine Aktualisierung der Virensignaturen bewirkt wird. Die Ausgaben von bdc werden in einer Logdatei gespeichert, welche zur späteren Referenzierung im Dateinamen das aktuelle Datum sowie die aktuelle Uhrzeit enthält (`date +%Y%m%d-%H%M%S`). Damit nach Viren gesucht wird ist ein weiteres Skript (bdc_scan.sh) nötig, welches folgendes enthält:

#!/bin/sh
nice -n 12 /usr/bin/bdc / --files --arc --mail --disinfect > /root/bdc_scan_`date +%Y%m%d-%H%M%S`.log

Dieses Skript startet bdc mit allen nötigen Scanoptionen (--files --arc --mail --disinfect) und einer niedrigen Priorität (nice -n 12), damit andere Prozesse nicht übermäßig durch den Scanvorgang gestört werden. Die Ausgaben werden wieder in einer Logdatei die mit einem Zeitstempel im Dateinamen versehen ist gesammelt.

Beide Skripte speichert man im Verzeichnis /root und versieht sie mit dem Ausführbar-Flag (chmod 700 /root/bdc_*.sh).

Einträge in der crontab

Ein Aufruf von crontab -e startet den Editor für die crontab, was gewöhnlich vi ist. Auf das Format der crontab sei hier nicht näher eingegangen, dazu finden sich genügend Informationen im Internet. Kommen wir daher direkt zu den zwei entscheidenden Zeilen, welche nach Betätigung der Taste i in die crontab eingetragen werden können:

00 03 * * * /root/bdc_update.sh
30 03 * * * /root/bdc_scan.sh

Nach Eingabe der Zeilen verlässt man den Eingabemodus durch einen Druck auf Esc, die Eingabe der Zeichenfolge :wq sorgt für das Schreiben der neuen crontab und für das Verlassen des Editors. Sofern der cron-Daemon läuft (testbar durch den Befehl /etc/init.d/crond status) wird jetzt automatisch dafür gesorgt, dass jede Nacht um 3:00 Uhr die Virensignaturen aktualisiert werden und das um 3:30 Uhr ein Systemscan vorgenommen wird.


(c) 2004 Robert Weiler, <http://robwei.de/>.
Letzte Änderung: 23. Februar 2004, 18:33:47 Uhr.
HTML 4.01. CSS Level 2. — GFDL. CC A-NC-SA 1.0.