Postfix, nur an bestimmte Domains Mails versenden

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
vicodas
Beiträge: 148
Registriert: 28.06.2006 19:17:17
Wohnort: Frankfurt

Postfix, nur an bestimmte Domains Mails versenden

Beitrag von vicodas » 16.05.2023 16:26:54

Hallo,

ich nutze Postfix als localen MTA auf meinen Linux Servern.
Ich möchte jetzt den MTA so beschränken, das er nur noch Mails an bestimmte Domains (Whitlisting) versendet.
Wie stell ich das am Besten an?
Meine Versuche mittels

Code: Alles auswählen

smtpd_recipient_restrictions = check_recipient_access regexp:/etc/postfix/allowed_sender_domains, reject
smtpd_helo_restrictions = check_helo_access regexp:/etc/postfix/allowed_sender_domains, reject
und deren INhalt:

Code: Alles auswählen

/@lvz.local$/ OK
/@lvz-bb.de$/ OK
// REJECT
schlugen leider fehl, es kann weiterhin in alle Welt gemailt werden.
Wie kann ich das am Besten auf meine Liste einschränken?

vD

vicodas
Beiträge: 148
Registriert: 28.06.2006 19:17:17
Wohnort: Frankfurt

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von vicodas » 17.05.2023 07:21:14

Leider hat auch ein

Code: Alles auswählen

relay_domains = lvz.local, lvz-bb.de
kein Erfolg gebracht, bin langsam am Verzweifeln :evil:

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von heisenberg » 17.05.2023 07:53:30

Die Ansätze finde ich grundsätzlich schon mal plausibel.

Ich würde da auch mit der Option relay_domains beginnen.

http://www.postfix.org/postconf.5.html#relay_domains

Ansonsten würde ich vielleich noch default_transport auf einen Leerstring setzen oder so.
Zuletzt geändert von heisenberg am 17.05.2023 08:08:17, insgesamt 1-mal geändert.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

vicodas
Beiträge: 148
Registriert: 28.06.2006 19:17:17
Wohnort: Frankfurt

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von vicodas » 17.05.2023 08:08:10

Ich hatte mit relay_domains getestet, leider ohne Erfolg.
In der Doku hab ich dazu folgendes gefunden:

Code: Alles auswählen

By default, the Postfix SMTP server accepts:

Mail from clients whose IP address matches $mynetworks, or:
Mail from clients who are SASL authenticated, or:
Mail to remote destinations that match $relay_domains, except for addresses that contain sender-specified routing (user@elsewhere@domain), or:
Mail to local destinations that match $inet_interfaces or $proxy_interfaces, $mydestination, $virtual_alias_domains, or $virtual_mailbox_domains
Heißt für mich, das eine Bedingung schon reicht, um die Mail zu akzeptieren...

Ich werd mal den transport noch näher ansehen, hab gedacht das es eine "einfachere" Lösung gibt.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von heisenberg » 17.05.2023 09:43:28

Die smtpd_recipient_restrictions greifen der Reihenfolge nach, wie angegeben. Das würde schon mal passen.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von heisenberg » 17.05.2023 11:31:32

Das folgende ergibt keinen Sinn:
smtpd_helo_restrictions = check_helo_access regexp:/etc/postfix/allowed_sender_domains, reject
Damit würdest Du nach Deinen Domains im HELO-String der einliefernden Anfragen filtern. In Deiner Regex-Datei sind aber Domains mit @ voran eingetragen. D. h. die würden nie greifen, weil als HELO-Namen FQDN-Hostnamen geliefert werden. Also: Zeile weg!

Ansonsten funktioniert Dein Beispiel von smtpd_recipient_restrictions bei mir so wie Du Dir das wünscht:
heisenberg@dot:~$ openssl s_client -quiet -connect localhost:25 -starttls smtp
Can't use SSL_get_servername
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = dot.bla.de
verify return:1
250 CHUNKING
EHLO localhost
250-dot.bla.de
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250-SMTPUTF8
250 CHUNKING
MAIL FROM:<heisenberg@erlaubt.de>
250 2.1.0 Ok
RCPT TO:<heisenberg@verboten.de>
554 5.7.1 <heisenberg@verboten.de>: Recipient address rejected: Access denied
RCPT TO:<heisenberg@erlaubt.de>
250 2.1.5 Ok
^C
heisenberg@dot:~$
main.cf

Code: Alles auswählen

smtpd_relay_restrictions = check_recipient_access regexp:/etc/postfix/allowed_recipient_domains reject

allowed_recipient_domains

Code: Alles auswählen

/@erlaubt.de$/ OK
// REJECT
Poste doch nochmal die Ausgabe von postconf, bzw. setze sie hier ins NoPaste. Bitte aber ggf. verschleiern, so dass keine sensiblen Daten veröffentlicht werden, die Datei aber strukturell erhalten bleibt, um Fehler erkennen zu können.

Ansonsten: Schon die Logs in /var/log/mail.log bzw. /var/log/mail.err beim starten von Postfix als auch beim versenden der Mails geprüft?
Jede Rohheit hat ihren Ursprung in einer Schwäche.

vicodas
Beiträge: 148
Registriert: 28.06.2006 19:17:17
Wohnort: Frankfurt

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von vicodas » 17.05.2023 14:04:46

Danke für dein Feedback.
Bin aber leider immer verwirrter 8O

Nach deiner Methode mittels telnet und absenden der Befehle bekomme ich auch ein "Recipient address rejected: Access denied".
Aber beim Versuch mit mailx auf der console steht im mail.log: connect to mail.lvz.de[7.4.218.31]:25: Connection refused, weil die Firewall blockt.

Ich habs nun mittel transport_map realisiert.
lvz.local smtp:smtp.lvz.local
* error:only intern domains allowing

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Postfix, nur an bestimmte Domains Mails versenden

Beitrag von heisenberg » 17.05.2023 15:45:13

vicodas hat geschrieben: ↑ zum Beitrag ↑
17.05.2023 14:04:46
Aber beim Versuch mit mailx auf der console steht im mail.log: connect to mail.lvz.de[7.4.218.31]:25: Connection refused, weil die Firewall blockt.
Das ist natürlich verständlich, weil mailx nicht über den smtpd geht, sondern lokal über das maildrop-Verzeichnis und smtpd_recipient_restrictions gilt, wie die Einstellung eben auch schon im Namen trägt für den smtpd, d. h. Einlieferung von Mails über das Netzwerk.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Antworten