IRCサーバ

  • 投稿日:
  • by
  • カテゴリ:
いろんなものの通知に使えるかもということで、IRCサーバを立ててみた。

Internet Relay Chat というだけあって、チャットシステムなわけなんだが、
過去にチャットはやったことがあるものの、IRC自体は利用したことがない。
まぁ、今回はチャットそのものではなくてアラートやら定期的な情報の通知に利用するのが
目的なので、メッセージがやり取りできるというところまで。

サーバもいくつかあるみたいだけれど、適当に選んでみたのは ngIRCd というサーバソフト。

1.インストール

EPELにパッケージがあるのでそれを利用する。

$ sudo yum install ngircd
2. motdファイルを適用に用意

$ sudo echo "IRC local server" > /etc/ngircd.motd
3. SSL用証明書一式を用意

SSL接続ができるとのことなので証明書など一式用意する。

$ sudo mkdir /etc/ngircd_ssl
$ sudo cd /etc/ngircd_ssl
最初OpenSSLでやってみたもののパッケージがGNUTLS用になっていたようでそちらで行うことに。

$ sudo yum install gnutls-utils
$ certtool --generate-dh-params --bits 4096 --outfile dhparams.pem
Generating DH parameters...
$ certtool --generate-privkey --bits 2048 --outfile server-key.pem
Generating a 2048 bit RSA private key...
$ certtool --generate-self-signed --load-privkey server-key.pem --outfile server-cert.pem
Generating a self signed certificate...
Please enter the details of the certificate's distinguished name. Just press enter to ignore a field.
Country name (2 chars): JP
Organization name:
Organizational unit name:
Locality name: xxxx
State or province name: xxxx
Common name: irc.example.org
UID:
This field should not be used in new certificates.
E-mail:
Enter the certificate's serial number in decimal (default: 1388690534):


Activation/Expiration time.
The certificate will expire in (days): 3650


Extensions.
Does the certificate belong to an authority? (y/N): n
Is this a TLS web client certificate? (y/N): n
Is this also a TLS web server certificate? (y/N): n
Enter the e-mail of the subject of the certificate:
Will the certificate be used for signing (required for TLS)? (y/N): n
Will the certificate be used for encryption (not required for TLS)? (y/N): n
Enter the URI of the CRL distribution point:
X.509 Certificate Information:
...
Is the above information ok? (Y/N): y
4. 設定ファイルの用意

ngircd.conf を作成する。

$ sudo cp -p /etc/ngircd.conf /etc/ngircd.conf.org
$ sudo cp /usr/share/doc/ngircd-20.3/doc/sample-ngircd.conf /etc/ngircd.conf
$ sudo vi /etc/ngircd.conf
変更内容は以下の部分。

[Global]
        Name = irc.example.org
        AdminInfo1 = IRC server
        AdminInfo2 = local
        AdminEMail = admin@example.org
        Info = ngIRCd
        Password = (PASSWORD)
        Ports = 6667

[Options]
        DNS = no
        Ident = no

[SSL]
        CertFile = /etc/ngircd_ssl/server-cert.pem
        DHFile = /etc/ngircd_ssl/dhparams.pem
        KeyFile = /etc/ngircd_ssl/server-key.pem
        Ports = 6669
以下のコマンドで設定ファイルの確認ができる。

$ sudo ngircd -t
ngIRCd 20.3-IDENT+IPv6+IRCPLUS+SSL+SYSLOG+TCPWRAP+ZLIB-x86_64/redhat/linux-gnu
Copyright (c)2001-2013 Alexander Barton (<alex@barton.de>) and Contributors.
Homepage: <http://ngircd.barton.de/>

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Reading configuration from "/etc/ngircd.conf" ...
OK, press enter to see a dump of your server configuration ...
5. サーバの起動設定

$ sudo /sbin/service ngircd start
$ sudo /sbn/chkconfig ngircd on

以上で、サーバは用意できた。
LimeChat というクライアントソフトで接続確認。

とりあえず、ここまで。
あとは、IRCプロキシを立てるのと、通知させたいものからIRCへ投げられるようにするのを引き続き。