Hatena::ブログ(Diary)

ありの日記 このページをアンテナに追加 RSSフィード

2014-02-11

Jabber/XMPP実装のejabberdをインストールしてみる

| 23:55 |  Jabber/XMPP実装のejabberdをインストールしてみるのブックマークコメント

ejabberdというErlangでかかれたJabber/XMPP実装があるのを知ったのでとりあえずインストールしてテストしてみた。

インストールは以下のサイトを参考にしてみる。

How To Install eJabberd XMPP Server on Ubuntu | DigitalOcean

環境

  • ゲストOS Ubuntu 12.04.4 LTS
    • IP: 192.168.56.2
  • ホストOSMac、VirtulaBox)
    • IP: 192.168.11.8
    • VirtualBoxのポートフォワーディング設定 5222 -> 5222

VirtulaBoxのネットワーク設定

今回の内容とはあんまり関係ないんだけど、いつも忘れるのでメモがてらVirtualBoxネットワーク設定です。NAT(アダプター1)+ホストオンリーアダプタ(アダプター2)を使ってい、アダプター2のポートフォワーディング設定で5222をフォワードするようにしています。これは、VirtualBox上のUbuntuに外の人(ホストOSと同じネットワーク上の別のMacとか)がアクセスできるようにするため。

VirtualBoxのポートフォワーディングの設定は以下の記事を参考にさせて頂きました。

VirtualBox ゲストOSのWebサーバに外部から接続する - ソースコードから理解する技術?UnderSourceCode

アダプター1の設定

f:id:hiro_nemu:20140211233006p:image

アダプター2の設定

f:id:hiro_nemu:20140211233008p:image

アダプター1のポートフォワーディング設定

f:id:hiro_nemu:20140211233007p:image

インストール&設定

Ubuntuの場合、インストールaptitude installで一発。

hironemu@ubuntu:~$ sudo aptitude install ejabberd
以下の新規パッケージがインストールされます:
  ejabberd erlang-asn1{a} erlang-base{a} erlang-crypto{a} erlang-inets{a} erlang-mnesia{a} erlang-odbc{a} erlang-public-key{a}
  erlang-runtime-tools{a} erlang-ssl{a} erlang-syntax-tools{a} libltdl7{a} libodbc1{a} libsctp1{a} lksctp-tools{a}
0 個のパッケージを更新、 15 個を新たにインストール、 0 個を削除予定、0 個が更新されていない。
13.4 M バイトのアーカイブを取得する必要があります。 展開後に 22.9 M バイトのディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]

ここから設定。まず、以下のコマンドで、admin(となる予定の)ユーザの追加(testの部分はパスワード

$ sudo ejabberdctl register admin localhost test

次に、/etc/ejabberd/ejabberd.cfgを以下のように変更して、上で追加したadminユーザを管理者として設定する。

#{acl, admin, {user, "", "localhost"}}.
{acl, admin, {user, “admin”, "localhost"}}.

ejabberd.cfgには以下のようにホスト名の設定がデフォルトで設定されている。ログインする際に使用するユーザ名の@の後ろはこの値を利用する(admin@localhostみたいな感じで)。今回はデフォルトのまま変更はしない。

%% Hostname
{hosts, ["localhost"]}.

設定を変更したらサービスを再起動する。

$ sudo service ejabberd restart

Chromeなどから以下のURLにアクセスして管理画面にログインする。

ユーザ名とパスワードは以下のとおり。ユーザ名、パスワードは上の「ejabberdctl register」で追加した値。ユーザ名については、ejabberd.cfgに設定したHostnameの値を使うのでadmin@localhostとなる。

ログインすると以下のような画面が表示される。

f:id:hiro_nemu:20140211233004p:image

管理画面にログインしてヴァーチャルホスト > localhost > ユーザと移動して、ユーザを3つ追加。

  • hironemu
  • john
  • mary

f:id:hiro_nemu:20140211233005p:image

1台目のMacのMessageアプリでhironemuユーザを登録。

f:id:hiro_nemu:20140211233001p:image

f:id:hiro_nemu:20140211233002p:image

以下のように証明書の警告がでるが、今回はテストなのでそのまま続行を押す。

f:id:hiro_nemu:20140211233003p:image

2台目以降のMacJabber対応のアプリでmaryユーザ、johnユーザを登録。するとチャットができるようになる。

f:id:hiro_nemu:20140211233000p:image

ejabberdはMulti-User Chat(mod_muc)というモジュールがあってデフォルトでONになっていたけど、MacのMessageアプリから複数ユーザを宛先に指定すると「このサーバは、グループチャットには対応していません」と表示される。グループチャットとMutti-User Chatは違うのそれとも設定が他に必要なのかどうなのか、次回の宿題ですね。

リンク元