2007-02-16
StunnelでIRCサーバをSSL化
社内と外でIRCしたいかもしれない理由があって、IRCサーバを立ててSSLでつなげるようにしてみたログ。
サーバはDebian。
Stunnelは任意のTCP接続をSSLの上にのっけることができるプログラム。これをIRCサーバで使ってみる。
ircdを動かす
# apt-get install ircd-ircu
とりあえずはこれだけで、IRCサーバとしては使える。
Stunnelをインストール
# apt-get install stunnel4
※ stunnel4ではなくstunnelというパッケージがあるが、バージョン3系で古い。設定方法も違うようなので、stunnel4を入れるようにする。
SSL証明書を用意
既存の証明書(HTTPS用)を流用して、そこから秘密鍵とサーバー証明書をつなげたファイルを作る。中身は、↓のようになる。秘密鍵はパスワードで暗号化されていないことが必要。
-----BEGIN RSA PRIVATE KEY----- ... -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
一から作る場合は /usr/share/doc/stunnel4/README.Debian に openssl を使う方法が書いてある。
証明書を適当な場所に置く。 -> /etc/stunnel/stunnel.pem に。秘密鍵を含むのでパーミッションを600にする。
とりあえずフォアグラウンド実行で接続テスト
% sudo stunnel -D 7 -f -p /etc/stunnel/stunnel.pem -d 6668 -r 6667
※ /usr/bin/stunnel と /usr/bin/stunnel4 がある。stunnelのほうは stunnel 3.x のコマンドラインsyntaxで使えるwrapper
この状態でIRCクライアントから、Port 6668にSSLでつなげればOK。
Stunnelをitetdから起動させる
デーモンでも起動できるが、inetdからにしたほうがアクセス制限ができるのと、いつも必要なわけではないのでそうすることにしました。
stunnel4コマンドを使うことにして、コマンドラインに直接設定を書くのではなく、4.x式に設定ファイルに書く。
/etc/stunnel/stunnel.conf:
cert = /etc/stunnel/stunnel.pem sslVersion = all ; <- SSLv3のままではIRCクライアントのColloquyからつなげなかった ... connect = 6667 ; [pop3s], [imaps], [ssmtp] は削除orコメントアウト。inetdで使うときはセクションは書いてはいけない。
/etc/inetd.conf:
6668 stream tcp nowait root /usr/sbin/tcpd /usr/bin/stunnel4 /etc/stunnel/stunnel.conf
/etc/hosts.allow:
stunnel4: <許可したいところ>
問題
ircdからはすべてlocalhostからの接続に見えるので、I:Lineでの、接続元ごとの設定ができなくなってしまう。
- 51 http://b.hatena.ne.jp/entry/d.hatena.ne.jp/ymorimo/20070216/1171630420
- 42 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=ircd-ircu&num=50
- 40 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP:official&hs=VoE&q=+hosts.allow+stunnel.pem&btnG=検索&lr=lang_ja
- 26 http://b.hatena.ne.jp/entry/10166135/StunnelでIRCサーバをSSL化 - ymorimoの日記
- 26 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLJ,GGLJ:2006-30,GGLJ:ja&q=stunnel+stunnel.conf+
- 25 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=8MN&q=ssl+stunnel&start=10&sa=N
- 24 http://www.google.co.jp/search?q=stunnel&lr=lang_ja&ie=utf-8&oe=utf-8&rls=org.mozilla:ja:official&client=firefox
- 23 http://www.google.co.jp/search?q=irc+ssl&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 18 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=Mwv&q=stunnel+接続テスト&btnG=Google+検索&lr=lang_ja
- 10 http://www.google.co.jp/search?hl=ja&q=IRCサーバ+暗号&btnG=Google+検索&lr=