Mail-Server » Postfix

ID #1232 Postfix: Greylisting mit Postgrey (SuSE 9.x)

Danke

an Michael als Testperson!
Seine unten genannten Verbesserungen sind integriert.

Problem:

Der alltägliche Spam nimmt überhand. Spamfilter wie SpamAssassin können gar nicht mehr die Regeln so schnell nachladen oder Spams lernen um wirklich effektiv zu arbeiten. SPF ist zwar auch eine Möglichkeit, könnte aber erwünschte Emails aussperren.
Eine effektive Lösung bittet dazu Greylisting.

Funktion von Greylisting:

Es block jede Email beim ersten Versuch ab. Erst wenn diese Email ein zweites Mal eingeliefert wird, wird sie auch angenommen. Das funktioniert, weil jeder echte Email-Server mehrmals versucht seine Emails bei dem Empfänger abzuliefern. Schließlich könnte ja mal ein Server ausgefallen oder überlastet sein. Spam-Versender-Programme hingegen liefern einfach nur Daten ein, ohne die Antwort zu registrieren. Es versucht also abgelehnte Emails i.d.R. kein zweites Mal einzuliefern. Und deshalb ist Greylist so effektiv.

Installation:

Für Postgrey unter SuSE gibt es bisher kein fertiges RPM-Paket. Und selbst, wenn es mal eins geben wird, so wird es wohl eher für openSUSE 10 oder höher sein. Daher bringe ich hier eine Anleitung inkl. start-Script für SuSE 9.x und alle anderen Versionen die noch ohne Postgrey-Paket daher kommen.

Postgrey nutzt eine Berkeley-DB zum Speichern seiner Daten und verwaltet sie vollkommen autonom. Die passenden Libraries und Perl-Module sind meistens schon installiert. Sollten später beim Start von postgrey Fehler mit dbm-Zugriffen auftauchen, schaut erstmal im yast nach, ob alle nötigen Pakete vorhanden sind.

Download & Installation

Erstmal überprüfen wir die neueste Version von Postgrey und setzten ggf. den aktuellen Download-Pfad hier ein:

#Download
cd /usr/local/src
wget http://postgrey.schweikert.ch/pub/postgrey-1.31.tar.gz
tar xzf postgrey-1.31.tar.gz
cd postgrey-1.31

#Installation
cp postgrey /usr/local/sbin/.
cp postgrey_whitelist_clients /etc/postfix/.
cp postgrey_whitelist_recipients /etc/postfix/.
#wer einen Report lesen will
cp contrib/postgreyreport /usr/local/bin/.
#nötiges Verzeichnis anlegen
mkdir /var/spool/postfix/postgrey
chown postfix /var/spool/postfix/postgrey
chmod 700 /var/spool/postfix/postgrey

Theoretisch steht einem direkten Aufruf nichts im Wege. Aber da Postgrey als Daemon läuft, sollte es auch ein passendes Startscript erhalten:

#Startscript
cd /usr/local/src
wget http://www.huschi.net/download/rcpostgrey.tgz
tar xzf rcpostgrey.tgz
mv rcpostgrey /usr/local/sbin/.
#verlinken und automatischen Start setzen
ln -s /usr/local/sbin/rcpostgrey /etc/init.d/postgrey
insserv postgrey

#testen
/etc/init.d/postgrey
#Auftretende Fehler sofort untersuchen!
#ggf. CPAN-Module nachinstallieren:
cpan -i Net::Server
cpan -i IO::Multiplex
cpan -i BerkeleyDB

Nun sollte Postgrey als Server-Prozess laufen und an Port 60000 lauschen. Wir überprüfen es mit folgenden 2 Befehlen:

#Software
ps aux|grep postgrey
#Netzwerk
netstat -lpn | grep 60000

Integration in Postfix

Um Postgrey in den MTA von Postfix zu integrieren benötigt es lediglich eine kleine Änderung in der /etc/postfix/main.cf. Die Direktive smtpd_recipient_restrictions muß wie folgt ergänzt werden:

# check_policy_service inet:127.0.0.1:60000

Danach muß Postfix seine Konfiguration neu einlesen (/etc/init.d/postfix reload) und schon ist Postgrey aktiviert.
Die ersten Ergebnisse kann man recht schnell im Maillog vorfinden.

Wie oben schon angedeutet, kann man mit postgreyreport oder auch mit anderen Tools kleine Statistiken ausgeben lassen.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

vom 2007-05-14 09:27, zuletzt 2010-05-27 07:44     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

Rubriken zu diesem Artikel
überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   4.85 von 5 (13 Bewertungen)

Artikel kommentieren

Kommentar von Michael (2007-05-23 18:10:27):
im startup-skript ist die Variable EXE falsch gesetzt, diese sollte auf die executable zeigen die wir vorher dort hinkopiert haben:

EXE=/usr/local/sbin/postgrey

Kommentar von Michael (2007-05-23 18:18:20):
und nochwas :
das Verzeichnis:
/var/spool/postfix/postgrey fehlt - Fehlermeldung kommt auch keine.
Ich habs mit 700 und Besitzer postfix angelegt und sieht gut aus.

Kommentar von Michael (2007-05-23 18:52:06):
Noch so ein Punkt:

der Parameter --inet fehlt im Init-Skript - damit horcht der Deamon nirgends

ich hab --inet=60000 hinzugefügt, so dass es jetzt

startproc $EXE -d --inet=60000 --user=postfix --unix=/var/spool/postfix/private/policy

heißt...

P.S. Ich bereue es bei solchen Installationen, Suse statt Debian genommen zu haben - apt-get ist schon nice

Kommentar von marco (2007-06-11 11:19:53):
Danke Michael, viel Dank.

Ich mag kein SuSE aber meine Chefs würden es nicht mögen wenn ich jeden Server auf Debian umstelle, wenn es neue gibt haben die Etch, aber die alten sind noch suse :(.

Aber mit so einer 1klassigen howto kann man arbeiten!!

Kommentar von kk (2007-07-25 05:24:10):
Hinweis für SLES 10 SP 1 :

Dort muß man nicht zwingend CPAN bemühen, die notwendigen Pakete können über yast nachinstalliert werden :

perl-net-server
perl-berkeleydb

Für IO:Multiplex gibt es leider kein Paklet für SLES 10, man kann aber einfach das von Opensuse 10.2 :

http://download.opensuse.org/distribution/10.2/repo/oss/suse/i586/perl-IO-Multiplex-1.08-14.i586.rpm

Mit Opensuse 10.2 sollte man alles per yast nachinstallieren können, dies habe ich aber noch nicht getestet.

Grüße
KK

Kommentar von Christian (2007-12-01 14:12:41):
Beim Download ist mittlerweile die Versuion 1.31 einzutragen. Ansonsten funktioniert es einwandfrei. Danke!

Kommentar von Oliver (2008-08-07 19:23:34):
inzwischen in Version 1.32 unter http://postgrey.schweikert.ch/pub/postgrey-1.32.tar.gz

Cheers
Oliver

Kommentar von raro (2008-08-14 21:21:16):
Glückwunsch zu dieser einfachen und Installationsanleitung/Dokumentation.

Postgrey lief nach 10 Minuten.

Unserem Suse fehlte lediglich db-devel.

Vielen Dank!

Kommentar von Matthias (2010-04-12 13:20:41):
Super Artikel, hat auf Anhieb funktioniert.
Tausend Dank!!

Kommentar von Stefan (2010-10-31 19:27:18):
Danke. Einfach, schnell und alles läuft. Danke für diese Super-Anleitung.