今回は、ウェブクライアントアプリケーション「KiwiIRC」と、IRCサーバデーモン「charybdis」の協調設定についてです。
どちらもWebIRCという規格に対応していて、これを利用すると、ウェブクライアント経由の接続でも、IRCデーモンからはウェブクライアントに接続しているIPアドレスが接続元のアドレスをとして扱えるようになります。

WebIRCに対応していないと(もしくは設定していないと)、実際の利用者のIPアドレス(ウェブクライアントが接続元と認識するIPアドレス)は、IRCサーバに通知されません。
それでは不便なことがまれにあるので、IRCデーモンからはウェブクライアントが動作しているコンピュータのIPアドレスが認識されるようにします。そのための規格がWebIRCです。

前提条件

各プログラムのバージョンです。

  • CentOS 7
  • charybdis 3.4.2
  • KiwiIRC 0.9.2

KiwiIRCとcharybdisは、同一のコンピュータで動作しているものとします。
接続するIRCサーバのアドレスは “irc.cre.jp” とします。

そのほか、KiwiIRC/charybdis の設定については、先日の記事をご覧ください。

KiwiIRCの設定

config.js を開き、以下のように編集します。

// Multiple WebIRC passwords may be used for multiple servers
//conf.webirc_pass = {
//    "irc.network.com":  "configured_webirc_password",
//    "127.0.0.1":        "foobar"
//};
// Multiple WebIRC passwords may be used for multiple servers
conf.webirc_pass = {
//    "irc.network.com":  "configured_webirc_password",
    "irc.cre.jp":        "WebIRC-Password"
};

コメントアウトを外し、上から下に書き換わりました。
4行目にある2つ目のダブルクオートで囲まれた部分が、サーバとの通信時に使用されるWebIRC専用のパスワードです。mkpasswdコマンドなどで適当にランダムな文字列を生成すればいいのではないでしょうか。

この項目のすぐ上に、あたかも1行で設定できるかのような項目もありますが、こちらで設定してもうまく動作しなかったため、上で書き換えた複数行の書式を使いました。

この設定をしたら、ファイルを閉じます。

charybdis の設定

以下の設定を書き加えます。

引っかかった点は、auth:spoof の項目です。この項目の設定値は、上で示した通りにしないといけません。”webirc.”になっていなければ、WebIRC規格を使用した接続として扱わなくなります。KiwiIRCから接続しようとしても、「Bad Password」というエラーが返ってきてIRCにログインできません。

ファイルを閉じ、IRCサーバをリロードします。ついでに m_webirc.so モジュールも読み込めているか確認しました。以下は、IRCオペレータ権(その中でも特にadmin)を持つユーザーが、IRCコマンドを使って操作した例です。

/rehash
 *Reply(382) /home/charybdis/ircd/etc/ircd.conf Rehashing
 (irc.cre.jp) *** Notice -- koi-chan!koi-chan@p5029-ipngn2801marunouchi.tokyo.ocn.ne.jp{koi-chan} is rehashing server config file
/modload extensions/m_webirc.so
 *** Notice -- Module m_webirc.so [version: $Revision: 20702 $; MAPI version: 1] loaded at 0x1b866d0

このような応答が返ってくれば、IRCサーバ側の準備は完了です。もしModule m_webirc.so is already loadedと応答されたら、すでにモジュールは読み込まれているということです。

設定の確認

ここまで終わったら、KiwiIRCを再起動します。サーバーアドレスを指定してConnectし、いつもと同じようにIRCにログインできれば成功です。
サーバステータスが表示されるタブに、以下のような1行が見つかるはずです。確認に使ったコンピュータのIPアドレスと逆引きホスト名が表示されているでしょうか。

CGI:IRC host/IP set to p5029-ipngn2801marunouchi.tokyo.ocn.ne.jp 180.11.174.29

試行錯誤中によく出たエラーとしては、「Bad Password」がありました。WebIRC用に指定したパスワードが間違っていることもあれば、charybdisのauthセクションで指定した user に合致していない、spoofが”webirc.”になっておらずWebIRCとして認識されていなかったこともありました。

分かりづらいエラーメッセージですが、一つ一つ確認していくしかないようです。