Postfix & devecot 追記

CentOS6に対してインストールした際のメモとして記載する。


Postfix & dovecotが、UNIXアカウントでちゃんと動作するようになったのだが、もしメールのパスワードが盗まれたとき、マシンにログインできることになる。
そこで、バーチャルメールボックスの設定に変更してみる。
参考にさせていたただいたのは、以前と同様に、http://tipszone.jp/20120521_mail_server/ 。

メールボックス自体のUNIXユーザ作成

# groupadd -g 10000 vmail
# useradd -u 10000 -g 10000 -d /var/mail/virtual -r -s /sbin/nologin vmail
# mkdir /var/mail/virtual
# chown vmail:vmail /var/mail/virtual
# chmod 700 /var/mail/virtual

パスワードのハッシュ値の作成

# doveadm pw
Enter new password:
Retype new password:

パスワードのハッシュ値がコンソールに出てくる。

/etc/dovecot/passwdに書く。

# vi /etc/dovecot/passwd

{ユーザID}:ハッシュ値 #{CRAM-MD5}を含む。

ユーザIDをメールアドレスにすることも可能みたいだが、今回はユーザIDだけにする。

メールアドレスとディレクトリの対応

# vi /etc/postfix/vmailbox

に対応関係を記載する。

メールアドレス ドメイン名/ユーザ名/Maildir/

データベースの更新

# postmap /etc/postfix/vmailbox

PostfixにVirtualの設定を記載 # Virtual
virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
virtual_alias_maps = hash:/etc/postfix/virtual
エラー対策

May 7 23:08:55 www postfix/smtpd[12412]: fatal: open database /etc/postfix/virtual.db: No such file or directory

と出ていたので、virtual.dbを探すと無い。/etc/postfix/virtual はデフォルトがあるので、dbを作ってみる。

# postmap /etc/postfix/virtual

エイリアス用のファイルだが定義はしなくてよい。

cram-md5を設定する

# vi /etc/dovecot/conf.d/10-auth.conf

auth_mechanisms = cram-md5 plain login

#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
!include auth-static.conf.ext

dovecotでさっき作成したパスワードを使用するようにする

# vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext

passdb {
driver = passwd-file
# args = scheme=CRYPT username_format=%u /etc/dovecot/users
args = username_format=%u /etc/dovecot/passwd

}

userdbの方は全部コメントアウト。

# vi /etc/dovecot/conf.d/auth-static.conf.ext

userdb {
  driver = static
  args = uid=vmail gid=vmail home=/var/mail/virtual/%d/%n

}

Mailアプリの設定

Account Type:はIMAPIncoming Mail ServerのUser Nameはメールアドレスを指定

SMTP Serverの設定時もメールアドレスを指定する。ここでユーザIDだけにすると正しく送信できないか、ThunderBirdの送信ディレクトリに保存できない。

 

# vi /etc/sasl2/smtpd.conf

pwcheck_method: auxprop

saslpasswd2 -c ユーザID

sasldblistuser2で確認すると、IDはドメイン付きで入っている。なので、メーラのUser Nameはドメイン付きで指定する。

保存ディレクトリの修正

いらないはずなんだけど、dovecotの方が、/var/mail/virtualの下にユーザIDのディレクトリを作る。ドメイン名ディレクトリが無い。なので明示した。

# vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:/var/mail/virtual/%d/%n/Maildir

 

   

余談:MacのMailアプリで設定確認を行っていたが、途中問題なく送受信できていても、再起動すると、失敗するようになった。
アプリで確認するときには、ちゃんと再起動しても問題ないことを確認すべし。