Update-Freitag: DDoS, aufgeschaltete Domains und Status-Seite

Am letzten Wochenende wurden wir seit langer Zeit einmal wieder stärker mit DDoS-Angriffen belästigt. Das (beliebte) Ziel war die IP-Adresse, die wir zum Aufschalten von Domains benutzen (212.83.45.137). Bei kleineren DDoS-Angriffen ist die Standard-Lösung: unsinnige Pakete filtern (im Idealfall direkt am Switch) und fertig. Wenn das Angriffs-Volumen allerdings ein gewisses Maß übersteigt greift automatisch eine weitere Maßnahme: Nullrouting. Nullrouting ist „DIE“ Methode, um große DDoS-Angriffe abzuwehren: die Pakete an die angegeriffene IP werden schlicht von dem Netzwerk-Equipment nicht weitergeleitet. Große und kleine Anbieter nutzen diese Methode immer dann, wenn die Bandbreite des Angriffs so groß wird, dass das Filtern nichts mehr hilft.

Das Problem beim Nullrouting ist: wenn die IP-Adresse 212.83.45.137 wegen Nullrouting (aufgrund eines DDoS-Angriffs auf eine aufgeschaltete Domain) nicht mehr erreichbar ist, dann sind alle aufgeschalteten Domains nicht mehr erreichbar. Genau das war auch am letzten Wochenende der Fall, weshalb wir später noch eine Liste weiter IP-Adressen herumgeschickt haben, die als Alternative verwendet werden konnten und weiterhin online waren.

Um in Zukunft eine stabilere Aufschaltung von Domains gewährleisten zu können haben wir uns einfacher Mathematik bedient: „Ziehen ohne zurücklegen und ohne der Beachtung der Reihenfolge“ (n über k). Haben wir es damals nicht in der Schule geliebt?

Wir haben einen Block von IP-Adressen (bspw. 192.168.0.2 bis 192.168.0.50) in unseren „Pool“ gelegt. Jedes Mal, wenn eine Domain aufgeschaltet wird, ziehen wir aus diesem Pool eine Liste von 4 IP-Adressen und prüfen, dass diese Kombination bisher noch nicht vergeben wurde. So erhält jeder Kunde eine individuelle Liste von IP-Adressen, die nur für ihn „reserviert“ ist. Bei dem Aufschalten der Domain wird diese IP-Liste im DNS für die Domain eingetragen.

Wenn nun ein DDoS-Angriff stattfindet gibt es zwei Möglichkeiten (wir betrachten nur den Fall, dass der Angriff stark ist):

1. der Angreifer greift nur eine einzelne IP-Adresse an: diese IP-Adresse wird durch Nullrouting abgeschaltet. Da für die aufgeschaltete Domain mehrere IP-Adressen eingetragen sind, benutzt der Browser die nächste IP-Adresse aus dem DNS.
2. der Angreifer greift alle IP-Adressen für diese aufgeschaltete Domain an: es werden alle IP-Adressen mit Nullrouting abgeschaltet. In diesem Fall ist die aufgeschaltete Domain nicht zu erreichen – allerdings kann (durch den Vergleich mit der IP-Liste) identifiziert werden, welche Domain das Ziel des Angriffs war und weitere Maßnahmen ergreifen.

Ein weiterer Vorteil ist, dass alle anderen aufgeschalteten Domains weiterhin funktionieren, da die IP-Listen nicht ganz, sondern höchstens teilweise gleich sind. Schöner wäre es noch, wenn wir die IP-Adressen für die aufgeschalteten Domains dynamisch verwalten könnten, denn dann würden wir auch Fälle wie Nr. 2 behandeln können (durch Austausch von IP-Adressen) und bei Nr. 1 die Verbindungszeiten reduzieren (durch Entfernen von IP-Adressen), aber leider ist eben genau das bei aufgeschalteten Domains nicht möglich.

Das Formular zum Aufschalten von Domains haben wir für diese Änderung natürlich auch deutlich überarbeitet. Es lassen sich nun auch (mit Premium-Paket) direkt E-Mail-Dienste für Domain-Aufschaltungen konfigurieren, das war vorher nur über ein gesondertes Menü machbar.

In dem Zusammenhang haben wir noch einige Änderungen am internen Netzwerk an der Kommunikation der Webspace-Server untereinander vorgenommen, so dass die interne und externe Kommunikation besser getrennt ist. Ein eingehender DDoS-Angriff führt nun nicht mehr zu kurzzeitigen Fehlermeldungen von „Fehler 503“ o.ä.

