Schlagwort-Archive: YotaWeb

E-Mail made in Germany?

Da gerade auf einem meiner alten Accounts Werbung für „E-Mail made in Germany“ aufgeschlagen ist erstelle ich dann hiermit mal meine eigene Zertifizierung:

Verschlüsselung zwischen Server und Endgerät
Alle meine E-Mail werden – wie auch bei „E-Mail made in Germany“ zwischen Server und Endgerät mittels TLS (früher SSL genannt) verschlüsselt. Gegen NSA & Co bringt dies natürlich nichts, da diese sich auf Grund der Zentralen Struktur recht einfach eigene, gültige Zertifikate ausstellen können.

Verschlüsselung zwischen Mailervern
Alle E-Mails werden – wenn von der Gegenseite unterstützt – zwischen den Mailservern verschlüsselt übertragen. Dieses Verfahren ist bereits seit Jahren im Einsatz, ist jedoch ebenfalls für Manipulationen auf Infrastrukturebene anfällig. Bei E-Mail-Provider wie z.B. GMX oder T-Online, welche dieses 1999 spezifizierte Sicherheitsverfahren nicht vollständig unterstützen[1], muss die E-Mail auf dieser Strecke unverschlüsselt übertragen werden.

Sichere Rechenzentren
Alle Server stehen in Rechenzentren, welche über eine Zutrittskontrolle verfügen. Da Angriffe üblicherweise über das Internet erfolgen bzw. Behörden mit richterlichem Beschluss hereingelassen werden müssen hat dies auf die Sicherheits allerdings keine Wirkliche Auswirkung.

Datenspeicherung in Europa
Leider befinden sich nicht alle meine Server in Deutschland, jedoch ist Frankreich beim Thema Datenschutz etwa auf deutschem Niveau. Btw: Meine E-Mails werden fast ausschließlich in Deutschland geschrieben, sind also dennoch „made in germany“ ;)

…und ich lege noch drei Punkte oben drauf:

Keine Speicherung bei Cloud-Diensten
Die Daten werden nicht auf den Speicherdiensten von Cloud-Speichern oder CDNs abgelegt, entsprechend ist zumindest grob bekannt an welcher Stelle die Daten liegen.

Die E-Mail nimmt den kürzesten Weg
Daten werden – sofern möglich – auf dem kürzesten Weg übermittelt und nehmen keinen Umweg über Staaten der „Five Eyes“. [2]

Die Mail kommt verschlüsselt!
Jeder, der GPG nutzt und mir seinen öffentlichen Key bereitstellt erhält meine Kommunikation grundsätzlich in Verschlüsselter form – so lässt sich der Mailtext zwischendurch nicht mitlesen oder Manipulieren.

[1] Beim Test am 26.10.2013 wurden eingehende Mails ohne TLS angeliefert
[2] Alle Rechenzentren sind über DeCix verbunden, Traceroutes zu diversen Testsystemen in Deutschland zeigen – im Gegensatz zum Verhalten einiger anderer Provider – keine Umwege über den Ozean.

RFC vs. Microsoft: IPv6 ist kein IP!

Derzeit läuft noch mein schier endloser Kampf gegen den SPAM-Filter der Microsoft’schen Maildienste outlook.com/hotmail. Heute kam endlich eine Rückmeldung – ich wurde gebeten einige Daten einzusenden, unter anderem die „IP-Adresse oder Range“ der/des Mailservers. So getan folgte alsbald folgende Mail:

Sehr geehrte Damen und Herren,

Die folgende IP-Adresse ist ungültig: 2001:41d0:2:7981::/64

Könnten Sie dies bitte überprüfen und uns die richtige senden?

Mit freundlichen Grüßen,

Offenbar ist den Microsoft-Mitarbeitern IPv6 noch nicht bekannt…

Mal wieder ein neuer Server

