
CentOSでIRCサーバーを構築する
LINEやSkypeやチャットワークなどのコミュニケーションツールが流行っていても、やはり社内チャットの定番はIRC(Internet Relay Chat)!そこで今回はCentOS6にIRCサーバーを構築する方法をご紹介します。IRCサーバーは社内にも立てられますが、さくらVPSなど外部サーバーを使った場合も想定してSSL通信で暗号化する方法も解説いたします。
ircd-hybridをインストール
IRCサーバーのミドルウェアはいくつかありますが、今回はCentOS標準で用意されているircd-hybridをインストールしてみます。
$sudo yum install -y ircd-hybrid
これでircd-hybridがインストールされ、/etc/ircd/ircd.confが作成されますが、標準で用意されているircd.confはかなり難解なので、サンプルで用意されている簡単なircd.confに置き換えます。
$sudo cp /usr/share/doc/ircd-hybrid-7.2.3/simple.conf /etc/ircd/ircd.conf
SSL鍵の作成
IRCサーバーとのSSL通信に必要なSSLの鍵ファイルを準備します。ここでは、ドメインはirc.example.comとします。
sudo mkdir -p /etc/ssl/ircd
cd /etc/ssl/ircd
sudo openssl genrsa -out rsa.key 2048
sudo openssl rsa -in rsa.key -pubout -out rsa.pub
sudo chown ircd:ircd *
sudo chmod 600 *
sudo openssl req -new -days 365 -x509 -key rsa.key -out cert.pem
最後のコマンド実行後にSSL証明書について幾つか質問されますので、答えていきます。
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:Shibuya
Organization Name (eg, company) [Default Company Ltd]:hogehoge inc.
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:irc.example.com
Email Address []:
これでSSL証明書が準備できました。
ircd.confの編集
ircd.confを編集します。編集箇所だけリストアップします。
serverinfo {
name = "irc.example.com";
sid = "101";
description = "hogehoge IRC server";
network_name = "hogehoge";
network_desc = "This is hogehoge IRC Network";
hub = no;
max_clients = 512;
rsa_private_key_file = "/etc/ssl/ircd/rsa.key";
ssl_certificate_file = "/etc/ssl/ircd/cert.pem";
};
admin {
name = "Saito Takayoshi";
description = "Main Server Administrator";
email = "******@example.com";
};
listen {
flags = ssl;
port = 6667;
};
auth {
user = "@";
class = "users";
password = "**************";
encrypted=yes;
};
最後にircdを起動させます。
sudo /etc/init.d/ircd start
IRCクライアントからの接続
LimeChatなどのIRCクライアントから接続します。ポートは6667。SSLチェックは忘れずに付けましょう。うまく成功すると以下のようにIRCクライアントにメッセージが表示されます。
Connected
*** Looking up your hostname...
*** Checking Ident
*** Found your hostname
*** No Ident response
*** Connected securely via TLSv1.2 AES256-SHA256-256
Logged in
Welcome to the hogehoge Internet Relay Chat Network saito
Your host is irc.example.com[0.0.0.0/6667], running version hybrid-7.3.1
This server was created Aug 20 2012 at 12:29:37
irc.example.com hybrid-7.3.1 CDGabcdfgiklnorsuwxyz biklmnopstveIOS bkloveI
CALLERID CASEMAPPING=rfc1459 DEAF=D KICKLEN=160 MODES=4 NICKLEN=51 PREFIX=(ov)@+ STATUSMSG=@+ TOPICLEN=120 NETWORK=hogehoge MAXLIST=beI:25 MAXTARGETS=4 CHANTYPES=#& are supported by this server
CHANLIMIT=#&:15 CHANNELLEN=50 EXCEPTS=e INVEX=I CHANMODES=eIb,k,l,imnpstOS WATCH=32 ELIST=CMNTU SAFELIST AWAYLEN=160 KNOCK are supported by this server
101AAAAAA your unique ID
There are 0 users and 1 invisible on 1 servers
I have 1 clients and 0 servers
Current local users: 1 Max: 1
Current global users: 1 Max: 1
Highest connection count: 0 (0 clients) (1 connections received)
MOTD File is missing
saito has changed mode: +i
これでログイン成功です。あとはチャンネルを作るなり自由にIRCを楽しみましょう。
なお、もし以下のメッセージが出力される場合、
The operation couldn’t be completed. (OSStatus error -9800.)
SSL通信に何らかの問題が発生しています(listenでSSLポートが開いていないなど)。設定をもう一度見直しましょう。