ここ数日で、サーバ内のソフトウェアをいろいろいじってみた。変更したのは以下の通り。
- Darwin Streaming Server 5.5.4(新規)
- OpenLDAP 2.3.31(新規)
- Apache 2.2.3(アップデート)
- Postfix 2.3.5(アップデート)
それぞれについて、ちょこちょこっと。
Darwin Streaming Server
Appleがオープンソースで開発している、ストリーミングサーバ。大晦日にラジオを録っていたときに、「収録後の公開ではなくて、Liveでラジオってどうやったらできんのかな」と思ったのをきっかけに、リアルタイム配信をできるソフトを探していたらこれにいきついた。
実際にリアルタイム配信をするには、同じくAppleが公開しているMac用のアプリケーションで、QuickTime Broadcasterっていうのが必要なんだけど、このアプリで録音しつつ、それをリアルタイムでサーバに送信しつつ、受信者はそのサーバからリアルタイムに受信しつつ、っていう形でLive配信ができるんですよ。データのエンコードやネットワーク速度の関係上、リアルタイムって言っても10秒くらい遅れて流れてくるんだけど、「あー、普通に個人でもこんなことができるんだー」って感じで感動。いつかLiveでラジオとかやってみたいっすな。
ちなみにインストールはNetBSDのpkgsrcからやったんだけど、設定でややはまった。初期設定ではパーミッション系がグダグダで、うまく動かない。最低限このくらいの設定が必要と思われる。
# mkdir /usr/pkg/etc/streaming /var/log/streaming
# qtpasswd -c qtss
# echo admin: qtss > /usr/pkg/etc/streaming/qtgroups
# chown -R qtss /usr/pkg/etc/streaming /var/log/streaming \
/usr/pkg/share/streaming
パーミッションがツボ。たぶんpkgsrcのインストールの仕方が悪いとは思うんだけど。。
でもちゃんと動くことは動いたんだけど、なぜかDarwinStreamingServerプロセスがCPUを常に使いまくりで、CPU使用率99%。どっかで無限ループしてるんだか何なんだか。別のMac OS Xマシン上で動かしたらCPU使用率も3%くらいなので、どっかおかしいっぽい。実際に使うのはこれが解決してからかなー。
OpenLDAP
まーー、一番簡単に言うとデータベースなんだけど、今回OSとかを越えて持ってる全部のマシンで共有できるアドレス帳が欲しくて入れてみた。LDAPって昔から共有アドレス帳とかにも利用されていたらしくて、大抵のメールソフトには「LDAPでアドレスを検索する」的な機能もついている。「本当か?」と思ったら調べてみるがよろし。
それで入れてごにょごにょやってみたら、まあ・・・悪くはない感じ。実際にいろんなマシンでアドレスは共有できる。でも情報を取得する側で姓名の読みとかを表示できない場合があったりとか、「これだっ」って感じではない。。なんかいい方法ねーかなー。
Apache
まぁ、Webサーバです。ようやく2.0系から2.2系へアップデート。2.2.0が出たのってずいぶん前だった気がするけど。
これについては別に書くことないんですが、設定ファイルではまりまくったので、その情報だけ。
まず最初に、そもそもサーバが立ち上がらない、的な症状に見まわれる。それでこれをなんとか解決すると、今度はSSLが使えない。これを解決するために、いったいどれくらいの時間Webサーバが止まっていたのだろう。。
まあ、結局ポイントになったのはこのあたり。
- httpd.conf
#Listen 80 # これいらない
Listen [::]:80 # これ必要
Listen 0.0.0.0:80
- httpd-ssl.conf
#Listen 443 # これいらない
Listen [::]:443 # これ必要
Listen 0.0.0.0:443
- rc.conf
apache=YES
#apache_start="startssl" # これあるとコケる
他にもログ回りとかいろいろ大変なことになってたんだけど、とりあえず動くか動かないかのクリティカルなところではこのくらい。せめてデフォルトで動くようにしてほしいな。。あとバージョン2.2になってから設定ファイルは分割管理が基本になったようで、それに合わせて設定ファイルを再編成しました。かなり面倒だったけど、だいぶ見通しはよくなったような。
Postfix
メールサーバ。いろいろあってSMTP認証ができるようにしたかった。それと認証の際の経路が暗号化されるようにしたかった。
Postfix 2.3系からDovecotを利用した認証ができるようになったらしく、それを利用する形で。ちなみにNetBSD 3.1に添付されているPostfixは2.2.11だったので、pkgsrcから2.3.5を入れるか、NetBSDを3.2のベータ的なものに入れ換えるかという選択(これに添付されているPostfixは2.3.5になっている)。結局同じソフトを別々に2つ入れたくなかったので、NetBSD自体を入れ換えました。
もともとDovecotではPOP/IMAPサーバをSSL/TLS利用可能な感じで動かしていたので、設定はそれほど難しくはなかった。だいたいこんな感じ。
- main.cf
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, \
permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_use_tls = yes
# 認証ファイルはdovecotのものを流用
smtpd_tls_cert_file = /etc/openssl/certs/dovecot.pem
smtpd_tls_key_file = /etc/openssl/private/dovecot.pem
- dovecot.conf
auth default {
mechanisms = plain
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
あとはPostfixをアップデートしている場合、master.cfの設定も多少いじらなければいけない。NetBSDであれば、/usr/share/examples/postfix/master.cfと設定を比べてみれば、だいたいどうすればいいかわかるはず。
まぁともかく、いろいろ変えて、いろいろ良くなったかなーって感じです。
久々の技術ネタも入りましたが、何かの参考になれば。