Zu guter letzt haben wir uns auch berechtigte Kritik an der Status-Seite anhören müssen. Das Problem an der Status-Seite ist bisher, dass viele Ereignisse nicht automatisch auf der Status-Seite eingetragen werden. Bisher wurden die Informationen aus dem Monitoring darüber, welchen Status einzelne Dienste haben (und ggf. welche Probleme), nicht automatisch zu einem einheitlichen „Bild“ zusammengesetzt, was auf die Status-Seite übertragen werden kann. Unser Monitoring ist ein viel, viel komplexeres Gebilde als die Ansicht auf der Status-Seite und muss dementsprechend erst einmal eingedampft werden. Bisher haben wir dazu die Tools des Monitoring direkt verwendet, haben aber seit Monaten bereits an den Tools gearbeitet um die Monitoring-Daten aufzubereiten und daraus ein besseres Gesamtbild zu bauen – das dann automatisch auf die Status-Seite publiziert wird. Diese Tools werden wir in Kürze produktiv schalten, so dass die Status-Seite deutlich bessere Informationen enthält.

Und als winzige Kleinigkeit ist noch das LDAP-Modul für PHP installiert worden.

Wir posten Freitag Nachmittags einen kleinen Rückblick auf die Woche. Stay tuned und gucke auch nächste Woche wieder rein!

Update-Freitag: Webmail + Mobile-Skin

Passend zum Wochenende haben wir ein paar Updates eingespielt: das Webmail wurde auf eine aktuelle Version aktualisiert, die viele Fehler behebt. Zudem haben wir nun erstmalig ein Mobile-Skin installiert, mit dem das Webmail auf Mobilgeräten besser funktionieren sollte.

Ganz nebenbei haben wir dann auch noch ein PHP-Update (im wesentlichen ein Sicherheits-Update) auf 5.6.26 eingespielt.

Wir wünschen ein schönes Wochenende!

E-Mail für aufgeschaltete Domains

E-Mail ist das klassische Kommunikationsmittel im Internet und hat mittlerweile einen wichtigen Platz im täglichen Leben vieler Menschen eingenommen. Natürlich bieten auch wir E-Mail-Postfächer für unsere Kunden an. Bisher war E-Mail allerdings nur für Domains, die bei lima-city gekauft wurden, möglich.

Das ändert sich nun, denn ab heute bieten wir Kunden mit Premium-Paket unsere E-Mail-Dienste auch für aufgeschaltete Domains an. Dazu ist es nur erforderlich, einen DNS-Record für die Domain einzutragen. Anschließend kann die Domain in der Verwaltung für E-Mail-Empfang und -Versand freigeschaltet und sofort benutzt werden. Es können auch hier unbegrenzt viele Postfächer mit je 10 GB Speicherplatz angelegt werden.

Wie bei den anderen Postfächern sind ein Spam-Filter, manuelle Filter-Regeln und das Webmail verfügbar.

registriere-was-du-willst.de.cool

Jede Homepage braucht eine Adresse, vor allem eine, die einfach zu merken ist. Bisher haben wir davon eine ganze Reihe zur Verfügung gestellt in Form von „benutzername.lima-city.de“, „benutzername.lima-city.at“, „benutzername.lima.zone“ usw. Das führte dazu, dass der Benutzername plötzlich zentrales Element der Webseitengestaltung wurde und wir regelmäßig Fragen zur Änderung des Benutzernamen oder Einrichtung anderer Subdomains bekamen. Weil wir zuletzt auch noch kürzere Domains wie „benutzername.de.cool“ hinzugefügt haben, die mit der Beschränkung ihr Potenzial nicht ausschöpfen können (ich denke da an „ich-finde-schokola.de.cool“ o.ä.), möchten wir eine bessere Lösung finden.

Daher geben wir diesen Zusammenhang Benutzername/Subdomain nun auf. Ab sofort können für die Domains „de.cool“, „lima.zone“, „1337.pictures“, „clan.rip“ und „webspace.rocks“ beliebige Subdomains registriert werden (1337.pictures und clan.rip sind neu). Für die nächsten ca. 8 Wochen (bis zum 15.05.2016, 0:00) gibt es eine spezielle Phase („Sunrise-Phase“), in der die Benutzernamen anderer Accounts nicht registrierbar sind (Benutzer „hans“ kann nicht „peter.de.cool“ schnappen wenn der Benutzername „peter“ belegt ist, so dass „peter“ 8 Wochen Zeit hat um sich selbst „peter.de.cool“ zu registrieren). Damit hat jeder Zeit, seinen eigenen Benutzernamen zu registrieren. Ab dem 15.5. werden die Karten neu gemischt und es können alle Namen registriert werden.

