Oct 22, 2006

Mac OS Xをインスタントメッセージングサーバーにしよう

Panther tiger

 「あっ、そうだあっちの事務所に書類渡して細かい打ち合わせしないとまずいんだっけ。」とか、「課長、このページそっちでも見てください。じゃURL読みま...長いぞこれ。」とか、「サークルの合宿どこでやるか決めたいけどあつまる時間がないなぁ。」なんてメールですませようとすればすませられるけれども、メールよりも素早く、リアルタイムで双方向なやりとりが必要なときもあるわけです。

 こんな時Mac OS X(PantherやTiger)には「iChat」という多機能なインスタントメッセージングソフト(IMソフト)が用意されているじゃないか、なんて思うわけですが、実際には「ああ、そういえばあの人はWindowsだったっけ。」とか、「AIMアカウントの登録の仕方がわからないんだけど。」なんていうのが起きたりします。また組織内のデータややりとりを外部にあるIMサーバー(.MacやAIM)を経由して行うことにセキュリティ的な心配をしてしまうこともあるわけです。

 ここではMac OS X(PantherやTiger)に、オープンソースウェアのIMサーバー「Jabber」をインストールして、プライベートIMサーバーを構築していく方法を考えていきます。



はじめに

 「Jabber」を使用してIMサーバーを作ることのメリットはいくつか考えられます。

  • アカウントの管理
    はじめからサークルの部員全員や職員全員分のアカウントとパスワードを作成しておいて、会議の時に渡すようにすると、各個人で登録をする作業が省けてとても楽。
  • セキュリティにちょっと安心感
    組織内LAN専用にくみ上げると、組織内LAN内だけでチャットのやりとりが完了できるので、外にデータが漏れなくて安心。もっともMac OS Xだけの環境ならBonjour(旧Rendezvous)というすてきな機能が備わっているため、それだけで組織内のみのチャットが可能になっていますが。
  • 互換性が高い
    インスタントメッセンジャーソフトは世の中にたくさんあります。iChat、Yahoo!メッセンジャー、MSN Messenger類、ICQ、AIMなどですが、Jabberはこのたくさんあるソフトをつなぐことができます。たとえばYahoo!メッセンジャーユーザーが、AIMユーザーにメッセージを送るなんていうことができます。ただしこれを実現するにはそれなりの設定がいります。


Jabberソフトウェアについて

 JabberはMac OS X server (Tiger server)には標準で装備されている機能「iChatサーバー」の元になっているそうです。

 サーバー版ではないMac OS XをJabberサーバーにするサーバーソフトウェアはいくつかあります。Jabber.orgさんのサイトによると、完成度の高い順に「Wildfire」、「ejabberd」、「jabberd2.x」、「psyced」、「OpenIM」、「jabberd1.x」などが開発されているようです。ここでは手軽にインストールができる「ejabberd」をインストールしていきます。ただ、Mac OS XがUNIXであることからしますと、これ以外でもUNIX用となっているものは使用できると思います。98%の完成度を誇るWildfireは、Mac OS X用のインストーラパッケージが見あたらないところを見ると、おそらくUNIXとして配布されているものを使用するとよいということだと思います。


自分のサーバーを専用IMサーバーにできる


ユーザーの管理も簡単。



 この作業では以下のステップがすんでいることを前提に進めていきますので、取りかかる前に、最低限、次のステップをすませておかないといけません。




必要なもの

  • Mac(Mac OS Xを搭載しているもの。ここは10.4.x(Tiger)で進みます)
  • Safariまたはシイラ、Firefox、Internet Explororなどのブラウザ
  • やる気
  • オープンソースコミュニティへの応援
  • セキュリティーとプライバシーへの配慮
  • インターネットを構築してくれた方々への畏敬の念



Jabberサーバー「eJabberd」をダウンロードする

 まずejabberdを開発しているサイトからダウンロードをしてきます。
ここではejabberd1.1.2で進めていきます。

  1. ejabberdさんのサイトに行きます。


    eJabberd : http://ejabberd.jabber.ru/


  2. トップページ上のDownloadをクリック。

    Downloadから先へ。


  3. Download Pageが開きます。

    いろいろありますけども...


  4. ページ中程にMac OS X installerがありますので、そこをクリックします。



  5. Process Oneのejabberdダウンロードページが開きます。



  6. ページからMac OS X installer を探してクリックします。

    2006年10月22日現在はまだInterMac用は開発完了していないみたいですね。


  7. ダウンロードが始まります。



  8. ダウンロードが完了すると「ejabberd-1.1.2_1-osx-installer」というインストーラがデスクトップにできます。



  9. ダウンロードの作業はこれでおしまいです。



