[[Vorlage(Archiviert)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Benutzer_und_Gruppen: Gruppenzuordnung ändern] }}} [[Inhaltsverzeichnis(2)]] Diese Anleitung erweitert den [:Postfix:]-Mailserver um Virenscanner und Spamfilter sowie automatische Mailfilter. Sie basiert auf der englischsprachigen Anleitung [ubuntu_doc:community/PostfixAmavisNewClamAVSpamAssassin:PostfixAmavisNewClamAVSpamAssassin]. Natürlich lässt sich auch ein auf [wikipedia:Sendmail:] basierender Mailserver mittels ''Sendmail-Dual'' und ''Amavis'' erweitern. Im Kapitel [#Links 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: {{{#!vorlage Paketinstallation amavisd-new, Skript zur Interaktion eines [wikipedia:Mail_Transfer_Agent: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 }}} = Konfiguration = Die erfolgreiche Konfiguration und Inbetriebnahme von [:Postfix:] sowie anderer [:Mailserver_Einführung: 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: {{{#!vorlage Befehl sudo adduser clamav amavis sudo service clamav-daemon restart }}} {{{#!vorlage 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 {{{#!vorlage Befehl sudo freshclam \}}} ausführen. Damit wird die Clamav-Signatur heruntergeladen, und man kann anschließend den Clamav-Daemon mit dem Befehl {{{#!vorlage 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): {{{#!vorlage Befehl 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 … }}} {{{#!vorlage Warnung Amavis-Konfigurationsdateien sind technisch betrachtet [wikipedia:Perl_(Programmiersprache):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]: {{{#!vorlage Befehl 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]: {{{#!vorlage Befehl 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 [http://www.ijs.si/software/amavisd/README.sendmail-dual Sendmail-Dual] {en} -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: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 {{{#!vorlage Befehl 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. = Links = * [ubuntu_doc:community/PostfixAmavisNewClamAVSpamAssassin: eng. Anleitung] * [http://wiki.apache.org/spamassassin/FrontPage Wiki zu Spamassassin] {en} * [http://spamassassin.apache.org/gtube/ Spamtest] {en} * [http://www.clamav.net/support/faq Clamav FAQ] {en} # tag: Netzwerk, Server, Sicherheit, Email, Spam, Antivirus