メール転送(Alias)の設定
概要: †メールの転送方法としてAlias、.forward、virtualがありますがここではAliasとvirtualについて説明します。また、アカウントメールボックスとバーチャルメールボックスを同時に運用する方法についても説明します。 前提: †1.メールの転送 †1.1 システムアカウントとバーチャルアカウント † システムアカウントはメールボックスとしてアカウントメールボックスと前章で設定したバーチャルメールボックスでの運用の2通りがあります。バーチャルメールボックスでの運用で注意しなければならないのは、ドメインをバーチャルドメインとしているため、システム内からメールが送られる場合はドメインがバーチャルドメインと異なるため(mydestination)、アカウントメールボックスに配信されることです。その為システム内のメールと同じメールボックスで受信するためには転送の設定が必須です。 1.2 設定ファイル † メール転送の設定ではaliases,virtualとvmailboxの設定が関係します。
2.Alias † 前章'バーチャルアカウントの設定'の設定を前提としてAliasを設定します。この場合元になるメールアカウントはシステムアカウントです。転送先にはシステムアカウント、バーチャルアカウント、外部のメールアドレスを設定します。また、複数の設定が可能で小規模のメーリングリストとしても使用できます。 2.1 aliasesファイル †この例ではrootからadminアカウントへの転送とcentosからcentos@example.comへの転送を設定します。Aliasファイルは/etc/postfix/main.cf中のalias_mapsとalias_databaseで指定されています。 # cat /etc/postfix/main.cf : (前略) : # ALIAS DATABASE # # The alias_maps parameter specifies the list of alias databases used # by the local delivery agent. The default list is system dependent. # # On systems with NIS, the default is to search the local alias # database, then the NIS alias database. See aliases(5) for syntax # details. # # If you change the alias database, run "postalias /etc/aliases" (or # wherever your system stores the mail alias file), or simply run # "newaliases" to build the necessary DBM or DB file. # # It will take a minute or so before changes become visible. Use # "postfix reload" to eliminate the delay. # #alias_maps = dbm:/etc/aliases alias_maps = hash:/etc/aliases ← 確認 #alias_maps = hash:/etc/aliases, nis:mail.aliases #alias_maps = netinfo:/aliases # The alias_database parameter specifies the alias database(s) that # are built with "newaliases" or "sendmail -bi". This is a separate # configuration parameter, because alias_maps (see above) may specify # tables that are not necessarily all under control by Postfix. # #alias_database = dbm:/etc/aliases #alias_database = dbm:/etc/mail/aliases alias_database = hash:/etc/aliases ← 確認 #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases : (後略) : 次に上記のaliasesファイルを変更します。 # cd /etc # vi /etc/aliases 以下のような転送設定を追加します。 root: admin centos: centos@example.com 設定後にAlias DB生成コマンドでDB化します。 # postalias aliases
# ls -l aliases.db ← DBファイルが作成/更新されたことを確認
2.2 Postfix再読み込 †設定後に設定情報を反映させます。 # service postfix reload ← Postfix再読み込 postfix を再読み込み中: [ OK ] 2.3 確認 † サーバーにログインしてシステム内からドメイン無しでメールを送信します。 3.Virtual † 元になるメールアカウントはバーチャルアカウントです。転送先にはシステムアカウント、バーチャルアカウント、外部のメールアドレスを設定します。 3.1 virtualファイル †この例ではadmin@example.comからadminアカウントへの転送とcentos@example.netからuser@example.netへの転送を設定します。virtualファイルは/etc/postfix/main.cfにvirtual_alias_mapsの設定を追記します。 # vi /etc/postfix/main.cf :
(前略)
:
virtual_alias_maps = hash:/etc/postfix/virtual ← 追記します
次に上記のvirtualファイルを変更します。 # cd /etc # vi /etc/postfix/virtual 以下のような転送設定を追加します。 admin@example.com: admin centos@example.net: user@example.net 設定後にPostfix DB生成コマンドでDB化します。 # postmap virtual
# ls -l virtual.db ← DBファイルが作成/更新されたことを確認
3.2 Postfix再読み込 †設定後に設定情報を反映させます。 # service postfix reload ← Postfix再読み込 postfix を再読み込み中: [ OK ] 3.3 確認 †バーチャルアカウントadmin@example.comへメールを送信して、adminでメールを受信できることを確認します。前章のままの設定の場合、メールは/home/admin/Maildir/newの中に配信されるためメールクライアントでのメールの受信ができないので、サーバーにadminでログインしてファイルを直接覗くかmuttコマンドで確認します。 4.システムアカウントのメールボックスの利用 † 上記AliasとVirtualの設定でもシステムアカウントadminとcentosへ配信されたメールはメールクライアントからアクセスすることができません。それは受信メールサーバーであるDovecotがメールがどこに配信されたか知らないためです。ここまではメールボックスの場所とアクセス権限はauth-passwdfile.conf.extの中で一括で/var/spool/vmai/下に設定していましたが、アカウント毎に設定する必要があります。 4.1 Postfix(Defaultがバーチャルメールボックス) †4.1.1 設定概要 †
上記のAlias、virtualまでの設定からの変更は次のvmailboxのようにバーチャルメールボックスを使用しないadminの削除です。 4.1.2 バーチャルメールボックスの修正 †システムアカウント用のバーチャルメールボックスの設定を削除します。 # vi /etc/postfix/vmailbox admin@example.com example.com/centos/Maildir/ ← 削除します
centos@example.com example.com/centos/Maildir/
user@example.net example.net/user/Maildir/
info@example.net example.net/info/Maildir/
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ファイルが作成/更新されたことを確認
4.1.3 Postfix再読み込 †# service postfix reload ← Postfix再読み込 postfix を再読み込み中: [ OK ] 4.2 Postfix(Defaultがアカウントメールボックス) †4.2.1 設定概要 †前セクション4.1と同様に以下の設定をします。
上記のAlias、virtualまでの設定からの変更は前セクションと同様にvmailboxと、システムアカウント向けのメールをシステムカウント下のメールボックスに配信するためにmydestination、virtula_domaisとvmailboxを変更します。 4.2.2 main.cf †mydestinationに$mydomainを復活させます。 # vi /etc/postfix/main.cf :
(前略)
:
mydestination = $myhostname, localhost.$mydomain, localhost
↓ $mydomainを追加します。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
:
(中略)
:
4.2.3 バーチャルドメインの修正(ファイルで設定する場合) †main.cf内でバーチャルドメインをファイルで指定した場合そのファイルを編集します。 # vi /etc/postfix/virtual_domains システムアカウントの本来のドメインをバーチャルドメインのリストから削除します。 #example.com ← 本来のドメインを削除/コメントアウトします
example.net
sub.example.net
4.2.4 バーチャルメールボックスの修正 †前セクション4.1と同様にシステムアカウント用のバーチャルメールボックスの設定を削除します。 # vi /etc/postfix/vmailbox admin@example.com example.com/centos/Maildir/ ← 削除します
centos@example.net example.net/centos/Maildir/
user@example.net example.net/user/Maildir/
info@example.net example.net/info/Maildir/
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ファイルが作成/更新されたことを確認
4.2.5 aliasesファイルの修正 †上記同様にシステムアカウントcentosの転送先のバーチャルドメインをcentos@example.netに修正します。 # cd /etc # vi /etc/aliases 以下のような転送設定を変更します。 root: admin
centos: centos@example.com
↓ ドメインをmydomain以外のバーチャルドメインに変更
centos: centos@example.net
設定後にAlias DB生成コマンドでDB化します。 # postalias aliases
# ls -l aliases.db ← DBファイルが作成/更新されたことを確認
4.2.6 Postfix再読み込 †# service postfix reload ← Postfix再読み込 postfix を再読み込み中: [ OK ] 4.3 Dovecot †パスワード設定ファイルにメールボックスの場所とアクセス権を個別に設定します。 4.3.1 auth-passwdfile.conf.extの修正 †ユーザーDBの設定をpasswd-fileに戻します。 # 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 = /etc/dovecot/passwd ← コメントを外す。 # driver = static ← コメントアウトする。 # args = username_format=%u /etc/dovecot/users # args = uid=vmail gid=vmail home=/var/spool/vmail/%d/%n ← コメントアウトする。 } 4.3.2 アカウントのpasswd情報 †システムアカウントのuid、gid、ホームディレクトリーをDovecotによるSASL化と同様にして取得します。 アカウント(ここではアカウントadmin)のpasswd情報を調べます。 # grep admin /etc/passwd admin:x:501:501::/home/admin:/bin/bash 4.3.3 パスワードファイル設定 †パスワードファイルの各アカウントに個別にuid、gid、Homeディレクトリーを設定します。バーチャルアカウントの場合ここでは、uid、gidは共通のvmailの値をHomeディレクトリーには個別の値を設定します。Aliasの所で登録したシステムアカウントuserはバーチャルメールボックスのまま使用するのでバーチャルアカウントの値を設定します。システムアカウントcentosはアカウントのメールボックスを使用するので/etc/passwdの値を設定します。 # vi /etc/dovecot/passwd admin:{HMAC-MD5}b6417c4a20462e8f452cb1dbd7a4fb152ba7c64b056547cce6adfd06de78fa10:501:501::/home/admin 又はadmin@example.com.ログインするユーザーアカウントを設定する admin@example.com:{HMAC-MD5}b6417c4a20462e8f452cb1dbd7a4fb152ba7c64b056547cce6adfd06de78fa10:501:501::/home/admin centos@example.com:{HMAC-MD5}dd59f669267e9bb13d42a1ba57c972c5b13a4b2ae457c9ada8035dc7d8bae41b:10000:10000::/var/spool/vmail/example.com/centos 又は centos@example.net:{HMAC-MD5}dd59f669267e9bb13d42a1ba57c972c5b13a4b2ae457c9ada8035dc7d8bae41b:10000:10000::/var/spool/vmail/example.net/centos info@example.net:{HMAC-MD5}c3367b2f3f41201978bd059de16a961edad51e68c51352546d72fa8b2cafd03a:10000:10000::/var/spool/vmail/example.net/info user@sub.example.net:{HMAC-MD5}8135099db2bfc9d0e7a8ac1aac59d453232fef93cb636d15e54a360816bc7a15:10000:10000::/var/spool/vmail/sub.example.net/user 4.3.4 Dovecot再読み込 †# service dovecot reload ← Dovecot再読み込 Dovecot Imap を再読み込み中: [ OK ] 4.4 確認 †メールクライアントに各システムアカウント、バーチャルアカウントを設定し、アカウント間でメールの送受信テストをします。 Last-modified: 2014-03-11 (火) 02:00:03 (3697d)
|