Dynamische Empfängervalidierung bei Mails von localhost

Igor Sverkos igor.sverkos at gmail.com
Di Jan 12 15:46:35 CET 2016


Hallo,

diese Frage wäre evtl. auch in der Postfixbuch-ML gut aufgehoben, aber sie
bezieht sich konkret auf eine Konfiguration aus dem Dovecotbuch.

Gegeben ist eine Umgebung wo per Web-Backend (postfixadmin) die User
gepflegt werden. Dovecot nutzt diese Datenquelle bereits ohne Probleme.

Wenn ich Kapitel 6 richtig verstehe (ab Seite 168) dann wäre es falsch
virtual_mailbox_domains, virtual_alias_maps und virtual_mailbox_maps zu
nutzen (schließlich nutze ich ja nicht Postfix für die Speicherung der
Mails). Stattdessen sollte ich meine Domains in relay_domains eintragen und
später via transport_maps-Eintrag via LMTP an dovecot übergeben.

Wie unten auf Seite 170 angeführt sehen meine smtpd_recipient_restrictions
wie folgt aus (Content-Filter fehlen noch):

> smtpd_recipient_restrictions =
>     check_recipient_access cdb:$config_directory/access_recipient-rfc
>     check_client_access cidr:$config_directory/access_client
>     check_helo_access cdb:$config_directory/access_helo
>     check_sender_access cdb:$config_directory/access_sender
>     check_recipient_access cdb:$config_directory/access_recipient
>
>     permit_sasl_authenticated
>     permit_mynetworks
>
>     reject_rbl_client zen.spamhaus.org
>     reject_rbl_client ix.dnsbl.manitu.net
>
>     reject_unverified_recipient
>
>     reject_unauth_destination
>
>     permit

D.h. reject_unverified_recipient kommt nicht vor permit_sasl_authenticated
bzw. permit_mynetworks.

Das führt aber zu der Unschönheit, dass wenn eine Mail von einem
authentifizierten Nutzer bzw. einer auf dem gleichen System laufenden An-
anwendung eingeliefert wird, keine Adressprüfung stattfindet und die Mail
angenommen wird. Da sie nicht zugestellt werden kann muss anschließend
eine Bounce-Mail erzeugt werden...

Wenn ich aber statt auf relay_domains und transport_maps auf besagte
virtual_*_maps setze, dann lehnt localhost diese Mail bereits ab.

Somit erscheint mit der Weg über virtual_*_maps "richtiger" und vor allem
sauberer, weil unzustellbare Nachrichten an eigene Domains gleich unter-
bunden werden.


Während ich das hier aber gerade schreibe meine ich mich an einen Austausch
auf der Postfix-ML zu erinnern wo es um die Position des Virenfilters ging.
Ich meine Peer hatte damals geschrieben bei eigenen Clients sei es besser
lieber eine Bounce-Mail zu erzeugen statt im SMTP-Dialog abzulehnen, weil
Nutzer die Fehlermeldung im SMTP-Dialog wohl nicht immer mitbekommen usw.

Trifft gleiche Argumentation auch hier zu? Ist meine Sorge hier völlig un-
begründet (von wegen Backscatter usw.)?

Und wie seht ihr es ansonsten: Wenn Postfix nur vorgeschaltet wurde besser
auf virtual_*_maps verzichten und mit relay_domains usw. arbeiten oder
spricht nichts dagegen, dass auch Postfix (sofern möglich) die gleiche
Datenquelle wie Dovecot befragt und somit gleich selber prüft? Meine Sorge
ist hier, dass dann eben kein Cache verwendet wird und pro legitimer Mail
dann mindestens 2 Queries (1x Postfix, 1x Dovecot beim Ablegen der
Nachricht) ausgeführt werden -- eine Verdoppelung der Abfragen (wir
sprechen von ca. 2.500 Nutzern).

Danke!


-- 
Ich Grüße
Igor


Mehr Informationen über die Mailingliste Dovecot