====== 仮想ドメイン、仮想アドレス ====== 管理するドメインが増えるとそれぞれにmailサーバが必要になったりするんですが、それは面倒なので仮想ドメインで済ませてしまう。 ===== とってもお手軽、ドメイン追加 ===== mydestination にドメイン名を追加すればOK。\\ mydestination = 本ドメイン, 仮想ドメイン ただし、ユーザ名=OSのアカウントで区別されるため、複数のドメインで**同じユーザ名が使えない**ので注意! ^ メールアドレス ^ 配送先 ^ | hoge@本ドメイン | hoge | | hoge@仮想ドメイン | hoge | | hogehoge@本ドメイン | hogehoge | | hogehoge@仮想ドメイン | hogehoge | ===== virtual_mailboxを使う ===== 名前の通り、Mailboxを仮想化しますので、メールアカウントをOSのアカウントから分離できます。 また、複数ドメインへの対応もできます。 設定項目はこんなものでしょう。 ^ Option ^ memo ^ | virtual_mailbox_base | 全てのメールボックスが置かれる場所 | | virtual_mailbox_domains | ドメインのリスト | | virtual_mailbox_maps | ユーザリスト | | virtual_mailbox_limit | メールボックスのサイズ | | virtual_gid_maps | メールボックスのgid | | virtual_uid_maps | メールボックスのuid | ==== 仮想メールボックス用ユーザの作成 ==== 今回は、仮想メールボックス用ユーザを作成して、そのhomeディレクトリに仮想メールボックスを配置することにします。 ユーザ名とかuidは適当に決めてください。 # adduser Username: 仮想メールボックスユーザ Full name: Uid (Leave empty for default): nnn Login group [仮想メールボックスユーザ]: Login group is 仮想メールボックスユーザ. Invite 仮想メールボックスユーザ into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: nologin Home directory [/home/仮想メールボックスユーザ]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: y Lock out the account after creation? [no]: Username : 仮想メールボックスユーザ Password : Full Name : Uid : nnn Class : Groups : 仮想メールボックスユーザ Home : /home/仮想メールボックスユーザ Home Mode : Shell : /usr/sbin/nologin Locked : no OK? (yes/no): y adduser: INFO: Successfully added (仮想メールボックスユーザ) to the user database. adduser: INFO: Password for (仮想メールボックスユーザ) is: xxxxxxxxxx Add another user? (yes/no): n Goodbye! ==== main.cfの編集 ==== 必要な項目を設定していきます。 ^ Option ^ 設定値 ^ メモ ^ | virtual_mailbox_base | /home/仮想メールボックスユーザ | 前述した仮想メールボックス用ユーザのhomeを指定します | | virtual_mailbox_domains | 仮想ドメイン | 仮想ドメイン名 | | virtual_mailbox_maps | ldap:/usr/local/etc/postfix/yyyyyyyy.cf | マッピングはldapでやっています | | virtual_mailbox_limit | 52428800 | 50Mbyteにしてみました | | virtual_gid_maps | static:nnn | 仮想メールボックスユーザのgid | | virtual_uid_maps | static:nnn | 仮想メールボックスユーザのuid | ==== LDAPを使ったvirtual_mailbox_mapsの作成 ==== virtual_mailbox_maps用のファイルを作成します。 #touch /usr/local/etc/postfix/yyyyyyyy.cf 内容はこんな感じ。 server_host = ldapサーバアドレス server_port = 389 timeout = 5 bind = yes bind_dn = cn=管理者,dc=yyyy,dc=zzz bind_pw = パスワード search_base = ou=xxxx,dc=yyyy,dc=zzz query_filter = (mail=%s) result_attribute = mail result_format = %s/Maildir/ scope = sub version = 3 dereference = 1 以下のコマンドでチェックしてみる。\\ result_formatで指定した結果が帰ってくればOK。 # postalias -q xxx@example.com ldap:/usr/local/etc/postfix/yyyyyyyy.cf xxx@example.com/Maildir/