====== Allgemein ====== Dieser Artikel handelt davon in ein funktionierendes Mailsystem einen Spamfilter einzubauen. Als Spamfilter wird **Spamassassin** verwendet und per **spampd** angebunden. **Wichtig:** Diese Anleitung ist ein Teil von [[Mailserver einrichten]] und setzt voraus, dass bereits ein [[Mailserver auf OpenSMTPd]] und [[Dovecot2]] installiert und konfiguriert wurde! ====== Funktionsweise ====== In der aktuellen Installation reicht OpenSMTPd die Mails an Dovecot-lmtp weiter welcher diese in die Maildirs der Benutzer ablegt. Da OpenSMTPd nicht selbstständig Mails über Spamassassin filtern kann wird nun spampd als smtp-proxy zwischen OpenSMTPd und Dovecot-lmtp geschaltet. Spampd lässt die Mail dann über Spamassassin prüfen und reicht sie zurück an OpenSMTPd, welcher sie dann endgültig zur Zustellung an Dovecot-lmtp weiter. ====== Installation ====== Zunächst wird **mail/spampd** installiert der über dessen Abhängigkeiten automatisch **mail/spamassassin** mit installiert. Während der Installation erscheint von **mail/spamassassin** die Nachfrage ob es neue Regeln zur Mailfilterung herunterladen soll. ******************************************************* * You must install rules before starting spamd! * ******************************************************* Do you wish to run sa-update to fetch new rules [N]? y Dies wird mit **y** bestätigt. Um spampd automatisch beim Systemstart zu starten wird ///etc/rc.conf// um folgende Zeile erweitert: spampd_enable="YES" Anschließend wird **spampd** gestaret: # /usr/local/etc/rc.d/spampd start Spampd lauscht automatisch auf localhost Port 10024 und reicht die Mails nach der Aufarbeitung durch Spamassassin an Port 10025 per SMTP weiter. Um spampd nun in OpenSMTPd einzubetten wird die ///usr/local/etc/mail/smtpd.conf// wie folgt geändert: # Zunächst werden Zertifikat und Schluessel fuer SSL festgelegt pki mail.example.com certificate "/usr/local/etc/mail/certs/mail.example.com.crt" pki mail.example.com key "/usr/local/etc/mail/certs/mail.example.com.key" # Eingehende Mails werden auf Port 25 angenommen und getaggt listen on re0 port 25 tls pki mail.example.com tag erstes_eintreffen # Fuer relay wird auf smtps gelauscht und verlangt Authentifizierung listen on re0 smtps pki mail.example.com auth # Mails die von spampd (Spamassassin) bearbeitet wurden kommen auf Port 10025 wieder an und werden getaggt listen on 127.0.0.1 port 10025 tag nach_spamerkennung # Tabellen werden erstellt table aliases file:/etc/mail/aliases table domains file:/etc/mail/domains table vusers file:/etc/mail/vusers # Alles was lokal ist wird direkt zugestellt accept from local for local alias deliver to lmtp "/var/run/dovecot/lmtp" accept from local for local deliver to lmtp "/var/run/dovecot/lmtp" # Alles was von aussen kommt wird an den spampd auf Port 10024 weitergeleitet accept tagged erstes_eintreffen from any for domain relay via smtp://localhost:10024 hostname localhost source 127.0.0.1 # Alles was aus dem spampd zurueck geliefert wird kann durch dovecot-lmtp zugestellt werden. accept tagged nach_spamerkennung from any for domain virtual deliver to lmtp "/var/run/dovecot/lmtp" # Lokale Benutzer duerfen relay nutzen accept for any relay ====== Spamassassins Datenbank updaten ====== Um Spamassassin die neusten Informationen zur Erkennung von Spam beizubringen muss der Befehl **/usr/local/bin/sa-update** aufgerufen werden. Idealerweise sollte dies regelmäßig (z.B. täglich) durch die **/etc/crontab** geschehen. Um täglich um 6:20 die Spamdatenbank zu erneuern und anschließend spampd neu zu starten (falls es neue Daten gibt) wird die folgende Zeile in die ///etc/crontab// eingetragen: 20 6 * * * root /usr/local/bin/sa-update && service spampd restart