<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <blockquote><font face="Linux Biolinum">Hi p@rick,<br>
        <br>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Was hat nicht funktioniert? Das Login-SASL-Mapping und die damit verbundenen
Permissions / Filter?</pre>
        </blockquote>
        <br>
        Nach dem ich die relay_recipient_maps hinterlegt hatte,
        funktionierte es zuerst nicht. Es dauerte ein paar Minuten und
        einige Neustarts.<br>
        Das hat mich verwundert.<br>
        <br>
        <blockquote type="cite">
          <pre wrap="" class="moz-quote-pre">Vermischt Du möglicherweise gerade Mailbox (relay_recipient_maps) mit Domain
(relay_domains)?

Beides sind - auch wenn sie als Maps notiert werden (müssen) und sie deshalb
zweispaltig sind - aus Sicht von Postfix "nur" Listen deren linke Spalte (key)
der smtpd absucht um festzustellen

- ob es für die Domain zuständig ist und ob es diese als relay Domain
  behandeln soll (-> relay_domains)
- ob der vom Client genannten envelope recipient auf der Liste für Relay
  Empfänger steht und ob es diesen recipient als Relay Empfänger behandeln
  soll (-> relay_recipient_maps)

Warum schreibe ich das?

Du schreibst "ich muss jede Relay Mailbox in die relay_recipient_maps
eintragen?". Nein, das musst Du nicht, denn diese map ausschließlich (!) für
relay_recipient_maps genutzt wird, dann wird Postfix im Kontext von
relay_recipient_maps nie die rechte Spalte (value) lesen und auswerten.

