Postfix DE VirtualMailBox

スポンサーリンク

現在、このサーバー上で動いている MTA では幾つものメールアカウントが存在します。
しかし全てのアカウントが UNIX ユーザーとして追加しているので、無駄な管理が増える。
そんなもんだから UNIX アカウントを持たずともメールアカウントを発行出来るようにした。

Postfix の設定と MRA の Courier-IMAP 両方の設定が必要になる。
尚かつ、Postfix の仕様上同一ドメインで UNIX アカウントとバーチャルメールボックスの併用は
なんか無理ぽい雰囲気。(詳細を調べていないので間違ってたらスマソ)
# ちなみにうちでは mbox 形式ではなく Maildir 形式を扱っているのでちうい。

まずは Postfix。とりあえずーなので MySQL や LDAP 未使用。BerkeleyDB で。
以下の様に /etc/postfix/main.cf 末尾へ追加。
# ディレクトリの定義やらは自分なりに勝手な名前にした。
# ドメイン名は example.com に置換してます。

# Virtual Mailbox
virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/vmb
virtual_mailbox_maps = hash:/etc/postfix/vmail
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual

という感じで、未だ Quota もかけていないし Limit も無い。UID, GID のマッピングは
メンドイのでパス (笑

それから実際に追加するメールアカウントの設定をする。
上記 main.cf で定義した物に沿うのであれば「vi /etc/postfix/vmail」となる。

# cat /etc/postfix/vmail
user1@example.com example.com/user1/

左辺に追加するメールアカウントのアドレス。
右辺へ「virtual_mailbox_base」で指定したディレクトリに作成するメールボックス名を。
メールボックスが入るディレクトリ名はドメイン名で作成したほうが何かと管理上宜しい。
ドメインさえあれば、複数の作ることも可能なのでね。

次にエイリアスを一発仕込む。
これは「virtual_alias_maps」で指定したファイルを作成 or 編集する事になる。

# cat /etc/postfix/virtual
postmaster@example.com postmaster

左辺へバーチャルメールボックスでつかうドメインに対する postmaster 宛てのメールは
自分のドメイン内へ配送させる。この postmaster アカウントの存在は MUST なのか SHOULD
なのかな。RFC 見直さないと憶えていない。

この二つのファイルをちゃーんと確認して ok だったら DB 化する。

# postmap /etc/postfix/vmail
# postmap /etc/postfix/virtual

これでとりあえず ok。最後にもいっちょ確認ね。しっかり DB が出来ているか。

# ls -l /etc/postfix/{vmail,virtual}*
-rw-r--r--  1 root root    82 Nov  7 23:48 /etc/postfix/virtual
-rw-r--r--  1 root root 12288 Nov  7 23:48 /etc/postfix/virtual.db
-rw-r--r--  1 root root    39 Nov  7 23:47 /etc/postfix/vmail
-rw-r--r--  1 root root 12288 Nov  7 23:48 /etc/postfix/vmail.db

タイムスタンプを見て確認。
ok であれば Postfix を再起動させる。

# postfix reload

一応メールログを見て、warning とかでてないかチェックする事。

そしてお次は肝心なメール受信する為のメールアカウントのパスワード設定。
一応 POP, IMAP 両方使えるよう、同一パスワードで設定した。
今回は稼働ホストで使っている Courier-IMAP を使ったが、時期構想にあるサーバーでは
Dovecot を採用予定なのでその時またこれ書き直すか追記しますかな。

さて肝心なオペは以下の通り。
# メールアドレス 1 個発行するのには手間がかかるのでこの辺のプロビを shell でかいちまおうかな。

# userdb user1@example.com set mail=/var/mail/vmb/example.com/user1/ \
home=/var/mail/vmb/ uid=5000 gid=5000
# userdbpw | userdb user1@example.com set imappw
Password:
Reenter password:
# userdbpw | userdb user1@example.com set pop3pw
Password:
Reenter password:
# makeuserdb

最初のコマンドではユーザー名とメールボックスの位置、メールボックスがあるディレクトリに対して
アクセス権を持つ UID, GID を指定。
続く 2 つのコマンドで POP, IMAP でのアクセスに必要なパスワードを設定する。
最後にこれらの設定を DB 化して完了。

以上で、例として作成した user1@example.com ユーザーはメールの送受信が可能となる。
はず。

メーラーの受信設定ではユーザー名をそのままメールアドレスとする必要があるので注意。
送信に関しては認証なければこれで ok。
サーバー機が手には入ったら再構築してリプレースかける予定なんだけど、その際には
SMTP-AUTH, OB25P, APOP, POP3S, CRAM-MD5 等々実装予定ではいる。
そうなるとまた色々と変わってくるのでこれまたその時にでも。
HP 社のサーバー機 ML115 が欲しいのでありますが 15,000 円位なのに買えない俺涙目 orz

ということで、以上でっす。

スポンサーリンク