===== ejabberd absichern =====
==== Voraussetzung ====
* Dieses Howto setzt [[de:ejabberd_installation|ejabberd Installation]] und [[de:letsencrypt_einrichten|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