Also, ich weiß echt nicht wie das geht, und ich bin scheint's zu dämlich es zu kapieren. Folgendes:
Ich habe einen SMTP MTA (bzw. kompletter Mailserver eigentlich), der hört auf Port 25/SMTP, Port 465/SMTPS und Port 587/SMTPES (STARTTLS). Ganz normal. Die Firewall am selben Host gibt alle drei Ports global frei. Im Mailserver gibt es keinerlei Regel, die den Zugang zu den Ports auf Host/IP-Basis filtern würde.
Trotzdem kann ich nicht auf Port 25 connecten, die anderen beiden gehen aber. Ich habe das auch schon aus unterschliedichen Quellnetzwerken versucht, und mit unterschiedlichen Rechnern, auf denen unterschiedliche Betriebssysteme laufen (Tests mit deaktivierten Clientfirewalls).
Der Witz des Tages: Andere MTA's im Netz (z.B. der von gmail.com oder gmx.net) können aber sehr wohl verbinden, und ich kann die Connections der entfernten IPs zu meiner öffentlichen IP auf Port 25 sehen. Z.B. mit Netstat oder mit der Verbindungsanzeige meiner Firewall, aber auch im Log des Mailservers.
Also die können ganz normal zu mir herverbinden und Server-zu-Server SMTP erledigen. wtf?
Nur um ganz sicherzugehen habe ich 465 und 587 Mal dicht gemacht, sodaß es nur mehr per Port 25 ginge. 465/587 werden zwar Server-zu-Server normal eh nicht benutzt, aber jo. Dennoch konnten externe MTAs weiterhin ganz normal Mail zu mir zustellen. Aber wenn ich versuche eine Verbindung z.B. per Telnet aufzureißen... "Connection refused".
Habe Mal den guten alten nmap ausgepackt um etwas mehr zu finden. Folgende Scantypen waren interessant:
TCP Null (schaut firewalled aus):
TCP Window (schaut firewalled aus):
TCP ACK (schaut firewalled aus):
SCTP INIT (eigentlich ein hirnloser Test in dem Fall, aber egal, auch firewalled):
COOKIE ECHO (Auch hirnlos, weil das ist ebenfalls SCTP, aber ähnliches Ergebnis):
IP Protocol (detektiert fälschlicherweise LEAF-1 statt SMTP, ansonsten w.o.):
Alle anderen Portscans weisen den Port als "closed" aus, also z.B. TCP SYN, Connect(), FIN oder Xmas.
Habe in meiner Verzweiflung auch schon meine Quellports per nmap hoch angesetzt, tlw. auf genau dieselben wie von diversen MTA's im Internet auch genutzt, bringt natürlich nichts.
Telnet-Ausgabe:
$ telnet xin.at 25
Trying 83.64.254.60...
telnet: connect to address 83.64.254.60: Connection refused
$ telnet xin.at 465
Trying 83.64.254.60...
Connected to xin.at.
Escape character is '^]'.
Das gibt's ja echt nicht. Wie gesagt, ich steh' im Wald. Keines meiner Clientprogramme (z.B. Mozilla Thunderbird) kann da draufverbinden, schaut geblockt aus. Aber die Mailserver tauschen munter untereinander Mails über eben diesen Port aus, so wie es sich gehört, und man kann dabei zuschauen wie die Connections ganz normal reinkommen. Warum funktioniert das überhaupt noch, wenn der Port dicht ist? Oder anders herum: Warum komme ich "mit der Hand" bzw. mit Clientsoftware von keinem einzigen INet Host ran?
Überwitz: Aus dem LAN und von localhost GEHT ES! Also man könnte meinen, das muß ja die Firewall sein, trusted Zone gäbe es ja für LAN und localhost. Alle Regeln zig Mal geprüft, aber da ist keine entsprechende Config drin. Macht auch wenig Sinn, wenn externe Mailserver ja eh rankommen... Zudem gibt es nur eine Mailserver-Firewallregel, in der alle drei SMTP Ports zugleich erfaßt sind... Aber 465 und 587 gehen ja. Sonstige Regeln zu Port 25 existieren einfach nicht. Habe auch extra noch Mal eine ganz oben im Firewallstack eingerichtet, die Listen Port 25 explizit global aufmacht, hat auch nichts geholfen.
Also Fazit: Ich komme nicht auf meinen Port 25, obwohl weder Firewall noch Mailserver selbst ihn blockieren. Egal aus welchem Netzwerk, egal von welchem System. Andere Mailserver aber kommen hin, egal welche.
Ich dachte mir schon daß mir evtl. der Provider den Port irgendwie gefiltert hat. Ist aber eine Businessleitung auf Basis getunnelten Ethernets, und üblicherweise drehen mir die da eher nichts zu. Und wie mehrfach gesagt: Andere MTAs kommen ja alle hin, auch obskure. Vier an der Zahl, die ich mit Erfolg getestet habe: GMX, gmail, guerrillamail.com und der MTA meines Arbeitgebers.
Irgendwo bin ich irgendwie grade extrem dumm oder sonst was, ich kapier's nicht.
Man erlöse mich von dem Brett vor meinen Augen!
Ihr dürft's auch gerne selbst mit dem Port auf dem Server rumspielen, nur bitte nicht hämmern oder fluten. Er hat's schon schwer genug. Wenn gewünscht, kann ich eine temporäre Sink-Addy einrichten, zu der ihr auch hinmailen könnt's. Ich kann auch noch die Firewallregeln die es gibt alle rausschreiben und als Pseudoruleset (aber akkurat!) hier reinposten. Inklusive Zonenkonfiguration und Dienstekonfiguration. Vielleicht sehe ich ja nur was offensichtliches nicht.
Ajo, es gibt auch andere Low Ports, die offen sind. Funktionieren allesamt normal.
Ich hoffe ich habe den Sachverhalt nicht zu wirr dargestellt.