Schon ein paar Jahre her, dass der Unterbau meiner Webseite gewechselt hat, also Zeit für etwas Neues: Soeben ist diese Seite als Erste auf meinen neuen Server umgezogen. Neue Hardware und bessere Infrastruktur sollten auch in Zukunft meine inzwischen 15GB umfassende Gallerie sowie den Blog in hervorragender Geschwindigkeit ins Netz befördern können. Auch ein weiterer und von mir lange erwarteter Punkt ist damit endlich erledigt: Meine Seite ist ab sofort vollständig per IPv6 erreichbar – wehe dem, der seinen Router verbastelt hat! SSL funktioniert prinzipiell, aber aus technischen Gründen bekomme ich bisher keine passenden Zertifikate für TLDs ausgespuckt.
Die Umstellung selbst war mit gewisser PITA verbunden, da sich Dateipfade geändert haben und das vor allem mit der (veralteten) Gallerie kollidiert. Nach mehreren tausend Dateien und der Magie von sed & SQL sollte aber inzwischen alles passen. Dann nehmen wir uns doch gleich den nächsten Kandidaten vor…

IPv6: Lets rename NAT?

Hier zu Archivzwecken ein Copy&Paste meines Beitrags aus dem OVH-Forum. Es geht um die Möglichkeit IPv6 in ein lokales Netz weiter zu routen – dürfte sicher in Zukunft für einige interessant werden…

… Ich verwende feste IPv6-Adressen für Host und Gäste, das Routing läuft über den Host (Also nicht die virtuellen MAC-Adressen, die es inzwischen gibt). Für den Host gilt: eth0=OVH-Netz,br0=Netz mit den Gästen. Ich schreibe nur die nötigen Befehle – da die Config je nach Linux-Distri verschieden sind überlasse ich euch das übersetzen selbst (bei mir tuts aus Faulheit die rc.local). Wie man IPv6-Abkürzt (führende 0en weglassen, kürzen per ::) erklärt bei Bedarf google.

Host:
Als erstes benötigt der Host natürlich eine feste Adresse. Hierzu geht ihr in den OVH-Manager und sucht euer IPv6-Subnet (Steht bei Interfaces in der Server-Übersicht). Ich gehe hier von 2001:41D0:F0F0:F0F0::/64 aus. Das bedeutet, dass euch die IPs 2001:41D0:F0F0:F0F0:0000:0000:0000:0001 bis 2001:41D0:F0F0:F0F0:FFFF:FFFF:FFFF:FFFE gehören – genug Platz. Der Einfachheit halber nummeriere ich nur die letzte Zahl durch – ist aber natürlich keine Pflicht.

Als erstes erhält der Host auf beiden(!) Interfaces eine IP:

ifconfig eth0 inet6 add 2001:41D0:F0F0:F0F0::1/64
ifconfig br0 inet6 add 2001:41D0:F0F0:F0F0::99/64

Zudem benötigen wir ein Routing. Teilweise erhält der Server bereits über die IPv6-Autokonfiguration die korrekten Routen von OVH. Dummerweise unterstützen einige Switche bei OVH kein IPv6 und blockieren diese Autokonfiguration, daher funktioniert es nicht bei jeden. Da es nichts schadet die Route fest einzutragen werden wir das tun. Die Router-IP ermittelt sich wie folgt:

OVH-Hilfe
Der Router (Standardgateway) für jede IPv6 befindet sich immer auf IP:v:6:FF:FF:FF:FF:FF

Ein Beispiel:

Die IPv6 des Servers: 2001:41D0:1:46e::/64 wird zu 2001:41D0:1:4 + 5 Mal FF.
IPv6 Gateway: 2001:41D0:1:4FF:FF:FF:FF:FF

Die IPv6 des Servers: 2001:41d0:1:209::/64 wird also zu 2001:41d0:1:2 + 5 Mal FF.
IPv6 Gateway: 2001:41d0:1:2FF:FF:FF:FF:FF

In unserem Beispiel ergibt sich also der Router 2001:41D0:F0F0:F0FF:FF:FF:FF:FF. Die Route setzen wir mit

route -A inet6 add 2000::/3 gw 2001:41D0:F0F0:F0FF:FF:FF:FF:FF

Da wir zudem den Host als Router verwenden wollen benötigen wir Forwarding, das schalten wir mit diesem Befehl ein:

sysctl -w net.ipv6.conf.all.forwarding=1

Um auch zu wissen wo die Gäste hin sollen tragen wir hier entsprechende Routen ein. Ich habe es pro Host gemacht, sollte aber auch blockweise funktionieren:

