ClamAV

Schutzhülle

Um Windows-Clients vor dem bösen Internet zu beschützen, gibt es einige Lösungen. Dieser Artikel stellt die besten Linux-Programme dafür vor.

Dass Administratoren einen Squid-Proxy so konfigurieren können, dass er mit ClamAV und Dansguardian nach Viren scannt, hat das ADMIN-Magazin schon ausführlich beschrieben [1]. Tatsächlich funktioniert das aber beispielsweise auch mit dem Samba-Fileserver. Man sollte dabei nur nicht vergessen, dass das Scannen von Webtraffic und eingehender E-Mail nicht für vollständige Sicherheit sorgt. Dafür ist es weiterhin unerlässlich, auf den Windows-Clients lokale Virenscanner laufen zu lassen.

ClamAV zu installieren, ist kein großes Problem, denn es gibt für die meisten Linux-Distributionen fertige Pakete in den systemeigenen Repositories. Ausnahmen sind Red Hat Enterprise Linux 5 und CentOS 5. Administratoren dieser beiden Linux-Varianten verwenden am besten die Dag-Repositories [2]. Auf anderen wie Debian und Fedora ist ClamAV in eine ganze Reihe von Paketen aufgeteilt. So unter Fedora 12 in »clamav« , »clamav-data« , »clamav-data-empty« , »clamav-devel« , »clamav-filesystem« , »clamav-lib« , »clamav-milter« , »clamav-milter-sysvinit« , »clamav-milter-upstart« , »clamav-scanner« , »clamav-scanner-sysvinit« , »clamav-scanner-upstart« , »clamav-server« , »clamav-server-sysvinit« , »clamav-update« und »exim-clamav« .

ClamAV kann lokal wie ein gewöhnlicher Virenfilter laufen, aber es gibt auch einen Server-Mode, in dem es seine Dienste allen Rechnern im lokalen Netz zur Verfügung stellt. Damit können Sie recht einfach eine rechenstarke Maschine für diese Zwecke abstellen, damit der eigentliche E-Mail-Server nicht die ganze Zeit mit Virenscannen beschäftigt ist. Auf diese Weise ist es auch einfach, Programme oder Dienste mit Antiviren-Funktionalität auszustatten, ohne auf spezielle Libraries und so weiter zurückzugreifen. Installieren Sie einfach unter Fedora das Paket »clamav-scanner-sysvinit« beziehungsweise auf Debian »clamav-daemon« , und der ClamAV-Service startet immer automatisch. Für den Netzwerkzugriff editieren Sie »clamd.conf« und kommentieren die entsprechenden Zeilen aus:

TCPSocket 3310
TCPAddr 127.0.0.1

Wenn Sie nur auf Sache acht geben müssen, dann ist es, die Antivirus-Signatur-Datenbank aktuell zu halten. Bei Fedora übernimmt dies das Paket »clamav-update« , auf Debian ist es »clamav-freshclam« . Die Pakete enthalten ein Binary namens »freshclam« , das die Updates herunterlädt und sie in die bestehende Signaturen-Datenbank integriert. Zum Konfigurieren editieren Sie »freshclam.conf« . Sie müssen mindestens den »Example« -Abschnitt zu Beginn der Datei auskommentieren und den Eintrag »DatabaseMirror« auf einen ClamAV-Mirror zeigen lassen:

# Uncomment the following line and replace ↩
XY with your country
# code. See http://www.iana.org/cctld/cctld↩
-whois.htm for the full list.
DatabaseMirror db.ca.clamav.net

Schließlich können Sie einen Freshclam-Eintrag in die systemweiten Crontab-Dateien einfügen, damit es regelmäßig ausgeführt wird und Sie über das Ergebnis benachrichtigt:

0 * * * * /usr/bin/freshclam | mail -s ↩
"freshclam update info" admin@example.org

Alternativ verwenden Sie für letzteres das Kommando »OpUpdateExecute« in »freshclam.conf« .

Noch eine Warnung: Nach der Installation und dem ersten Start arbeitet der Clamd-Server vermutlich mit einer veralteten Datenbank. Um sicherzustellen, dass Clamd mit den neuesten Virensignaturen arbeitet, konfigurieren Sie Freshclam so, dass es ein Reload-Kommando verschickt. Dazu ändern Sie den »NotifyClamd« -Parameter und »freshclam.conf« so, dass er auf das passende Config-File für Clamd zeigt, zum Beispiel bei Fedora:

NotifyClamd /etc/clamd.d/scan.conf

Einbau in Sendmail

Vor einigen Jahren mussten man für Filterfunktionen in Sendmail sich noch mit »sendmail.mc« herumschlagen, dieser unlesbaren Ausgeburt von einer Konfigurationsdatei. Glücklicherweise ist das Geschichte seit Sendmail die Milter-Schnittstelle implementiert hat, über die sich die meisten Aktionen wie Ablehnen von Verbindungen, Mails oder Empfängern, Hinzufügen und Löschen von Headern, Umschreiben des Mailbody und so weiter realisieren lassen. Auch die Sendmail-Alternative Postfix hat eine Milter-Schnittstelle, sodass sich jedes Milter-fähige Programm mit beiden Mailserver verwenden lässt.

Die Kommunikation mit ClamAV kann dabei entweder über einen Unix-Socket oder TCP laufen. Die TCP-Anbindung ist sehr einfach, wenn Clamd auf dem Standard-Port 3310 läuft. In Sendmail müssen Sie dann nur noch die folgende Zeile in »sendmail.mc« hinzufügen:

INPUT_MAIL_FILTER(`clamav', `S=inet:3310@↩
127.0.0.1, F=, T=S:4m;R:4m')dnl

Nach einem Rebuild von »sendmail.mc« und einen Neustart von Sendmail steht die Funktion dann zur Verfügung. Mit Postfix ist es etwas komplizierter, die Website [3] gibt keine kurze Anleitung. Wer ClamAV nicht in den Mailclient integrieren möchte, kann ClamSMTP [4] auch als Proxy zum Mail-Filtern verwenden.

ClamAV und Squid

Eine der populärsten Techniken, ein Bot-Netz aufzubauen, ist die so genannte Drive-By-Attacke. Der Angreifer platziert dabei infizierte Inhalte auf einer Website oder einem Ad-Server und infiziert so eine Vielzahl von (Windows-)Clients. Mit Squid als Webproxy können sie dem vorbeigen. Squid 3.0 hat Support für ICAP (Internet Content Adapation Protocol) [5], was in etwa so funktioniert wie Milter für Sendmail, also erlaubt die Filter-Verarbeitung auf einen anderen Server auszulagern. Um ICAP bei Squid zu aktivieren, verwenden sie beim Kompilieren die passende Option:

./configure --enable-icap-client

Das ist allerdings erst die halbe Miete, denn Sie brauchen noch einen ICAP-Server für ClamAV. Zurzeit gibt es nur C-ICAP, der auf Linux und BSD-Systemen läuft. Die Website zu C-ICAP verrät die Details, um es mit Squid zu verwenden [6]. Wer eine kommerzielle Antiviren-Lösung sucht, sollte im Hinterkopf behalten, dass eine ICAP-Anbindung für den beschriebenen Zweck recht praktisch ist.

Ähnliche Artikel

comments powered by Disqus
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Ausgabe  04/2014