===== 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