Damit sinnlose Massen-Registrierungen verhindert werden (z.B. ein Benutzer registriert sich alle Städtenamen in der Form von bremen.de.cool, hamburg.de.cool etc.) beschränken wir die Anzahl aller kostenloser Subdomains pro Account zuerst auf 25 Stück. Wir werden nach ca. 3 Monaten prüfen ob das Limit von der Höhe und dem dahinter stehenden Gedanken sinnvoll ist und dann ggf. ändern oder aufheben.

Im Laufe der Zeit werden wir weitere Domains hinzufügen, daher: stay tuned und viel Spaß mit den neuen Subdomains!

Neue Firewall-Policy für SMTP-Verbindungen über PHP

Niemand mag es, es kostet viel Zeit und Nerven und einige wenige verdienen viel Geld damit. Die Rede ist von Spam. Wir bekommen nicht nur Spam, sondern wir versenden auch welchen. Nun ja, nicht direkt wir, und auch nicht freiwillig oder mit Absicht, aber es gibt Accounts bei uns, die nur zum Versenden von lästigen Botschaften angelegt werden. Andere Accounts bei uns werden wegen Sicherheitslücken oder schlechter Passwörter geknackt und dann zum Spam-Versand missbraucht.

Gegen all das kämpfen wir ständig an, und eines der Einfallstore möchten wir jetzt schließen. Es handelt sich um den Port 25. Ein Port identifiziert zusammen mit der IP-Adresse das Ziel einer Internetverbindung, 25 steht für „SMTP“: „Simple Mail Transfer Protocol“, einfaches E-Mail Transport-Protokoll (es gibt übrigens kein „kompliziertes E-Mail Transport-Protokoll“, E-Mail ist schon so komplex genug ;-)). Dieser Port wird von Spam-Versendern häufig und auch von unserem Webspace genutzt um gefälschte und ungewollte E-Mails bei anderen Mail-Servern über das Internet einzuliefern. Für den häufigsten Zweck, nämlich E-Mail über einen Server zu versenden, bei dem man ein „Kundenkonto“ bzw. einen gesicherten Zugang hat, gibt es aber einen anderen Port für das gleiche Protokoll (587/Submission). Es ist 100% kompatibel, da es ebenfalls SMTP ist und gleichzeitig fast immer so konfiguriert, dass vor dem Versand einer E-Mail geprüft wird, ob der Versender auch berechtigt ist über den Mail-Server zu versenden.

Da auch viele andere Provider, ob Webspace, Server oder Cloud, den Port 25 sperren und nur Mail-Versand per Port 587 erlauben, ziehen wir mit und machen das Internet damit ein bisschen Spam-feindlicher. Für legitimen E-Mail-Versand macht das keinen Unterschied.

Zum 1.4. werden wir daher über PHP das Herstellen ausgehender SMTP-Verbindungen zu Port 25 nicht mehr zulassen. Der Versand von E-Mails über SMTP ist selbstverständlich weiterhin möglich, dazu sollte allerdings der besser geeignete Port 587 (für Submission) verwendet werden, SMTPS (465) kann selbstverständlich auch genutzt werden. Und zu guter letzte bleibt auch die Möglichkeit, die PHP-Funktion mail() zu verwenden.

Bin ich betroffen?
Betroffen ist Dein Mail-Versand, wenn beide Voraussetzungen erfüllt sind: a) Du versendest per PHP E-Mails (z.B. über ein Kontaktformular, Bestellbestätigungen eines Shops, etc) b) Du hast den Versand über einen Mail-Server per SMTP eingestellt, z.B. über Deinen Account bei Googlemail oder web.de. Benutzer des Mail-Servers bei lima-city, der Versand über unseren Mail-Server oder der Versand von E-Mail über PHP-Mail sind nicht betroffen.

Was ändert sich für mich?
Wenn Du betroffen bist (siehe oben) musst Du nur die Port-Nummer in den Einstellungen des SMTP-Servers ändern. Dort sollte als Port „25“ eingetragen sein. Ändere diese Einstellung bitte auf „587“, aktiviere die Verschlüsselung (STARTTLS) und speichere die Änderung. Bitte denke auch daran eine Test-Mail zu senden. Das ist auch schon alles!

