現在、私はdovecotとファイル転送認証に関連するいくつかの問題に直面しています。
環境に関するいくつかの詳細は次のとおりです。
- セントース7(3.10.0-042stab142.1)
- サフィックス(2:2.10.1-9.el7)
- ピジョンロフト(1:2.2.36-6.el7)
サフィックス部分は大丈夫に見えますが、ローカルでメールの送受信と外部ドメインへの転送が機能します。一部のユーザーでは、imap機能を有効にする必要があります。
"doveconf -n"からの抜粋:
auth_debug_passwords = yes
auth_mechanisms = plain login
first_valid_uid = 1000
mail_debug = yes
mail_location = maildir:/var/mail/vhosts/<mydomain>/
mbox_write_locks = fcntl
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
args = scheme=SHA512-CRYPT username_format=%Lu /etc/dovecot/mydomain_passwd
driver = passwd-file
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0666
}
}
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
ssl = required
ssl_cert = </etc/letsencrypt/live/mydomain/fullchain.pem
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_dh_parameters_length = 2048
ssl_key = # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
args = username_format=%Lu /etc/dovecot/mydomain_passwd
default_fields = uid=5000 gid=5000 home=/var/mail/vhosts/mydomain/%Ln
driver = passwd-file
}
コンテンツ "mydomain_passwd":
Zelestra@mydomain:{SHA512-CRYPT}$6$69/Qa2lPaBz3q6Gy$2zL7zAsgp6JckiziPUxJc927p.YSAyQlAYCKIJ2uvA.uR6pPfktEcHO4mbnAO3LEVVYT6jNrSPykO.STuTJJH0:5000:5000::/var/mail/vhosts/mydomain/zelestra::
「doveadm user」を使用してユーザーをテストしようとすると、次の結果が表示されます。
Jul 6 13:56:36 h2891775 dovecot: auth: Debug: master in: USER#0111#011zelestra#011service=doveadm
Jul 6 13:56:36 h2891775 dovecot: auth: Debug: passwd-file(zelestra): lookup: user=zelestra file=/etc/dovecot/mydomain_passwd
Jul 6 13:56:36 h2891775 dovecot: auth: passwd-file(zelestra): unknown user
Jul 6 13:56:36 h2891775 dovecot: auth: Debug: userdb out: NOTFOUND#0111
Jul 6 13:56:43 h2891775 dovecot: auth: Debug: master in: USER#0111#011zelestra@mydomain#011service=doveadm
Jul 6 13:56:43 h2891775 dovecot: auth: Debug: passwd-file(zelestra@mydomain): lookup: user=zelestra@mydomain file=/etc/dovecot/mydomain_passwd
Jul 6 13:56:43 h2891775 dovecot: auth: passwd-file(zelestra@mydomain): unknown user
Jul 6 13:56:43 h2891775 dovecot: auth: Debug: userdb out: NOTFOUND#0111
メールクライアントでテストする場合(テスト中に組み込まれたMac):
Jul 6 14:03:03 h2891775 postfix/smtpd[14258]: disconnect from tmo-081-218.customers.d1-online.com[<some IP>]
Jul 6 14:03:03 h2891775 dovecot: auth: Debug: client in: AUTH#0115#011PLAIN#011service=imap#011secured#011session=5GStp8SpXxJQu1Ha#011lip=<some IP>#011rip=<some IP>#011lport=143#011rport=4703#011local_name=mail.mydomain#011resp=AFplbGVzdHJhQGtvbnppbGRlcmFzcGVrdGUuZGUARDN2MWwuM3JheQ== (previous base64 data may contain sensitive data)
Jul 6 14:03:03 h2891775 dovecot: auth: Debug: passwd-file(zelestra@mydomain,<some IP>,<5GStp8SpXxJQu1Ha>): lookup: user=zelestra@mydomain file=/etc/dovecot/mydomain_passwd
Jul 6 14:03:03 h2891775 dovecot: auth: passwd-file(zelestra@mydomain,<some IP>,<5GStp8SpXxJQu1Ha>): unknown user
Jul 6 14:03:05 h2891775 dovecot: auth: Debug: client passdb out: FAIL#0115#011user=zelestra@mydomain#011original_user=Zelestra@mydomain
Jul 6 14:03:05 h2891775 dovecot: imap-login: Aborted login (auth failed, 5 attempts in 10 secs): user=<zelestra@kmydomain>, method=PLAIN, rip=<some IP>, lip=<some IP>, TLS: Disconnected, session=<5GStp8SpXxJQu1Ha>
「doveadm user *@mydomain」などの照会を実行すると、次の出力が表示されます。
Zelestra@mydomain
何か欠けているようですが、現在はどこを見なければならないのか、追加のトラブルシューティング方法がわかりません。
運がなくてもこれを何度も行いました。
- 鳩のウィキ/ハウツーを読んでください。
- fooを検索してfooを交換しても結果は出ません。この質問のバリエーションの助けを借りてください。
今私が答えたい質問は次のとおりです。
a)doveadmのワイルドカード検索では結果が表示されますが、特定の検索では結果がないのはなぜですか。
b)ハトのimap部分を操作し、クライアントの正しい認証を取得する方法のヒント
ありがとう
答え1
roaimaに感謝します。 「userdb/passwd」の内容を小文字の項目に変更したところ、正常に動作しました。
したがって、私が考える限り、これはuserdbとpassdbの「小文字で隠す」オプションです。データベース内の情報ではなく、入力された情報のみを変換します。残念ながら、ドキュメントにはこれについての言及はなく、これは私が期待する動作ではありません。