BSD-Wiki

Mitschrift einer FreeBSD-Installation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


opensmtpd_-_dovecot_um_spamfilter_erweitern

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:

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

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
opensmtpd_-_dovecot_um_spamfilter_erweitern.txt · Zuletzt geändert: 2017/10/02 13:40 (Externe Bearbeitung)

Impressum