ubuntuusers.de

Amavis-Spam-Virenfilter

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Diese Anleitung erweitert den Postfix-Mailserver um Virenscanner und Spamfilter sowie automatische Mailfilter. Sie basiert auf der englischsprachigen Anleitung PostfixAmavisNewClamAVSpamAssassin.

Natürlich lässt sich auch ein auf Sendmail basierender Mailserver mittels Sendmail-Dual und Amavis erweitern. Im Kapitel Links befindet sich ein Verweis auf eine Anleitung zur Konfiguration von Sendmail Dual, das als Basis für die weitere Konfiguration des Amavis-Spam-Virenfilter mittels dieser Anleitung herangezogen werden kann.

Installation

Über die bereits mit Postfix installierten Pakete hinaus müssen folgende Pakete noch installiert [1] werden:

  • amavisd-new (Skript zur Interaktion eines MTA (Mail Transfer Agent) mit Virenscanner und Spamfilter )

  • clamav-daemon (security, Virenscanner )

  • spamassassin (universe , Spamfilter )

  • razor (universe, Zugriff auf eine Online-Spamdatenbank )

  • pyzor (universe, Zugriff auf eine weitere Online-Spamdatenbank )

Befehl zum Installieren der Pakete:

sudo apt-get install amavisd-new clamav-daemon spamassassin razor pyzor 

Oder mit apturl installieren, Link: apt://amavisd-new,clamav-daemon,spamassassin,razor,pyzor

Konfiguration

Die erfolgreiche Konfiguration und Inbetriebnahme von Postfix sowie anderer Mailserver-Komponenten wird an dieser Stelle vorausgesetzt.

Clamav-Daemon

Clamav erfordert normalerweise keine Anpassungen. Der Daemon ist gestartet, und Virensignaturen werden täglich aktualisiert. Damit Amavis und Clamav-Daemon zusammenarbeiten, muss der Benutzer clamav der Gruppe amavis über die Verwaltung der Benutzer und Gruppen [5] zugeordnet werden. Dies erfolgt über die Befehle:

sudo adduser clamav amavis
sudo service clamav-daemon restart 

Hinweis:

Beim Re-Start von Clamav wird folgender Fehler angezeigt:

 * Stopping ClamAV daemon clamd                       [ OK ]
 * Clamav signatures not found in /var/lib/clamav
 * Please retrieve them using freshclam
 * Then run '/etc/init.d/clamav-daemon start'

Um das Problem zu beheben, muss man

sudo freshclam 

ausführen. Damit wird die Clamav-Signatur heruntergeladen, und man kann anschließend den Clamav-Daemon mit dem Befehl

sudo service clamav-daemon start 

starten.

Amavis

Zur Aktivierung des Spamfilters und Virenscanners müssen in der Datei /etc/amavis/conf.d/15-content_filter_mode mit Root-Rechten insgesamt vier Kommentarzeichen vor den bypass-Direktiven entfernt werden [4]:

@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);


@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Wer nur auf Spam oder Viren prüfen will, lässt die Kommentarzeichen vor dem Block, den er nicht benötigt, stehen.

Danach muss Amavis selbstverständlich neu gestartet werden (wie jedes Mal, nachdem man etwas an der Konfiguration geändert hat):

sudo service amavis restart 

U.U. meckert Amavis jetzt, dass es den vollen Domainnamen des Rechner nicht herausfinden kann. Dann muss man den noch in der Datei /etc/hosts eintragen:

127.0.0.1 localhost
127.0.0.1 jaunty-test.otze jaunty-test
…

Achtung!

Amavis-Konfigurationsdateien sind technisch betrachtet Perl-Skripte, die von Amavis aufgerufen werden. Daher muss man sich an die Perl-Syntax halten. U.a. bedeutet das, dass Variablen mit einem Dollarzeichen beginnen, Zeichenketten in Anführungszeichen gesetzt und jede Anweisung mit einem Semikolon abgeschlossen werden muss.

spamassassin

Amavis greift direkt auf die spamassassin-Bibliotheken zu und benötigt keinen laufenden spamd Demon. Von daher ist keine weitere Konfiguration von spamassassin notwendig.

Damit amavis razor und pyzor verwenden kann, ist Folgendes notwendig[3]:

su - amavis -s /bin/bash
razor-admin -create
razor-admin -register
pyzor discover
exit 

Eine Konfiguration von razor oder pyzor ist nicht notwendig.

Postfix

Zur Integration von Amavis in Postfix muss in der Datei /etc/postfix/main.cf folgende Zeile eingefügt werden:

content_filter=smtp-amavis:[127.0.0.1]:10024

Weitere Anpassungen sind in der Datei /etc/postfix/master.cf erforderlich. Am Ende:

smtp-amavis     unix    -       -       -       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
        -o max_use=20

127.0.0.1:10025 inet    n       -       -       -       -       smtpd
        -o content_filter=
        -o local_recipient_maps=
        -o relay_recipient_maps=
        -o smtpd_restriction_classes=
        -o smtpd_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=reject_unauth_pipelining
        -o smtpd_end_of_data_restrictions=
        -o mynetworks=127.0.0.0/8
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Wenn in der der Datei /etc/postfix/main.cf "smtp_tls_security_level = encrypt" benutzt wurde, muss nun noch der folgende Parameter bei beiden Einträgen hinzugefügt werden:

        -o smtp_tls_security_level=none