ejabberdのインストール

 ejabberdはMac OS Xのインストーラパッケージになっているので導入が簡単です。ダブルクリックで後は指示に従うだけです。ProseccOne。とてもうれしい。

  1. インストーラをダブルクリックします。



  2. インストーラーが起動します。

    かっこいい。


  3. 言語選択ダイアログが出ますが、日本語はないのでEnglishのまま先に進みます。

    スペイン語とかできる人はお好きなものをどうぞ。


  4. セットアップウィザードが始まります。Nextを押して先に進みます。



  5. 使用承諾書がでます。一通り目を通したあと、「I accept the agreement」にチェックをつけてNextに進みます。

    一通り読んで、


    I acceptにチェックして先へ。


  6. インストール先を聞いてきます。標準の場所はアプリケーションフォルダとなっています。このままでオッケーなのでNextを押して先に進みます。



  7. Jabberを動かすサーバーのドメインネームを聞いてきます。ちょっと難しくなってきましたが、たとえば、

    組織内のLAN内だけでJabberサーバーを使用したい場合は、Jabberを動かしているサーバーのローカルIPアドレス(これはシステム環境設定のネットワーク>TCPIPで確認できます)を入力します。外部からの接続はできません。

    または、


    システム環境設定>共有にの上の方に表示されている名前でも大丈夫です(画像)


    サークル仲間とやりとりしたいなど、外部のユーザーからの使用も考える場合は、サーバーのドメインネームを入力します。ここでは、ddo.jpさんで取得したドメインを例に入力してあります。


    ただしLAN内からの接続の場合、BINDの設定が必要になります。


  8. 次は「管理者」の設定になります。管理者名を入力します。ここでは例としてhogehogeと入力しました。



  9. 続いて管理者パスワードの設定です。

    絶対に忘れないようキーチェーンに登録しておくと安心です。


  10. 次に、このマシンをノードの一部として組み込むかどうかを設定します。普通はNoのままでオッケーです。Jabberの処理を複数のマシンで協調、分散的に行う場合に必要な設定です。



  11. いよいよインストールです。Nextを押すとインストールが始まります。



  12. インストールされていきます。



  13. インストールが終了すると以下の画面になります。Finishを押します。



  14. Readmeファイルが開きますので目を通しておきます。



  15. これでejabberのインストールは終了です。親切で簡単で助かります。



ejabberdの起動

 インストールされたejabberdはアプリケーションフォルダにありますが、実際にこの中に入っている実行ファイルをいじったりする必要はないみたいです。

  1. アプリケーションフォルダの中にはejabberdフォルダがありますが、この中身に設定したりとか、起動したりとかの必要はありません。




    あった、あった。


  2. 試しに開けてみると、なんだかいろいろはいっていてどきどきしますが、いじらなくてオッケーです。おそらく使う可能性があるものといえば、ejabberdがいらなくなったとき削除するためのUninstallerぐらいだと思います。



  3. ejabberdの起動と停止はシステム環境設定からおこないます。




  4. システム環境設定を開くとejabberdパネルがあるはずです。

    ejabberパネルを開くと...


  5. ejabberdパネルでejabberサーバーの起動と停止ができるようになっています。

    おおおおお!


  6. Start ejabberdを押して起動させます。

    とても親切な設計。


  7. Safariでejabberdのスタートページが開きます。



  8. このページの文章一行目にある「admin interface」をクリックします。



  9. ログインダイアログが開きますので、さきほどの管理者名とパスワードを入力してログインします。



  10. あれ?うまくログインできないんだけどと、私は悩みました。よく読むとログインに必要な管理者アカウントは、さっき入力した管理者名にサーバーのアドレスを加えて入力しないといけないようです。ここでは先の例でいくと、管理者名をhogehoge、サーバーのアドレスをmydomain.ddo.jpと決めましたので、以下のようにしてログインします。

    もしddo.jpなどのドメインネームなどを利用していて、LAN外部から接続する場合などは、ポート5280が開いている必要があります。Firewallなどが有効な場合、5280を開けるように設定をしてから作業をしないとがんばってもログインできません。


  11. ejabberdの設定画面が表示されます。これでejabberdの起動は終了です。すでに自分のサーバーはJabberIMサーバーとして動いています。このサーバーをつかってチャットをすることができます。次は設定に進みます。




