Postfix · 1 min read · Nov 18, 2025
Postfixによる仮想ホスティング、パート1
バージョン 1.0
著者: Joe Topjian
Postfixの仮想ドメインサポートは実際には非常に堅牢です。Postfixで仮想ドメインをホストする方法は3つあり、すべてここで説明します。私たちは3つ目の方法、すなわち別のドメインと非Unixアカウントについて見ていきます。
なぜこの方法なのか?最終的には、このオプションが最も柔軟性を提供するからです。設定と理解が少し複雑ですが、複数のドメインをホストする際には非常に価値があります。
私たちの最終目標は、複数のドメインへのメール配信をサポートするメールサーバーを持つことです。各メールアドレスはそのドメインにのみ認証されます。例えば、[email protected] と [email protected] は異なるアカウントで、それぞれ異なるメールを受信します。
まず、すべてのドメインを仮想ホストに変えます。たとえPostfixが単一のドメインで設定されていても、そのドメインを仮想にします。これを行う必要はありませんが、私はより整理された状態になると思うので行います。Postfixが1つの実際のドメインと残りの仮想ドメインをホストする場合、Postfixを2回設定する必要があります:各タイプのドメインごとに1回ずつです。それを行うために、main.cfのmyhostname行を次のように変更します:
myhostname = localhost
次に、main.cfに以下の仮想ドメイン情報を追加します(すべての説明は後で行います):
virtual_mailbox_domains = /etc/postfix/vhosts.txt
virtual_mailbox_base = /var/spool/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmaps.txt
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
virtual_alias_maps = hash:/etc/postfix/valias.txt
最初の行では、vhosts.txtというテキストファイルを使用しています。このファイルには、ホストしているすべてのドメインの単一列リストが含まれます。例えば:
domain1.com
domain2.com
virtual.org
次の行は、すべてのメールを保存するベースディレクトリを指定します。再度、好きな名前を選ぶことができます。
3行目は、私がvmaps.txtと呼んでいるテキストファイルを指しています。これは2列のテキストファイルです。最初の列は仮想メールアドレスを指定し、2列目はその人のメールボックスの場所を指定します。実際のドメインホスティングと同様に、場所の最後に/を指定すると、Maildir形式になります。そうでない場合はmboxです。私はhashを指定しています。なぜなら、vmaps.txtを次のコマンドでハッシュファイルに変換するからです:
postmap vmaps.txt
これにより、vmaps.txt.dbというファイルが生成されます。Postfixは、通常のテキストファイルよりもハッシュ内の情報をより速く検索できます。
vmaps.txtの内容は次のようになります:
[email protected]
domain1.com/joe/
[email protected]
domain2.com/joe/
[email protected]
virtual.org/john/
2列目を見てください。値は私たちのvirtual_mailbox_base行に追加されます。したがって、仮想メールボックスの絶対パスは、例えば、/var/spool/vmail/domain1.com/joe/になります。このディレクトリを実際に作成することを忘れないでください。domain1.comとjoeです。このメールボックスはMaildir形式なので、このメールボックスの下に3つのサブディレクトリが必要です:new、cur、tmp。これを行うためのスクリプトはいくつかありますが、基本的には次のようにすれば大丈夫です:
mkdir new cur tmp
chmod 700 new cur tmp
次の2行は、メールボックスにアクセスする権限を持つアカウントを定義します。はい、1つのアカウントがすべての仮想メールを読むことができます。はい、これはセキュリティ上の問題と見なされる可能性があります。誰もこのユーザーになれないように最善を尽くしてください。このアカウントを「virtual」と呼びます。システムに好きな方法で追加し(例:useradd)、そのuidとgidをメモしてください。
最後の行は、仮想アカウントのエイリアスを配置できるテキストファイルを指定します。内容は次のようになります:
[email protected]
[email protected]
最後に、メールボックスの所有権を仮想ユーザーに与える必要があります。これを実行すると、すべてが解決します:
chown -R virtual:virtual /var/spool/vmail
これで完了です。「postfix reload」を実行すれば、すべてが設定されます。もちろん、実際にメールを取得する方法が必要です。それについてはパート2で説明します。
パート2:
https://www.howtoforge.com/linux_postfix_virtual_hosting_2
この文書の元の場所:
http://adminspotting.net/howtos/postfixvirtual.html
| |
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。