Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
96 lines (62 sloc) 3.33 KB
: radicales Crypto härten
radicale ist ein Server für CardDAV und CalDAV. [0]
In der default-Konfiguration [1] nutzt radicale keine verschlüsselte Verbindung. Das geht besser.
Eine Anleitung zur Installation von radicale findet sich hier. [6]
/This guide is security critical. See [6] // Diese Anleitung ist sicherheitskritisch. Siehe [6]/
<!--TOC-->
:: Noch kein aktuelles OpenSSL installiert?
Das brauchen wir später, um stärke Cipher nutzen zu können.
Hier setze ich toast voraus [2]. Wenn schon ein neueres OpenSSL installiert ist als das hier von mir vorgeschlagene, kann mit dem nächsten Punkt weitergemacht werden.
Die Version kann mit
====
openssl version
====
geprüft werden. Bitte bei openssl nach der aktuellesten Version schauen, dann etwa:
====
toast arm https://www.openssl.org/source/openssl-1.0.2q.tar.gz && openssl version
====
Hier sollte nun z.B. "OpenSSL 1.0.2q 20 Nov 2018" ausgegeben werden.
:: neuestes TLS-Protokoll nutzen
Dafür müssen wir erst sicher gehen, dass radicale mindestens python2.7.9 nutzt [3]. Da Uberspace python3 mitbringt und radicale es auch unterstützt, nehmen wir einfach das.
Ich habe radicale.py nach ~/bin/ und die config nach ~/etc/radicale/ gelegt. Bitte adaptieren wie nötig:
Die Zeile in daemontools run sollte also python3 nutzen und also etwa so aussehen:
====
exec python3.6 -m radicale -D --config ~/etc/radicale/config 2>&1
====
Dann setzen wir noch ein aktuelles Protokoll in der config:
====
sed -i -e 's/protocol\ =\ .*/protocol\ =\ PROTOCOL_TLSv1_2/' ~/etc/radicale/config
====
:: stärkere Cipher nutzen
Die genutzte Liste entnehme ich Mozillas Empfehlung moderner cipher [7] minus ECDSA.
Auch hier bitte zuvor auf Aktualität prüfen:
====
MOZILLA_CIPHERS='ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384: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'
CIPHERS=$( openssl ciphers "${MOZILLA_CIPHERS}" ) \
&& sed -i -e "s/ciphers\ =\ .*/ciphers\ =\ "$CIPHERS"/" ~/etc/radicale/config
grep 'ciphers = ' ~/etc/radicale/config
====
Das kurze Skript sollte am Ende die gefundenen unterstützten Cipher ausgeben, die nun eingetragen wurden. Das sollte etwa so aussehen:
====
ciphers = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384: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
====
:: auf Zertifikat und Key verweisen.
Das macht ihr in der config mit "certificate" und "key".
Noch kein Zertifikat? Tipps hier: [4]
:: HTTPS aktivieren
====
sed -i -e 's/ssl\ =.*/ssl\ =\ True/' ~/etc/radicale/config ; grep 'ssl = ' ~/etc/radicale/config
====
Jetzt noch den Dienst neustarten!
- - -
Siehe auch:
* frank.zisko.io: HTTPS per Apache-Proxy [5]
[0] http://radicale.org/
[1] http://radicale.org/user_documentation/#idmain-configuration-file
[2] https://wiki.uberspace.de/system:toast
[3] https://docs.python.org/2/library/ssl.html#ssl.PROTOCOL_TLSv1_2
[4] https://develovers.de/2015/03/ssl-bei-uberspace-einrichten/
[6] /about/
[5] http://frank.zisko.io/leitstelle/2015-04-01-radicale-uberspace/
[6] /hosting/Uberspace/radicale.html
[7] https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility