Eine Möglichkeit sämtliche E-Mails auf Viren mittels ClamAV und Postfix zu überprüfen ist der Einsatz von ClamSMTP.
Dabei werden im Default Modus sämtliche eingehenden und ausgehenden E-Mails auf Viren überprüft und bei einem Positiven Ergebnis entweder gelöscht oder in eine Quarantäne Verzeichnis verschoben.
Die Installation von ClamSMTP unter Debian und Postfix läuft wie folgt ab:
apt-get install clamsmtp
Nun müssen noch verschiedenen Konfigurationsdateien editiert werden.
Nachfolgende Zeilen am Anfang der Datei /etc/postfix/master.cf hinzufügen.
# ClamSMTP
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
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
Dies bewirkt dass der Postfix Mailserver angewiesen wird auf Localhost und Port 10025 E-Mails ohne Restriktionen anzunehmen, was später von ClamSMTP benutzt wird.
Anpassen der Postfix Konfiguration ( /etc/postfix/main.cf )
# ClamSMTP
content_filter = scan:127.0.0.1:10025
receive_override_options = no_address_mappings
Anpassen der ClamSMTP Konfigurationsdatei ( /etc/clamsmtp.conf )
OutAddress: 127.0.0.1:10026
MaxConnections: 64
TimeOut: 180
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd.ctl
Header:
TempDirectory: /var/spool/clamsmtp
PidFile: /var/run/clamsmtp/clamsmtpd.pid
Quarantine: on
User: clamsmtp
Danach reicht ein Restart der Dienste um die Änderungen zu aktivieren.
/etc/init.d/postfix restart
/etc/init.d/clamsmtp restart
Wer aufgrund von Reverse DNS Einstellungen o.Ä. die Postfix Direktive smtp_bind_address zum Versenden von E-Mails über eine feste IP vorgibt, der muss sowohl die "Listen:" Direktive von ClamSMTP als auch die "content_filter" Adresse in der main.cf anpassen, oder sich eine andere Lösung suchen.
Es sei angemerkt das durch binden von ClamSMTP an eine externe IP eine immense Spam und Sicherheitslücke entsteht, die auf jeden Fall per iptables behandelt werden sollte.
Wer wünscht dass seine User eine Benachrichtigung über eine in die Quarantäne verschobenen Virus E-Mails erhält muss sich der ClamSMTP "VirusAction:" Direktive bedienen.
Dies kann u.A. wiefolgt aussehen:
Hinzufügen der Zeile in ( /etc/clamsmtp.conf )
VirusAction: /usr/local/bin/virusaction.sh
Anlegen der Datei ( /usr/local/bin/virusaction.sh ) mit chmod 755
#!/bin/sh
FROM='Absender <absender@domain.tld>'
TO=$RECIPIENTS
MAILER='/usr/sbin/sendmail -i -t -f absender@domain.tld'
$MAILER <<EOM
From: $FROM
To: $TO
Subject: Information vom Antivirus
Details:
Virenname: $VIRUS
Absender: $SENDER
Empfänger: $RECIPIENTS
EOM
exit 0
Hallo,
Das Ergebnis sieht bei mir seltsamerweise so aus?
Weis jemand wieso die Message-ID da rein geschriebn wird, mitten in den Input?
Return-Path:
X-Original-To: postmaster@redweb.at
Delivered-To: postmaster@redweb.at
Received: by redweb.at (Postfix, from userid 111)
id 982BA245DF3; Wed, 30 Sep 2009 14:33:27 +0200 (CEST)
From: ClamAV Notifications
To: postmaster@redweb.at
Subject: Information vom Antivirus
Details:
Virenname: Eicar-Test-Signature
Absender: philip@redweb.at
Message-Id:
Date: Wed, 30 Sep 2009 14:33:27 +0200 (CEST)
Empfänger: philip.weber@redweb.at