Direkt zum Inhalt
06.01.2012 - Fachbeitrag

Howto: Sophos-Virenkiller mit Amavis 2.7 und dem SSSP-Protokoll

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.

Dämonisierte Engines müssen sein

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:

  • ClamAV
  • Sophos
  • Avira
  • Kaspersky

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.

Das SSSP-Protokoll ermöglicht den direkten Zugriff auf die Engine

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.

Das Howto zu Installation

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:

  • Viren-Engine: linux.intel.libc6.tar.z (32 Bit), linux.amd64.glibc.2.3.tar.z (64 Bit)
  • savdid: savdi-20-linux.tgz (32 Bit), savdi-20-linux-64bit.tgz (64 Bit)

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

s-Icon
Sonntag 09.11. | USmith Blog
11. November 2014 um 23:06

[…] 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 […]