ejabberd starttls_required在c2s / s2s中并禁用SSLv3 +不安全的密码

我在Ubuntu上使用ejabberd。 我的configuration如下所示:

{5269, ejabberd_s2s_in, [ {shaper, s2s_shaper}, {max_stanza_size, 131072}, starttls_required ]}, {5222, ejabberd_c2s, [ {access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls_required, starttls, {certfile, "./xmpp.pem"} ]}, {s2s_use_starttls, true}. {s2s_certfile, "./xmpp.pem"}. 

仍然xmpp.net显示s2s TLS不是“必需”,但只有“允许”。 另外SSLv3启用了c2s和s2s以及一些不安全的密码,比如RC4。

我怎样才能禁用SSLv3和RC4,并强制所有连接starttls?

谢谢!

需要StartTLS:

{s2s_use_starttls, require}. 而不是{s2s_use_starttls, true}. (请记住,这将使您无法连接到gmail.com及其托pipe的所有域)。

弱密码:

请参阅http://www.process-one.net/docs/ejabberd/guide_en.html#sec27 。 我认为这意味着要像ejabberd_c2s选项一样添加{ciphers, "..."} 。 检查openssl ciphers -V '...'以查看密码string将启用的密码。

据我所知,无法禁用SSLv3而无需自己重新编译ejabberd。 看到这里的一些讨论。

这是一个古老的问题,但我想为任何search和查找的人添加一个更新的答案,但是使用更现代化的ejabberd(本文写作时的14.12版)。 以下选项(采用新的YAMLconfiguration格式)应该使starttls成为必需,将密码列表更改为不错的选项,并禁用s2s连接的传统SSL支持:

 s2s_use_starttls: required s2s_ciphers: "HIGH:!3DES:!aNULL:!SSLv2:@STRENGTH" s2s_protocol_options: - "no_sslv2" - "no_sslv3" 

对于c2s连接,你可以做类似的事情,除了它在c2s listen指令下:

 - port: 5222 module: ejabberd_c2s protocol_options: - "no_sslv2" - "no_sslv3" ciphers: ...