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 hostname
des 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-all
Ergebnisse 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 25
ergab:
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 25
zu:
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.com
fü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.com
auch 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 587
vom Kunden versucht und eine No route to host
Antwort 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 --flush
gefolgt von firewall-cmd --reload
und 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.cf
auf 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 25
im 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 tcpdump
auf dem Server zu so viel Ausgabe, dass die Ergebnisse endlos gescrollt wurden, bis ich Strg-C eingab. Also habe ich dann getippt tcpdump port 25
und 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 25
gleichzeitig auf der Devbox und dem Server erneut und ließ sie offen, ohne zu Ctrl-C
tippen. 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 25
Befehle haben keine Aktivität gemeldet . Und die Summen kamen auch auf Null, als ich Ctrl-C
danach an beiden Terminals tippte .