Milter-Greylist

Allgemein

Das sogenannte Greylisting ist eine zweischneidige Sache. Auf der einen Seite erschlaegt es einen grossen Prozentsatz an SPAM, auf der anderen Seite bereitet Greylisting bei grossen Domains allerhand Probleme auf die wir spaeter eingehen. Fuer eine kleine Seite wie die pilgerer.org ist Greylisting auf alle Faelle ein Segen. Beim Greylisting wird der erste connect eines MTAs der eine Email absetzen moechte mit einem 421 Resource temporary not available abgelehnt. Die Email bleibt also auf dem sendenden MTA in der mailqueue liegen und wird beim 2. Zustellversuch der mindestens X Minuten (kann konfiguriert werden, siehe unten) spaeter sein muss angenommen. SPAMBots haben typischerweise keine mailqueue sondern verschicken Emails im Batchmode an eine Liste an Empfaengern. Daher wird der 2. Zustellversuch in der Regel nicht stattfinden.

Installation unter FreeBSD

cd /usr/ports/mail/milter-greylist
make 
make install 
cp /usr/local/etc/mail/greylist.conf.sample /usr/local/etc/mail/greylist.conf

Anschliessend die folgende Zeile in die rc.conf hinzufuegen:

miltergreylist_enable="YES"

Erstkonfiguration

vi /usr/local/etc/mail/greylist.conf

greylist.conf.sample

Hier sind eventuell folgende Optionen von vorlaeufigem Interesse:

Wartezeit bis zum 2. Zustellversuch. Diese ist im default eine Stunde was den meisten Usern wohl nicht unbedingt gefallen wuerde.

# How long a client has to wait before we accept
# the messages it retries to send. Here, 1 hour.
# May be overridden by the "-w greylist_delay" command line argument.
greylist 1h
#greylist 5m # pilgerer.org

Das eigene Netz sollte aus dem Greylisting befreit werden

 You will want to avoid greylisting your own clients
# as well, by filtering out your IP address blocks.
# Here is an example if you use 192.0.2.0/16.
acl whitelist addr your_network_ip/24

Die Zeitspanne die ein Whitelisting Eintrag Gueltigkeit hat ist eventuell ebenfalls etwas niedrig.

# How long does auto-whitelisting last (set it to 0
# to disable auto-whitelisting). Here, 3 days.
# May be overridden by the "-a autowhite_delay" command line argument.
autowhite 3d
# autowhite 10d # pilgerer.org

Milter Interaktion mit sendmail

Folgende Zeilen an die .mc Datei anhaengen, und sendmail neu bauen.

MAILER(smtp)
INPUT_MAIL_FILTER(`greylist', `S=local:/var/milter-greylist/milter-greylist.sock')
define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')
define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')
define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')
define(`confMILTER_MACROS_ENVRCPT', `{greylist}')

unter BSD reicht

cd /etc/mail
make 
make restart

Peering

Peering einrichten

Hat man mehrere MTAs, macht es Sinn, dass auch alle MTAs die gleichen Greylist Eintraege besitzen. Dazu gibt es das Feature peering:

# If you work with multiple MXs, list them with
# peer entries to enable greylist sync among the MXs.
peer ip-host1
peer ip-host2

Logfile

Im Logfile sieht man nach einem Neustart der Milter nun Zeilen wie die folgende:

Nov 14 14:55:26 oberon milter-greylist: (mxsync): addr 194.97.153.79 from <no-reply@lokalisten.de> rcpt <le-friseur@le-friseur.de>: autowhitelisted for more 72:00:00

Die Zeile mxsync gibt an das die Rule via Sync gelernt wurde.

Syncaddress

Das naechste Beispiel zeigt die Moeglichkeit eine IP Adresse und einen Port anzugeben als SRC fuer den mxsync. Dies kann unter umstaenden bei Dualhomed Hosts oder speziellen Firewall Settings von interesse sein. (oder ipsec)

#syncaddr 192.0.2.2 port 5252

Defaults

Der default Port ist im uebrigen 5252

Ungewollte Seiteneffekte

Allgemein

Grosse Setups

{{{# Uncomment if you want auto-whitelist to work for # the IP rather than for the (IP, sender, receiver) # tuple. #lazyaw }}} verwendem oder/und noch besser eine Vorlaufzeit fuer das Greylisting verwenden und IPs von authorisierten Sendern Whitelisten.

Mehr Info

README-milter-greylist


AntiSpam/MilterGreylist (last edited 2008-07-14 09:55:46 by localhost)