SMTP Ports 25 und 587

Wenn man jemandem nach dem SMTP Port fragt ist die Antwort meistens “25/tcp”. Manchmal hört man noch “465/tcp” für SMTPS. Der Port darf dafür aber eigentlich nicht mehr verwendet werden (seit 1998), stattdessen soll STARTTLS über den normalen SMTP Port verwendet werden.

Seit einigen Jahren wird bei manchen ISPs, wenn man eine Einwahlverbindung (wie z.B. DSL) nutzt, der Port 25 für Verbindungen gesperrt, bekannt hierfür ist unter Anderem die Telekom. Diese Anbieter sperren bei Verdacht auf den Spamversand den Port 25 für ausgehende Verbindungen einzelner DSL Anschlüsse. Wie dies überprüft wird weiß ich nicht.

Als neuer Port für entsprechende Client zu Server Verbindungen wurde der Port 587/tcp definiert. Der Dienst hierzu heißt “Submission” und sieht laut RFC 2476 die Authentifizierung der User vor. Dies heißt, dass jegliche Server zu Server Verbindungen weiterhin über Port 25 erfolgen, die Clients sich aber auf Port 587 verbinden müssen/sollen.

Wie hier berichtet will Südkorea nun für “Endkunden” den Port 25 sperren. Sie Planen ähnliche Sperren wie bei der Telekom, die Server zu Server Kommunikation soll weiterhin über Port 25 laufen. Die Sperre soll den Versand von Spamnachrichten erschweren. Hier für muss man sich überlegen wie der E-Mail Versand normalerweise abläuft.

Der Enduser der eine E-Mail versenden will sendet diese z.b. mittels Thunderbird. Thunderbird verbindet sich auf den Mailserver des Anbieters von dem man eine E-Mail Adresse hat (bei mir ist es mein eigener Server), authentifiziert sich mit Usernamen und Passwort und reicht die E-Mail Weiter. Der Mailanbieter ist in dem Fall der Smart Host bzw. das Relay welches die Nachrichten weiterleitet.. Er nimmt die E-Mail an, schaut an wen sie zugestellt werden soll und verbindet sich mit dem Mailserver des Zielanbieters (z.b. gmx, gmail und co). Dieser Server nimmt die E-Mail nun ohne Authentifizierung an, da er für die Zieldomain zuständig ist und stellt die E-Mail nun lokal zu.

Das Grundprinzip ist also: Für Nachrichten die an andere Mailserver weitergeleitet werden sollen sollte man sich authentifizieren. Ist der Mailserver aber für die Zieldomain zuständig ist keine Authentifizierung notwendig und die E-Mail wird direkt angenommen. Meistens werden noch weitere Dinge, wie IP-Adresse und Domain des Absenders überprüft (ob der DNS richtig eingetragen ist) bzw. auch die IP-Adresse mit einer Blacklist abgeglichen.

Welche Wege gibt es nun Spamnachrichten zu versenden:

- Normale, virenverseuchte, PCs die direkt Verbindungen mit des Zielservern herstellen und die Spamnachrichtenversenden

- gehackte/verseuchte Server bzw. fehlerhaft konfigurierte Server, die Nachrichten direkt zustellen

- gehackte Useraccounts bei Mailhostern

Das Sperren von Port 25 greifen effektiv nur bei der ersten Gruppe. User die Einwahlverbindungen benutzen können bei entsprechenden Sperren E-Mails nicht direkt zustellen sondern dafür einen Smart Host verwenden, z.B. den ihres Mailanbieters. Der normale Internetuser macht dies auch so, er würde bestenfalls wahrscheinlich nichts von den Sperren mitbekommen, sofern er seinen E-Mail Client richtig konfiguriert hat und den Port 587 zur SMTP Kommunikation einsetzt. Bietet der Mailanbieter den Versand über den Port 587 nicht an, bleibt nur noch der (veraltete) Port 465 für SSL, welcher meistens auch unterstützt wird. Der Virus auf dem Rechner versucht dagegen die Zielsysteme zum Zustellen der Spamnachrichten direkt zu erreichen und wird durch die Sperre davon abgehalten. Die Kommunikation über Port 587 sollte nicht möglich sein, da auf dem Port grundsätzlich eine Authentifizierung vorgesehen ist. Hier setzen allerdings auch schon DNS Blacklisten an, die häufig entsprechende IP-Adressbereiche die zur dynamischen Vergabe vorgesehen sind bzw. Spamnachrichten versenden listen, wodurch Mailserver unautorisierte E-Mails von entsprechenden IP-Adressen nicht annehmen sollten.

Die zweite Gruppe kann man damit nicht blockieren. Hier hilft nur der Ansatz der DNS Blacklisten, der auch schon bei Gruppe 1 hilft. Falsch konfigurierte Server nehmen von unautorisierten Usern nicht nur E-Mails zur lokalen Zustellung an sondern leiten diese auch ohne Authentifizierung an andere Mailanbieter weiter.

