qmail セカンダリMTAの設定
http://extstrg.asabiya.net/pukiwiki/index.php?qmail%20%A5%BB%A5%AB%A5%F3%A5%C0%A5%EAMTA%A4%CE%C0%DF%C4%EAqmail セカンダリサーバ設定 †
qmailを使ってセカンダリメールサーバを構築するための手順をまとめる。
セカンダリサーバは、プライマリサーバ同様自ドメインのメールを受信し、プライマリサーバに再配送する。プライマリサーバがダウンしてしまった場合に、セカンダリサーバでひとまず受信することで、送り側メールサーバの再配送期限に寄らず、より確実にメールを受け取ることができる。
セカンダリサーバとしてメールを中継するには、smtproutesファイルで経路を設定する。
smtproutesファイルには、ドメインと転送先のペアを記述する。smtproutesの設定はDNSのMXレコードよりを優先されるため、特定のドメインに対してプライマリサーバへ転送するように指定することで、そのドメインのセカンダリサーバとして機能させることができる。
- 1.プライマリサーバへの経路を設定
セカンダリサーバとして機能させたいドメインについて、プライマリサーバへの経路を設定する。次のように設定ファイルを記述する。
# vi /var/qmail/control/smtproutes toshikazu.org:p086004.doubleroute.jp tsushin.tv:p086004.doubleroute.jp ntt2002.net:p086004.doubleroute.jp
- 2.現行設定の確認
localsとvirtualdomainsにそのドメインの設定があれば、smtproutesより優先して処理されてしまう。セカンダリサーバとして機能させたい場合、そのドメインの設定がlocalsとvirtualdomainsにないことを確認する。
# vi /var/qmail/control/locals # vi /var/qmail/control/virtualdomains
- 3.メール受信設定
セカンダリサーバとして機能させたいドメインをrcphostsに入れ、メールを受信できるようにする。この点についてはプライマリサーバの場合と同じである。
# vi /var/qmail/control/rcpthosts toshikazu.org tsushin.tv ntt2002.net
- 4. キューの保管期間設定
メールがキューに滞在する時間を設定する。デフォルト値は604800(秒、7日間)となっている。この期間にプライマリサーバが復旧しなければ配送エラーとなる。デフォルト値で十分ではあるが、queuelifetimeファイルで値を指定することもできる。例えば4週間にするには、次のようにする。
# vi /var/qmail/control/queuelifetime 2419200
- 5.MXレコードの設定
DNSのMXレコードを設定する。ゾーンファイルの該当箇所を変更する。
プリファレンス値は小さい方が優先度が高い。プリファレンスの数値そのものには意味はなく、その大小関係だけが意味を持つ。
# vi toshikazu.zone ・・・ IN MX 10 p086004.doubleroute.jp. IN MX 50 ichi.tom.comm.waseda.ac.jp. ・・・
- 6.設定の反映
qmailを再起動し、設定を有効にする。上記の制御ファイルは qmail-smtpd(8), qmail-send(8), qmail-inject(8), qmail-remote(8) の4つから参照されている。
- 注意点:
次のようにワイルドカードを使って転送の設定をすると、セカンダリサーバとして設定しようとしたドメインについてはうまく機能する。しかし、それらと関係のない外部ドメイン宛てのメールもプライマリサーバに転送されてしまう。そして、通常はプライマリサーバ側で外部ドメイン宛てのメールは拒絶されるため、エラーとなってしまう。
このような事象は、セカンダリサーバ内のプログラムやユーザが、外部ドメイン宛てのメールを送信する場合に起こりうる。よって、次の設定は、純粋なセカンダリサーバとしては間違い。
# vi /var/qmail/control/smtproutes :*.doubleroute.jp
Last-modified: 2007-12-26 (水) 18:12:23 (5960d)