Zeitüberschreitung der Postfix-SMTP-Verbindung, warum?

7

Auf einem CentOS 7-Webserver sind Postfix, Dovecot und Mailx installiert. Ich konnte eine IMAP-Verbindung zum Server herstellen, um Posteingangs-E-Mails mit einem Remote-Thunderbird-Client zu lesen, aber ich kann keine SMTP-Verbindung zum Senden von E-Mails von Thunderbird herstellen. Wenn ich Forensik mache, stelle ich fest, dass die versuchte SMTP-Verbindung abläuft. Wie kann ich dieses Problem mit dem Zeitlimit für die Verbindung beheben, damit ich E-Mails von Thunderbird über den Server senden kann?

Meine bisherige Forensik hat zu folgenden Ergebnissen geführt:

Die Eingabe hostnamedes Terminals am Server kehrt zurück mydomain.com.

nano /usr/lib/firewalld/services/smtp.xml zeigt an, dass der SMTP-Port 25 ist

Der SMTP-Dienst wird in der öffentlichen Zone aktiviert, weil folgende firewall-cmd --list-allErgebnisse erzielt werden:

public (default, active)
  interfaces: enp3s0
  sources: 
  services: dhcpv6-client imaps openvpn smtp
  ports: 
  masquerade: yes
  forward-ports: 
  icmp-blocks: 
  rich rules: 

Wenn ich jedoch versuche, von meiner Devbox zum Remote-CentOS 7-Server zu telneten, erhalte ich die folgenden Ergebnisse. Die Eingabe telnet mydomain.com 25ergab:

Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out

Dann führte die Eingabe telnet smtp.mydomain.com 25zu:

Trying my.SERVER.ip.addr...
telnet: connect to address my.SERVER.ip.addr: Connection timed out

Die Eingabe openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host smtp.mydomain.comführt außerdem zu:

socket: Connection timed out
connect:errno=110

In ähnlicher Weise führte die Eingabe openssl s_client -CApath /etc/ssl/certs -starttls smtp -port 25 -host mydomain.comauch zu:

socket: Connection timed out
connect:errno=110

Ich habe getippt nano /etc/postfix/main.cf, um die Konfiguration zu untersuchen, aber nichts in Bezug auf Ports gefunden.

BEARBEITEN:

Gemäß dem Rat von FaheemMitha habe ich es telnet mydomain.com 587vom Kunden versucht und eine No route to hostAntwort erhalten. Ich denke, das liegt daran, dass nur Port 25 in der Firewall für SMTP geöffnet ist.

Ich dachte daher, Telnet vom Remote-Server mydomain.com aus zu versuchen. Als ich mich über ssh bei meinem Remote-Server anmeldete und tippte telnet localhost 25, war das Ergebnis:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mydomain.com ESMTP Postfix  

Dies lässt mich vermuten, dass Postfix auf Port 25 ausgeführt wird, aber irgendwie keine externen Verbindungen akzeptieren kann.

EDIT # 2

Gemäß dem Vorschlag von @ RedCricket bin ich gelaufen iptables -L. Da die Ergebnisse ausführlich waren, habe ich sie auf eine Filesharing-Site hochgeladen, die Sie durch Klicken auf diesen Link anzeigen können.

Ich habe auch versucht, iptables --flushgefolgt von firewall-cmd --reloadund dann die Telnet- und Thunderbird-Tests von oben wiederholt, aber ich erhalte immer noch den Fehler beim Zeitlimit für die Verbindung.

Was kann ich noch versuchen?

Ich habe das Ganze /etc/postfix/main.cfauf eine Filesharing-Site hochgeladen . Sie können es lesen, indem Sie auf diesen Link klicken.

EDIT # 3

Eine gültige E-Mail-Adresse jemand.else@some_other_domain.com sendet problemlos eine E-Mail an [email protected]. Daher ließ ich meinen Thunderbird-Client als Test versuchen, im Rahmen der oben in diesem OP dokumentierten Arbeit eine E-Mail an jemanden zu senden. Heute Morgen habe ich in meinem Thunderbird als Ergebnis der Test-E-Mail eine Nachricht an den Absender erhalten. Ich interpretiere diese zurückgegebene Nachricht so, dass mindestens eine meiner Testnachrichten von Thunderbird in das SMTP auf mydomain.com gelangt ist, mydomain.com jedoch nicht in der Lage war, nach some_other_domain.com zu suchen oder eine andere Verbindung herzustellen. Hier ist die Nachricht:

