Ubuntu 12.04 の ejabberd に Pidgin から接続できない2012年09月11日

Ubuntu 12.04 LTS の jabber サーバーである ejabberd に pidgin からうまく接続できない、という現象に悩まされました。Windows 用の Psi や、OS X の Message からは問題ありません。Ubuntu の ejabberd は 2.1.10-2ubuntu1 で、クライアント側の Pidgin は 1:2.10.3-0ubuntu1.1 です。

「接続できない」、ですが具体的には認証に失敗します。ejabberd のログを見ると認証に失敗した旨出ます。

=INFO REPORT==== 2012-09-10 16:14:29 ===
I(<0.12345.0>:ejabberd_c2s:802) : ({socket_state,tls,{tlssock,#Port<0.5432>,#Port<0.1111>},<0.12344.0>}) Failed authentication for user@example.jp

Pidgin で「デバッグウィンドウ」を表示するとより詳しい情報が得られますが、よくわかりません。STARTTLS は成功してるので、認証段階、おそらくは DIGEST-MD5 の計算に失敗しているのだろうとあたりは付けられますが、追跡するのも面倒だなぁ、と悩みます。

そこでググるなどして ejabberd のフォーラムや、Ubuntu や Debian のバグレポートを見ると、原因らしきものを見つけました。

そこで、unstable から 2.1.10-3 のソースコードを持ってきて、debian/patches から relax-digest-uri-handling.patch を取り込み、debian/patches/series と debian/changelog を修正して、debuild します。そして、インストール。

それから、 /etc/ejabberd/ejabberd.cfg を変更し、

 {fqdn, "xmpp.example.jp"}.

を追加し、

# ejabberdctl restart

で再起動。Pidgin から接続すると、見事成功しました。

なお、xmpp.example.jp というのは、

_xmpp-client._tcp.example.jp.   IN	SRV	5 0 5222 xmpp.example.jp.

のように、xmpp-client の SRV で指しているホスト名です。このホスト名と、ejabberd が動作してるマシンが、自分のホスト名として認識しているものと食い違う場合にエラーになるようなのです。

ejabberd を IPv6 対応させる2007年07月19日

IPv6対応をどんどん進めよう、ってことで、ejabberd を IPv6対応させる。デフォルトでは IPv4 なアドレスしか listen しないので、設定を変える。

変更箇所は listen オプションで定義されている3つのサービス

  • ejabberd_c2s
  • ejabberd_c2s
  • ejabberd_s2s_in

inet6

というオプションを設定すること。あと、DNSでSRVに 指定してあるホストにAAAAを定義すること。

http://tkusano.jp/ejabberd

にも追記した。

ejabberdのインストール2007年07月01日

わりに昔、jabber (XMPP) をとある用途で使いたくなって サーバの実装を調べていたら、 ejabberd という 実装があるのを知りました。

このサーバerlangという言語で書かれていて、その 方向性は興味深かったのですが、最近になって erlang という言語そのものが話題になり始めました。

twitter でもバックエンドとして利用されてることもまた 知名度を上げたようです。

そんなわけで、ejabberd をインストールしてみました。 普段は IRCや IP Messenger を 使ってるので、システム管理その他で使うことにはなり そうですが、ejabberd についてのインストールメモを ejabberdとして まとめておきました。

某所のサーバではLDAPと連携するようにし、自宅では internal databaseを使うようにしてあります。

<< 2012/09 >>
01
02 03 04 05 06 07 08
09 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

RSS