ejabberdの設定。

 ejabberdはこれだけの操作でもう動いています。
 ただし、これからJabberサーバーを運営していくに当たって、決めておかないとまずいことがあります。それは自分のJabberサーバーを世界中の誰でもが利用できるようにするかどうかです。現在の設定のままだと、このサーバーは、世界中の誰でもが自由に利用登録することができて、また自由にIMサーバーとして利用することができるようになっています。
 このままのオープンな設定でかまわないということであれば、ここから先のステップはとばして「Jabberアカウントの登録-ユーザーによる登録-」進んでください。
 もし、このサーバーをサークルのメンバーだけとか、組織内の人間だけが利用できるようにしたいのであれば、利用登録は管理者だけができるようにしておかないといけません。ここではユーザー登録は管理者だけができるように設定していきます。

  1. ejabberdの設定画面です。



  2. Access Rulesにすすみます。



  3. Access Rule設定画面が開きます。



  4. 一番下「register」の設定に注目します。[{allow,all}]となっています。この設定で、世界中の誰でもが、このサーバーに接続してユーザー登録ができるようになっています。ここを管理者(admin)だけが行えるように変更します。



  5. 「register」をクリックして先に進みます。「register access rule configuration」画面が開きます。



  6. 「allow all」となっているところを「allow admin」に変更します。

    これを



    これに


  7. 変更が終了したらsubmitを押して完了です。



  8. Access Rulesに戻って確認すると、ちゃんと管理者のみになっているはずです。



  9. これでユーザーの登録は管理者だけができるようになりました。



Jabberアカウントの登録-管理者による登録-

 いよいよ今作ったあなたのJabberサーバーを利用するユーザーのアカウントを作成していきます。
 たとえばサークル仲間でこのJabberサーバーでチャットをするなら、あらかじめ管理者のあなたが全員分のアカウントを用意しておいて、次のサークル会議の時にでもそのアカウントを配れば、みんながいちいちそれぞれで登録をするなんてめんどうな手間が省けるというわけです。

  1. Virtual Hostsをクリックします。



  2. Jabberサーバーで有効なホストネーム一覧が出てきます。まあ、あまり深く考えなくてもよいです。

    ddo.jpドメインを登録していたらそれが表示されるはずです。


  3. ホストネームをクリックします。



  4. 管理者用のメニューが表示されます。



  5. Usersをクリックします。



  6. Jabberサーバーに登録されているユーザーの一覧が表示されます。

    まだ管理者の自分一人しかない。


  7. Jabberサーバーを使えるユーザーを登録していきます。ここでは例として、サークル仲間boyacky用に、アカウントを作成してみたいと思います。UserとPasswordの欄にIDと使いたいパスワードを入力していきます。


    こんな具合に入力。


  8. 入力がすんだら「Add User」を押して登録完了です。すごい簡単!

    ポチッとな


  9. ユーザーリストにboyackyが表示されるようになります。



  10. この要領で必要なアカウントを追加していけばオッケーです。

    サークルのメンバーや組織の人数分だけリストを作ればいい。



  11. これでメンバーの登録は終了です。あとはここで決めたIDとパスワードはサークルのみんなに配るときに忘れてしまわないようにどこかにメモをしておきます。会議の時にでも、それぞれに配ります。

    このメモは入力がすんだらしたらキーチェインの保護項目に入れてしまえばセキュリティ的にもばっちり。



動作確認

 作成したアカウントを使用してチャットができるか試してみます。ここではiChatを例にしていますが、Jabber互換のIMソフトなら何でもいいと思います。先に使ったPsiでもオッケーです。万能のAdiumもおすすめだと思います。

  1. iChatを開きます。



  2. メニューから環境設定を選びます。



  3. アカウントパネルを開きます。



  4. アカウントパネルが開いたら、左下の「+」ボタンを押して、新しくアカウントを作成します。



  5. アカウントを設定するダイアログが開きます。「アカウントの種類」を「Jabberアカウント」に設定します。



  6. 先ほど作成したアカウント、パスワードを入力します。アカウントの後ろには忘れずにサーバーのアドレスを入力します。(ほんとよく忘れるんですよ)入力がすんだら追加を押します。



  7. サーバー情報を開いて、「ポート番号」と「SSLを使用して接続」を確認します。ここはとりあえず外しておいた方が無難です。ここのチェックを外すと5222なります。


    SSLで接続できるどうかはサーバーの設定次第。
    Jabberは通信にポート5222を使っています。SSLを使用して接続する場合は5223を使用します。サーバーがSSL接続に対応していない場合は、SSLを使用して接続のチェックを外しておきます。



  8. iChatにJabberメンバーリストウィンドウが現れるようになります。



  9. オフラインになっているので、オンラインにします。



  10. 「チャット可能」となれば成功です。あなたのサーバーでJabberが正常に動作しています。



  11. あなたのJabberサーバーで実際にチャットができるか試してみます。暇な友達にお願いするか。一台のMacでiChatとPsiを同時に使って、一人二役を試してみるのもありかと思います。

    上の画面は、iChatに設定したアカウントhogehoge@mydomain.ddo.jpとPsiに設定したアカウントboyacky@mydomain.ddo.jpを例にして動作確認中。一人二役で悲しいですが、無事動いているのには感動します。


  12. これですべての作業は終了です。お疲れ様でした。



