
Postfix weigert sich, E-Mails als Relayhost zu senden. Es wird immer wieder Folgendes angezeigt:
connect to mydomain.com[xxx.xx.xxx.xxx]:25: Verbindung abgelehnt
Allerdings ist der Port 25 geöffnet:
sudo netstat -ntlp
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 39162/mysqld
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 57910/proftpd: (acc
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 614/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 762/sshd: /usr/sbin
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 70265/master
tcp6 0 0 :::3306 :::* LISTEN 39162/mysqld
tcp6 0 0 :::80 :::* LISTEN 61217/apache2
tcp6 0 0 :::22 :::* LISTEN 762/sshd: /usr/sbin
tcp6 0 0 ::1:25 :::* LISTEN 70265/master
tcp6 0 0 :::443 :::* LISTEN 61217/apache2
Ich habe keine Ahnung, woher dieses Problem kommt.
Kann mir jemand helfen?
Antwort1
Ihr Relayhost erfordert eine Authentifizierung. Das heißt, Sie müssen nachweisen, dass Sie berechtigt sind, E-Mails über diesen Relayhost zu versenden. Normalerweise stellt Ihnen der Relayhost-Betreiber Anmeldeinformationen (einen Benutzernamen und ein Passwort) zur Verfügung, die Sie in Ihrem Postfix so konfigurieren, dass es bei der Kommunikation mit dem Relayhost verwendet wird.
Die Konfiguration der SMTP-Client-Authentifizierung (die verwendet wird, wenn Ihr Postfix mit dem Relayhost kommuniziert, der der SMTP-Server ist) ist beschrieben inPostfix SASL Anleitung. Hier ist wie:
Im Postfix main.cf
:
relayhost = [relay.host.name]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
Die erste Zeile legt den Relay-Host fest, die zweite aktiviert die Authentifizierung und die dritte Zeile gibt die Datei an, in der die Anmeldeinformationen für jeden Relay-Host gespeichert sind /etc/postfix/sasl_passwd
. In diese Datei geben Sie Folgendes ein:
[relay.host.name] username:password
Führen Sie es immer aus postmap /etc/postfix/sasl_passwd
, nachdem Sie Änderungen an dieser Datei vorgenommen haben und postfix reload
nachdem Sie sie bearbeitet haben main.cf
. Beschränken Sie außerdem den Zugriff auf diese Datei, da sie vertrauliche Informationen enthält:
chmod 0600 /etc/postfix/sasl_passwd
chown root:root /etc/postfix/sasl_passwd
Beachten Sie, dass Sie dies sowohl in als auch in der Datei angeben müssen , wenn Ihr Relayhost Ihre Übermittlungen auf einem anderen Port erwartet (als ich beispielsweise einen Relayhost einrichten musste, tat ich dies auf smtp submission
Port ).tcp/587
relayhost = [relay.host.name]:submission
main.cf
sasl_passwd
Der Postfix SMTP-Client unterstützt kein „direktes SMTPS“ (sie nennen es „Wrappermodus“), bei dem der SMTP-over-SSL-Server einen SSL-Handshake direkt am Port erwartet tcp/465
(wie es Google tut). Es wird nur TLS über Port 25 oder 587 unterstützt, das mit dem Befehl STARTTLS gestartet werden kann.
Antwort2
Connection refused
bedeutet, dass auf dem angegebenen Port der angegebenen Schnittstelle nichts lauscht. Und Ihre Netstat-Ausgabe zeigt, dass Port 25 nur auf der 127.0.0.1
Loopback-Schnittstelle lauscht.
Wenn Sie versuchen, von einem anderen Computer darauf zuzugreifen, ist es nicht erreichbar.
Damit Postfix auf allen Schnittstellen lauscht, müssen Sie Folgendes ändern:inet_interfaces
:
inet_interfaces = all
Wenn Sie über mehrere Schnittstellen verfügen und nicht möchten, dass auf allen davon gehörig abgehört wird, können Sie auch eine durch Kommas getrennte Liste der IP-Adressen angeben, auf denen gehörig abgehört werden soll.