POP3やIMAPによるメール読み込みサーバー。postfix との親和性が高く利用シェアも高い。バーチャルメールボックスにも対応しており、Linuxユーザーやパスワードに関係なくメール管理ができるため、パスワード漏洩しても影響が限定的。
/etc/dovecot/conf.d 以下に設定ファイルがある。またユーザーが unix システムのままになっているので、それも合わせて修正する。
10-mail.conf ではメールフォルダの方式(postfixの設定に合わせる)を指定する。
mail_location = maildir:~/Maildir
10-auth.conf では、auth方式に login を追加する。
auth_mechanisms = plain login ..... # 下記の様にコメントアウト修正 #!include auth-system.conf.ext <- コメント !include auth-passwdfile.conf.ext <- コメント解除 !include auth-static.conf.ext <- コメント解除
auth-passwdfile.conf.extには参照するパスワードファイルの情報を記述(ファイルの記述方法は下記で説明)
passdb { driver = passwd-file args = scheme=CRYPT username_format=%u /etc/dovecot/users }
auth-static.conf.extには、ヴァーチャルメールボックス(バーチャルユーザーのメールを保存する場所)を監理するユーザーを指定。この場合このユーザーのunixユーザーとしての追加を忘れないこと。
userdb { driver = static args = uid=mail_admin gid=mail_admin home=/home/mail_admin/%d/%u }
10-master.conf では、postfix のsmtp認証の設定がコメントアウトされているので、ソケット情報を修正追加する。
service_auth { ..... # Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } ..... }
auth-passwdfile.conf.ext で記述されている、/etc/dovecot/users ファイルを作成する。SMTP認証する場合にはこのユーザー名(バーチャルドメイン用にユーザーにはドメイン名も付ける)
/etc/dovecot/users myuser@mydomain.com:{PLAIN}xxxxxxxx
※ xxxxxx はユーザーのパスワード
ユーザーDBの確認には以下のコマンドを利用する。
# doveconf -n
SSL設定されていない場合
# telnet localhost 143
SSL設定されている場合
# openssl s_client -connect localhost:imaps
STARTTLSのチェック
# telnet localhost 143 a STARTTLS
OKが表示されればTLS接続できている。
/etc/dovecot/dovecot.conf auth_verbose = yes auth_debug = yes
その後dovecotをリスタート後、/var/log/maillogの中を確認。
# systemctl restart dovecot # tail -n 40 /var/log/maillog
# openssl genrsa 2024 > server.key # openssl req -new -key server.key > server.csr # openssl x509 -req -days 3650 -signkey server.key < server.csr > server.crt
POP3ログインに失敗している。
rip = 接続元IPアドレス lip = サーバのIPアドレス