Open Source im professionellen Einsatz

Stresstherapie

Für einige Parameter sieht Postfix bereits in der Standardkonfiguration Stressverhalten vor. Das »smtpd_hard_error_limit« liegt dann bei 1 anstatt entspannten 20, das »smtpd_junk_command_limit« bei strikter 1 anstatt 100 und der »smtpd_timeout« fällt im Stressfall von 300 auf 10 Sekunden (Listing 1).

Ein gestresster Postfix-Server kennt keine Gnade mehr für potenziell fehlerträchtige Clients, er will Störenfriede abschütteln, damit so schnell wie möglich wieder Ruhe einkehrt. Das Ziel ist die Rückkehr in den Normalmodus, in dem nicht mehr alle Smtpd-Prozesse gebunden sind. Postfix prüft alle 1000 Sekunden, ob dieser Zustand erreicht ist.

Listing 1: Postfix
gestresst

01 # postconf -d | grep stress
02 smtpd_hard_error_limit = ${stress?1}${stress:20}
03 smtpd_junk_command_limit = ${stress?1}${stress:100}
04 smtpd_timeout = ${stress?10}${stress:300}s

Erweiterte Resistenz

Die Autoren des Linux-Magazins empfehlen, das Stress-Standardverhalten zusätzlich zu erweitern. Reaktionen auf Clients, die in DNS-Blacklisten geführt werden, sollten unter Stress deutlich schärfer ausfallen, um Postfix von unerwünschten Verbindungen zu entlasten. Statt wie üblich mit dem SMTP-Reply-Code »554 Transaction failed« auf eingehende Verbindungen gelisteter Clients zu reagieren, sollte ein gestresstes Postfix mit »521 <Servername> does not accept mail« antworten [2].

Auf den ersten Blick zeigt sich kein großer Unterschied. Beide Reply-Codes gehören in die 5er Gruppe, also zu den permanenten Fehlern. Im Detail offenbart sich dann der gewinnbringende Unterschied: Antwortet ein SMTP-Server mit »554« muss er warten, bis der Client mit einem »QUIT« die Verbindung abbaut. Sendet der Server »521«, muss er nicht auf den Client warten, sondern baut die Verbindung selbst ab. Die Ressource ist nicht mehr gebunden. Sie steht dem Gesamtsystem sofort wieder für eingehende Verbindungen zur Verfügung.

Die Stressanpassung bedient sich der erweiterten Konfigurationssyntax:

rbl_reply_maps = ${stress?$default_database_type:/etc/postfix/rbl_reply_maps} 

Ist der Server gestresst, setzt er zusätzlich die »rbl_reply_map« aus »/etc/postfix/rbl_reply_maps« ein. Im Normalfall findet sie keine Anwendung.

Die genannte Map modifiziert die Serverantwort wie folgt: Beide Antispam-Sublisten führen Bereiche auf, in denen keine MTAs betrieben werden sollen oder dürfen. Baut ein Client eine SMTP-Verbindung zu Postfix auf, beantwortet der Agent die Anfrage mit »521 4.7.1 Service unavailable;...« und terminiert sie umgehend. Der Smtpd-Prozess wird frei und kann den nächsten Client bedienen (siehe Listing 2).

Listing 2: RBLs gegen
Stress

01 zen.spamhaus.org=127.0.0.10 521 4.7.1 Service unavailable; $rbl_class [$rbl_what] blocked using
02 $rbl_domain${rbl_reason?; $rbl_reason}
03 zen.spamhaus.org=127.0.0.11 521 4.7.1 Service unavailable; $rbl_class [$rbl_what] blocked using
04 $rbl_domain${rbl_reason?; $rbl_reason}

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook