エラー「IMAP Auth process broken 993」

エラー「IMAP Auth process broken 993」は、通常、IMAP(ポート 993 = IMAPS)の認証(auth)デーモンが動作していない/応答しない、またはSSL/TLS、ソケット権限、サービスブロックのいずれかの問題があることを意味します。以下は診断チェックリストと実用的なコマンド(Linuxマシンで使用)です — ステップごとに実行し、出力を読み、指示に従って修正してください。

1) IMAPサービス(例:Dovecot、Courier)の確認

Dovecotを使用している場合:

Bash

sudo systemctl status dovecot
sudo journalctl -u dovecot -n 200
sudo dovecot -n          # dovecotの設定を表示(auth, ssl, socketsを確認)

Courierを使用している場合:

Bash

sudo systemctl status courier-authdaemon
sudo journalctl -u courier-authdaemon -n 200

目的: サービスが active (running) であることを確認します。クラッシュしたり頻繁に再起動したりする場合は、ログで原因を確認してください。

2) 詳細なエラーを確認するためにメールログをチェック

一般的なログファイル:

Bash

sudo tail -n 200 /var/log/mail.log
sudo tail -n 200 /var/log/maillog
sudo grep -i "auth" /var/log/mail.log | tail -n 100

auth: Fatal: ...imap-login: Disconnected ...auth: Error: ... のような行を探します — ここに投稿する必要がある場合は、これらの行をコピーしてください。

3) ソケット/認証の権限を確認(「auth process broken」はソケットに起因することが非常に多いため)

Dovecotの例:

Bash

sudo ls -l /var/run/dovecot/
sudo ls -l /var/run/dovecot/auth-client

または:

Bash

sudo ls -l /var/run/dovecot/*auth*

ソケットが存在しないか、権限が間違っている場合 — dovecot-auth は通信できません。設定に従って権限またはオーナーを修正します。通常、オーナーは dovecot:dovecot または root:dovecot です。

4) ポート 993 のリスニングとプロセスを確認

Bash

ss -ltnp | grep :993
sudo lsof -iTCP:993 -sTCP:LISTEN -Pn

プロセス(dovecotcourier-imapdcyrus-imapd)が 0.0.0.0:993 または特定のIPで LISTEN していることを確認する必要があります。

5) SSL/TLSを確認(壊れた/期限切れの証明書、または読み取り不可能なキーが認証エラーを引き起こす可能性がある)

TLSハンドシェイクをテスト:

Bash

openssl s_client -connect your.domain.tld:993 -crlf -servername your.domain.tld

観察: 証明書チェーンが表示されていますか? SSL routines:...handshake failure のようなエラーがありますか?証明書が間違っている/期限切れの場合は、証明書を交換し(Let’s Encryptまたは別の証明書)、dovecotをリロードします。 関連するDovecotの設定:

Bash

sudo dovecot -n | grep -i ssl

設定内の ssl_cert および ssl_key のパスが存在し、dovecot ユーザーに読み取り権限があるかを確認します。

6) 認証メカニズム(PAM、passwd-file、LDAP、SQL)を確認

認証にSQL/LDAPを使用している場合は、doveadm コマンドでテストしてみてください:

Bash

sudo doveadm auth test username@example.com password

結果は、バックエンドが応答しているか、または失敗しているかを示します。DB/LDAP接続エラーが報告された場合は — バックエンドの設定を修正します。

7) fail2ban / ファイアウォール / SELinuxを確認

Fail2banがクライアントIPをブロックしている可能性があります:

Bash

sudo fail2ban-client status
sudo fail2ban-client status dovecot

ファイアウォール:

Bash

sudo iptables -L -n | grep 993
sudo ss -ltnp | grep 993

SELinux (CentOS/RHEL):監査ログを確認するか、テストのために一時的に無効にしてみてください:

Bash

sestatus
# (注意) sudo setenforce 0    # テストのみ

8) リソースが原因で認証がクラッシュした場合のファイルディスクリプタ / ulimitの確認

Bash

sudo cat /proc/$(pidof dovecot)/limits

接続が多すぎるためにプロセスがkillされた場合 — サービス/ulimitsを調整します。

9) 安全な再起動と一時的なデバッグ(必要な場合)

dovecot設定でデバッグを有効にし(auth_debug=yesauth_debug_passwords=yes)、その後再起動して詳細を確認します:

Bash

sudo sed -n '1,200p' /etc/dovecot/dovecot.conf   # または /etc/dovecot/conf.d/*
# confでデバッグを有効にした後:
sudo systemctl restart dovecot
sudo journalctl -u dovecot -f

注: パスワードがログに記録されるため、本番環境でデバッグを長時間有効にしないでください。

10) 「クイックフィックス」コマンド(一時的な試行)

Bash

sudo systemctl restart dovecot
sudo systemctl daemon-reload
sudo systemctl restart dovecot

(プロセスがハングしていた場合は、再起動だけで問題が解決することがあります)。ただし、設定が間違っていると再起動が失敗します — すぐに journalctl を確認してください。