====== 仮想ドメイン、仮想アドレス ======
管理するドメインが増えるとそれぞれに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/