Ich verwende für den Versand per SMTP ein Postfach auf dem Mail-Server von lima-city. Bin ich auch betroffen?
Grundsätzlich schadet es nicht, wenn Du die Änderung vornimmst, da der Port 587 dafür semantisch besser passt. Der Mail-Server wird aber von uns nicht blockiert, da er in unserem eigenen Netz steht und entsprechend abgesichert ist.

.de.cool

Heute haben wir eine neue „Endung“ für die kostenlosen Subdomains hinzugefügt: „.de.cool“.

Damit können nun in der Verwaltung neue Subdomains in Form von „[benutzername].de.cool“ erstellt werden: in der Verwaltung unter „Websites & Domains“ auf „lima-city-Subdomain erstellen“ klicken und aus der Liste „[benutzername].de.cool“ auswählen. Nach dem Speichern ist die Domain innerhalb von ein paar Minuten aktiv. Selbstverständlich sind die Subdomains alle per SSL erreichbar.

Sicherheitsempfehlung zu Joomla: Kritische Lücke in allen Versionen

Da viele unserer Nutzer das weit verbreitete Content-Management-System „Joomla“ verwenden, möchten wir vor einer aktuellen Sicherheitslücke warnen, die bereits aktiv ausgenutzt wird:

Am 13.12.2015 wurde eine kritische Sicherheitslücke (CVE-2015-8562) entdeckt, die fast alle Joomla-Versionen von 1.5.0 bis 3.4.5 betrifft. Dadurch kann Schadcode auf dem Server ausgeführt werden. Falls du das CMS Joomla in der Versionen 1.5.0 bis 3.4.5 verwendet, update bitte sofort deine Joomla-Installationen!

Meldung auf heise Security:
http://www.heise.de/security/meldung/Joomla-Version-3-4-6-stopft-kritische-Sicherheitsluecke-3043699.html

Meldung von Joomla:
https://developer.joomla.org/security-centre/630-20151214-core-remote-code-execution-vulnerability.html

Hotfix für ältere Joomla-Installationen (1.5, 2.5):
https://docs.joomla.org/Security_hotfixes_for_Joomla_EOL_versions

Für die aktuelle Version (3.4.5) steht ein reguläres Sicherheitsupdate auf 3.4.6 bereit.

SSL für (fast) alle! (Update)

Nachdem die kostenlosen Subdomains unter *.lima-city.de schon seit einiger Zeit ein gültiges SSL-Zertifikat haben, haben wir nun auch alle weiteren Domains für kostenlose Subdomains nachgezogen. Bei folgenden kostenlosen Subdomains ist nun SSL aktiviert:

benutzername.lima-city.de
benutzername.4lima.de
benutzername.12hp.de
benutzername.2ix.de
benutzername.lima-city.at
benutzername.4lima.at
benutzername.12hp.at
benutzername.2ix.at
benutzername.lima-city.ch
benutzername.4lima.ch
benutzername.12hp.ch
benutzername.2ix.ch
benutzername.webspace.rocks
benutzername.lima-city.rocks
benutzername.lima.zone

Damit haben nun sämtliche derzeit angebotenen kostenlosen Subdomains ein gültiges SSL-Zertifikat. Vorher war das nur unter benutzername.lima-city.de der Fall: Zum Beitrag „SSL für (fast) alle!“.

Um eine automatische Weiterleitung von HTTP auf HTTPS zu aktivieren ist auch keine .htaccess-Datei mehr nötig. Klicke einfach in der Verwaltung unter „Websites & Domains“ bei der jeweiligen Subdomain auf „bearbeiten“ und aktiviere den Haken bei „SSL erzwingen“. Nach dem Speichern kann es noch ein paar Minuten dauern, dann ist die Änderung aktiv und Besucher werden automatisch von HTTP auf HTTPS umgeleitet.

Infrastruktur-Updates

Nach dem PHP-Upgrade im September steht nun eine weitere Änderung unserer Infrastruktur an. Vor kurzem haben wir die in der Verwaltung bei FTP- und MySQL-Zugangsdaten angezeigten Servernamen geändert. Anstatt dort ftp.lima-city.de und mysql.lima-city.de bzw. servername.lima-premium.de anzuzeigen steht dort nun einheitlich benutzername.lima-ftp.de und benutzername.lima-db.de.

