ejabberd 在 c2s/s2s 中启动 tls_required 并禁用 SSLv3 + 不安全密码

ejabberd 在 c2s/s2s 中启动 tls_required 并禁用 SSLv3 + 不安全密码

我在 Ubuntu 上使用 ejabberd。我的配置如下:

  {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 不是“必需的”,而只是“允许的”。此外,还为 c2s 和 s2s 以及一些不安全的密码(如 RC4)启用了 SSLv3。

如何禁用 SSLv3 和 RC4,并在所有连接上强制 starttls?

谢谢!

答案1

需要 StartTLS:

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

弱密码:

http://www.process-one.net/docs/ejabberd/guide_en.html#sec27。我认为这意味着做一些类似于添加{ciphers, "..."}选项的事情ejabberd_c2s。检查以openssl ciphers -V '...'查看密码字符串将启用哪些密码。

据我所知,如果不重新编译 ejabberd,就无法禁用 SSLv3。请参阅一些讨论这里

答案2

这是一个老问题,但我想为搜索和找到这个问题的任何人添加一个更新的答案,但使用更现代版本的 ejabberd(撰写本文时为 14.12)。以下选项(采用新的 YAML 配置格式)应使 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: ...                                                              

相关内容