CentOS7に、現時点で最新版のcharybdis 3.4.2をインストールしてみました。
インストール先はデフォルトである、ユーザーのホームディレクトリです。

IRCって何という方はクリエイターズネットワーク公式サイトを、charybdisって何という方は先日の記事を参照してください。
簡単に言うと、チャットするための規格と、その規格に沿って開発されたデーモン(サーバープログラム)です。

インストールまでの手順

途中、flexなどの必要なパッケージをyumでインストールします。が、何が必要だったかメモするのを忘れてしまったためここには書きません。

※2015-03-04追記
CentOS7をminimalでインストールしたシステムにおいて、bisonもしくはbyaccのどちらかと、flexが必要でした。
また、Ziplinksを有効にするためzlib-develを、OpenSSLを有効にするためopenssl-develをインストールしました。
コンパイラはgccとmakeの2つと、それらの依存パッケージのみインストールしました。

デフォルトでは、configureやmakeをしたユーザーのホームディレクトリに ircd というディレクトリを作り、そこへインストールされます。この記事の例でいえば、charybdisというユーザーでビルドしているので、/home/charybdis/ircd にインストールされます。

configureで指定しているオプションは(わかりやすいですが)それぞれ、

  • –enable-ipv6
    IPv6をサポートします
  • –enable-openssl
    OpenSSLによる暗号化接続をサポートします
  • –with-nicklen=50
    設定可能なニックネームの最大長を50文字にします。デフォルトは31文字、最大が50文字です。設定ファイル中で、ここでの設定値より小さい値なら自由に指定できます。
  • –with-topiclen=390
    トピックの最大長を指定します。最大・デフォルトが390文字です。設定ファイルには特に設定値はありません。

です。zlibなどはデフォルトで有効になっているので、サーバー間の圧縮通信などはこのままでできます。

systemdへの登録

CentOS7(正確にはその派生元であるRHEL7)からは、SystemV系のinitではなく、systemdを採用しています。ですので、わざわざシェルスクリプトを書かず、systemdに登録するためのファイルを用意します。

Fedora22のircd-ratboxパッケージに含まれるサービスファイルを参考にしようと思ったんですが、可能ならType=simpleのほうがいいのかもしれないと思い、変えました。原型があまり残っていないような気がしますが、参考文献ということで一応。

これをrootで、 /etc/systemd/system/charybdis.service という名前で保存します。保存できたらsystemdを読み込みなおして、追加されているか確認です。

$ sudo systemctl daemon-reload
$ sudo systemctl status charybdis
charybdis.service - charybdis - Internet Relay Chat Program Server
   Loaded: loaded (/etc/systemd/system/charybdis.service; disabled)
   Active: inactive (dead)

このようなメッセージでしたら、設定が正常に読み込まれているということです。

firewalldへの登録

続いて、ファイアーウォールを設定します。

ここでは、6665~6669番と6697番のポートを開放しました。実際には設定ファイルでどう指定するかによりますが、大抵は前者の4つが通常の接続に、6697番がSSL接続用のポートに割り当てます。

このファイルをrootで、 /etc/firewalld/services/irc.xml という名前で保存します。systemdと同じく、保存したらfirewalldを読み込みなおして確認します。

$ sudo firewall-cmd --reload
success
$ sudo firewall-cmd --get-services
... (略) irc (略) ...

出力された1行の中にircという文字があれば読み込まれているということです。ゾーンの設定やらいろいろあるのでfirewalldの詳しい使い方はここでは省略します。
Linux女子部 firewalld徹底入門!が結構わかりやすいと思います。

設定ファイルを編集する

英語です。当然のごとく、全部英語です。
中途半端に、間違いなんて知らんと言いながら設定ファイルを翻訳したものを先日記事にしているので、それを参考にどうぞ。訳が間違ってたら教えてください。

デフォルトで読み込まれる設定ファイルは、 $PREFIX/etc/ircd.conf というファイルです。上のビルド例なら、 /home/charybdis/ircd/etc/ircd.conf になるわけです。
example.conf または reference.conf を ircd.conf にコピーして編集します。

書き換える項目は以下の通り。他はお好みでどうぞ。
<ブロック名>:<設定項目>という形式で箇条書きにしました。

  • serverinfo:name
    サーバーの名前です。完全なホスト名を書きますが、DNSで引ける必要はありません。
  • serverinfo:network_name
    所属するIRCネットワークの名前です。IRCなのでリレーするのが前提という設定項目ですが、適宜変更します。半角空白は使えません。
  • serverinfo:network_desc
    同じくIRCネットワークの説明を簡単に書きます。
  • serverinfo:nicklen
    ニックネームの最大長です。ビルド時に設定した値よりは小さくします。
  • admin
    ブロックの中の設定項目3つはすべて書き換えます。
  • listen:port
    暗号化なしでの接続要求を待機するポートを指定します。サーバー間のリレーでつかうポートも設定します。
  • listen:sslport
    暗号化しての接続要求を待機するポートを指定します。
  • auth
    1つ目のauthブロックは、必要なければ削除かコメントアウトしたほうがいいと思います。
  • operator
    IRCオペレータの定義部分ですので、必要に応じて編集します。ここが外部にもれるとセキュリティ的に長期件ですので注意してください。
  • connect
    サーバー間のリレーを設定するならこのブロックで指定します。しないならすべて削除するかコメントアウトしたほうがいいと思います。
  • service
    IRCサービスをリレーして利用するなら編集します。しないならやはり削除したほうがいいと思います。
  • alias
    これもIRCサービスを利用するときの項目です。いらないなら消したほうがいいと思います。

編集・保存できたら、設定ファイルをチェックします。

$ cd ircd/
$ bin/ircd -conftest

Beginning config test

Config testing complete.

このような出力が得られたら、問題なく起動できるということです。

rootでsystemdから起動できたら、インストールは終了です。

The following two tabs change content below.

こいちゃん

とある時期に空を泳ぐ魚。 風があると嬉しくなる。少量なら雨にあたるのも好きかも。 って、何でこっちに向けたホースをもって蛇口をひねろうとしてるの!? よろしくおねがいします