This is the mail system at host mydomain.com.

I'm sorry to have to someone.elserm you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The mail system

<someone.else@some_other_domain.com>: Host or domain name not found. Name service error for
    name=some_other_domain.com type=MX: Host not found, try again

Reporting-MTA: dns; mydomain.com
X-Postfix-Queue-ID: 2C915811BD1C
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Mon, 23 Feb 2015 16:46:34 -0500 (EST)

Final-Recipient: rfc822; someone.else@some_other_domain.com
Action: failed
Status: 4.4.3
Diagnostic-Code: X-Postfix; Host or domain name not found. Name service error
    for name=some_other_domain.com type=MX: Host not found, try again

ForwardedMessage.eml
Subject: key enclosed
From: [email protected]
Date: 02/23/2015 01:46 PM
To:    someone.else@some_other_domain.com

this is the body of the email  

Daher scheint es, dass manchmal die Verbindung von meiner Remote-Devbox zu mydomain.com geschlossen ist und zu anderen Zeiten die Verbindung von mydomain.com zum Rest des Internets geschlossen ist.

EDIT # 4

Nach dem Rat von @ derobert habe ich zuerst die beiden Telnet-Befehle von der devbox an den Server versucht, dann versucht, eine E-Mail von [email protected] mit dem Thunderbird-Client auf meiner devbox zu senden, und dann den Befehl tcpdump auf beiden ausgeführt devbox und auf dem Server. Typing tcpdump port 25im devbox Terminal ergab folgende:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

Abhören von tun0, RAW vom Verbindungstyp (Raw IP), Erfassungsgröße 65535 Bytes ^ C 0 Pakete erfasst 0 Pakete, die vom Filter empfangen wurden 0 Pakete, die vom Kernel verworfen wurden

Als nächstes führte die Eingabe tcpdumpauf dem Server zu so viel Ausgabe, dass die Ergebnisse endlos gescrollt wurden, bis ich Strg-C eingab. Also habe ich dann getippt tcpdump port 25und folgende Ergebnisse erhalten:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 65535 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel

Aus Neugier tippte ich dann tcpdump port 25gleichzeitig auf der Devbox und dem Server erneut und ließ sie offen, ohne zu Ctrl-Ctippen. Ich versuchte, manuell eine E-Mail von [email protected] mit dem Thunderbird-Client auf meiner Devbox zu senden. Ich habe immer noch den gleichen Verbindungszeitüberschreitungsfehler, aber die offenen tcpdump port 25Befehle haben keine Aktivität gemeldet . Und die Summen kamen auch auf Null, als ich Ctrl-Cdanach an beiden Terminals tippte .

CodeMed
quelle

Antworten:

5

Nach eingehender Fehlerbehebung haben wir festgestellt, dass der ISP auf der Clientseite den ausgehenden Port 25 (SMTP) blockiert. Dies wurde bestätigt, indem eine zufällige Mail-Server-Test-Site im Internet verwendet wurde und festgestellt wurde, dass eine gute Verbindung zum Mail-Server hergestellt werden konnte. SMTP-Pakete vom Client-Computer sind überhaupt nicht angekommen (bestätigt über tcpdump).

Die Lösung besteht darin, den SMTP-Listener an einem anderen Port neu zu konfigurieren. 465 (SMTP über SSL) und 587 (Mail Submission, RFC6409) sind gängige Optionen.

derobert
quelle
Vielen Dank und +1, dass Sie sich die Zeit genommen haben, um herauszufinden, dass dies ein Portproblem ist. Für andere Leser beachten Sie bitte, dass die Frage zum SMTP-Listener immer noch nicht gelöst ist und sich in dieser anderen Frage befindet: unix.stackexchange.com/questions/187807/…
CodeMed