質問: メールサーバpostfixの設定について 教えてください。 postfix初心者です。 2点質問があります。 1点目ですが、 postfixとdovecotを使って、バーチャルドメインの設定するのですが、 以下の3つの違いが分かりません。 どのような使い分けをするものなのでしょうか? 教えていただけないでしょうか? ・共有ドメイン ・バーチャルエイリアス ・バーチャルメールボックス 2点目ですが、 dmz内にmtaサーバを構築し、ローカルlan上にあるmta+popサーバを構築します。 外→内のメールですが、dmz内のmtaサーバで受け取って、ローカルのmtaに転送する。 内→外のメールについては、ローカルのmtaから直接外へとする場合、 my.cnfのコンフィグファイルに必要な記述はどこになりますでしょうか? relayhostとmydestinationの記述のところでしょうか? どのように書けば良いでしょうか? すみません。よろしくお願いします。
回答: この回答ではバーチャルドメインとしてexample.comとexample.netを扱うものとする。 > 1点目 共有ドメインというのはよく分からないが、ymoshimoshi@example.com宛とymoshimoshi@example.net宛のメールが同じメールボックスに入るという意味じゃないかな。複数ドメインを扱うのでなければ考える必要はない。 バーチャルエイリアスはエイリアスのバーチャルな奴で、ymoshimoshi@example.comに来たメールをymoshimoshi@example.netやadmin@example.comに転送するものだ。 バーチャルメールボックスは、osユーザとは独立したメールボックスの事で、代表osユーザなどの権限でメールをディスクに保存する。あまりよろしくない例だがcentos6でnobody(uid=99)を使う例を示すと、main.cfには virtual_minimum_uid = 99 virtual_uid_maps = static:99 virtual_gid_maps = static:99 virtual_mailbox_base = /var/vmailbox virtual_mailbox_domains = example.com example.net virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_alias_maps = hash:/etc/postfix/virtual などとすればよいだろう。/etc/postfix/vmailboxには ymoshimoshi@example.com example.com/ymoshimoshi/maildir/ ymoshimoshi@example.net example.net/ymoshimoshi/maildir/ などと記述してpostmapコマンドでハッシュにする。/etc/postfix/virtualも同じ。ここでvmailboxに ymoshimoshi@example.com example.com/ymoshimoshi/maildir/ ymoshimoshi@example.net example.com/ymoshimoshi/maildir/ などとするのが共有ドメインという意味なのではなかろうか。ちなみに、上のような設定でymoshimoshi@example.com宛のメールは/var/vmailbox/example.com/ymoshimoshi/maildir/newにnobody:nobody権限で保存される。 > 2点目 my.cnfはmysqlサーバーの設定ファイルじゃないか。 dmz側は外→内のメールの転送しかしないサーバになるため、relayhostに内側のサーバーを宛てておけばよいだろう。 ローカルlanのmain.cfのmydestinationにはexample.comやexample.comには記述しない。そうするとバーチャルメールボックスが使えなくなるからだ。変わりにvirtual_mailbox_domainsに記述する。なお、バーチャルエイリアスとバーチャルメールボックスに同じドメインを使いたい場合、virtual_mailbox_domainsにのみそのドメインを記述し、virtual_alias_domainsには記述してはいけない。 以下、余談 個人的には内→外のメールもdmzメールサーバーを経由すべきだと思うが、その場合はdmzメールサーバーはrelayhostではなくtransport(8)を用いてメールの転送を制御する事になる。 また、dmzメールサーバーはメール受信の拒否設定(存在しないメールボックス宛のメールを拒否するなど)をきっちり行っておくべきだ。またはキャッチオールメールボックスを作って存在しないメールボックス宛のメールは全てそこに溜めるか。 バーチャルメールボックスをメインとして運用する場合、ローカルメールの取り扱いについて検討しておく方が良いだろう。ローカルメールとは、logwatchやtripwireなどのローカルからpickupされるメールで、これの受け取り手がないとローカルのroot宛にずっと溜まったままになるなどディスクを圧迫するなどが起こる。 dovecotはpostfixに比べたらuserdbとpassdbをちょこちょこ調整すれば良いだけなので楽チンだが、かと言って侮ってはいけないのでこちらも頑張りましょう。