Clam Antivirus

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Clam Antivirus / Clamav (auch: ClamAV) ist ein Antivirenprogramm und ein Phishing-Filter, das häufig auf E-Mail-Rechnern zur Ausfilterung sogenannter Mailwürmern und Phishing-E-Mails zum Einsatz kommt. Clamav besteht aus mehreren Teilen, die für verschiedene Aufgaben zuständig sind:

Komponente Beschreibung
clamd Der Clamav-Daemon.
clamscan Shell-Befehl, der Dateien auf Virenbefall prüft.
clamdscan Shell-Befehl, der Dateien zur Prüfung auf Virenbefall an den Clamav-Daemon clamd übergibt.
freshclam Update-Daemon, der für die Aktualität der Virendefinitionen sorgt.

Eine grafische Oberfläche für Clamav unter KDE ist Klamav.

Clamav arbeitet unter Linux mit dem Kernelmoul Dazuko zusammen, eine Schnittstelle zwischen dem Dateisystem und Antivirenprogrammen, die den den Zugang zu Daten automatisch sperrt oder zulässt.

Installation

Die Schädlingsdatenbank, die als Grundlage des Virenscanners dient, ist in den Binärpaketen einiger Linux-Distributionen nicht enthalten. Sie ist dann üblicherweise im separaten Paket "clamav-db" enthalten.

Ubuntu 8.04 Hardy Heron

$ sudo apt-get install clamav clamav-daemon

Entfernen.

$ sudo apt-get remove clamav
$ sudo apt-get remove clamav-daemon

Verwendung

Zwar spielen Schadprogramme in der GNU/Linux-Welt keine grosse Rolle - für eine GNU/Linux-Arbeitsplatzinstallation ist die Installation eines Antivirenprogramms deshalb nicht wirklich notwendig. Clamav eignet sich aber sehr gut für heterogene Umgebungen (z. B. parallele Installationen von Linux und Microsoft Windows, in denen Dateien unter Linux heruntergeladen und geprüft werden, bevor sie an Microsoft Windows "weitergereicht" werden), zum Prüfen von Mailanhängen oder zum Einsatz in Kombination mit Dritt-Programmen wie beispielsweise Samba oder einem Mail-Server.

Dank verschiedener Module kann Clamav die Serverdienste am Weiterleiten oder Verbreiten von Schadprogrammen hindern. Viele dieser Addons verwenden zur Virenprüfung clamscan - ist Performance gefragt, so sollte allerdings von seiner Verwendung abgesehen werden.

Was die Performance angeht kann Clamav kaum mit den kommerziellen Produkten mithalten - in einem Test benötigte das Programm rund fünf Minuten, um ein 1 GB grosses Verzeichnis zu prüfen, was von F-Prot in zehn Sekunden erledigt wurde. Dies liegt hauptsächlich daran, dass Clamav alle Dateien, gleichgültig welchen Typs, gegen sämtliche Muster der Virensignaturdatenbank prüft.

Auch die Trefferquote lässt zu wünschen übrig: Von 8'200 Testviren blieben rund 200 unerkannt; 60 davon identifizierte F-Prot im zweiten Durchgang als Viren. Ein weiterer Durchgang mit dem Referenzscanner von Kaspersky bestätigte dieses Ergebnis. Da jedoch auch F-Prot rund 200 Viren übersah empfiehlt es sich ohnehin, zumindest an den kritischen Stellen zwei Antivirenprogramme zu verwenden, um die Quote unerkannter Schadprogramme tief zu halten. Einer davon kann durchaus Clamav sein.

Clamsmtp

Clamsmtp ist ein Mailscanner, der sich auf das Filtern von Viren beschränkt. Das in C geschriebene Programm arbeitet als Daemon und wurde für den Einsatz in Zusammenarbeit mit Postfix entwickelt. Bei der Zusammenarbeit zwischen Postfix, Clamsmtp und clamd liefert letzterer lediglich den Rückgabewert: infiziert oder nicht. Die Entscheidung, was mit dem Schadprogramm geschieht, übernimmt der Vermittler Clamsmtp.

Absender
   v
   v