route -A inet6 add 2001:41D0:F0F0:F0F0::10 dev br0
route -A inet6 add 2001:41D0:F0F0:F0F0::11 dev br0

Zum Schluss folgt dann der IPv6-Fubar, der meine Probleme auslöste: Ich nenns mal das IPv6-NAT. Die komplette Erklärung was und warum das nötig ist („Proxy the neighbors“) habe ich am Ende verlinkt.

sysctl -w net.ipv6.conf.all.proxy_ndp=1
ip -6 neigh add proxy 2001:41D0:F0F0:F0F0::10 dev eth0
ip -6 neigh add proxy 2001:41D0:F0F0:F0F0::11 dev eth0

Wichtig hierbei: Das eth0 ist kein Typo! Die Zeile bedeutet, dass der Host auf dem Interface eth0 bekannt geben soll, dass er für die genannte IP eine passende Route kennt.

Auf dem Gast sind dann nur analog zu oben die IPs einzurichten, die IP des Host-Interface br0 spielt dabei den Router:

ifconfig eth0 inet6 add 2001:41D0:F0F0:F0F0::10/64
route -A inet6 add 2000::/3 gw 2001:41D0:F0F0:F0F0::99

Weitere Ressourcen:

Käferjagd – MySQL, Roundcube und die Zeichenkodierung

Schei? Encoding

Das trifft meine Beschäftigung in den letzten Tagen ganz gut. Ich habe bereits länger auf meinem Mailserver sieve im Zusammenspiel mit Dovecot im Einsatz. Als Frontend ist nach vim und dem ThunderbirdPlugin schlussendlich ein (inzwischen integriertes) Plugin für meinen Webmailer Roundcube zum Einsatz gekommen. Im Gegensatz zu den vorherigen Lösungen ist es hier über eine GUI möglich sich einfache Regeln, wie aus vielen Mailprogrammen bekannt, zusammen zu klicken. Inzwischen gibt es eine Weiterentwicklung, welche einige lang erwartete Features mitbringt. Leider verlief mein Test nicht ganz wie geplant.

Erste Beobachtung: Immer wenn man ein Sonderzeichen verwendet ist der Webmailer nicht mehr nutzbar. Die aktuelle Sitzung wird beendet, versucht man sich neu einzuloggen kann man Mails lesen, ein Klick auf die Filterseite führt aber zu einem neuen Absturz. Einzige Lösung: Das Filterscript mit einem anderen Editor löschen. Nicht ganz was ich wollte, aber eine Nachfrage beim Entwickler verheißt nichts Gutes: Kein Fehler in der Richtung bekannt. So weit so schlecht.

Sinnvollste Möglichkeit: Testserver hochziehen (LVM-Snapshots ftw) und Problem einschränken. Schnell war klar: Es muss wohl an der Config liegen. Auf einem frischen Server ließ sich die aktuelle Roundcube mit Plugin nutzen, auf der Kopie des Produktivservers tritt immer wieder der Fehler auf. Etwas hin und her – ratlosigkeit. Der Testserver konnte auf dem Filterserver des Testservers problemlos arbeiten, also kann es nicht am Mail-/Filterserver. Auch die Kopie des Programmverzeichnisses vom Produktiv auf den frischen Testserver arbeitete dort problemlos. Doch die Konfiguration? Also nahezu das komplette /etc vom frischen Testserver auf die Produktivkopie gezogen, PHP-FCGI auf mod_apache, etc, etc – nada. Einziger Unterschied, der mir auffiel war 64< ->32Bit – das wirds ja wohl kaum sein.

Hilft nichts – der Holzhammer muss her: Das komplette Plugin mit echos durchsetzt und huh – der Abbruch passiert beim Speichern der Session. OK, generell würde ich ja sagen nicht korrekt escaped, aber warum tritt es dann nur auf einem Server auf?!