おまけ-Jabberアカウントの登録-ユーザーによる登録-

 一つ前のステップでは、管理者だけがユーザーアカウントの登録をできるようにしました。もし、インストールしたときのままの、世界中の誰でもあなたのJabberサーバーを使える状態で運営するのであれば、ユーザー自身が自分のアカウントをあなたのサーバーに好きなとき好きなだけ作成することができます。
 以下にそのアカウント作成方法の一例を挙げておきます。Psiというソフトウェアを使用します。PsiはWindowsもMacもLinuxにも用意されています。使い方は同じです。

  1. まずPsi Jabber Clinet:: homeにいきPsiをダウンロードしてきます。


    Psi Jabber Clinet:: home


  2. メニュー上からDownloadsにすすんで、「Mac OS X Disk Image」をクリックして進みます。


  3. おなじみSourceforgeにすすみます。Downloadをクリックしてどんどん進みます。

    Sourceforgeにすすみますので、


    Downloadをクリックして...


    しばらく待っていると...


    Psiのダウンロードが始まります。

    ダウンロードが終了するとデスクトップにPsiができあがっているはずです。これをドラッグアンドドロップしてアプリケーションフォルダにしまっておきます。
      →  


  4. Psiを起動させます。

    真ん中にどかんと出てくるウィンドウはPsiの使い方を毎回教えてくれるTips学習機能です。とりあえずここでは閉じておきます。


  5. メニューのGeneralからAccont Setupを選択します。



  6. アカウントを追加、編集、削除するウィンドウが開きますので「Add」を押して先に進みます。






  7. ユーザー登録画面が出ます。


  8. Nameにユーザー名を入力していきます。ここでは例としてboyackyと入力しました。この名前はPsiで表示するときに名前なのであまり重要ではないです。あと忘れずにRegister ner accontにもチェックをつけておきます。

    このチェックを忘れるとJabberサーバーにアカウントの追加がされません。(Psiソフトに追加されるだけ)


  9. 入力がすんだらAddを押します。



  10. アカウント作成ウィンドウになります。ここからが重要です。



  11. Jabber IDを入力します。「作成したいアカウント名@Jabberサーバーのアドレス」です。

    ここではサークル仲間boyacky用に、先のステップで作ったejabberdサーバーにアカウントを作成しますので、boyacky@mydomain.ddo.jpのように入力しました。


  12. つづいてパスワードを入力します。



  13. そのほかのセッティングについては、特に必要がなければしなくてもオーケーです。

    SSLでの接続には設定がいります。


  14. 入力がすんだらRegisterを押して登録を実行します。登録が始まります。

    Registerを押すと...


    くるくるくるくるまわって登録が始まります。


  15. 登録がうまくいくとそれを知らせる表示が出ます。



  16. このアカウントの詳細を設定する画面が出ます。特に設定する必要がなければSaveを押してアカウントの作成は終了です。



  17. あとは必要な人数分だけアカウントを作成を繰り返して終了です。

    サークル仲間の人数分作成してみたりする。



SSLに対応させる

 ejabberdをSSLに対応させる方法もejabberd.cfgの修正でできるようです。これもまた別の機会にできたらと思います。




iChat、AIM、MSN Messenger類などと互換サーバーをつくる

 Jabberには全く異なるIMからIMへメッセージを送る機能があります。たとえばiChatからMSNメッセにメッセージが送れたり、ユーザーがオンラインかどうか確認できたりです。この機能はすごいと思います。いろいろ面倒な作業や、ありがちなトラブルを一気に無視してハードルのないコミュニケーションに一歩近づけます。
 Jabber.orgで紹介されている公共Jabberサーバーリストへのリンクをあげておきます。サーバーの設定次第でいろいろなIMに対応できるようです。

Jabber :: User :: Open Servers


 今作成したJabberサーバーにこうした設定をする方法はまた別の機会にできたらと思います。ejabberd.cfgの修正でできるようです。



うまく動かない場合

 Jabberのインストールも設定も正しくできているのにうまく動かない場合は、Firewallやルーターの設定を見直します。Jabberは通信にポート5222(SSLを使用する場合は5223)を利用しています。このポートがちゃんと開いているか確認をします。



Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=39
(言及リンクのないトラックバックは無視されます)

Comments in Forum

Discuss