
Ich habe einen Postfix-Server, der auf einem Kimsufi-VPS läuft, ich habe Roundcube darauf installiert und alles ist in Ordnung. Das Problem ist, dass es ein Timeout gibt, wenn ich versuche, mich von einem anderen Server aus zu verbinden:
telnet whys.fr 25
Trying 5.196.66.189...
telnet: Unable to connect to remote host: Connection timed out
hier ist meine Netstat-Ausgabe:
netstat -ntpul | grep 25
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 17643/master
tcp6 0 0 :::25 :::* LISTEN 17643/master
Und die aktuellen iptables-Regeln:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Telnet vom lokalen Host funktioniert prima:
telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 whys.fr ESMTP Postfix (Debian/GNU)
ehlo whys.fr
250-whys.fr
250-PIPELINING
250-SIZE 10240000
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
Der Server wird im Rechenzentrum von OVH gehostet und Port 25 ist nicht blockiert:
nmap -p 25 whys.fr
Starting Nmap 6.47 ( http://nmap.org ) at 2015-02-20 15:16 CET
Nmap scan report for whys.fr (5.196.66.189)
Host is up (0.019s latency).
rDNS record for 5.196.66.189: ns330237.ip-5-196-66.eu
PORT STATE SERVICE
25/tcp filtered smtp
Nmap done: 1 IP address (1 host up) scanned in 0.72 seconds
Ich habe auch in E-Mail-SPAM-Listen nachgesehen, ob meine IP-Adresse in einer davon steht, was nicht der Fall ist.
Wie kann ich Telnet 25 von außerhalb akzeptieren? Ich habe jetzt keine Ahnung, habe bereits alle Fragen dazu auf SF und jede Menge davon im Rest des Internets gesehen.
Antwort1
Laut den Nmap-Dokumenten:
filtered
Nmap cannot determine whether the port is open because packet filtering prevents
its probes from reaching the port. The filtering could be from a dedicated
firewall device, router rules, or host-based firewall software. These ports
frustrate attackers because they provide so little information. Sometimes they
respond with ICMP error messages such as type 3 code 13 (destination unreachable:
communication administratively prohibited), but filters that simply drop probes
without responding are far more common. This forces Nmap to retry several times
just in case the probe was dropped due to network congestion rather than
filtering. This slows down the scan dramatically.
Es sieht also so aus, als ob Ihr Port einfach irgendwo durch eine Firewall blockiert ist. Vielleicht Ihr lokaler ISP? Denn wenn ich versuche, eine Verbindung herzustellen, erhalte ich eine Verbindung:
$ telnet whys.fr 25
Trying 5.196.66.189...
Connected to whys.fr.
Escape character is '^]'.
220 whys.fr ESMTP Postfix (Debian/GNU)
Leider kommt es nicht selten vor, dass ISPs direkte Verbindungen zu Port 25 außerhalb ihres eigenen Netzwerks blockieren, um zu verhindern, dass Bots auf Client-Rechnern direkt Spam versenden.
Antwort2
Das erste, was ich tun würde, bevor ich weitermache, wäre, Port 25 Ende-zu-Ende mit einem Tool wie zu testenNetzkatze.
Das Tool ist bei den meisten Linux-Distributionen standardmäßig enthalten. Unter CentOS würde ich beispielsweise Postfix stoppen, um Port 25 freizugeben. Dann würde ich Netcat folgendermaßen starten:
# nc -l 25
Auf dem Remote-Client würde ich es dann folgendermaßen starten:
# nc {ip of remote server} 25
Dann sollte alles, was Sie an beiden Enden eingeben, auf dem Bildschirm angezeigt werden. Wenn dies nicht der Fall ist, wird Ihr Port auf dem Weg blockiert.