Die dritte Gruppe der Absender kann man als Zielsystem der Spamnachricht bisher nicht effektiv blocken. Für alle Beteiligten ist die Nachricht nicht ohne weiteres von einer legitimen Nachricht zu unterscheiden. Hier ist man auf die Kooperation der Mailanbieter angewiesen, bei denen der gehackte Account registriert ist.

Die RFC für Port 587/tcp sieht ausdrücklich vor, dass auf diesem Port nur von autorisierten Benutzern Nachrichten angenommen werden sollen, eine Server zu Server Kommunikation soll hierüber nicht erfolgen. Ein richtig konfigurierter Mailserver sollte sich hieran auch halten, fehlerhaft konfigurierte Server sind aber immer noch ein Problem. Die Chance, dass ein Admin den Port 587 genauso falsch (also komplett ohne Authentifizierung) konfiguriert wie schon den Port 25 ist durchaus gegeben. Hier helfen also wieder “nur” Blacklists.

Eine Sperre des Ports 25 für Client zu Server Verbindungen ist nicht selten, von daher auch nicht weiter tragisch. Server zu Server Verbindungen darüber auch zu sperren würde allerdings keinen Sinn machen. Einerseits weil man damit gegen die RFC verstößt, andererseits weil Spammer nicht so unflexibel sind wie manch einer vermutet und rasch auf andere Ports ausweichen würden. Die Server zu Server Verbindung auch mit Passwörtern abzusichern ist nicht machbar. Weitere Sicherungsmaßnahmen zum Authentifizieren des Absenders werden zwar teilweise eingesetzt, meistens funktionieren sie aber nicht richtig oder sind nur halbherzig implementiert wodurch sie größtenteils nutzlos sind. (Oh, ich dachte den Beitrag dazu hätte ich schon veröffentlicht.)

Es bleibt abzuwarten, wie groß der Effekt der Portsperren beim Spamaufkommen sein wird. Ich selbst erwarte mir hiervon keinen merklichen Unterschied. Die meisten der ankommenden Spamnachrichten werden bei mir durch die NiX Spam DNSBL (Infos hierzu). Die wenigen Nachrichten, die es zum Spamassassin schaffen, kommen meistens von gehackten Useraccounts, hier werden die Sperren keinen Unterschied machen.

Nachtrag: Wenn man keine DNSBL verwendet kommt natürlich mehr Spam durch. Es gehen also schon noch einige direkt über Einwahlanschlüsse raus, so gesehen würde durch eine Sperre von Port 25 das Problem schon etwas abgeschwächt werden. Der Großteil der Nachrichten kommt aber eher von falsch konfigurierten Servern und von gehackten Useraccounts.

IPv6 Zertifizierung und die glue Records

Hurricane Electric, ein ISP aus den USA, bietet als (im Moment) einer der größten IPv6 Backbone Provider einerseits kostenlose IPv6 Tunnel (http://tunnelbroker.net, benutze ich selbst u.a. auch), aber auch eine IPv6 Zertifizierung an.

Die Zertifizierung ist kostenlos und besteht aus theoretischen und praktischen Aufgaben. Im Praktischen Teil muss man einen Server in mehreren Schritten komplett IPv6 fähig machen, der letzte Schritt ist die Eintragung von IPv6 glue Records bei der Domain Registrierunsstelle.

Ein glue Record enthält die IP Adresse zu dem Nameserver, der für eine Domain zuständig ist. Der Eintrag ist notwendig , wenn der Nameserver unter der gleichen Domain läuft als die Domain, die man auflösen möchte.

Für mich und meinen Server heißt das:

Meine “Haupt” Domain, unter der ich die meisten Services laufen lasse ist 4nx.de.

Mein primärer Nameserver “hört” auf den Namen ns1.4nx.de und gehört damit dieser selbst an. Dadurch muss bei der Denic direkt hinterlegt sein, unter welcher IP-Adresse dieser Nameserver erreichbar ist. Diesen Eintrag nennt man dann glue Record.

Um bei der IPv6 Zertifizierung den höchsten Grad zu erreichen, muss man seine Domain mit diesen Einträgen ausstatten. Alle vorherigen Schritte habe ich schon letztes Jahr gemacht. Diesen letzten erst gestern, aus einem einfachen Grund: Continue reading

Mittwoch ist IPv6 Tag

Ja, am Mittwoch ist es so weit.

Geplant ist, dass Google, Facebook, Akamai und viele andere Betreiber von Diensten im Internet ihre Dienste auch regulär per IPv6 zur Verfügung stellen.

Google macht das bisher unter http://ipv6.google.com und für User bestimmter Netzwerke/DNS Server auch auf http://google.com

“Normale” Internetnutzer bekommen dagegen keine IPv6 Adressen für Webseiten zurückgeliefert von Googles Nameserver. Damit wollen sie Problemen aus dem Weg gehen, die einige ältere Betriebssysteme (und manche Router) haben beziehungsweise haben könnten.

Facebook und co handeln ähnlich.

Anders wird es diesen Mittwoch sein. Am Mittwoch werden die Fragen nach IPv6 Adressen für Google, Facebook etc beantwortet und der Computer könnte die Webseite per IPv6 erreichen, sofern er per IPv6 angebunden ist, man kann auch Parallel IPv4 und IPv6 benutzen, meistens wird IPv6 bevorzugt wenn eine Webseite beides unterstützt. Wenn nicht sind alle aktuellen Betriebssysteme so clever es auch nicht zu versuchen sondern benutzen direkt IPv4.

Ich für meinen Teil setze IPv6 (zuhause zwar mit Tunnel) seit über einem Jahr ein und hatte bisher keine Probleme damit. Alle meine Server sind (mittlerweile nativ) IPv6 fähig und auch auf dieser Webseite ist es aktiviert. Rechts in der Spalte hab ich eine kleine Box eingebaut, die anzeigt ob man per IPv4 oder IPv6 hier ist.

Von Daher: Wenn du diese Webseite lesen kannst und bei dir keine Fehler auftreten dann wirst du wahrscheinlich auch keine Probleme am IPv6 Tag am Mittwoch haben. Wenn du diese Webseite nicht lesen kannst… Wenn bei dir Probleme mein Laden aufgetreten sind, dann lass es mich wissen ;)