Unmittelbar hinter der Zeile mit dem Dienst pickup:

         -o content_filter=
         -o receive_override_options=no_header_body_checks

Nun muss Postfix zur Aktivierung des Viren- und Spamfilters neu gestartet werden [3]:

sudo service postfix restart 

Sendmail

Es gibt mehrere Möglichkeiten, Amavis an sendmail anzubinden. Die mit Abstand mächtigste und leistungsfähigste Variante ist die Sendmail-Dual 🇬🇧 -Variante. Leider ist sie nur sehr wenig dokumentiert und wird von großen Distributionen wie Ubuntu auch nur mangelhaft unterstützt. Interessierte finden aber im Kapitel Links einen Verweis auf eine entsprechende Anleitung für Gutsy Gibbon.

Weitere Einstellungen

Spammails mit ***SPAM*** kennzeichnen

In der Standardeinstellung filtert Amavis erkannten Spam einfach weg. Möglicherweise möchte man jedoch seinen Spam lieber selber nochmal auf falsche Treffer überprüfen. Dafür bietet Amavis die Möglichkeit, Spam in der Betreffszeile zu kennzeichnen. So erkennt man auf den ersten Blick, dass es sich bei der Mail nach Einschätzung von Amavis bzw. Spamassassin um Spam handelt, und man kann in seinem E-Mail-Programm sehr einfach einen Filter dafür einstellen, der den Spam automatisch in einen eigenen Ordner sortiert. Außerdem kann man verschiedene Kopfzeilen, die mit X-Spam beginnen, einfügen lassen, wo Amavis Informationen über den Spamwert und die angeschlagenen Tests hinterlegt. Das ist praktisch, wenn man z.B. wissen möchte, weswegen eine bestimmte Mail falsch einsortiert wurde.

Als erstes muss man folgende Zeile in die Datei /etc/amavis/conf.d/50-user eintragen, wobei man seinen Host- und Domainnamen entsprechend einsetzen muss:

@local_domains_acl = ( ".$mydomain","localhost","hostname",".domain" );

Weiterhin muss man in /etc/amavis/conf.d/20-debian_defaults folgende Variablen den eigenen Bedürfnissen anpassen:

  • $sa_tag_level_deflt: Mail, die höher als dieser Wert eingestuft wird, erhält die oben erwähnten X-Spam-Kopfzeilen. Man kann diese Variable statt auf einen Zahlwert auch auf undef setzen, um wirklich jede Mail derartig zu behandeln. Standardmäßig steht dieser Wert auf 2.

  • $sa_tag2_level_deflt: Ab diesem Wert wird die Mail als Spam eingestuft, eine entsprechende Kopfzeile eingefügt und der Betreff mit dem Präfix ***SPAM*** versehen. In der Voreinstellung steht diese Variable auf dem Wert 6.31.

  • $sa_kill_level_deflt: Dieser Wert legt fest, ab wann die Mail so eindeutig als Spam eingestuft wird, dass sie sofort vernichtet wird. In der Grundeinstellung steht dieser Wert ebenfalls auf 6.31, so dass der oben erwähnte Fall mit der Kennzeichnung nie eintrifft.

Folgende Einstellungen haben sich in der Praxis als sinnvoll erwiesen:

$sa_tag_level_deflt  = undef;
$sa_tag2_level_deflt = 5;
$sa_kill_level_deflt = 20;

Zum Übernehmen der Änderungen muss Amavis neu gestartet werden

sudo service amavis restart 

ALL-TRUSTED-Spamtest lässt zu viel Spam durch

Einige der Tests, die Spamassassin durchführt, prüfen nicht darauf, ob es sich bei der Mail um Spam handelt, sondern ob es sich im Gegenteil um vertrauenswürdige Mail handelt. Dementsprechend haben diese Tests einen negativen Wert, den sie vom Spamscore abziehen, und führen – falls sie nicht ordentlich funktionieren – dazu, dass Spam durchs Raster schlüpft. Einer dieser Tests, mit dem es bei nicht-trivialen Netzwerk-Setups (NAT, Fetchmail, E-Mail-Weiterleitungen, etc.) gelegentlich zu Problemen kommt, ist ALL_TRUSTED. Die Lösung besteht darin, dass man Spamassassin mitteilt, welche IP-Adressen zum eigenen Netz gehören, und welchen Servern man sonst noch so vertraut, nicht die Kopfzeilen zu fälschen. Da kann man dann z.B. die IP-Adressen der Mailserver eintragen, bei denen man Postfächer oder Weiterleitungen unterhält.

Dazu muss man in die Datei /etc/spamassassin/local.cf etwas derartiges eintragen:

internal_networks 192.168.0. 10.0.8.
# internal networks plus mx.kundenserver.de
trusted_networks 192.168.4. 10.0.8. 212.227.15.134 212.227.15.150 212.227.15.169 212.227.15.186

Um herauszufinden, welche IP-Adressen man dort eintragen muss, untersucht man einfach die Received-Zeilen der Mails, die falsch eingestuft werden, und sucht die Server des Mail-Anbieters heraus, über die die Mails regelmäßig laufen.

Diese Revision wurde am 26. November 2019 19:10 von Beforge erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Netzwerk, Server, Email, Spam, Antivirus