Amavis kann ab Version 2.7 direkt mit dem Sophos-Virenscanner per SSSP-Schnittstelle kommunuzieren und erreicht damit traumhafte Durchsatzraten. Dieses Howto klärt Installation und Konfiguration.
Das A und O eines performanten Anti-Viren-Filters auf einem Mailserver ist die Notwendigkeit, unbedingt einen dämonisierten Virenkiller einzusetzen. Leider bieten viele Hersteller jedoch keine eigenständig als Dämon laufenden Viren-Engines mehr an und möchten stattdessen gleich vollständige Komplettlösungen beim Kunden platzieren. Unserer Ansicht nach kommen für eine enrsthafte Betrachung derzeit lediglich folgende Anbieter/Lösungen in Betracht:
Wobei Kaspersky anscheinend vom BSI eher ungerne für Behörden gesehen wird -- Russland gehört nicht zur NATO und damit ist der Scanner wohl für die Verarbeitung von Dokumenten entsprechender Geheimhaltungsstufen nicht zugelassen.
Sophos bietet dankenswerterweise eine eigene Scan-Engine mit dokumentiertem Protokoll an: Über das SSSP-Protocol kann eine Drittsoftware die Scan-Engine performant und ohne Umwege über Hilfsprogramme ansprechen. Für einen großen öffentlich-rechtlichen Kunden haben wir im Jahr 2009 zusammen mit Amavis-Autor Mark Martinec eine SSSP-Schnittstelle in Amavis gebracht. Seitdem kann Amavis mit der Scan-Engine von Sophos nativ und ohne Umwege über einen Unix-Socket oder einen TCP-Socket reden -- genau wie Amavis das seit langem mit ClamAV bereits kann. Das macht den Einsatz von Sophos unter Amavis außerordentlich interessant -- bei unseren Testaufbauten kamen wir damals auf phänomenale Durchsatzraten von 100 Mails pro Sekunde auf recht normaler Hardware.
Ab Amavis 2.7.x ist die SSSP-Schnittstelle in Amavis enthalten. Bei Sophos übernimmt die SSSP-Kommunikation der Dämon savdid -- der ist nicht frei verfügbar, sondern nur für Systemintegratoren zu bekommen. im Normalen Download-Bereich wird man die notwendige Software (leider!) nicht finden können. Notwendig sind die Pakete:
Heinlein Support kann die Installationspakete dafür zur Verfügung stellen (=> Mail an support@heinlein-support.de). Und da wir aus den überzeugenden technischen Gründen bei vielen Kunden mittlerweile Sophos einsetzen, besorgen wir auf Wunsch die dafür passenden Lizenzen dazu... Zunächst muß die eigentliche Viren-Engine installiert werden: tgz auspacken und Install-Script aufrufen. Anschließend finden sich unter /usr/local/sav die aktuellen Signature-Files und unter /usr/local/lib liegen die Dateien der libsavi. Nun kann das Archiv vom savdid ausgepackt und das dortige Install-Script aufgerufen werden. Wenn das install_savdid.sh mit Verweis auf eine fehlende libsavi abbricht, so liegt das i.d.R. daran, daß unter 64 Bit eine 32-Bit-Version installiert worden ist (oder umgekehrt). Am Ende muß nur noch der savdid-Dämon gestartet werden: Dessen Konfigurationsdatei liegt unter /usr/local/savdid/savdid.conf. Dort kann einerseits eine unprivilegierte User-ID eingerichtet werden...
# User name and group for daemon to switch to for normal running # savdi must be running as root for this to be useful user: vscan group: vscan
...andererseits muß dort noch ein spezielles Kommando freigeschaltet werden, mit dem Amavis Subdirectorys scannen lassen darf. Diese folgende Einstellung muß für den savdid vorgenommen werden:
scanprotocol {
type: SSSP
# Do we allow the client to use SCANFILE?
allowscanfile: SUBDIR
In der Amavis-Konfiguration sollte der Zugriff auf den savdid per TCP- statt per Unix-Socket vorgenommen werden, um Probleme mit Zugriffsrechten oder in chroot-Umgebungen zu vermeiden:
# ### http://www.sophos.com/
['Sophos-SSSP',
\&ask_daemon, ["{}", 'sssp:[127.0.0.1]:4010'],
qr/^DONE OK\b/m, qr/^VIRUS\b/m, qr/^VIRUS\s*(\S*)/m ],
Nach dem Start vermeldet Amavis bei log_level=3 auch den Fund des savdid auf Port 4010:
Jan 6 16:55:31 booster amavis[3629]: Using primary internal av scanner code for Sophos-SSSP
Und eine Test-Mail sollte problemlos versandt und gescannt werden. Leider stellt Sophis hier keinen Client zur Verfügung, um Sigantur-Files zu aktualisieren :-(. Diese müssen regelmäßig von http://www.sophos.com/downloads/ide/ geladen werden und damit der Inhalt von /usr/local/sav ersetzt werden. Ein laufender savdid muß reloaded werden ("kill -HUP" läßt grüßen).
Kommentare
1 Antwort zu Howto: Sophos-Virenkiller mit Amavis 2.7 und dem SSSP-Protokoll
[…] die selbstständig erkennt, ob es sich um ein 64bit-System handelt. Nichts desto trotz war die Anleitung von Peer eine gute Inpsiration. Die Softlinks aus der Sophos-Anleitung brauchte ich auch nicht zu erzeugen. Auf meinem System gab […]