System

Das Hostsystem verwendet Debian Debian 9.4 Stretch. Alle Komponenten werden regelmäßig aktualisiert. Teilweise nehme ich Rücksicht darauf, dass es zu keinen reboot in Stoßzeiten kommt. Wenn sich dies allerdings nicht verhindern lässt, wird es zu einer möglichst kleinen Downtime für wichtige Updates kommen.

DNS

Die gesamte DNS-Zone von magicbroccoli.de ist mit DNSSEC signiert und lässt sich dahingehend überprüfen.

nginx

Alle Dienste die per HTTPS erreichbar sind, werden durch einen nginx Server veröffentlicht. Dieser ist konfiguriert ausschließlich TLS verschlüsselte Verbindungen zuzulassen. Unverschlüsselte Verbindungen werden direkt zu einer verschlüsselten Verbindung aufgewertet. Ist dies nicht möglich, wird die Verbindung verweigert.
Zur Verfügung stehen TLS1.2 sowie 1.3 mit einer definierten Auswahl an ciphers. Außerdem ist der Server in der Lage HTTP 1.1 sowie HTTP 2.0 Verbindungen zur Verfügung zu stellen.

ssl_prefer_server_ciphers	on;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_ecdh_curve	secp384r1:secp521r1;

Zusätzlich zu einer recht restriktiven TLS Konfiguration werden standartmäßig einige HTTP Header mitgesendet um die Sicherheit der Webpages zu gewährleisten.

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Content-Security-Policy "frame-ancestors 'self'";

Ähnlich zum XMPP Server, ist es möglich über externe Testsuites die Konfiguration auf Lücken bzw. Schwächen hin zu überprüfen.
Besonders bekannt hierfür ist Qualys SSL Labs dort sind meine Ergebnisse nachprüfbar. Die Ergebnisse werden dort leider nicht dauerhaft gespeichet.
( Der Test dauert ca. 1 Minute, daher kann der Test von jedem jederzeit wiederholt werden. )

Ejabberd

Bei der XMPP Serversoftware handelt es ich um ein Ejabberd 18.01.
Ich lege großen Wert auf Stabilität und Sicherheit, daher habe ich mich für einen Wechsel zu ejabberd entschieden. Die Konfiguration ist soweit angepasst das alle aktuellen Features unterstützt werden.

Verschlüsselung

Ejabberd ist so konfiguriert, ausschließlich verschlüsselte Verbindungen zuzulassen. Zusätzlich dazu ist der Server so konfiguriert ausschließlich Verschlüsselungsverfahren zu erlauben, die Perfect Forward Secrecy unterstützen. Ungesicherte Verbindungen, oder Verbindungen mit zu schwacher Verschlüsselung bei c2s oder s2s sind nicht zulässig. Leider werden dadurch einige Server sowie einige ältere Clients ausgesperrt, allerdings ist unzureichende Verschlüsselng für mich ein Ausschlusskriterium. Eine Übersicht welche Verschlüsselungsverfahren zum Verbindungsaufbau zulässig sind ist hier zu finden: zulässige Verschlüsselungsverfahren

Zertifikate

Es gibt viele öffentliche XMPP Server, die unter selbstsignierten oder ungültigen Zertifikaten betrieben werden. Mein Server ist so konfiguriert ausschließlich Zertifikate zuzulassen, denen vertraut wird und welche gültig sind. Selbstsignierte Zertifikate werden nicht akzeptiert.

Passwörter

Alle Passwöter werden gehashed in einer Datenbank gespeichert, die nicht von außen erreichbar ist. Als Authentifizierungsverfahren wird SCRAM-SHA-1 verwendet.
Speziell das DIGEST-MD5 Verfahren, welches ältere Clients und Bots häufiger verwenden, wird nicht unterstützt.

Features

Der Server unterstützt eine Vielfalt an XMPP-Erweiterungen (XEPs). Jeder Client unterstützt dabei eine andere Teilmenge dieser Features. Speziell gebe ich Acht darauf, Conversations (Android) in möglichst großem Umfang zu unterstützen.

Auszug aus den speziellern Server-Features:
XEP-0156: Alternative XMPP Connection Methods
TOR Hidden Service

Für Fans von Tor biete ich nun einen Hidden Service an. Mit diesem ist es möglich Client-to-Server Verbindungen zum XMPP-Server durch onion routing aufzubauen. Die Adresse lautet: dyy2lc2at2hqfir6.onion.

Hinweise:

  • Es ist nicht möglich, ein gültiges TLS-Zertifikat für eine .onion-Adresse anzubieten. Durch die Verwendung von Tor sollte der Zugang allerdings auch schon stark genug gesichert sein das dieser Faktor entfallen kann.
  • Die Funktion http_upload verwendet bei Nutzung, auch mit konfigurierter .onion-Adresse, mit dem normalen DNS und klassischen Verbindungen ins Internet. Daher müsste für dessen Nutzung mindestens noch ein normaler Zugang zum Internet bestehen.

Registrieren

Wenn dich diese Dinge überzeugt haben XMPP für dich und deine Freunde zu probieren. Kannst du dich hier direkt anmelden.

Registrieren

IM Observer

IM Oberserver ist ein Testsuite die automatisiert XMPP Server auf verschiedene Faktoren hin testet. Die Ergebnisse für meinen Server sind wie folgt. IM observatory score

Mit dem Tool von tls.imirhil.fr lässt sich ähnlich zum IM Observer ein Server prüfen. MagicBroccoli XMPP hat dort ein Rating von A+ CryptCheck Score.


Last Edit 25.04.18