#author("2020-04-14T14:37:30+09:00","default:narushima","narushima")
#author("2020-04-16T14:03:56+09:00","default:narushima","narushima")
#contents

*Dovecotとは [#l4a3f769]
POP3やIMAPによるメール読み込みサーバー。postfix との親和性が高く利用シェアも高い。バーチャルメールボックスにも対応しており、Linuxユーザーやパスワードに関係なくメール管理ができるため、パスワード漏洩しても影響が限定的。



*設定 [#a17fa540]
/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

*テスト [#xb132731]
SSL設定されていない場合
 # telnet localhost 143

SSL設定されている場合
 # openssl s_client -connect localhost:imaps

STARTTLSのチェック
 # telnet localhost 143
   a STARTTLS
OKが表示されればTLS接続できている。

**ログの詳細表示 [#obf681ab]
 /etc/dovecot/dovecot.conf
   auth_verbose = yes
   auth_debug = yes

その後dovecotをリスタート後、/var/log/maillogの中を確認。

 # systemctl restart dovecot
 # tail -n 40 /var/log/maillog

*補足:自己サーバー証明書の作成 [#ecd386dc]
 # 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

* トラブルシューティング [#g4f8082e]
** dovecot: pop3-login: Aborted login [#d1531f4c]
POP3ログインに失敗している。
 rip = 接続元IPアドレス
 lip = サーバのIPアドレス

*参考リンク [#v435b656]

- https://tenforward.hatenablog.com/entry/20110421/1303362615