Aber… wenn Du die relay_recipient_maps oder relay_domains Map zusätzlich (!)
auch als transport map nutzen möchtest, dann kannst Du in die rechte Spalte
die Transportziele - oben nennst Du z. B. lmtp:unix:private/dovecot-lmtp -
schreiben. Postfix liest dann im Kontext von relay_recipient_maps oder
relay_domains nur die linke Spalte, aber im Kontext von transport_maps beide
Spalten. Das ist praktisch, weil Du dieselbe Map mehrfach verwenden kannst und
vieleicht ist es dieses Szenario, welches Du oben beschrieben hast.</pre>
        </blockquote>
        <br>
        Jetzt hast du mich verwirrt, dass ist jedoch nicht schlecht, da
        es vermutlich mein Denkfehler zu Tage bringt.<br>
        Im folgenden ist die aktuelle Testkonfiguration welche
        Funktioniert. Ohne die relay_recipient_maps bekomme ich den
        Eingangs genannten Error:<br>
        <br>
        <br>
        relay_domains:<br>
        domain.tld    lmtp:unix:private/dovecot-lmtp<br>
        <br>
        transport:<br>
        ~ leer ~<br>
        <br>
        virtual:<br>
        <a class="moz-txt-link-abbreviated" href="mailto:virtuelle-mailbox@domain.tld">virtuelle-mailbox@domain.tld</a>    <a class="moz-txt-link-abbreviated" href="mailto:existierende-mailbox@domain.tld">existierende-mailbox@domain.tld</a><br>
        <br>
        relay_recipient_maps:<br>
        <a class="moz-txt-link-abbreviated" href="mailto:mailbox@domain.tld">mailbox@domain.tld</a>    OK<br>
        <br>
        postconf -n:<br>
        alias_database = hash:/etc/aliases<br>
        alias_maps = hash:/etc/aliases<br>
        biff = no<br>
        broken_sasl_auth_clients = yes<br>
        compatibility_level = 3.9<br>
        debug_peer_level = 2<br>
        disable_vrfy_command = yes<br>
        inet_interfaces = all<br>
        inet_protocols = ipv4<br>
        local_recipient_maps = $virtual_mailbox_maps<br>
        local_transport = virtual<br>
        mailbox_command =<br>
        mailbox_size_limit = 0<br>
        message_size_limit = 30240000<br>
        mydestination = $myhostname, blocxx.org, xhc01.blocxx.org,
        localhost.blocxx.org, localhost<br>
        myhostname = xhc01.blocxx.org<br>
        mynetworks = 127.0.0.0/8<br>
        mynetworks_style = host<br>
        myorigin = /etc/mailname<br>
        recipient_delimiter = +<br>
        relay_domains = hash:/etc/postfix/relay_domains<br>
        relay_recipient_maps = hash:/etc/postfix/relay_recipient_maps<br>
        relayhost =<br>
        smtp_helo_name = mail.blocxx.org<br>
        smtp_tls_CAfile = /etc/ssl/blocxx/intermediate.crt<br>
        smtp_tls_CApath = /etc/ssl/certs<br>
        smtp_tls_cert_file = /etc/ssl/blocxx/certificate.crt<br>
        smtp_tls_ciphers = high<br>
        smtp_tls_key_file = /etc/ssl/blocxx/blocxx.key<br>
        smtp_tls_loglevel = 1<br>
        smtp_tls_mandatory_ciphers = high<br>
        smtp_tls_mandatory_protocols = >=TLSv1.2<br>
        smtp_tls_protocols = >=TLSv1.2<br>
        smtp_tls_security_level = encrypt<br>
        smtp_tls_session_cache_database =
        btree:${data_directory}/smtp_scache<br>
        smtpd_banner = $myhostname ESMTP $mail_name (Debian)<br>
        smtpd_recipient_restrictions = check_recipient_access
        hash:/etc/postfix/check_recipient_access_rfc,
        permit_sasl_authenticated, permit_mynetworks,
        reject_unverified_recipient, permit<br>
        smtpd_relay_restrictions = permit_mynetworks,
        permit_sasl_authenticated, defer_unauth_destination<br>
        smtpd_sasl_auth_enable = yes<br>
        smtpd_sasl_path = private/auth<br>
        smtpd_sasl_security_options = noanonymous, noplaintext<br>
        smtpd_sasl_tls_security_options = noanonymous<br>
        smtpd_sasl_type = dovecot<br>
        smtpd_tls_CAfile = /etc/ssl/blocxx/intermediate.crt<br>
        smtpd_tls_CApath = /etc/ssl/certs<br>
        smtpd_tls_auth_only = yes<br>
        smtpd_tls_cert_file = /etc/ssl/blocxx/certificate.crt<br>
        smtpd_tls_ciphers = high<br>
        smtpd_tls_key_file = /etc/ssl/blocxx/blocxx.key<br>
        smtpd_tls_mandatory_ciphers = high<br>
        smtpd_tls_mandatory_protocols = >=TLSv1.2<br>
        smtpd_tls_protocols = >=TLSv1.2<br>
        smtpd_tls_received_header = yes<br>
        smtpd_tls_security_level = may<br>
        tls_high_cipherlist =
        EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH<br>
        tls_preempt_cipherlist = yes<br>
        transport_maps = hash:/etc/postfix/transport, $relay_domains<br>
        virtual_alias_maps = hash:/etc/postfix/virtual<br>
        virtual_transport = lmtp:unix:private/dovecot-lmtp<br>
        <br>
        <br>
        postconf -Mf:<br>
        smtp       inet  n       -       y       -       -       smtpd<br>
        submission inet  n       -       n       -       -       smtpd<br>
            -o smtpd_tls_security_level=encrypt<br>
            -o smtpd_sasl_auth_enable=yes<br>
            -o smtpd_sasl_type=dovecot<br>
            -o smtpd_sasl_path=private/auth<br>
            -o smtpd_sasl_security_options=noanonymous<br>
            -o smtpd_sasl_local_domain=$myhostname<br>
            -o
        smtpd_client_restrictions=permit_sasl_authenticated,reject<br>
            -o smtpd_sender_login_maps=hash:/etc/postfix/virtual<br>
            -o smtpd_sender_restrictions=reject_sender_login_mismatch<br>
            -o
smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject<br>
        pickup     unix  n       -       y       60      1       pickup<br>
        cleanup    unix  n       -       y       -       0       cleanup<br>
        qmgr       unix  n       -       n       300     1       qmgr<br>
        tlsmgr     unix  -       -       y       1000?   1       tlsmgr<br>
        rewrite    unix  -       -       y       -       -     
         trivial-rewrite<br>
        bounce     unix  -       -       y       -       0       bounce<br>
        defer      unix  -       -       y       -       0       bounce<br>
        trace      unix  -       -       y       -       0       bounce<br>
        verify     unix  -       -       y       -       1       verify<br>
        flush      unix  n       -       y       1000?   0       flush<br>
        proxymap   unix  -       -       n       -       -     
         proxymap<br>
        proxywrite unix  -       -       n       -       1     
         proxymap<br>
        smtp       unix  -       -       y       -       -       smtp<br>
        relay      unix  -       -       y       -       -       smtp<br>
            -o
syslog_name=${multi_instance_name?{$multi_instance_name}:{postfix}}/$service_name<br>
        showq      unix  n       -       y       -       -       showq<br>
        error      unix  -       -       y       -       -       error<br>
        retry      unix  -       -       y       -       -       error<br>
        discard    unix  -       -       y       -       -       discard<br>
        local      unix  -       n       n       -       -       local<br>
        virtual    unix  -       n       n       -       -       virtual<br>
        lmtp       unix  -       -       y       -       -       lmtp<br>
        anvil      unix  -       -       y       -       1       anvil<br>
        scache     unix  -       -       y       -       1       scache<br>
        postlog    unix-dgram n  -       n       -       1     
         postlogd<br>
        <br>
        <br>
        <br>
        Best,</font></blockquote>
    <pre class="moz-signature" cols="72">---------------
