Server Technik
general overview of the configuration and settings used
System
Das Hostsystem verwendet Debian 11 Bullseye. Alle Komponenten werden regelmäßig aktualisiert, um den Service nicht zu stark zu behindern, versuche ich keine Unterbrechungen in Stoßzeiten vorzunehmen. Lässt sich dies allerdings nicht verhindern, werde ich versuchen die Downtime so gering wie möglich zu halten.
DNS
Die gesamte DNS-Zone von magicbroccoli.de ist mit DNSSEC signiert und lässt sich überprüfen.
nginx
Alle Dienste die per HTTPS erreichbar sind, werden durch einen nginx
Server terminiert. 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_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA512:ECDHE-ECDSA-CHACHA20-POLY1305::ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA';
Zusätzlich zu einer recht restriktiven TLS Konfiguration werden standardmäßig einige HTTP Header mitgesendet um die Sicherheit der Webpages zu gewährleisten.
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "none" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Permission-Policy "interest-cohort=()" always;
# HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload;" always;
Ä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 gespeichert.
( Der Test dauert ca. 1 Minute, daher kann der Test von jedem jederzeit wiederholt werden. )
Ejabberd
Bei der XMPP Serversoftware handelt es ich um einen ejabberd Version 20.12.03.
Serverdetails
- HTTP-Upload Limit: 50MB
- HTTP-Upload Quota: -
- HTTP-Upload Lebensdauer: 30d
- Nachrichten Archiv Lebensdauer: 90d
- Serverstandort: Deutschland
Verschlüsselung
Es werden ausschließlich verschlüsselte Verbindungen zugelassen, zusätzlich dazu werden ausschließlich Chiffren angeboten, die Perfect Forward Secrecy unterstützen. Hierdurch kann es vorkommen das einige Server nicht erreichbar sind.
Zertifikate
Dieser XMPP Server ist dahingehend konfiguriert ausschließlich gültige Zertifikate zu akzeptieren. Verbindungen von einem Server mit selbst signierten Zertifikate werden nicht unterstützt.
Passwörter
Alle Passwörter werden gehashed in einer Datenbank gespeichert, die nicht von außen erreichbar ist. Als Authentifizierungsverfahren wird SCRAM-SHA-1
verwendet.
Das DIGEST-MD5
Verfahren ist explizit deaktiviert.
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 in möglichst großem Umfang zu unterstützen.
Auszug aus den spezielleren Server-Features
- XEP-0033: Extended Stanza Addressing
- XEP-0045: Multi-User Chat
- XEP-0055: Basic implementation of Jabber Search
- XEP-0065: SOCKS5 Bytestreams
- XEP-0115: Entity Capabilities
- XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)
- XEP-0156: Discovering Alternative XMPP Connection Methods
- XEP-0163: Personal Eventing Protocol
- XEP-0191: Blocking Command
- XEP-0198: Stream Managment
- XEP-0237: Roster Versioning
- XEP-0280: Message Carbons
- XEP-0313: Message Archive Management
- XEP-0352: Client State Indication
- XEP-0357: Push Notifications
- XEP-0363: HTTP File Upload
- XEP-0368: SRV records for XMPP over TLS
XEP-0156: Alternative XMPP Connection Methods
- HTTP-Bind Adresse: https://magicbroccoli.de/http-bind
- Websocket Adresse: https://magicbroccoli.de/xmpp-websocket
- XMPP over TLS: xmpps.magicbroccoli.de
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 Adressen lauten:
Die Funktion http_upload verwendet bei Nutzung, auch mit konfigurierter
.onion
-Adresse, den normalen DNS und eine klassische Verbindung ins Internet. Daher muss für die Nutzung noch ein normaler Zugang zum Internet bestehen.Registrieren
Wenn Sie diese Dinge überzeugt haben XMPP zu probieren, ist es hier direkt möglich sich zu registrieren.
TLS Imirhil
TLS Imirhil ist eine Website die ähnlich wie das IM Observatory automatisiert die TLS Konfiguration des Servers testet. magicbroccoli.de hat dort für HTTP und für XMPP ein A+ Rating.
- XMPP: XMPP Rating
- HTTPS: HTTPS Rating