qmailの設定ファイル
qmailの設定ファイル
FreeBSDのportsからインストールした場合、Maikefileのdo-configureの中で/var/qmail/configure/configが実行されて/var/qmail/control/以下に適切と思われる設定ファイルを作ってくれます。ただし、DNSがちゃんと設定されていなかったりすると自分の思うとおりの動作をさせるのにそれでは足りないことがあります。必要があればマニュアルを見て手で設定します。
http://www.jp.qmail.org/q103/jman5/qmail-control.html
標準的には/var/qmail/control/以下にはplusdomain locals defauldomain me rcpthostsのファイルができていると思います。マニュアルによると最低限必要なのはmeだけのようです。とりあえず設定されているファイルは何者かみてみましょう。
me
そのメイルサーバとなっているホストの名前です。私の場合"mail.f-bell.net"。
defaultdomain
省略時ドメイン名です。私の場合"f-bell.net"。設定されていないときはmeと同じ値に設定されています。ドットがないホストが設定されたときはこの値を追加してくれます。bell@mail→bell@mail.f-bell.net
plusdomain
追加ドメイン名です。私の場合"f-bell.net"。プラス("+")で終るホスト名にはこの名前を付け加える。 ホスト名がドットを含まず、最後がプラスのときは defaultdomainではなくplusdomainを追加する。
locals
そのメイルサーバがローカルとして処理するドメイン名の一覧です。一行にひとつずつ書きます。 省略されるとmeを使いますがどちらもなければqmail-sendは起動されないないようです。 user@domainというアドレスはdomainがlocals にあるときローカルだと判定されます。メイルアドレスが"hoge@host.domain.net"ではなく"hoge@domain.net"という風に設定したいときには最低限"domain.net"はlocalに設定されていなければいけません。
rcpthosts
SMTPのRCPTに現れてよいドメイン名です。 rcpthostsに載っていないドメイン宛のメイルは受け取りません。ここで環境変数RELAYCLIENTが設定されているときには、rcpthostsを無視して、 qmail-smtpdはすべてのメイルを受け付けるようになります。
ここで私は勘違いしてしまったのですが、tcpserverからqmail-smtpdを起動し、/etc/tcp.smtpをおいて(tcp.smtp.cdbを読み込ませて)おけばrcpthostsは置かなくてもよいと思ってしまいました。実際にはそうではなくて、/etc/tcp.smtpに書かれてある発信IPからだけの接続にはRELAYCLIENTが設定され、ほかからの接続にはRELAYCLIENTは設定されないのです。
したがって、やっぱりrcpthostsは必要で、メイルを受け取るドメインを書いておきましょう。私の場合"f-bell.net"。なおワイルドカードの指定ができて、".f-bell.net"という指定もできます。また、"@"を含まないアドレスは常に通過を許されます。
カスタマイズ
実際にはbell@mail.f-bell.netなのですが、bell@f-bell.netを受け取れるようにしたいものです。まず、DNSでf-bell.net宛のMXをmail.f-bell.netに向けさせた上で、"f-bell.net"をdefaulthostに設定しましょう。
# echo f-bell.net > defaulthost
ここまでの設定で(qmailをインストールする、のtcpserverの設定もあわせて)、外からはf-bell.netメイルのみ受け取ってmail.f-bell.netに送り、内部のLANからはこのサーバをSMTPでMTAとして利用できるようになります。不正な第三者中継はしません。
