Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
opensmtpd_-_dovecot_um_spamfilter_erweitern [2014/02/10 11:02] rakor [Installation] |
opensmtpd_-_dovecot_um_spamfilter_erweitern [2017/10/02 13:40] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ===== 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. | ||
- | |||
- | <code> | ||
- | ******************************************************* | ||
- | * You must install rules before starting spamd! * | ||
- | ******************************************************* | ||
- | Do you wish to run sa-update to fetch new rules [N]? y | ||
- | </code> | ||
- | Dies wird mit **y** bestätigt. | ||
- | |||
- | Um spampd automatisch beim Systemstart zu starten wird ///etc/rc.conf// um folgende Zeile erweitert: | ||
- | <code> | ||
- | spampd_enable="YES" | ||
- | </code> | ||
- | |||
- | Anschließend wird **spampd** gestaret: | ||
- | <code> | ||
- | # /usr/local/etc/rc.d/spampd start | ||
- | </code> | ||
- | |||
- | 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: | ||
- | <file bash smtpd.conf> | ||
- | # 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 <aliases> 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 <domains> 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 <domains> virtual <vusers> deliver to lmtp "/var/run/dovecot/lmtp" | ||
- | |||
- | # Lokale Benutzer duerfen relay nutzen | ||
- | accept for any relay | ||
- | </file> | ||
- | |||
- | ===== 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: | ||
- | <code> | ||
- | 20 6 * * * root /usr/local/bin/sa-update && service spampd restart | ||
- | </code> | ||