ClamAV mit Postfix verheiraten

Man kann sich die Frage stellen, warum ein GNU/Linux System einen Virenscanner braucht. Auch wenn es auf den ersten Blick unnötig erscheint, so macht es dennoch Sinn. Denn oft reicht ein GNU/Linux System Daten an andere Systeme weiter ( z.B. Mail, Samba, ... ), die auf Schadsoftware anfällig sind ( z.B. Windows ). Diese könnte man doch vor sowas schützen, indem man schädliche Programme vorher abfängt.

Ich hatte mich mit einem Debian Squeeze System an diese Anleitung gehalten, jedoch klappte es nicht direkt und mir war auch unklar, warum der Author diverse Ports vertauscht.

Daher schreib ich hier kurz meine Schritte nieder. Ich gehe davon aus, dass es bereits einen funktionierenden Postfix gibt, der ganz normal Mails verschicken und empfangen kann.

Installation

apt-get install clamav clamav-freshclam clamsmtp

Config

  • /etc/postfix/main.cf

Folgende Zeilen einfach am Ende der Datei eintragen:

content_filter = scan:127.0.0.1:10026
receive_override_options = no_address_mappings

  • /etc/postfix/master.cf

Hier hab ich folgende Einträge ebenfalls ganz unten angefügt:

# AV scan filter (used by content_filter)
scan unix - - n - 16 smtp
 -o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10025 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

Man beachte jeweils das Leerzeichen vor -o. Wird das vergessen, funktioniert es nicht und man erhält z.B. folgenden Fehler im Log:

bad transport type: smtp_send_xforward_command=yes

Den Hinweis zum Leerzeichen fand ich in diesem Forum.

So, nun kann man den Postfix restarten und wenn man alles richtig gemacht hat, erscheint auch keine Fehlermeldung im Log.

/etc/init.d/postfix restart

Testing

Zu guter letzt sollte man natürlich prüfen, ob der Virenscanner auch wirklich anschlägt. Dafür gibt es spezielle Testdateien von Eicar. Die schickt man sich einfach selbst und beobachtet dabei das Logfile. Man sollte natürlich vorher drauf achten, dass dieses Testfile nicht schon voher abgefangen wird. Ich hab z.B. versucht von GMX mir das Eicar Testfile zu schicken, was dann auch gleich fehl schlug, da GMX ebenfalls auf Viren überprüft.

Wenn ClamAV ordentlich funktioniert, sollte man z.B. Einträge dieser Art im Log sehen:

250 Virus Detected; Discarded Email
 
status=VIRUS:Eicar-Test-Signature

Saubere Mails erkennt man im Log, die mit Status Clean gekennzeichnet sind

status=CLEAN

Updaten

Vergessen darf man natürlich nicht, sich immer die aktuellen Virensignaturen zu holen:

  • /etc/crontab

00 1    * * *   root    /usr/bin/freshclam --quiet