blob: b4d16492b9708c894b38c5cd111b9f371dc1a594 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
{% meta %}
title: jabber.spline.de TLS updates
tags: [jabber, security]
{% endmeta %}
{% mark body %}
{% filter markdown %}
TL;DR:
Wir sind auf ejabberd Version 14.07 gewechselt und haben die TLS Einstellungen drastisch verschärft.
---
<a href="http://web.jabber.ccc.de">Jabber.ccc.de</a> et al haben vor vor ein
paar Tagen PFS TLS ciphers für server-to-server Verbindungen vorausgesetzt. Als
Konsequenz hat unser Jabber-Server (Debian oldstable) sich nicht mehr mit
diesen verbinden können. Wir haben diesen Umstand als Anlass genommen endlich
mal zu aktualisieren und haben auch gleichzeitig unsere TLS-Einstellung
angehoben. Sogar noch etwas strenger als jabber.ccc.de. Folgende Änderungen
haben wir durchgeführt:
+ ejabberd auf 14.07 (Debian Jessie) aktualisiert
+ ejabberd.cfg in das neue, viel schönere ejabberd.yml konvertiert
Folgende TLS-Einstellungen sind darin enthalten:
### s2s
s2s_use_starttls: required_trusted
s2s_protocol_options:
- "no_sslv3"
- "no_tlsv1"
s2s_ciphers: "kEDH:kEECDH:-aDSS:-3DES:-DES:-RC4:-ADH:-SHA1:-AES128"
### c2s
listen:
-
port: 5222
ip: "::"
module: ejabberd_c2s
certfile: "/etc/ssl/private/jabber.spline.de.combined.pem"
starttls: true
starttls_required: true
protocol_options:
- "no_sslv3"
- "no_tlsv1"
ciphers: "kEDH:kEECDH:-aDSS:-3DES:-DES:-RC4:-ADH:-SHA1:-AES128"
max_stanza_size: 65536
shaper: c2s_shaper
access: c2s
Da Port 5223 seit Jahren deprecated ist, ist er hier auch gar nicht mehr aktiviert.
Mit diesen Einstellungen erreichen wir übrigens einen perfekten Score beim [XMPP IM Observatory](https://xmpp.net/result.php?domain=jabber.spline.de&type=client).
Als Konsequenz sind jetzt aber einige, kleinere Jabber-Server nicht mehr
erreichbar. Die MaintainerInnen müssen dort auch nachlegen und zumindest ein
TLS Setup konfigurieren, dass die gelisteten PFS ciphers unterstützt. Dazu gehört:
+ TLS im Jabber Server aktivieren (ejabberd aus debian wheezy geht *nicht* ohne Patches)
+ valides Zertifikat (CAcert oder im Store von Debians ca-certificates)
+ der Common Name (CN) muss mit dem vHost des Jabber Servers übereinstimmen (*nicht* dem FQDN des Servers)
+ vermutlich SSLclient und SSLserver purpose bits im Zertifikat (StartCom unterstützt das imho *nicht* [1])
Zum Testen habe ich vorhandene XMPP-bezogene Patches[2,3] in den OpenSSL 1.0.2 branch gemerged[4]. Damit kann der eigene Server z.B. so getestet werden:
#!/bin/sh
jabberdomain=jabber.spline.de
for proto in xmpp-server xmpp-client ; do
SRV=_${proto}._tcp.$jabberdomain
[ $proto == xmpp-client ] && SSLproto=xmpp || SSLproto=xmpp-server
for r in $(dig -t srv $SRV +short | sed -r 's/.* ([0-9]+) (.*)./\2:\1/g') ; do
./apps/openssl s_client -connect $r -starttls $SSLproto -xmpphost $jabberdomain < /dev/null
done
done
Bei Fragen meldet euch bitte am Besten an [spline@spline.de](mailto:spline@spline.de)
[1]
https://forum.startcom.org/viewtopic.php?f=15&t=2328
[2]
http://rt.openssl.org/Ticket/Display.html?id=3742
[3]
http://rt.openssl.org/Ticket/Display.html?id=2860
[4]
https://github.com/octomike/openssl/tree/xmpp
{% endfilter %}
{% endmark %}
|