Das hat damit zu tun, dass wir unserer bisherige Architektur ersetzen. Bisher haben wir für MySQL-Datenbanken und Freespace einen einzelnen, sehr gut ausgestatten, Server verwendet. Aus diversen Gründen möchten wir von diesem monolithischen Modell zu einem horizontal geteilten Modell, bei dem wir mehrere „kleinere“ Server verwenden, auf dem dann jeweils weniger Benutzer liegen.

Dieses Modell haben wir beim Premium-Paket schon seit Beginn im Einsatz. Dort hatten wir die Möglichkeiten, die Erkenntnisse aus unserer langjährigen Erfahrung mit dem Webspace am Reißbrett für ein neues System einzusetzen. Da wir sehr gute Erfahrungen mit der Architektur des Premium-Pakets gemacht haben werden wir diese Architektur nun auch auf den kostenlosen Webspace übertragen.

Das hat für uns, neben der besseren Skalierbarkeit, auch den schönen Vorteil dass sich das technische Setup für uns deutlich vereinfacht. Auch hier können wir unsere Erfahrungen aus der Neukonzeption des Premium-Paketes nutzen. Dort haben wir uns entschieden, alle Dienste (den Apache-Webserver, FTP-Server und MySQL-Server, daneben noch ein interne Management-Services für Anlegen und Löschen von Dateien, Backup-Erstellung, Löschen von Webspaces von gelöschten Benutzern etc.) ganz neu zu „verpacken“ und haben uns für die Container-Lösung Docker entschieden. Obwohl Docker damals noch in den Kinderschuhen steckte hat sich diese Entscheidung bewährt. Seitdem erstellen wir ein Container-Image pro Dienst das wir automatisiert auf alle Server ausrollen können. Zudem haben wir die Möglichkeit, „rollende Updates“ auszuführen und Updates notfalls in wenigen Sekunden rückgängig zu machen. Bisher mussten wir den Freespace noch als Sonderlösung pflegen, das ist nun vorbei.

Was ändert sich für mich? Wir werden demnächst beginnen die ersten Benutzer umzuziehen. Der Umzug geht mit einer kurzen Abschaltung des Webspace von wenigen Minuten einher. Jeder Benutzer erhält nach dem Umzug eine E-Mail mit den neuen Hostnamen von FTP- und MySQL-Server. Benutzernamen, Passwort, Port und Verzeichnisnamen ändern sich nicht. Auf dem Webspace installierte Scripte können weiterhin „mysql.lima-city.de“ als MySQL-Server-Namen verwenden. Diesen Hostnamen werden wir für jeden Benutzer auf den passenden MySQL-Server umschreiben, beim Premium-Paket ist das schon Praxis. Konfigurationsdateien müssen also nicht angepasst werden. Für 99% aller Benutzer besteht die einzige Umstellung darin, im FTP-Programm den Hostnamen von ftp.lima-city.de auf benutzername.lima-ftp.de zu ändern (man beachte den Unterschied zwischen lima-city.de und lima-ftp.de). Nur wenn „von außen“ (d.h. zuhause oder von anderen Webhosting-Anbietern) auf den MySQL-Server zugegriffen wird muss dort auch der MySQL-Server von mysql.lima-city.de auf benutzername.lima-db.de geändert werden.

Fragen beantworten wir gerne in den Kommentaren 🙂

PHP-Upgrade auf 5.6 am 15.9.

Auf dem Webspace setzen wir derzeit die PHP-Version 5.4 ein, die nach dem 14.9.2015 keine Sicherheitsupdates mehr erhält.

Deshalb werden wir am 15.9. auf die aktuelle Version 5.6 upgraden, die derzeit noch unterstützt wird. Dazwischen liegt noch die Version 5.5, die zwar noch Sicherheits-Updates erhält, bei der aber keine Patches für Bugs mehr herausgebracht werden. Wir haben uns daher entschieden, diese Version zu überspringen.

Bitte prüfe, ob die von Dir eingesetzte Software mit PHP 5.6 kompatibel ist. Sofern Du dazu Software-Pakete wie WordPress, Joomla, WBB etc. installiert hast prüfe bitte auf Updates. Wenn Deine Scripte selbst geschrieben sind folge bitte den Migrations-Anleitungen von PHP für PHP 5.5 und PHP 5.6.

« Ältere Beiträge