it-swarm.com.de

Wie korrigiere ich Postfix '' Relay Access Denied '?

Um ein Problem mit einer Namensinkongruenz im Sicherheitszertifikat zu beheben, habe ich heute Morgen die empfohlenen Schritte von So beheben Sie das SSL des Mailservers? befolgt, aber jetzt Wenn ich versuche, eine E-Mail von einem Client zu senden (in diesem Fall ist der Client Windows Mail), wird die folgende Fehlermeldung angezeigt.

Die abgelehnte E-Mail-Adresse lautete "[email protected]". 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 weiterhin E-Mails von diesem Konto abrufen und E-Mails an andere Konten derselben Domain senden. Ich kann einfach keine E-Mails an Empfänger außerhalb unserer Domain senden.

Ich habe versucht, TLS insgesamt zu deaktivieren, aber keine Würfel, ich erhalte immer noch den gleichen Fehler.

Wenn ich die Datei mail.log, Ich sehe 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

Datei main.cf sieht aus wie das:

#
# 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

Nebenbei möchte mein Arbeitgeber E-Mails von Kunden (Thunderbird und Outlook) sowohl innerhalb als auch außerhalb unseres lokalen Netzwerks senden können.

59
Noah Goodrich

TLS aktiviert nur die Verschlüsselung in der SMTP-Sitzung und hat keinen direkten Einfluss darauf, ob Postfix eine Nachricht weiterleiten darf oder nicht.

Die weitergeleitete Nachricht wird weitergeleitet, weil die Regeln für smtpd_recipient_restrictions nicht übereinstimmen. Eine dieser Bedingungen muss erfüllt sein, damit die Nachricht gesendet werden kann:

smtpd_recipient_restrictions =
    permit_sasl_authenticated
    check_recipient_access hash:/etc/postfix/filtered_domains
    permit_mynetworks
    reject_unauth_destination

Um diese Regeln zu erklären:

permit_sasl_authenticated

ermöglicht authentifizierte Absender über SASL. Dies ist erforderlich, um Benutzer außerhalb Ihres Netzwerks zu authentifizieren, die normalerweise blockiert sind.

check_recipient_access

Dies führt dazu, dass Postfix in/etc/postfix/filtered_domains nach Regeln sucht, die auf der Empfängeradresse basieren. (Gemessen am Dateinamen des Dateinamens blockiert es wahrscheinlich nur bestimmte Domänen ... Überprüfen Sie, ob dort gmail.com aufgeführt ist?)

permit_mynetworks

Dies ermöglicht Hosts nach IP-Adresse, die den in $ mynetworks angegebenen IP-Bereichen entsprechen. In der von Ihnen geposteten Datei main.cf wurde $ mynetworks auf 127.0.0.1 festgelegt, sodass nur vom Server selbst generierte E-Mails weitergeleitet werden.

Basierend auf dieser Konfiguration muss Ihr E-Mail-Client die SMTP-Authentifizierung verwenden, bevor er Nachrichten weiterleiten darf. Ich bin nicht sicher, welche Datenbank SASL verwendet. Dies wird in /usr/lib/sasl2/smtpd.conf angegeben. Vermutlich wird auch dieselbe Datenbank wie in Ihren virtuellen Postfächern verwendet, sodass Sie die SMTP-Authentifizierung in Ihrem E-Mail-Client aktivieren und fertig sein sollten.

60
Brandon
smtpd_use_tls = no

Sie haben TLS deaktiviert und müssen Ihr lokales Netzwerk jetzt autorisieren, indem Sie es zu mynetworks hinzufügen. Zum Beispiel,

mynetworks = 192.168.1.0/24 127.0.0.0/8

Dadurch wird das Senden nur von Ihrem lokalen Netzwerk behoben. Um E-Mails von außerhalb Ihres lokalen Netzwerks zu senden, muss die TLS-Authentifizierung funktionieren.

15
pgs

Ich denke du vermisst dich domain.com in mydestination, weil der Standard relay_domains=$mydestination, damit Sie die Konfiguration der Zeile anhängen können:

mydestinations = $mydomain, $myhostname, localhost, localhost.localdomain

oder:

relay_domains = $mydomain

Vergessen Sie nicht, den Postfix-Server neu zu starten (service postfix restart) jedes Mal, wenn Sie die Postfix Conf-Datei bearbeiten.

6
Dzung Nguyen

Ich hatte das gleiche Problem in Outlook (mit Dovecote und Postfix-Backend) und verbrachte zwei Tage damit, 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 jetzt an Google Mail gesendet. Eine ausführliche Anleitung zum Auffinden der Einstellung finden Sie hier http://support.bluetie.com/node/44 .

2
Dee

Dieses Problem nervte mich eine Weile. Ich habe versucht, eine Verbindung von server1.domain.com zu server2.domain.com herzustellen.

Hier ist, wie ich das behoben habe -

#/etc/postfix/main.cf
mydomain = server1.domain.com
myhostname = $mydomain
virtual_alias_maps = hash:/etc/postfix/virtual
alias_database = hash:/etc/postfix/virtual
myorigin = /etc/mailname
mydestination = localhost.localdomain localhost $mydomain
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Sie müssen auch sicherstellen, dass Sie/etc/hosts und/etc/hostname richtig eingestellt haben, und sicherstellen, dass Sie nach Netzwerkänderungen Folgendes ausführen:

Sudo service networking restart

und das Folgende nach Änderungen der Postfix-Konfiguration

Sudo service postfix reload
2
A23

Für mich: Ich musste localhost zu mynetworks hinzufügen, unabhängig von der Tatsache 127.0.0.0/8 war schon da. So sieht es jetzt aus:

mynetworks = 1.1.1.1/32, 127.0.0.0/8, localhost

0
Putnik