今度の引っ越しは、メールサーバの引っ越し。現在運用中のサーバが、動作音が少し気になりだしたので、Vineを1台用意したで組み上げた自作機にFreeBSDをインストールしなおして新たに再構築を始めた。
ただ、単に以前の設定をそのまま移植しても面白味に欠けるし、将来的にLinux環境への移行も視野に入れた上で、「どうせなら」ということで次のような目標を立ててみることにした。
- MTAにqmailを使う(メールボックス形式はMaildir)。
- SMTP AUTHを実装する。
- daemontools配下で各デーモンを管理する。
- POP/IMAP over SSLとSMTP over SSLを実装する。
- ウィルススキャナとスパムフィルタを実装する。
なんでdaemontoolsを使おうと思ったのには僕がLinux特有のランレベルの概念をよく理解してないから、という側面が強いだけの話なので、特に意味はないんだけど。
というわけで作業開始。まずdaemontoolsとqmailをそれぞれインストールする。SMTP AUTHを実装するので、今回はqmail-vidaをチョイスした。インストールにPortsを使うと、手でビルドするときに内部処理が不透明になりがちなんだけど、今回はそのへんの事情はおいておく。Portsツリーを最新の状態にして、それぞれのディレクトリでmake installを実行するだけで、イージーにインストールできてしまう。sysutils/daemontoolsにはknobがなかったけど、daemontoolsを使うこともあってmail/qmail-vidaには次のknobを定義してインストールした。ちなみに「RCDLINK」が設定されていると、起動時に「起動スクリプトがない」とおこられてウザいので、RCDLINKはキャンセル。
- QMAILQUEUE_PATCH
- LOCALTIME_PATCH
- TCPSERVER_MAN
portupgradeで自動インストールできる設定にするには、pkgtools.confに次のように書くといいかも。
'mail/qmail-vida' => [
'BATCH=yes',
'WITH_QMAILQUEUE_PATCH=yes',
'WITH_LOCALTIME_PATCH=yes',
'WITH_TCPSERVER_MAN=yes',
'WITHOUT_RCDLINK=yes',
]
qmail-vidaをインストールすると、一緒にucspi-tcpもqmailのインストールプリフィックスである/var/qmail以下にインストールされるんだけど、SSLも使いたいので、新たにインストールしてやる。これもPortsでイージーに。設定したknobはこんなもの。ちなみにインストールプリフィックスは/usr/localなので、qmail-vidaのそれとバッティングすることはないので、安心。
ひとまず役者は揃ったので、まず正常にMTAとして動作させるための設定を始めた。daemontoolsで使う起動スクリプトrunの記述例は、Tips Collection - daemontools を参考に書いていった。ひとまずqmail-smtpdの起動スクリプトをのせておく。
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/qmail/bin
ALLOWPLAIN=" "
export PATH ALLOWPLAIN
RUNAS=qmaild
ACLS=/usr/local/etc/acl-cdb/qmail-default.cdb
IPADDR=0
PORT=smtp
FQDN=mail1.formula97.dip.jp
exec 2>&1
exec envuidgid ${RUNAS} tcpserver -vHRU -x ${ACLS} ${IPADDR} ${PORT} \
qmail-smtpup ${FQDN} checkpassword qmail-smtpd
とりあえずこの状態で、動作確認の意味で自分宛にメールを書いてみる。自分のメールアドレスやSubjectなんかを書いたテキストファイルを用意して、qmail-injectにリダイレクションで流し込むだけなので、特に難しいことはなく、きちんとメールが配送されていることが確認できた。
一応うまく動いていることが確認できたので、今日はこの辺でやめる。
最近のコメント