Stunden später war mir dann meine eigene Blindheit auch klar: Ich hatte zwar alle Daten kopiert, aber nicht die Datenbank. Die hatte ich zwar kurz verglichen, aber ein kleines aber verhängnisvolles habe ich übersehen. Roundcube nutzte in den ersten Versionen ASCII als Zeichencodierung für die in MySQL gespeicherte Session-Table. Dies wurde irgendwann auf UTF8 umgestellt, jedoch nur in den Scripten für Neuinstallationen – die Update-Datei enthält keine entsprechende Konvertierung. Da mein RC schon lange läuft hing die Tabelle entsprechend auf ASCII und machte bei UTF8-Zeichen in der Session die Fliege. 3 Tage gebastel und ein ALTER TABLE später funktioniert nun alles – so kann man sich auch beschäftigen…

Thunderbird mit serverseitiger Mailsortierung

Wer viele Mails erhält kommt früher oder später an Filtern nicht vorbei. Foren in einen Ordner, MLs zusammenfassen, etc. Stellt sich nur ein Problem: Diese Filter laufen meist im Mail-Client – hat man mehrere Rechner müssen die Regeln immer per Hand oder Script abgeglichen werden. Um dem entgegen zu treten hatte ich meinem Server vor einigen Wochen Sieve beigebracht – eine Sprache um Mails serverseitig zu filtern. Dank etwas gehacktem Webinterface in Routndcube ließ sich der Mailserver auch recht schnell dazu überreden Mails bestimmter Absender in gewisse IMAP-Ordner zu legen. Leider macht Thunderbird das nicht mit: Legt der Mailserver etwas in einen Unterordner taucht die Mail erst auf, wenn man den selbigen öffnet – da werde Mails schnell übersehen. Abhilfe schafft eine Option in Thunderbird:
Bearbeiten -> Einstellungen -> Erweitert -> Allgemein -> Konfiguration bearbeiten
Dort den Wert „mail.check_all_imap_folders_for_new“ per Doppelklick auf true ändern. Nun schaut TB bei jedem Empfang in allen Unterordnern und bekommt so auch die sortierten Mails mit.

Murphy schiebt Nachtschicht

Da kommt man Grade von einem Konzert nach Hause und möchte der von einer Manowar-InEx-Rammstein-Kombination geschädigten Wirbelsäule im heimischen Bett eine Pause gönnen und schon kracht Murphy in Form dieser SMS-Lawine dazwischen:

YotaWeb2 – WARNING – /dev/sda, failed to read SMART Attribute Data
YotaWeb2 – WARNING – /dev/sda timeout
YotaWeb2 – CRITICAL – ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4)
YotaWeb2 – CRITICAL – raid1: Disk failure on sda1, disabling device.
YotaWeb2 – CRITICAL – raid1: Disk failure on sda3, disabling device.

Testen wir mal, ob der Bereitschaftstechniker noch wach ist…

Ich hab wohl Fans…

Auf meinen Server liegt so einiges an altem Zeugs rum – Personen, welche ich mal gesponsored habe, Accounts die von ehemaligen Co-Admins angelegt wurden etc. In meiner Inbox fand sich nun eine Anfrage und ich musste doch etwas schmunzeln…

Hallo Herr Florian Knodt,
ich als begeisterter und zufriedener Kunde von Yotaweb würde gerne ein Angebot erhalten, welches ich im Auftrag des **** einholen möchte.

Ich bitte aufgrund dieser Informationen um eine Kostenaufstellung und ggf. ein Gespräch.

Tja, dumm, dass sich meine Bemühungen bezüglich einer Firma Yotaweb (o.Ä.) ständig nach hinten verschieben.

EOF – Ruhe im Server

*Ächts* geschafft. Alle Inhalte, welche ich behalten möchte sind inzwischen auf meinem neuen Server angekommen und laufen irgendwie. OK, an vielen Ecken muss noch gefeilt werden: Das Monitoring verschickt gerne falsche Warn-SMS, die Backupfehler heute Morgen sind auch nicht gut für die Laune und wenn noch ein Kunde mit „Webseiten“ ankommt, welche nach 40 Sekunden Ladezeit abgewürgt werden und das als Fehler des Servers und nicht als Designfehler der Software darstellen werde ich keine Antworten mehr senden. Trotz der Ärgernisse läuft der neue Server zuverlässig genug, dass ich nun den nächsten Meilenstein abhaken kann: Die Kündigung meines alten Servers ist raus.