バーチャルアカウントの設定
概要: † メールだけを使用するユーザーに対してシステムカウントの登録をするのは管理が大変ですし、好ましくありません。また異なるバーチャルドメインに対して異なるカウントID(例えばinfo@example1.comとinfo@example2.com)を登録することができません。 前提: †1.バーチャルメールボックス †1.1 PostfixとDovecotの関係 † PostfixとDovecotは元々異なるシステムのため連携するために幾つかの注意点があります。それはパスワードとメールボックスに関するものです。ここではパスワードについては前章にあるようにDovecotのSMTP-Authを使用して共通化しているので問題ありません。 1.2 バーチャルメールボックスの作成 †個別のシステムアカウントは作らないので、メールを読み書きする共通のシステムアカウントが必要となります。ここではuid=10000 gid=10000 アカウント名=vmailとしています。 # groupadd -g 10000 vmail # useradd -u 10000 -g 10000 -d /var/spool/vmail -r -s /sbin/nologin vmail # mkdir /var/spool/vmail # chown vmail. /var/spool/vmail # chmod 700 /var/spool/vmail SElinuxをOnにしている場合は、作成したディレクトリーにファイルタイプを設定します。SELinuxを参照 2.Postfix †2.1 main.cf †# vi /etc/postfix/main.cf : (前略) : mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ↓ $mydomainを外します。 mydestination = $myhostname, localhost.$mydomain, localhost : (中略) : 以下を追加します。 ### VIRTUAL ### virtual_mailbox_domains = example.com example.net sub.example.net # バーチャルドメインは上記のように空白またはカンマで区切って列挙するか下記のようにファイルを指定します。 virtual_mailbox_domains = /etc/postfix/virtual_domains virtual_mailbox_base = /var/spool/vmail ← 上記で作成したディレクトリー virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:10000 ← 上記で作成したアカウントのuid virtual_gid_maps = static:10000 ← 上記で作成したアカウントのgid 2.2 バーチャルドメインの登録(ファイルで設定する場合) †上記main.cfでバーチャルドメインをファイルで指定した場合そのファイルを作成・編集します。 # vi /etc/postfix/virtual_domains ここでは以下の3ドメインを設定します。 システムアカウントもバーチャルメールボックスを使用するため本来のドメインも登録します。 example.com ← 本来のドメイン example.net ← バーチャルドメイン sub.example.net ← サブバーチャルドメイン 2.3 バーチャルメールボックス †Postfix用に各メールアドレスに対してメールボックスのディレクトリーを設定します。dovecotのauth-passwdfile.conf.extファイル中userdbで設定するargs = uid=vmail gid=vmail home=/var/spool/vmail/%d/%nと一致させます。%dはメールアドレスのドメイン部分(@の後)、%nはアカウント部分(@の前)です。 # vi /etc/postfix/vmailbox 外部から来たシステムアカウント宛メールの設定です。 admin@example.com example.com/admin/Maildir/ centos@example.com example.com/centos/Maildir/ メールアカウントuserとinfoを別々のメールとする場合です user@example.net example.net/user/Maildir/ info@example.net example.net/info/Maildir/ メールアカウントuserとinfoをアカウントuserのメールとする場合です user@sub.example.net sub.example.net/user/Maildir/ info@sub.example.net sub.example.net/user/Maildir/ バーチャルメールボックスのPostfix検索テーブルを作成・更新します。 # postmap vmailbox
# ls -l vmailbox.db ← DBファイルが作成/更新されたことを確認
2.4 メールボックスのディレクトリー作成 †上記の各ユーザーのメールボックスのディレクトリーを事前に作成します。下記はadminの例です。 # mkdir -p /var/spool/vmail/example.com/admin/Maildir/{new,cur,tmp} # chmod -R vmail. /var/spool/vmail/example.com/admin 2.5 Postfix再読込み †# service postfix reload ← Postfix再読込み postfix を再読み込み中: [ OK ] 3.Dovecot †前章の'DovecotによるSASL化'からバーチャルアカウント用の変更点について記述します。 3.1 auth-passwdfile.conf.extの設定 †Dovecot用にメールボックスのディレクトリーを設定します。 # cd /etc/dovecot/conf.d # vi auth-passwdfile.conf.ext # Authentication for passwd-file users. Included from auth.conf. # # passwd-like file with specified location. # <doc/wiki/AuthDatabase.PasswdFile.txt> passdb { driver = passwd-file # args = scheme=CRYPT username_format=%u /etc/dovecot/users args = /etc/dovecot/passwd } userdb { # driver = passwd-file ← コメントアウトする。 # args = username_format=%u /etc/dovecot/users # args = /etc/dovecot/passwd ← コメントアウトする。 driver = static ← 追加する。 args = uid=vmail gid=vmail home=/var/spool/vmail/%d/%n ← 追加する。 } 上記でuid、gidには先ほど作成したシステムアカウントの情報を設定します。%dはメールアドレスのドメイン部分(@の後)、%nはアカウント部分(@の前)です。 3.2 メールアカウント設定変更 †パスワードファイルにメールアカウント(メールアドレス)とパスワードを登録します。
4.確認 †メールクライアントに各バーチャルアカウントを設定し、バーチャルアカウント間でメールの送受信テストをします。 Last-modified: 2014-12-14 (日) 16:46:05 (3412d)
|