
Um heute Morgen ein Problem mit einer Namensfehlanpassung im Sicherheitszertifikat zu beheben, habe ich die empfohlenen Schritte vonWie behebt man SSL für den Mailserver?, aber jetzt, wenn ich versuche, eine E-Mail von einem Client aus zu senden (in diesem Fall ist der Client Windows Mail), erhalte ich die folgende Fehlermeldung.
Die abgelehnte E-Mail-Adresse war '[email geschützt]'. Betreff: 'Dies ist ein Test. ', Konto: 'mail.domain.com', Server: 'mail.domain.com', Protokoll: SMTP, Serverantwort: '554 5.7.1: Relay-Zugriff verweigert', Port: 25, Sicher (SSL): Nein, Serverfehler: 554, Fehlernummer: 0x800CCC79
Bearbeiten: Ich kann immer noch E-Mails von diesem Konto abrufen und E-Mails an andere Konten in derselben Domäne senden. Ich kann nur keine E-Mails an Empfänger außerhalb unserer Domäne senden.
Ich habe versucht, TLS vollständig zu deaktivieren, aber ohne Erfolg, ich erhalte immer noch denselben Fehler.
Wenn ich die Datei überprüfe mail.log
, sehe ich Folgendes.
Jul 18 08:24:41 company imapd: LOGIN, [email protected], ip=[::ffff:111.111.11.11], protocol=IMAP
Jul 18 08:24:42 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=0, body=0, rcvd=83, sent=409, time=1
Jul 18 08:25:19 company postfix/smtpd[29282]: connect from company.university.edu[111.111.11.11]
Jul 18 08:25:19 company postfix/smtpd[29282]: NOQUEUE: reject: RCPT from company.university.edu[111.111.11.11]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<UserPC>
Jul 18 08:25:19 company postfix/smtpd[29282]: disconnect from company.university.edu[111.111.11.11]
Jul 18 08:25:22 company imapd: DISCONNECTED, [email protected], ip=[::ffff:111.111.11.11], headers=13, body=142579, rcvd=3289, sent=215892, time=79
Die Datei main.cf
sieht folgendermaßen aus:
#
# Postfix MTA Manager Main Configuration File;
#
# Please do NOT edit this file manually;
#
#
# Postfix directory settings; These are critical for normal Postfix MTA functionallity;
#
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix
#
# Some common configuration parameters;
#
inet_interfaces = all
mynetworks = 127.0.0.0/8
mynetworks_style = host
myhostname = mail.domain.com
mydomain = domain.com
myorigin = $mydomain
smtpd_banner = $myhostname ESMTP 2.4.7.1 (Debian/GNU)
setgid_group = postdrop
#
# Receiving messages parameters;
#
mydestination = localhost, company
append_dot_mydomain = no
append_at_myorigin = yes
transport_maps = mysql:/etc/postfix/transport.cf
#
# Delivering local messages parameters;
#
mail_spool_directory = /var/spool/mail
mailbox_size_limit = 0
mailbox_command = procmail -a "$EXTENSION"
biff = no
alias_database = hash:/etc/aliases
local_recipient_maps =
#
# Delivering virtual messages parameters;
#
virtual_mailbox_maps=mysql:/etc/postfix/mysql_virt.cf
virtual_uid_maps=mysql:/etc/postfix/uids.cf
virtual_gid_maps=mysql:/etc/postfix/gids.cf
virtual_mailbox_base=/usr/local/virtual
virtual_maps=mysql:/etc/postfix/virtual.cf
virtual_mailbox_domains=mysql:/etc/postfix/virtual_domains.cf
#
# SASL paramters;
#
smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtp_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtp_tls_key_file = /etc/postfix/ssl/smptd.key
smtpd_tls_CAfile = /etc/postfix/ssl/smptd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smptd.crt
smtpd_tls_key_file = /etc/postfix/ssl/smptd.key
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_sender_restrictions =
permit_sasl_authenticated
permit_mynetworks
smtpd_recipient_restrictions =
permit_sasl_authenticated
check_recipient_access hash:/etc/postfix/filtered_domains
permit_mynetworks
reject_unauth_destination
Nebenbemerkung: Mein Arbeitgeber möchte E-Mails von Clients (Thunderbird und Outlook) sowohl innerhalb als auch außerhalb unseres lokalen Netzwerks senden können.
Antwort1
TLS aktiviert lediglich die Verschlüsselung der SMTP-Sitzung und hat keinen direkten Einfluss darauf, ob Postfix eine Nachricht weiterleiten darf oder nicht.
Die Meldung „Weiterleitung verweigert“ wird angezeigt, weil die smtpd_recipient_restrictions
Regeln nicht eingehalten wurden. Damit die Nachricht weitergeleitet werden kann, muss eine dieser Bedingungen erfüllt sein:
smtpd_recipient_restrictions =
permit_sasl_authenticated
check_recipient_access hash:/etc/postfix/filtered_domains
permit_mynetworks
reject_unauth_destination
So erklären Sie diese Regeln:
permit_sasl_authenticated
erlaubt authentifizierte Absender über SASL. Dies ist erforderlich, um Benutzer außerhalb Ihres Netzwerks zu authentifizieren, die normalerweise blockiert sind.
check_recipient_access
Dadurch sucht Postfix nach /etc/postfix/filtered_domains
Regeln basierend auf der Empfängeradresse. (Dem Dateinamen nach zu urteilen, werden wahrscheinlich nur bestimmte Domänen blockiert. Überprüfen Sie, ob gmail.com dort aufgeführt ist.)
permit_mynetworks
Dadurch werden Hosts per IP-Adresse zugelassen, die den in angegebenen IP-Bereichen entsprechen $mynetworks
. In der von Ihnen geposteten Datei main.cf $mynetworks
war auf eingestellt 127.0.0.1
, sodass nur vom Server selbst generierte E-Mails weitergeleitet werden.
Basierend auf dieser Konfiguration muss Ihr E-Mail-Client SMTP-Authentifizierung verwenden, bevor er Nachrichten weiterleiten darf. Ich bin nicht sicher, welche Datenbank SASL verwendet. Das ist in angegeben /usr/lib/sasl2/smtpd.conf
. Vermutlich verwendet es auch dieselbe Datenbank wie Ihre virtuellen Postfächer, sodass Sie die SMTP-Authentifizierung in Ihrem E-Mail-Client aktivieren und fertig sein sollten.
Antwort2
smtpd_use_tls = no
Sie haben TLS deaktiviert, daher müssen Sie nun Ihr lokales Netzwerk autorisieren, indem Sie es zu hinzufügen mynetworks
. Beispiel:
mynetworks = 192.168.1.0/24 127.0.0.0/8
Dadurch wird nur das Senden aus Ihrem lokalen Netzwerk behoben. Zum Senden von E-Mails von außerhalb Ihres lokalen Netzwerks müssen Sie die TLS-Authentifizierung aktivieren.
Antwort3
Ich denke, Sie vermissen domain.com in mydestination, da dies die Standardeinstellung ist relay_domains=$mydestination
. Sie können Ihrer Konfiguration daher die folgende Zeile anhängen:
mydestinations = $mydomain, $myhostname, localhost, localhost.localdomain
oder:
relay_domains = $mydomain
Vergessen Sie nicht, den Postfix-Server ( service postfix restart
) jedes Mal neu zu starten, wenn Sie die Postfix-Konfigurationsdatei bearbeiten.
Antwort4
Ich hatte dasselbe Problem in Outlook (mit Dovecote und Postfix-Backend) und habe zwei Tage damit verbracht, nach einer Lösung zu suchen und meine Konfigurationsdateien zu optimieren. Ich musste lediglich in den E-Mail-Einstellungen in Outlook auf der Registerkarte „Ausgehend“ die Option „Server erfordert Authentifizierung“ aktivieren, und meine Nachrichten werden nun an Gmail gesendet. Eine detaillierte Anleitung zum Auffinden der Einstellung finden Sie hier.http://support.bluetie.com/node/440.