-----------                     ----------------                        ------------------
| Postfix | ------------------> |   Clamsmtp   | ---------------------> |     clamd      |
|  (MTA)  | <--- Virus nein --- | (Vermittler) | <--- Virus ja/nein --- | (Virenscanner) |
-----------                     ----------------                        ------------------
   v                                 v Virus ja
   v                                 v
Empfänger                   Quarantäne-Verzeichnis

Um den Filter in Postfix einzubinden, wird in der Postfix-Konfigurationsdatei "/etc/postfix/main.cnf" die folgende Zeile eingefügt:

content_filter = scan:[127.0.0.1]:10025

In der Postfix-Konfigurationsdatei "/etc/postfix/master.cf" sind ausserdem folgende Einträge einzufügen:

# 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 die Übergabe geprüfter E-Mails an Postfix
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/8

Ein anschliessender Neustart von Postfix und Clamsmtp aktiviert den Filtermechanismus.

Das Kompilieren von Clamsmtp erfolgt mit dem folgenden Befehl, damit die Konfigurationsdatei "clamsmtpd.conf" beim Starten ohne zusätzlichen Parameter gefunden wird. Anschliessend folgt das Kompilieren und Installieren des Programms.

$ ./configure --sysconfigdir=/etc
$ make
$ make install

Das Init-Skript für das Starten und Stoppen von Clamsmtp findet sich innerhalb des Quellcode-Verzeichnisses im Unterverzeichnis "scripts". Der Befehl "chmod 755 clamsmtpd.sh" verleiht ihm die nötigen Zugriffsrechte. Mit folgendem Befehl wird es ins Init-Verzeichnis kopiert.

$ sudo cp clamsmtpd.sh /etc/init.d/clamsmtpd

Die Konfigurationsdatei "clamsmtp.conf" findet sich innerhalb des Quellcode-Verzeichnisses im Unterverzeichnis "doc" und wird mit folgendem Befehl nach "/etc" kopiert.

$ sudo cp clamsmtp.conf /etc

In dieser Konfigurationsdatei muss die folgende Zeile aktiviert werden und der Pfad zum Socket des Antivirenprogramm-Daemons clamd (hier "/var/run/clamav/clamd") angegeben werden.

ClamAddress: /var/run/clamav/clamd

Der Parameter "Action:" beschreibt, was mit infizierten E-Mails geschieht. Zur Auswahl stehen folgende Möglichkeiten:

  • "drop" löscht die E-Mails.
  • "bounce" schickt die E-Mail mit einem Hinweis samt dem Schadprogramm zurück an den Absender.
  • "pass" lässt die E-Mail durch.

Der Parameter "Virus actions:" ermöglicht es, infizierte E-Mails in ein besonderes Verzeichnis zu verschieben, indem hier ein eigenes Skript gestartet wird, welches diese Aktion übernimmt. Das vorkonfigurierte Skript "virus_action" findet sich innerhalb des Quellcode-Verzeichnisses im Unterverzeichnis "scripts". Darin muss nur das Verzeichnis angepasst werden, in das die infizierten E-Mails verschoeben werden sollen. Der Befehl "chmod 755 virus_action.sh" verleiht ihm die nötigen Zugriffsrechte, damit es vom gestartete Prozess aufgerufen werden kann.

Damit der Clamsmtp im Zusammenhang mit Postfix verwendet werden kann, muss der Eintrag "Listen: 0.0.0.0:10025" zu "Listen: 127.0.0.1:10025" geändert werden, damit der Daemon nur auf der lokalen Netzwerkschnittstelle lauscht und von aussen her nicht mehr zu erreichen ist.

Da der Daemon-Prozess keinerlei besondere Rechte erfordert, wird als ausführender Benutzer "User: clamscan" angegeben.

Die Konfiguration kann getestet werden, indem lokal eine potentiell infizierte E-Mail versandt wird. Dafür wird mit "cat eicar.com" in einem Terminal die Virensignatur der Eicar-Testdatei geöffnet. Mit "mail root" wird ein E-Mail-Dialog geöffnet, wo in den Inhalt der E-Mail diese Virensignatur hineinkopiert wird. Ein abschliessender Punkt (".") auf einer neuen Zeile versendet die E-Mail.

Samba-vscan

