Internet Relay Chat というだけあって、チャットシステムなわけなんだが、
過去にチャットはやったことがあるものの、IRC自体は利用したことがない。
まぁ、今回はチャットそのものではなくてアラートやら定期的な情報の通知に利用するのが
目的なので、メッセージがやり取りできるというところまで。
サーバもいくつかあるみたいだけれど、適当に選んでみたのは ngIRCd というサーバソフト。
1.インストール
EPELにパッケージがあるのでそれを利用する。
$ sudo yum install ngircd2. motdファイルを適用に用意
$ sudo echo "IRC local server" > /etc/ngircd.motd3. SSL用証明書一式を用意
SSL接続ができるとのことなので証明書など一式用意する。
$ sudo mkdir /etc/ngircd_ssl最初OpenSSLでやってみたもののパッケージがGNUTLS用になっていたようでそちらで行うことに。
$ sudo cd /etc/ngircd_ssl
$ sudo yum install gnutls-utils4. 設定ファイルの用意
$ 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
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 -t5. サーバの起動設定
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 ...
$ sudo /sbin/service ngircd start
$ sudo /sbn/chkconfig ngircd on
以上で、サーバは用意できた。
LimeChat というクライアントソフトで接続確認。
とりあえず、ここまで。
あとは、IRCプロキシを立てるのと、通知させたいものからIRCへ投げられるようにするのを引き続き。