[Postfixbuch-users] postfix für unerlaubten Zugriff/Benutzung optimieren / Policy

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Mo Feb 4 20:27:28 CET 2008


Oliver Strixner wrote:

> Das erste, was du brauchst, ist eine sauber definierte Policy:
> - welche Mails präzise dein Server abweisen
> - welche er annehmen soll
> - wie die Priorität bezüglich Spambekämpfung, Bounces, DSN geregelt ist
> usw. usw.
> 
> Danach kannst du dich daran begeben, diese Policy umzusetzen in Regeln.
> 
> ##################################
> Hallo,
> 
> ok nach den vielen Informationen von der letzten Mail will ich diese
> erstmal verdauen und verstehen. Das System läuft jetzt mit einer leicht
> abgewandelten konfig (wie mitgegeben).
> 
> I) nun zum Entwickeln der Policy.
> 
> Meine Zielsetzung ist es, das mein Mailserver prinzipiell nur Mails
> bearbeitet, für die eingerichteten virtual_mailboxen bzw. die dazugehörigen
> forwardings.

Das ist bereits der Status, wenn Postfix "normal" konfiguriert ist. Per 
Default nimmt Postfix
- Mails für seine eigenen Domains an (ohne auth, permit_mynetworks etc.)
- Mails, die von vertrauenswürdigen Clients kommen (vertrauenswürdig ist dabei 
definiert als "liefert auf einen Check ein "ok/permit", bevor 
reject_unauth_destination abgefragt wird) für alle Domains.


> 1 Verschicken darf nur a  wer eine gültige (mailbox/forwarding)
> email-adresse besitzt (also im from part) b  da sasl_auth konfiguriert, nur
> wer sich authenfiziert hat (ist 1.a dann überflüssig?) c  die from
> email-adresse nicht gefälscht ist (geht das, wenn ja macht das sinn?)

Du kannst festlegen, dass User, die eine Mail relayen wollen und per smtp auth 
sich authentifizieren, nur mit der angegebenen Adresse senden dürfen.
http://www.postfix.org/postconf.5.html#reject_authenticated_sender_login_mismatch
http://www.postfix.org/postconf.5.html#reject_sender_login_mismatch
http://www.postfix.org/postconf.5.html#smtpd_sender_login_maps

Das ist etwas an Arbeit und kann auch zu erhöhtem Supportaufwand führen, wenn 
man allzu restriktiv ist.

> 2 Einliefern darf nur a  an eine gültige (mailbox/forwarding) email-adresse
> (also im to part) b  der absender kein bekannter spammer ist c   die
> Absender-Adresse nicht gefälscht ist (wenn das geht und sinn macht) d
> idealerweise wenn der content bekannte spam texte enthält (viagra, calis,
> poker, sparkasse.de ...)

Einliefern darf nur, wer bekannte Spam-Texte verwendet?!? [Kratz den Schädel...]

Der Rest sind Restriktionen wie RBLs und Header-/Body-Checks.
Wenn Amavisd-new im smtp_proxy_mode läuft, dann auch mit Spam-Check.


> alles andere sollte, wenn das "gut" für mich ist abgelehnt werden.

Ich mache das z.B. genau anders herum. Ich nehme alles an, sofern der Client 
auf einer Whitelist steht oder die Standard-RBLs und Tests besteht. Bei 
schlechter DNS-Einrichtung/Verdacht auf dynamischer IP setze ich noch weitere 
Checks herein wie Greylisting, weitere RBLs und einige lokale Checks.

Der Sinn des ganzen ist, dass Mails auch dann angenommen werden, wenn das DNS 
mal etwas spinnt. Das kann schneller passieren, als man denkt. Vor einigen 
Tagen ist eine unserer Leitungen gekündigt worden, aber ich hatte den 
zugehörigen DNS noch nicht umgelenkt, also funktionierte das meiste, aber 
vieles kam auch als "host unknown" zurück.

Meine Konfig hatte dann zwar einige zusätzliche Checks durchgeführt, aber die 
Mails kamen trotzdem durch, und das ist eine meiner Hauptprioritäten: 
gewünschte Mails müssen durchkommen.

> Den unterschied zwischen reject und bounce in der Wirkung ist mir noch
> etwas unklar. Da mein Ursprungsproblem wohl zu dem Thema backscatter gehört
> war wohl bouncen unangemessen.
> 
> II) was passiert beim rejecten? III) was passiert beim bouncen?

reject: Mail wird NICHT angenommen, sondern in einem Vorstadium bereits 
abgewiesen. Die Mail bleibt in der Verantwortlichkeit des sendenden Clients: 
Dieser muss die Mail jetzt an den Absender als Bounce zurückschicken, aber:
DIES IST DANN NICHT DEIN PROBLEM, SONDERN DASS DES SENDENDEN CLIENTS!!!

