Hosts in mynetworks sollen nur Absender Adressen aus relay_recipient_maps verwenden dürfen

Wenger Florian wenger at unifox.at
Do Sep 10 16:11:50 CEST 2015


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
       user1 at dom1.example.org
       user2 at dom1.example.org
       user1 at dom2.example.org
       user2 at dom2.example.org

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
user1 at dom1.example.org funktioniert
user2 at dom2.example.org funktioniert
user3 at dom1.example.org 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 user0815 at anderedomain.com 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


Mehr Informationen über die Mailingliste postfix-users