Postfix+Courier-IMAPでVirtalMailHost

更新日2011-09-01 (木) 14:37:06

PostfixとCourier-IMAPでひとつのマシンで複数のメールドメインをを登録し利用できるようにする。

Postfixの設定

/etc/postfix/main.cf ドメイン名、配信されるメールフォルダのルートや、それを行うユーザ、グループを設定 ドメイン:test.ism21.net と test.nec.net 配信されるメールフォルダのルート:/var/mail/vhosts 具体的な保存先を示すファイル:/etc/postfix/vmailbox

virtual_mailbox_domains = test.ism21.net, test.nec.net
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual

uid 5000のユーザ追加

# useradd -u 5000 -s /bin/false vmail

gid 5000も追加する

配送先を指定

/etc/postfix/vmailbox

以下のように指定するとMaildir形式(imap)になり

ism@test.ism21.net      test.ism21.net/ism/Maildir/

以下のように指定するとismという一つのファイルにスプールされる(pop形式?)

ism@test.ism21.net      test.ism21.net/ism

Virtualから他のサイト(Virtual内および外部)に転送

/etc/postfix/virtual

okada@test.ism21.net    okada@abc-u.ac.jp
okada2@test.nec.net   	ism@test.ism21.net
  • virtual ファイルを編集したらコマンド
    # postmap /etc/postfix/virtual
  • vmailbox ファイルを更新したら
    # postmap /etc/postfix/vmailbox
  • main.cf ファイルを変更したらコマンド
    # postfix reload" 
    を実行

Courier-IMAP

Linuxアカウントではない、IMAP用のアカウント登録

ユーザ登録

# userdb ism@test.ism21.net set mail=/var/mail/vhosts/test.ism21.net/ism/Maildir home=/var/mail/vhosts/test.ism21.net/ism uid=5000 gid=5000

パスワード登録

# userdbpw | userdb ism@test.ism21.net set imappw
Password:******
Reenter password:******

Active-mail

Active-mailはこの認証で使用できる
VirtualでActive-mailを使用するときは「DOMAIN_NAME:」をコメントアウトし ログイン名は「ism@test.ism21.net」のように指定する。

CRAM-MD5で認証を行う場合

使用方法未確認
# userdbpw -hmac-md5 | userdb ism@test.ism21.net set hmac-md5pw

接続してきたクライアントに対し、文字列チャレンジを送る。 クライアントは、この文字列とパスワードをMD5アルゴリズムでメッセージダイジェストを作り、送り返してくる。
ここで同様の手順でメッセージダイジェストを作り、両者が一致していればログインを許可する。
生のパスワードが一切ネットワークを流れないため、安全性が高い。

設定ユーザ(/etc/userdb)をcourier-imapで読めるようにするには

# makeuserdb

で反映される

確認

# less /etc/authlib/userdb
ism@test.ism21.net      imappw=iDN********o|uid=5000|mail=/var/mail/vhosts/\
test.ism21.net/ism/Maildir|home=/var/mail/vhosts/test.ism21.net/ism|gid=5000
ism2@test.ism21.net     imappw=C1e/Ck2qNVqZA|uid=5000|hmac-md5pw=b3db6d7f3d71\
5d58bbf*************************************a236d072|mail=/var/mail/vhosts/\
test.ism21.net/ism2/Maildir|home=/var/mail/vhosts/test.ism21.net/ism2|gid=5000
# userdb -show
ism@test.ism21.net
ism2@test.ism21.net

ユーザ削除

# userdb ism@test.ism21.net del

ログインIDはism@test.ism21.netなどとなる

SMTP AUTH(SMTP認証)

SMTPで認証を行う

ユーザ管理をsaslを利用するように設定

/etc/sasl2/smtpd.conf

SASL用のパスワードデータベース

pwcheck_method: auxprop

Linuxアカウント

pwcheck_method: pwcheck 

ただし、pwcheckがないのでこれだけではLinuxアカウントでは動作しない。 (別途検討する)


ユーザ登録

saslpasswd2 -c -u (ドメイン) -a smtpauth (ユーザ)

# saslpasswd2 -c -u test.ism21.net -a smtpauth ism
Password:  <- (1)
Again (for verification):

確認

# sasldblistusers2
ism@test.ism21.net: userPassword

postfixがDBにアクセスできるように設定

# chgrp postfix /etc/sasldb2
# chmod 640 /etc/sasldb2

Mailでは以下のように設定

SSLなどパスワード暗号化は別途検討

メールの移管

Maildirの内容を同じアカウントならコピーでOKただ cp -a でコピーすること アカウントが異なると単純にいかない。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-09-01 (木) 14:37:06 (2430d)