Inhaltsverzeichnis
ejabberd absichern
Voraussetzung
- Dieses Howto setzt ejabberd Installation und Lets Encrypt einrichten voraus.
Einleitung
Um die Transportverschlüsselung zwischen Client und Server bzw. Server und Server zu verbessern kannst du den Schlüsselaustausch mit DH (Diffie-Hellman) erweitern. Außerdem haben sich alle Serverbetreiber vor ein paar Jahren darauf geeinigt, nur noch verschlüsselte Verbindungen untereinander zuzulassen.
Einrichtung
Als ejabberd arbeiten:
$ su - ejabberd
dhparam.pem generieren. Das kann je nach Leistung deines Servers mehrere Minuten lang dauern:
$ openssl dhparam -out certs/dhparams.pem 4096
4096 gibt die Schlüsselstärke an. Alles kleiner 2048 Bit gilt heutzutage als unsicher. Mit 4096 Bit bist du längerfristig auf der sicheren Seite.
ejabberd Konfiguration aufrufen:
$ jed opt/ejabberd/conf/ejabberd.yml
Suche nach:
s2s_use_starttls: optional
ändere in:
s2s_use_starttls: required s2s_protocol_options: - "no_sslv3" - "no_sslv2" s2s_ciphers: "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-SEED-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA" s2s_dhfile: "/home/ejabberd/certs/dhparams.pem" c2s_protocol_options: - "no_sslv3" - "no_sslv2" c2s_ciphers: "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CAMELLIA256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-SEED-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-AES128-SHA" c2s_dhfile: "/home/ejabberd/certs/dhparams.pem"
Du kannst bei den _protocol_options auch zusätzlich TLS1.0 und TLS1.1 verbieten, riskierst damit aber zur Zeit noch, dass deine Nutzer:innen andere Server nicht mehr erreichen können. Die _ciphers kannst du auch nach belieben anpassen. Mit den Einstellungen habe ich bei jabjab.de allerdings die größte Kompatibilität zu anderen Server erreicht.
Die Änderungen mit [STRG] + [x] und [STRG] + [s] speichern und den Editor mit [STRG] + [x] und [STRG] + [c] verlassen.
Mache ejabberd die geänderte Konfiguration bekannt:
./opt/ejd/bin/ejabberdctl reload_config