我在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: ...