Manche sehen im IPv6 Day zwar nur eine Alibiaktion, ich habe aber die Hoffnung, dass ein positiver Ausgang die Einführung von IPv6 beschleunigt.

Viele Firmen haben noch Hemmungen vor IPv6 bzw sehen keinen Nutzen darin (ok, darüber kann man sich streiten wenn man will). Von daher bin ich gespannt was am Mittwoch herauskommt, vielleicht ist IPv6 ja gar nicht so “schlimm” wie bisher befürchtet ;-)

 

Nachtrag: Christoph hat auch noch ein paar Worte dazu geschrieben

Mailgraph probleme

So langsam mal dafür sorgen, dass die Stille hier im Blog verschwindet (oder wenigstens versuchen) :)

Wie geplant hab ich den Server in der Nacht auf Montag (letzte Woche) umgezogen, hat soweit alles geklappt nur ein Script macht Probleme:

mailgraph – ein Script welches mit Hilfe von RRDtool Statistiken zu meinem Mailserver erstellt.

Ich weiß noch nicht woran es liegt, jedenfalls meint das Script “ein paar” Dateien zu öffnen, bei 16.700 ist dann das Limit erreicht und der Kernel macht dicht, nichts geht mehr (bis ich das Script abwürge). lsof kann auch nicht ausgeführt werden (während mailgraph läuft) , sonst wüsste ich welche Dateien der mailgraph öffnet.

Versuche mit ‘ulimit -n 3000′ die Zahl der maximal offenen Dateien auf 3000 zu reduzieren haben nicht funktioniert, wurden einfach ignoriert (oder überschrieben, wie auch immer…)

Ich werde die Tage mal wieder danach schauen, in der Hoffnung den Fehler irgendwann zu finden (das dann aber erst mal in einer Lokalen – vergleichbaren – VM), vielleicht liegt es daran, dass ich die “alten” rrd Tabellen einfach auf den neuen Server kopiert habe, glaube und hoffe ich aber nicht.

Falls jemand eine Idee hat woran es liegen könnte bin ich für Vorschläge offen ^^

Vorbereitungen zum Serverumzug

Ich hab ja schon nicht mehr damit gerechnet, aber heute Nacht um 00:04 Uhr bekam ich von Hosteurope die E-Mail mit den Zugangsdaten zum neuen Server.

Größte änderung (nach außen hin): komplett neues IP-Netz (vorher hatte ich immer eine IP aus dem Netz 87.230.0.0/17, diesmal ist es 83.169.0.0/18), irgendwann ist auch jedes Netz mal voll.

Größte Änderungen “innendrin”: neuerer Kernel 2.6.18 statt vorher 2.6.9, mehr Ressourcen und Speicher

Umziehen werde ich dann wahrscheinlich in der Nacht auf Montag, ist aber noch nicht komplett sicher (hab ja eine Woche Zeit dafür), Konzept steht größtenteils

Vielleicht bekomm ich mit dem neuen Kernel auch einen IPv6 Tunnel hin, um den Server darüber erreichbar zu machen :)

Nachtrag: hat alles gut geklappt, bis auf mailgraph, dazu gleich mehr