blocxx
Nico Funke
Dolgenseestr. 41
10319 Berlin</pre>
    <br>
    <div class="moz-cite-prefix">Am 02.04.26 um 16:26 schrieb Patrick
      Ben Koetter via Postfixbuch-users:<br>
    </div>
    <blockquote type="cite" cite="mid:ac53O1dY1ZZneFqU@sys4.de">
      <pre wrap="" class="moz-quote-pre">Hi!

* Nico Funke via Postfixbuch-users <a class="moz-txt-link-rfc2396E" href="mailto:postfixbuch-users@listen.jpberlin.de"><postfixbuch-users@listen.jpberlin.de></a>:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Ich habe bitte jedoch noch drei kleine Verständnisfragen:

Nach dem ich die Map in der main.cf hinterlegt habe, hat es über eine
längere Zeit - mehrere Minuten - und auch über Neustarts von Postfix /
Dovecot nicht funktioniert. Worin liegt da die Erklärung? Musste ein Cache
erst resettet werden?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Was hat nicht funktioniert? Das Login-SASL-Mapping und die damit verbundenen
Permissions / Filter?

Dovecot hat da keine Aktien drin, wenn Du SMTP machst. Bleibt Postfix.
Die Postfix daemon - allen voran der smtpd - prüfen ob sich Maps verändert
haben und lesen diese ggf. selbst neu ein. Das geschieht in kurzen
Intervallen, weshalb es sich oft gar nicht lohnt ein reload oder stop / start
abzusetzen. Einen Cache dafür gibt es nicht. Es muss folglich auch keiner
ersetzt werden.

Kann ich den Effekt anders erklären? Nein, spontan fällt mir keine Erklärung
ein.


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">in meiner relay_domains befindet sich der Eintrag "domain.tld
lmtp:unix:private/dovecot-lmtp" und in meiner Theorie ging ich davon aus,
dass nach der Auswertung dieser Map per verify noch die Mailbox verifiziert
wird und dann ist es ok. Das ist dann wohl Quatsch und ich muss jede Relay
Mailbox in die relay_recipient_maps eintragen?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Vermischt Du möglicherweise gerade Mailbox (relay_recipient_maps) mit Domain
(relay_domains)?

Beides sind - auch wenn sie als Maps notiert werden (müssen) und sie deshalb
zweispaltig sind - aus Sicht von Postfix "nur" Listen deren linke Spalte (key)
der smtpd absucht um festzustellen

- ob es für die Domain zuständig ist und ob es diese als relay Domain
  behandeln soll (-> relay_domains)
- ob der vom Client genannten envelope recipient auf der Liste für Relay
  Empfänger steht und ob es diesen recipient als Relay Empfänger behandeln
  soll (-> relay_recipient_maps)

Warum schreibe ich das?

Du schreibst "ich muss jede Relay Mailbox in die relay_recipient_maps
eintragen?". Nein, das musst Du nicht, denn diese map ausschließlich (!) für
relay_recipient_maps genutzt wird, dann wird Postfix im Kontext von
relay_recipient_maps nie die rechte Spalte (value) lesen und auswerten.

Aber… wenn Du die relay_recipient_maps oder relay_domains Map zusätzlich (!)
auch als transport map nutzen möchtest, dann kannst Du in die rechte Spalte
die Transportziele - oben nennst Du z. B. lmtp:unix:private/dovecot-lmtp -
schreiben. Postfix liest dann im Kontext von relay_recipient_maps oder
relay_domains nur die linke Spalte, aber im Kontext von transport_maps beide
Spalten. Das ist praktisch, weil Du dieselbe Map mehrfach verwenden kannst und
vieleicht ist es dieses Szenario, welches Du oben beschrieben hast.


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Meine master und main ist jetzt noch genau so wie gepostet mit dem neuen
Eintrag der relay_recipient_maps erweitert. Damit habe ich mir jetzt aber
nicht irgendwelche Löscher aufgemacht?
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Ich habe die letzte Version nicht gesehen. Magst beide noch einmal senden?
Eine Ausgabe der master.cf, ähnlich wie jene der main.cf, erhältst Du übrigens
mit "postconf -Mf". Und falls es nur submission sein soll, dann mit "postconf
-Mf submission".


</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Ich danke nochmals allen sehr, dass ihr mit geschaut habt.
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Gerne

p@rick


</pre>
    </blockquote>
    <br>
  </body>
</html>