windows10にUnrealIRCdでIRCサーバをローカルに立ててみたので、インストールや設定作業で個人的に気になった点をまとめます。
基本的にドキュメントが充実しているのでほとんどそれに従えば問題なく接続までできました。
自己証明書を使ってSSL/TLS接続することまで行います。
UnrealIRCdのインストール
https://www.unrealircd.org/download/6.0/6.0.6/winssl からインストーラをダウンロードします。
インストーラを起動してウィザードを適宜進めていきます。
最後の画面のチェックボックスのRun makecert.bat
はチェックをつけておけば、Finishのあとにバッチが起動するので、必要事項を入力すればSSLサーバ証明書が作成できます。
設定ファイルの修正1
以下ではインストール先ディレクトリを$IRCDIR
とします。
$IRCDIR\conf\examples\example.conf
を$IRCDIR\conf
にコピーして、ファイル名をunrealircd.conf
にリネームします。
このファイルがUnrealIRCdの設定ファイルになりますので適宜修正していきます。2
設定項目がたくさんありますが、最低限以下を設定すれば起動しました。
cloak-keyはランダム文字列生成のwebサービスを使って90文字の文字列を作成すれば大丈夫でした。
- oper bobsmith {
+ oper hoge {
...
cloak-keys {
"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";
- "and another one";
- "and another one";
+ "jBUOcpY0LCsDI7xIc6aFRvGYGW5xLQI72Tsf6nTTk8UDMBc1Bw6G3II72DT86LwydFssu0XiDubv0ROM";
+ "lya77ca1655osddBE5bqPgfrft2NacnCfF5IjRKkpSU5xSbT1xnttvdP7XRDrINxjQ50buPMBeXsjc3l";
}
...
set {
- kline-address 'set.this.to.email.address'; /* e-mail or URL shown when a user is banned */
+ kline-address 'email@example.org'; /* e-mail or URL shown when a user is banned */
UnrealIRCdを起動して次の画面が表示されればサーバ構築完了です。
接続確認
IRCクライアント(LimeChatやHexChatなど)からIRCサーバに接続してメッセージ送受信することを確認します。
暗号化なし
localhost:6667
に接続することでメッセージ送受信することができました。
SSL/TLS通信
接続の前にUnrealIRCdのSSLサーバ証明書をwindowsの証明書ストアにインストールします。
$IRCDIR\conf\tls\curl-ca-bundle.crt
をダブルクリックして証明書のインストールをすれば完了です。
localhost:6697
に接続することでメッセージ送受信することができました。
(LimeChatからだと対応TLSバージョンが古くてサーバ接続時にerror: : ACCEPT_SR_CLNT_HELLO: tlsv1 alert protocol version
のエラーで即切断されます。)
補足
デバッグ用ログを出力したい。
以下のように設定します。
log {
source {
all;
- !debug;
+ debug;
!join.LOCAL_CLIENT_JOIN;
!join.REMOTE_CLIENT_JOIN;
ちなみにログは$IRCDIR\logs\ircd.log
に出力されます。
サーバ接続パスワードを設定したい
以下のように設定します。
allow {
mask *;
class clients;
+ password "mzbot123";
maxperip 3;
}
仮想ホスト名を割り当てないようにしたい。
UnrealIRCdはデフォルトではサーバ接続しているユーザのIPアドレスを他ユーザに見えないようにvhost(仮想ホスト名)を割り当てるようになっています。
それを無効化するには、以下のように設定します。3
- modes-on-connect "+ixw"; /* when users connect, they will get these user modes */
+ modes-on-connect "+iw"; /* when users connect, they will get these user modes */
連続送信の間隔時間の制限をなくしたい
デフォルトでは短い時間間隔でメッセージを多数送ると送信制限かかるのですが、anti-fllod機能を無効化することで制限がなくなります。4
以下を設定ファイルに追加し、もし既存の設定にanti-flood
ブロックがあれば削除してください。
blacklist-module targetfloodprot;