Hallo Postfix-Users

Kann ich Postfix so konfigurieren, dass angeschlossene Mailserver (gelistet in mynetworks) über Postfix relayen dürfen, aber als Absenderadressen nur diese Adressen verwenden dürfen, welche auch in relay_recipient_maps angegeben sind?


Zur Erklärung ein paar mehr Fakten...

Ich bastle gerade an einem neuen Mailgateway meines Arbeitgebers.
Debian 8.2 ,Postfix 2.11.3, Amavis, Spamassassin, usw...

Auf diesem Server gibt es keine Mailboxen oder Mailuser.
Alle eingehenden Mails (von Internet-Seite) werden an verschiedene Mailsysteme (intern) weitergeleitet. In einer MySQL-Tabelle sind alle gültigen Empfänger-Adressen aller angeschlossenen internen Mailsysteme hinterlegt.

Postfix kennt alle Empfänger-Adressen der angeschlossenen Mailsysteme und nimmt nur diese an. SMTP-Auth (SASL) oder address_verify_map für relay_domains ist leider nicht möglich.

relay_domains = proxy:mysql:/etc/postfix/relay_domains.mysql
= Liste der Domains die nach intern weitergeleitet werden.

relay_recipient_maps = proxy:mysql:/etc/postfix/relay_recipients.mysql
= Liste aller Empfänger-Adressen der relay_domains

smtpd_reject_unlisted_recipient = yes
= Postfix nimmt unbekannte Empfänger nicht an.

Dank smtpd_reject_unlisted_sender = yes können auch nur Absender Adressen von meinen relay_domains verwendet werden,
wenn diese in relay_recipient_maps vorhanden sind.


Beispiel:
  relay_domains
      dom1.example.org
      dom2.example.org

  relay_recipients
      [email protected]
      [email protected]
      [email protected]
      [email protected]

Wenn ich nun E-Mails über diesen Mailserver ins Internet-verschicke (von intern nach extern), kann ich nur die Absenderadressen verwenden die
in relay_recipients angeführt sind.
Dies funktioniert aber nur wenn die Absender-Domain in relay_domains angeführt sind.

Absender
[email protected] funktioniert
[email protected] funktioniert
[email protected] funktioniert nicht NOQUEUE: reject: 550 5.1.0 Sender address rejected: User unknown in relay recipient table;
genau so möchte ich das haben.

Da die "internen" Mailsysteme auch in mynetworks geführt werden, können diese Mailsysteme E-Mails verschicken, deren Absender komplett unbekannt sind. Absender [email protected] funktioniert, sofern diese Domain existiert (Dank reject_unknown_recipient_domain)


Kann ich Postfix so kinfigurieren, dass auch hosts in mynetworks nur absender Adressen verwenden dürfen, welche in relay_recipient_maps angegeben sind.
Und andernfalls die Nachrichten nicht annimmt.

Noch ein paar ergänzende Einstellungen meiner main.cf

relay_domains = proxy:mysql:/etc/postfix/relay_domains.mysql
transport_maps = hash:/etc/postfix/transport, $relay_domains
relay_recipient_maps = proxy:mysql:/etc/postfix/relay_recipients.mysql
smtpd_reject_unlisted_sender = yes
smtpd_reject_unlisted_recipient = yes
smtpd_helo_restrictions = warn_if_reject reject_unknown_helo_hostname
smtpd_sender_restrictions = reject_unknown_sender_domain

smtpd_relay_restrictions = check_recipient_access hash:/etc/postfix/mxsysallow
        reject_unknown_recipient_domain
        permit_mynetworks,
        reject_unauth_destination

smtpd_recipient_restrictions = permit_mynetworks,
        check_recipient_access hash:/etc/postfix/mxsysallow
        # reject_unauth_destination is not needed here if the mail
        # relay policy is specified under smtpd_relay_restrictions
        # (available with Postfix 2.10 and later).
        reject_unauth_destination,
        check_helo_access hash:/etc/postfix/helo_access,
        reject_rbl_client zen.spamhaus.org,
        reject_rhsbl_reverse_client dbl.spamhaus.org,
        reject_rhsbl_helo dbl.spamhaus.org,
        reject_rhsbl_sender dbl.spamhaus.org
        check_policy_service inet:127.0.0.1:10023,
        check_policy_service unix:private/policy-spf,
        reject_rbl_client bl.spamcop.net,
        reject_rbl_client cbl.abuseat.org,

---------------------------------

Folgendes habe ich auch schon probiert

smtpd_relay_restrictions = check_recipient_access hash:/etc/postfix/mxsysallow
        reject_unknown_recipient_domain
check_sender_access proxy:mysql:/etc/postfix/my_relay_senders.mysql,
        check_sender_access hash:/etc/postfix/my_special_relay_senders,
        REJECT,
        permit_mynetworks,
        reject_unauth_destination

my_relay_senders.mysql ist eine Mysql-Abfrage auf die gleiche Tabelle, wie proxy:mysql:/etc/postfix/relay_recipients.mysql, Liefert aber OK wenn eine E-Mail Adresse matcht. Das Unschöne an dieser Lösung ist, dass "REJECT," im SMTP - Dialog ein 554 5.7.1 ...Recipient address rejected: Access denied; erzeugt, aber
nicht über die falsche Absender-Adresse informiert.


Vielleicht hat hier jemand eine Idee für meine Könfigurationswünsche

MFG Flo

Antwort per Email an