Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Installation

Bei Ubuntu und Debian ist die Erweiterung von Postfix um Postgrey kein großes Ding. Die leichtgewichtige Software installiert man mit:

# apt-get install postgrey

Die Integration von Postgrey in Postfix besteht dann nur noch darin, die Zeile »smtp_recipient_restrictions« in der Datei »/etc/postfix/main.cf« zu finden und am Ende ein Kommando an die Liste anzuhängen ( Listing 1 ). Die Settings können sich natürlich etwas unterscheiden, wichtig ist die letzte Zeile. Sie besagt, dass Postfix mit einer Software, die auf Port 60 000 hört, eine Überprüfung starten soll, bevor es die SMTP-Transaktion abschließt. Die Portnummer ist im Bedarfsfall änderbar, aber weil es sich um »localhost« handelt, muss man auf keine Firewall Rücksicht nehmen.

Listing 1

Integration von Postgrey in Postfix

 

Danach wird Postfix neu gestartet. In diesem Fall wäre auch ein einfacher Reload genug, aber der Restart stellt sicher, das Postfix seine gesamte »main.cf« neu einliest.

# /etc/init.d/postfix restart

Postgrey kann nun während des E-Mail-Dialogs mit anderen Servern zu Postfix sprechen.

Postgrey aufsetzen

Für ein voll funktionsfähiges Setup braucht man nur drei Konfigurationsfiles zu beachten. Das erste, seltener benutzte, ist »/etc/postgrey/whitelist_recipients« . Es erlaubt einigen Empfängern, den gesamten Mechanismus zu umgehen. Das ist etwa für einige öffentliche Adressen interessant, die immer Post empfangen sollen wie »postermaster« oder »abuse« .

Das zweite File, das häufiger gebraucht wird, ist »/etc/postgrey/whitelist_clients« . Es regelt das Whitelisting für alle eingehenden Mails. Man kann damit individuelle Adressen und Domains oder IP-Adressen oder durch reguläre Ausdrücke beschriebene Sender filtern. Man kann damit sogar Präfixe von Absenderadressen auf die Whitelist setzen wie »chrisbinnie@« – wenn der Absender mehrere Mail-Adressen mit demselben Präfix, aber unterschiedlichen Domain-Endungen hat. Das File könnte im Ergebnis so aussehen:

Domain names:
debian.org
gmail,org
Regular Expressions (all outbound GMail Boxes):
/^.*-out-.*\.google\.com$/
CIDR IP Adresses:
112.113.0.0/24
112.113.0.10

Das letzte Konfigurationsfile ist »/etc/default/postgrey« . Es enthält einige einstellbare Parameter. Das »POSTGREY_OPTS« -Kommando

POSTREY_OPTS = "--inet=60000--delax=199--auto-Whitelist_clients=5--greylist-text"

stellt unter anderem den benutzten Port ein. Bei dem darauffolgenden Parameter sollte man einige Einstellungen ausprobieren, um passende Werte zu finden. Der Delay-Schwellwert bezeichnet die Zeit, die ein wiederkehrender Mailserver verstreichen lassen muss, um sich erneut verbinden zu dürfen. In diesem Fall wird jeder entfernte Delivery Agent, der sich vor Ablauf von 199 Sekunden erneut zu konnektieren versucht, angewiesen, es später wieder zu versuchen. Wenn er es in der Vergangenheit bereits zu oft versucht hat, wird er ganz ausgesperrt. Der Default sind fünf Minuten, aber man kann die Wartezeit für Ersteinlieferer problemlos auf 199 Sekunden kürzen.

Der Eintrag »--auto-whitelist-clients« ist etwas komplizierter, man kann ihn aber auch gänzlich weglassen. Wird er wirksam, landet ein entfernter Agent, der eine Reihe von Mails erfolgreich eingeliefert hat, nach einer bestimmten Wartezeit automatisch auf einer Whitelist. Das kann ungünstigenfalls den gesamten Spamschutz untergraben; man muss den Parameter also mit Bedacht verwenden. Die Art des Spam und auch der Anteil interner Mails entscheiden darüber, ob man diesen Parameter einsetzen kann oder besser nicht.

Ein letzter Parameter, den man einstellen sollte, ist:

POSTGREY_TEXT="Sorry, your mail server has been greylistetd for fiveminutes. Please come back later."

Das ist die Message, die dem entfernten Delivery Agent übermittelt wird, während die Annahme der Mail verzögert wird. Nachdem die Konfiguration angepasst ist, muss der Daemon neu gestartet werden, damit die Änderungen wirksam werden.

# /etc/init.d/postgrey restart

Um zu überprüfen, ob Postgrey läuft, kann man »lsof« verwenden, das anzeigt, ob jemand an Port 60 000 lauscht ( Listing 2 ). Bei Bedarf installiert man »lsof« mit »apt-get install lsof« . Das wars. Zeigt »lsof« einen Eintrag für den TCP-Port 60 000, ist alles in Ordnung.

Listing 2

List Open Files

 

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023