...これはタイトルで説明するのが難しいものでした。この説明は問題を強調する必要があります。
10マスター
....
service auth {
unix_listener auth-userdb {
mode = 0644
user = vmail
group = vmail
}
...
編集-追加の構成情報(一部重複)
service auth {
# auth_socket_path points to this userdb socket by default. It's typically
# used by dovecot-lda, doveadm, possibly imap process, etc. Its default
# permissions make it readable only by root, but you may need to relax these
# permissions. Users that have access to this socket are able to get a list
# of all usernames and get results of everyone's userdb lookups.
unix_listener auth-userdb {
mode = 0644
user = vmail
group = vmail
}
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
# Auth process is run as this user.
#user = $default_internal_user
user = dovecot
}
auth-sql
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/vmail/%d/%n allow_all_users=yes
}
ls -la/var/run/dovecot/auth-userdb
srw-r--r-- 1 vmail vmail 0 Jun 20 13:04 /var/run/dovecot/auth-userdb
Postfix master.cf
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -d ${recipient}
チュートリアルをかなり忠実に実行し、いくつかの小さな変更のみを行いました。 「メール配信のテスト」に到着してecho test | mail [email protected]
を実行しました
find /var/vmail
に何も表示されていないため、メールは届きませんでした。
サーバーのsyslogに次のエラーが表示されます。
postfix/pickup[16842]: 019023A06AB: uid=1000 from=<vagrant>
postfix/cleanup[19542]: 019023A06AB: message-id= <20130620140358.019023A06AB@mail-server-berkshelf>
postfix/qmgr[16843]: 019023A06AB: from=<[email protected]>, size=382, nrcpt=1 (queue active)
dovecot: lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
dovecot: lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so
dovecot: lda: Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) failed: Connection refused
dovecot: lda: Fatal: Internal error occurred. Refer to server log for more information.
postfix/pipe[19545]: 019023A06AB: to=<[email protected]>, relay=dovecot, delay=1.2, delays=0.04/0.01/0/1.1, dsn=4.3.0, status=deferred (temporary failure)
「接続が拒否されました」というエラーは、私が攻撃しているエラーのはずです。ここで何が起こっているのかを理解するために多くの場所を検索しましたが、役立つものは何も見つかりませんでした。
誰かが何らかのリードや洞察を提供できますか?解決策は素晴らしいですが、私はいくつかの新しいアイデアを受け入れて試してみたいと思っています。
接続拒否エラーは確かに問題です。 UNIXソケットで拒否された接続は、それほど直感的ではありませんが、ソケットをリッスンしていないことを示しています(通常、プロセスが停止しているか、アドレスとして指定されたファイルがソケットではなかった)。許可のためにdovecotがリスニングのためにソケットを開くことができない場合を除き、これは許可の問題であってはなりません。
Dovecotとpostfixを停止し、/var/run/dovecot/auth-userdb
にあるソケットファイルを削除して、postfixとdovecotを再起動してみてください(ユーザーdovecotが/var/run/dovecot
に対する権限を持つように実行されていることを確認してください)。通常、これでこの種の問題が修正されます。
NetstatはUNIXドメインソケットも表示します。その出力をチェックし(netstat -nvlap | less
を使用してパスまたはdovecotを検索)、dovecotがリッスンしていることを確認します。