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