web-dev-qa-db-ja.com

ejabberd starttls_required in c2s / s2s and disable SSLv3 + unsecure Ciphers

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が「必須」ではなく「許可」されていることを示しています。さらに、SSLv3はc2sとs2s、およびRC4のようないくつかの安全でない暗号に対して有効です。

SSLv3とRC4を無効にし、すべての接続でstarttlsを強制するにはどうすればよいですか?

ありがとう!

5
pythonimus

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を無効にすることはできません。ディスカッション こちら を参照してください。

3
xnyhps

これは古い質問ですが、これを検索して見つけた人のために更新された回答を追加したかったのですが、より新しいバージョンの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: ...                                                              
7
Sam Whited