Samba-vscan ist einer der wichtigsten Koppler zwischen den Diensten und wird neben Clamav auch von den Antivirenprogrammen F-Prot, Sophos und Trend Micro verwendet, um Dateizugriffe auf Freigaben zu prüfen, die ein Samba-Dateiserver bereithält. Üblicherweise reicht unter Linux die Installation des gleichnamigen Pakets. Dabei werden im Verzeichnis "/usr/lib/samba/vfs" verschiedene Module erstellt, die Samba über ein virtuelles Dateisystem die Zusammenarbeit mit dem Antivirenprogramm erlauben.

Um sowohl Samba wie auch Clamav zur Zusammenarbeit mit Samba-vscan zu bewegen, wird zuerst die Beispielkonfigurationsdatei "vscan-clamav.conf" aus dem Vorlagenverzeichnis "/usr/share/doc/packages/samba-vscan" nach "/etc/samba" kopiert. Die Anweisung "infected file action =" legt fest, wie das Modul mit als Schadprogramm erkannten Dateien verfährt. Zur Auswahl stehen folgende Parameter:

  • "delete" löscht die Dateien direkt. Da bei Antivirenprogrammen aber öfter auch sogenannte "false positives" (irrtümlich als Schadcode erkannte Programme) vorkommen, ist diese Einstellung riskant.
  • "quarantine" verschiebt die Dateien in ein eigenes Verzeichnis, welches über die Anweisung "quarantine directory = verzeichnis" festgelegt wird. Die Zeile "quarantine-prefix = präfix" gibt an, mit welchem Präfix (z. B. "virus") Samba-vscan die potentiellen Schaddateien versieht. Um die Benutzer von Windows-Clients davon in Kenntnis zu setzen, dass ihre Datei Schadcode enthält, wird die Option "send warning message = yes" gesetzt.
  • "nothing" macht gar nichts.

Clamav arbeitet nur im lokalen Socket-Modus mit Samba-vscan zusammen. Der Parameter "clamd socket name = verzeichnis" gibt an, wo Samba-vscan den Socket findet (z. B. "/var/run/clamscan/clamd"). Zur Gewährleistung eines reibungslosen Betriebs muss der Wert dieses Parameters identisch mit jenem von "LocalSocket" in der clamd-Konfigurationsdatei "/etc/clamd.conf" sein.

Schliesslich muss in der Samba-Konfigurationsdatei "/etc/samba/smb.conf" festgelegt werden, welche Freigaben das Antivirenprogramm prüfen soll. Dazu wird der Abschnitt jeder zu sichernden Freigabe mit folgendem Eintrag ergänzt. Um sämtliche von Samba verwalteten Netzwerkfreigaben abzusichern, wird dieser Eintrag in den Abschnitt "[global]" der Datei "smb.conf" eingetragen.

vfs objects = vscan-clamav:configfile=/etc/samba/vscan-clamav.conf

Nach einem Neustart von Samba und clamd schützt das Modul Samba-vscan die Samba-Freigaben vor Schadprogrammen. Zum testen der korrekten Funktionsweise wird die Netzwerkfreigabe geöffnet und versucht, die Eicar-Testdatei darin zu speichern, welche von praktisch allen Antivirenprogrammen als Schadprogramm erkannt wird, jedoch ausser einer Signatur keinerlei Schadcode enthält. Je nach eingestellter Aktion sollte die Testdatei verschwinden und auf dem Windows-Client eine Warnmeldung erscheinen ("eicar com IS INFECTED WITH VIRUS Eicar-Test-Signature. Access will be denied.").

Da Samba-vscan jede Datei beim Zugriff (on access) prüft, kommt es jeweils zu mehr oder weniger erheblichen Verzögerungen, besonders wenn viele Dateien gleichzeitig kopiert oder verschoben werden. Aus diesem Grund sollten ausschliesslich Freigaben abgesichert werden, auf denen ein Schutz vor Schadprogrammen sinnvoll erscheint.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif Sourcefire eng Clamavwbm Offizielle Homepage, auch in Deutsch
country DE.gif Ubuntu Users ger Clamavwbm
country DE.gif Wikipedia ger Clamavwbm Enzyklopädischer Artikel