E-Mail ablehnen, wenn „rcpt to“ nicht mit der Relay-Domäne übereinstimmt – Postfix

E-Mail ablehnen, wenn „rcpt to“ nicht mit der Relay-Domäne übereinstimmt – Postfix

Mein Mailserver wird derzeit in mxtoolbox als Open Relay angezeigt.

Ziel: SMTP-Verbindung nur zulassen, wenn RCPT TO:example.com sagt

Welche Änderungen sollte ich daran vornehmen, damit die Verbindung sofort abgelehnt wird, wenn bekannt ist, dass dies RCPT TO:nicht der Fall ist example.com? Momentan werde ich mit Spam bombardiert und lehne E-Mails auf dieser Basis ab check_recipient_access.

Eine Test-E-Mail:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 <HOSTNAME> ESMTP Postfix (Debian/GNU)
ehlo test.com
250-<HOSTNAME>
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

Momentane Situation:

mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok

Erwartet:

mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
REJECT

Und

mail from: [email protected]
250 2.1.0 Ok
rcpt to: [email protected]
250 2.1.5 Ok

Die Ausgabe vonpostconf -n

user@hostname:~$ sudo postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
header_checks = pcre:/etc/postfix/header_checks
inet_interfaces = loopback-only
mailbox_size_limit = 0
mydestination = <hostname>, localhost.<domain>, localhost
mydomain = example.com
myhostname = <hostname>
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.32.247.0/24
myorigin = <hostname>
readme_directory = no
recipient_delimiter = +
relay_domains = example.com
relayhost = [10.32.247.125]:10000
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_helo_required = yes
smtpd_recipient_restrictions = reject_unauth_destination, reject_unknown_recipient_domain, permit
smtpd_sender_restrictions = check_recipient_access pcre:/etc/postfix/sender_access,  reject_unauth_pipelining,  reject_non_fqdn_recipient,  reject_unknown_recipient_domain,  permit_mynetworks,  reject_unauth_destination,  permit
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Maillog-Datei im ausführlichen Modus:http://pastebin.com/9q7f5DFp

Mein aktuelles Szenario:

E-Mail --> Postfix akzeptiert --> Überprüft Header --> Verwirft, wenn es nicht zu example.com gehört

Erwartet:

E-Mail --> Postfix prüft RCPT TO: == example.com --> Lehnt ab, wenn dies nicht der Fall ist, und verarbeitet es nicht weiter.

Antwort1

Hier die Schlüsselzeile aus Ihrem Mail.log

NOQUEUE: Verwerfen: RCPT von localhost[127.0.0.1]: : Empfängeradresse löst DISCARD-Aktion aus; von= bis= proto=ESMTP helo=

In Postfix DISCARDbedeutet dies, dass Postfix vorgibt, die E-Mail zu akzeptieren, aber in Wirklichkeit wird die E-Mail an /dev/null gesendet (mit anderen Worten, es wird die E-Mail verwerfen). Wenn Sie also mit Telnet prüfen, antwortet Postfix mit „OK, ich akzeptiere es“.

Antwort2

Die Definition eines offenen Relays ist ein SMTP-Server, der es jedem, der nicht physisch an Ihr Netzwerk gebunden ist, erlaubt, darüber E-Mails zu senden. Also sollte jeder in Ihrem internen Netzwerk in der Lage sein, ohne Authentifizierung E-Mails über den Server an andere SMTP-Server zu senden. Allerdings möchten Sie diese Möglichkeit nicht auf die ganze Welt ausdehnen. Normalerweise werden zuerst alle Permission-Anweisungen ausgeführt und dann reject_unauth_destination. Ich habe es noch nie andersherum gesehen, also bin ich nicht sicher, ob es funktioniert. Sie lehnen in Ihrem Setup jedoch die falschen Dinge ab. reject_unknown_recipient_domain trifft hier eigentlich nicht zu, es ist eine Absenderbeschränkung. reject_unauth_destination bewirkt hier nichts, da Sie mit der Permission-Anweisung alles zulassen. Aus diesem Grund stehen Permissions normalerweise vor den Reject-Anweisungen, damit weiß, was abgelehnt werden soll. Zumindest macht das für mich Sinn.

smtpd_recipient_restrictions = meine_Netzwerke_zulassen, sasl_authenticated_zulassen, unauth_destination_ablehnen

Dies bedeutet, dass alle Netzwerke zugelassen werden, die in „mynetworks“ definiert sind, und alle Benutzer, die sich ordnungsgemäß per SSL/TLS-Verbindung authentifiziert haben, und alles andere abgelehnt wird, also KEIN OFFENES RELAY.

verwandte Informationen