Kammerjäger
Virenscanner ClamAV
Mail-Relay absichern
Neben dem Einsatz als Fileserver nutzen viele Anwender Linux auch als Mail-Relay zum Versenden und Abholen von E-Mails. Der in wenigen Minuten in das System integrierte Mailscanner Clamsmtp [6] beschränkt sich in seiner Funktion auf das Filtern von Viren. Das Programm arbeitet als Daemon und wurde für den Einsatz in Zusammenarbeit mit Postfix entwickelt. Da es in der Programmiersprache C geschrieben wurde, benötigt er außer den systemüblichen keine weiteren Module oder Bibliotheken.
Als Installationsbasis verwenden Sie die Quellen des Programms, die Sie auch auf der Heft-CD finden. Erstellen Sie das Konfigurationsskript mit dem Kommandozeilenaufruf ./configure --sysconfdir=/etc, damit das Programm beim Start ohne zusätzliche Parameter die Konfigurationsdatei clamsmptd.conf findet.
Als nächstes starten Sie den Aufruf make && make install um das Programm zu übersetzen und einzurichten. Das Init-Skript zum Starten und Stoppen des Programms finden Sie im Verzeichnis scripts/ des Quellcodeordners. Der Befehl chmod 755 clamsmtpd.sh verleiht ihm die notwendigen Berechtigungen, der Aufruf cp clamsmtpd.sh /etc/init.d/clamsmtpd kopiert es ins Init-Verzeichnis. Da die Distributionen unterschiedliche Pfade verwenden, passen Sie den genannten den Gegebenheiten an.
Im nächsten Schritt kopieren Sie die Konfigurationsdatei clamsmtp.conf, die Sie im Ordner doc des Quellenordners finden, in das Verzeichnis /etc. Öffnen Sie die Datei und passen Sie den Eintrag #ClamAddress: /var/run/clamav/clamd an, indem Sie das Kommentarzeichen entfernen und den Pfad zum Socket des Scanner-Daemons angeben. In unserem Beispiel lautet dieser /var/run/clamscan/clamd.
Der Punkt Action: beschreibt, was mit infizierten Mails geschieht. Zur Auswahl stehen drop (löschen), bounce (schickt die Mail mit Hinweis samt Virus an den Absender zurück) und pass (lässt die Mail durch). Die Möglichkeit, infizierte Mails in ein Quarantäneverzeichnis zu verschieben, liefert das Programm nur über den Eintrag Virus actions:, der es erlaubt, eigene Skripte zu starten. Ein vorkonfiguriertes Skript namens virus_action.sh finden Sie im Verzeichnis scripts des Quellcode-Ordners. Darin passen Sie lediglich das Verzeichnis an, in das die kontaminierten Mails verschoben werden. Damit der gestartete Prozess das Skript aufrufen darf, ändern Sie die Zugriffsrechte mit chmod 755 virus_action.sh.
Möchten Sie den Daemon im Kontext mit Postfix verwenden, ändern Sie die den Eintrag Listen: 0.0.0.0:10025 auf Listen: 127.0.0.1:10025, damit der Daemon lediglich auf der lokalen Netzwerkschnittstelle lauscht und von außen nicht mehr zu erreichen ist. Da der Prozess keine privilegierten Rechte erfordert, geben Sie als Besitzer (User:) clamscan an.
Clamsmtpd in Postfix einbinden
Um den Filter in Postfix zu integrieren, öffnen Sie die Datei /etc/postfix/main.cf, und ergänzen diese um folgende Zeile:
content_filter = scan:[127.0.0.1]:10025
Danach ist die Datei /etc/postfix/master.cf an der Reihe, die Sie um folgende Einträge ergänzen:
# Clamsmtp Virenscanner (verwendet von content_filter)
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
# Dieser Eintrag ermöglicht Clamsmtp, gescannte Mails an Postfix zu übergeben
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8Ein Neustart von Postfix und Clamsmtp aktiviert anschließend den Filtermechanismus.
Sie testen die Konfiguration, indem Sie eine potentiell infizierte Mail versenden. Öffnen Sie dazu mit cat eicar.com die Virensignatur des Eicar-Testvirus im Terminal. Mit mail root öffnen Sie den Maildialog, wo Sie in den Body der Mail die Signatur hineinkopieren. Ein abschließender Punkt versendet die Mail (Abbildung 4).
In jedem Fall lohnt sich ein Blick in die ausführliche Manpage (man clamsmtp und man clamsmtpd.conf), um das Potential des Scanners voll zu nutzen. Die Webseite von Nate Nielsen [7] erklärt im Detail das Verwenden von Clamsmtp als transparenten Proxy.
Fazit
Auch wenn der Ansatz gut ist, so bietet Clamscan in Sachen Performance der kommerziellen Konkurrenz kaum ernsthaft Paroli. Eine Aufgabe, für die F-Prot im Test etwa zehn Sekunden benötigte, beschäftigte Clamscan über fünf Minuten. Einer der Hauptgründe dafür ist nach Aussage des Virenexperten Rainer Link von Trend Micro darin zu suchen, dass Clamscan alle Dateien, egal welchen Typs, gegen die Pattern der Signaturdatenbank prüft.
Dieses beinahe unüberwindliche Handicap machen auch diverse Schnittstellen nicht wett, die es erlauben, Clamscan in verschiedene Applikationen wie Postfix oder Samba einzubinden. Speziell beim Untersuchen kritischer Dateiinhalte, wie etwa E-Mails, sollten Sie nicht alleine auf Clamscan vertrauen, sondern zur Sicherheit einen zweiten Scanner verwenden.
Treffsicherheit und Geschwindigkeit
Geht es darum, große Datenmengen – beispielsweise ganze Partitionen – auf Virenbefall zu untersuchen, ist ClamAV definitiv das falsche Programm: Im Test benötigte es beispielsweise zum Scannen eines etwa 1 GByte großen Home-Verzeichnisses über fünf Minuten, während der Scanner F-Prot die gleiche Aufgabe in nicht einmal zehn Sekunden erledigte.
Auch die Trefferquote lässt zu wünschen übrig. Von den etwa 82 000 Testviren blieben um die 200 unerkannt, 60 davon identifizierte F-Prot [8] als Viren. Ein weiterer Scan der Dateien mit dem Referenzscanner von Kaspersky bestätigte das Ergebnis. Da jedoch auch F-Prot aus dem gesamten Pool über 200 Viren übersah, empfiehlt es sich zumindest an kritischen Stellen zwei Scanner zu verwenden, um die Quote unerkannter Viren möglichst gering zu halten.
Glossar
Archivbomben
Dateien mit einer Größe von mehreren GByte, die in Archiven jedoch kaum ein MByte Platz benötigen. Ohne einen Schutzmechanismus beschäftigt eine Archivbombe den Virenscanner eines Systems zuweilen für mehrere Stunden und setzt damit das System außer Gefecht ("Denial of Service"). Außerdem besteht die Gefahr, dass das Entpacken einer Archivbombe den kompletten temporären Speicherplatz beansprucht und damit das System zum Stillstand bringt.
VFS
Virtual File System. Eine Abstraktionsschicht über dem Dateisystem mit einer einheitlichen Schnittstelle, die es Programmen erlaubt, damit zu kommunizieren.
False Positives
Legitime Events oder Programme, die Schutzsysteme wie Virenscanner, Firewalls oder Intrusion-Detection-Systeme irrtümlich als Schadcode oder Einbruchsversuch deklarieren.
[1] ClamAV: http://clamav.net
[2] ClamAV-Binaries: http://clamav.net/binary.html
[3] Zusatzmodule für ClamAV: http://www.clamav.net/3rdparty.html
[4] Eicar-Virentestdatei: http://www.eicar.org
[5] Samba-vscan: http://www.openantivirus.org/projects.php
[6] Clamsmtp: http://memberwebs.com/nielsen/software/clamsmtp/
[7] Clamsmtp als transparenter Proxy: http://memberwebs.com/nielsen/software/clamsmtp/transparent.html
[8] F-Prot: http://www.f-prot.com



