ejabberdで部内IM

テスト環境
CentOS5 テスト用最小インストール手順参照。

概要

今の社内にはチャット的なものがなくて、しょうもないこともメールでやり取りしたりしてるので、チャットシステムを導入してもちょっと円滑なコミュニケーションを図ろうという計画。

IRCが一番いいかなと思ったのだけど、IRCはちょっと初心者には難しいかなというのと、最近はIMに慣れている人も多いということで、ejabberdを使ってみる。

手順

EPELの有効化

ejabberdのパッケージがEPELに存在するのでそれを使う。

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
# rpm -ivh epel-release-5-2.noarch.rpm
# vi /etc/yum.repos.d/epel.repo

一応無効化。

[epel]
・・・
enabled=0
・・・

[epel-debuginfo]
・・・

ejabberdのインストール

# yum install ejabberd --enablerepo=epel,epel-testing

ejabberdの設定

ejabberdの設定ファイルは/etc/ejabberd/ejabberd.cfg なのでこれを設定する。 まず念のためオリジナルをバックアップしておく。 {{[ # cp -pi /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd.cfg.ORG }}} 編集する

# vi /etc/ejabberd/ejabberd.cfg

編集箇所はとりあえず以下。

override_global.
override_local.
override_acls.
・・・
{hosts, ["chat.cafechantant.com"]}.
・・・
{language, "ja"}.

hostsの箇所はある意味なんでもよいけど、認証時のドメインになるので適当なものを指定すること。 languageは多分動作しない(爆)けど一応。

とりあえずこれだけでも動くけど、このままだと通信が暗号化されないのでSSL証明書を作成して暗号化する。

# cd /etc/ejabberd
# openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out ejabberd.pem

/etc/ejabberd配下で公開鍵をejabberd.pemというファイル名で作成しているのは、元々ejabberd.cfgにはSSL設定はあるのでそれに合わせている。設定はあるんだけどファイル自体がないから暗号化されないというわけ。
あと、注意としてCommonName?にはjabberで使うドメインを指定すること。

パスフレーズを抜く

# openssl rsa -in privkey.pem -out privkey.pem

秘密鍵と公開鍵を一つにまとめる。まとめたら秘密鍵はもう不要なので削除。

# cat privkey.pem >> ejabberd.pem
# rm privkey.pem
# chown root:ejabberd ejabberd.pem
# chmod 640 ejabberd.pem

起動

# chkconfig ejabberd on
# service ejabberd start

確認

# ejabberdctl ejabberd@chat status
Node ejabberd@chat is started. Status: started
ejabberd is running <-- 動いていることがわかる。