CentOS6に対してインストールした際のメモとして記載する。
Postfix & dovecotが、UNIXアカウントでちゃんと動作するようになったのだが、もしメールのパスワードが盗まれたとき、マシンにログインできることになる。
そこで、バーチャルメールボックスの設定に変更してみる。
参考にさせていたただいたのは、以前と同様に、http://tipszone.jp/20120521_mail_server/ 。
メールボックス自体のUNIXユーザ作成 | # groupadd -g 10000 vmail |
---|---|
パスワードのハッシュ値の作成 | # doveadm pw パスワードのハッシュ値がコンソールに出てくる。 /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 |
dovecotでさっき作成したパスワードを使用するようにする | # vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext passdb { userdbの方は全部コメントアウト。 # vi /etc/dovecot/conf.d/auth-static.conf.ext userdb { |
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アプリで設定確認を行っていたが、途中問題なく送受信できていても、再起動すると、失敗するようになった。
アプリで確認するときには、ちゃんと再起動しても問題ないことを確認すべし。