Bounce: Die Mail wird erst angenommen. Später wird dann festgestellt, dass die 
Mail nicht zugestellt werden kann, deshalb wird die Mail an den Absender 
zurückgeschickt.

Das Problem beim Bouncen ist, wenn es sich um Spam handelt, dann ist mit 
Sicherheit die Absenderadresse gefälscht. Jetzt schickt dein Server also eine 
Spam an eine gefälschte Absenderadresse.

Andere üble Lösung: Mail einfach löschen, wenn sie als Spam identifiziert wird:
Was passiert, wenn die Mail falsch als Spam erkannt wurde? Dann hast du einen 
Kunden/Mitarbeiter oder sogar Chef am Toben, der dann sogar vermutlich mit 
rechtlichen Konsequenzen drohen kann (nicht nur Kündigung, sondern auch 
strafrechtlich).

Deshalb ist es so wichtig, dass Bounces nicht nach außen geschickt werden. 
Einige Provider haben deshalb eigene Server eingerichtet, die nur Bounces 
verschicken. Wenn diese Server dann in Blacklists als Spamversender landen, 
ist der Schaden nicht so hoch.

Auch eine üble Lösung für ein mieses Problem.

> was mich auch erstaunt hat, war das es viele restrictions gibt die für
> bestimmte phasen gelten smtpd_client_restrictions = smtpd_helo_restrictions
> = smtpd_sender_restrictions = smtpd_recipient_restrictions = und nachher
> doch alles besser in eine gepackt wird. In sofern scheint das mit meinem
> Buch dann doch nicht ganz praxisnah gewesen zu sein oder ich hab dann doch
> was noch nicht richtig verstanden.

Solange "smtpd_delay_reject = yes" eingestellt ist (Standard bei Postfix), 
wird die Mail ohnehin erst nach dem Ende der smtpd_recipient_restrictions 
abgewiesen. Es kann also sein, dass Postfix bereits weiss, dass die Mail 
aufgrund des HELO abgewiesen wird, aber diese Entscheidung wird erst nach dem 
Empfang des RCPT TO dem Client mitgeteilt.

Solange du kein System hast, dass unter sehr starker Last läuft (Hälfte der 
verfügbaren smtpd-Prozesse sind ständig in Gebrauch), brauchst du dir über 
solche Optimierung keine Gedanken zu machen.

> IV) Gibts denn was verbindliches zu diesem Thema?

Allgemein ist eines ein Standard, der in Deutschland verbindlich ist, von ein 
paar Sonderfällen abgesehen:

Wenn dein Server eine Mail annimmt, ist er dafür verantwortlich mit allen 
Konsequenzen. Dies gilt für die Zustellung, Sorgfaltspflicht beim 
Serverbetrieb und der Entscheidung über Löschen, Annehmen etc.

Selbst die Entscheidung über das Ablehnen von Mails darf nicht willkürlich 
sein und kann unter Umständen das Wettbewerbsrecht ins Spiel bringen.

> V) das meine check_client_access nicht mit meiner mysql-tabelle nicht passt
> ist schon mal nicht so gut. wie bekomme ich den den bequemen eintrag von
> email-adressen und das postfix weiss welche emails er als gültig anerkennt.
>  passiert das automatisch durch Definition der angaben zu
> virtual-mailboxes? gibts ne variante wie man das auch mit mysql-tabellen
> lösen kann?

Postfix kennt 4 Adressklassen, wobei virtual_alias_domains in eine andere 
Klasse umgeschrieben werden müssen, übrig bleiben also 3 Klassen:

Klasse                   Map                      Voreinstellung
mydestination            local_recipient_maps     passwd.byname, $alias_maps
relay_domains            relay_recipient_maps     (leer)
virtual_mailbox_domains  virtual_mailbox_maps     (leer)
virtual_alias_domains    virtual_alias_maps       /etc/postfix/virtual

Gültige Empfänger sind als jeweils für die Domainklasse in einer Map 
bereitzustellen. Leer bedeutet hier, dass keine Empfängerprüfung stattfindet
Beispiel: "relay_recipient_maps ="

Je nach System und eigenen Daten muss man diese auf die eigenen Systeme 
umstellen. Postfix kann dafür mit verschiedenen Datenbank-Typen 
zusammenarbeiten. In deinem Fall wäre das mysql.

> 
> So ich glaub jetzt hab ich erstmal das wichtigste zusammengestellt. Falls
> noch jemand einen tipp hat welcher Quelle man besonders trauen kann, nur
> her damit. Nachdem mein Buch Postfix e,b,w von 2006 ist und beim googlen
> tausend verschiedene Lösungen angeboten werden. Wäre manchmal doch eine
> verlässliche Quelle mit guten HowTos praktisch.

Es gibt allgemeine How-Tos, aber die helfen dir für deine spezifischen Wünsche 
leider nicht weiter.

-- 
Sandy

Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com




Mehr Informationen über die Mailingliste Postfixbuch-users