いまさらのqmail

最近今更ながらqmailな環境をいじいじ。なぜっていうと、離れたところにあるサーバ移行をするのに、qmail(netqmail+tls-smtpauth-patch)+vpopmail+courier-imapからpostfix+dovecotに行くのも怖いので、とりあえずqmail維持でっていうことになったから。

で、稼働してるサーバからそのまま持ってきて動かして見る。同じ構成にしているから当然動く。それから、ちょっと色気を出して、今はSMTPSのサービスがオレオレ証明で稼働してるので、各バーチャルドメインごとに正規のにしよう、ということで、仮想ドメイン対応のTLS設定を探して見るも、qmail本体じゃそれらしい設定が分からない。それじゃあ、ということでucspi-sslで行くか〜と思って、ucspi-ssl+tls-patchをデフォルトでインストールして立ち上げる。

  openssl s_client -connect 127.0.0.1:25 -showcerts -starttls smtp

とやると、どんな証明書か分かるから調べてみると・・・うん?なぜかucspi-sslで設定してる証明書じゃない方が出てくるなぁ、なんだ〜と思って調べる。するとどうやら、証明書がqmail本体から出てるヤツが使われてて、ucspi-sslで指定したのは使われてないみたいだ。なぜかは深く追求しないで、ucspi-tlsのところにある、qmail用のtlsパッチを当てたqmailを動かしてみると、ちゃんとucspi-ssl側の証明書が送られるので、tls-smtpauth-patchとは相性が悪いらしい。ということで、qmail(netqmail+tls-smtpauth-patch)から、qmail(ucspi-tls-patch+smtpauth-patch)な構成に変更することに。

とりあえず、もう一回patchを集めなければ、ということでnetqmail/Life with qmailのページをにらめっこ。必要なパッチを集めてくる。とりあえず必要だったのは以下のような感じ。

  • accept-txx.patch(RFC2821対応用)
  • qmail-smtpd-auth-058._tgz.bin(SMTP-AUTH対応用)
  • qmail-smtpd-viruscan-1.3.patch(ウイルス対策用。qmail-scannerの簡易版?)
  • fixshupp-nelson.patch(ウイルス対策パッチがうまく当たらない問題を解決)
  • netqmail-1.05-ucspitls-0.3.patch(qmailTLSを理解させるパッチ?)

で、こいつらを上から順に当てると、途中で当たらない部分があるので、.rejファイルを見てソースを修正。うまくいったら、動いてるヤツを停止して、一応コピー取ってからmake setup checkでインストールして、再開する。

次にucspi-ssl+tls-patchのインストール。まあ、これは比較的簡単だけど、ucspi-sslと言いつつ、インストールがdaemontoolsっぽいな。

それから、SSL関係の設定ファイルを作成して、IPアドレス固定で動かしてみる。うん、うまくいくようだ。(当然)
続いて、別のSSLの設定ファイルを作って、別のIPアドレスで動かす。それでIP指定で証明書を確認すると・・・今度は成功。これで、複数の証明書をうまく扱えるようになった。

せっかくなんで、パッチを作っておく。

  diff -ru netqmail-1.05 netqmail-1.05.ucspitls-smtpauth > diff.out
  perl -e 'while(<>) { unless (m/^Only in netqmail-1.05.ucspitls-smtpauth/ ) { print $_ } }' < diff.out > ucspitls.patch

なんか、SMTP-AUTHパッチによって追加されるファイルがあるみたいで、こいつの./install_smtpd-auth.sh に適合するようにしてみて、更にこのシェルスクリプトを修正。パックしてまとめてみた。これで、後から使うとき(は来ないと思うけど)はこのパッチで一発だ。


なんか、qmailのインストールなんか久々で忘れ気味だったけど、何とかうまくいった感じかな。しかしながら、更にPostfix+dovecotに移行する予定だし、超短命になりそうだけど。今回は、qmailのインストールなんかを扱ってるところは非常に少ないし、SMTP-AUTHTLSと言ったら、たいがいtls-smtpauth-patchが登場するから、こういう情報がほとんど無いなぁ、と思ったので、とりあえず書き殴ってみた。

次は、courier-imapAPOPな話題が続く予定。