web-dev-qa-db-ja.com

新しいDovecotのインストールでログインが許可されず、権限が「正常に表示される」と表示されているにもかかわらず、権限エラーが発生する

私はDovecotをVirtualboxにインストールしていますVM Ubuntu Server 64ビット14.04ゲストを実行しています。Dovecot自体はDockerコンテナにインストールされています(ここで関連するかどうかはわかりませんが、注意してください)念のため)passwdファイルを使用してユーザー認証をテストするためにtelnet経由でログインできるようにdovecotを取得するのに問題があります。

Dovecot自体は正常にインストールされているようです。私はそれを_Sudo dovecot_で起動し、現在は http://wiki2.dovecot.org/TestInstallation のwikiガイドに従ってテストしようとしています。

コンテナ内に_telnet localhost 143_と入力します。 Dovecotは* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot (Ubuntu) ready.と正常に接続します。次に、_a login "test" "test"_と入力しますが、次の出力が得られます:_a NO [AUTHENTICATIONFAILED] Authentication failed._

このコマンドが既存の(動作している)Ubuntu 12.04 dovecotサーバーで動作し、/ etc/dovecot/usersに同様のpasswdファイルがあることを確認しました。

_/etc/dovecot/users_ファイルには次の行が含まれています。

_test:{SHA512-CRYPT}$6$PHmKiepXqf1vbk7u$.ruON3KVGW7LfuqxAFKG3kG5O0s3tocK5jpbaMH2Qh9scnjj.RENQ230ulYXgp9SEaZbJjFlD9HJdA6o4wVIJ1::::/home/dovecot-user/Maildir/test
_

ここでのユーザーは、パスワード「test」で「test」と呼ばれます。

Dovecotログファイルには次のものが含まれています。

_Aug 04 08:49:18 imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Aug 04 08:49:18 imap-login: Debug: SSL: elliptic curve secp384r1 will be used for ECDH and ECDHE key exchanges
Aug 04 08:49:18 auth: Error: passwd-file: open(/etc/dovecot/users) failed: Permission denied (euid=102(dovecot) egid=106(dovecot) missing +x perm: /etc/dovecot, UNIX perms appear ok (ACL/MAC wrong?))
Aug 04 08:49:18 auth: Error: passwd-file: open(/etc/dovecot/users) failed: Permission denied (euid=102(dovecot) egid=106(dovecot) missing +x perm: /etc/dovecot, UNIX perms appear ok (ACL/MAC wrong?))
Aug 04 08:49:23 auth: Error: passwd-file(test,::1,<4V3V0Mn/5QAAAAAAAAAAAAAAAAAAAAAB>): stat(/etc/dovecot/users) failed: Permission denied (euid=102(dovecot) egid=106(dovecot) missing +x perm: /etc/dovecot, UNIX perms appear ok (ACL/MAC wrong?))
Aug 04 08:49:26 imap-login: Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 3 secs): user=<test>, method=PLAIN, rip=::1, lip=::1, secured, session=<4V3V0Mn/5QAAAAAAAAAAAAAAAAAAAAAB>
_

_/etc/dovecot/_と_/home/dovecot-user/Maildir/_のファイルのアクセス許可をできるだけ寛大に変更したり、ファイルをdovecot:dovecotにchownするなど、この問題の解決策は見つかりませんでした。 、root:root、およびdovecot-user:dovecot-user。現在のファイルのアクセス許可は次のとおりです。

_ls -lR /etc/dovecot_:

_/etc/dovecot/dovecot:
-rwxrwx--- 1 dovecot dovecot  116 Aug  3 20:07 README
drwxrwx--- 2 dovecot dovecot 4096 Aug  4 08:45 conf.d
-rwxrwx--- 1 dovecot dovecot  410 Aug  3 20:07 dovecot-db.conf.ext
-rwxrwx--- 1 dovecot dovecot  782 Aug  3 20:07 dovecot-dict-sql.conf.ext
-rwxrwx--- 1 dovecot dovecot 5348 Aug  3 20:07 dovecot-sql.conf.ext
-rwxrwx--- 1 dovecot dovecot 3794 Aug  3 20:07 dovecot.conf
-rwxrwx--- 1 dovecot dovecot 3795 Aug  3 20:07 dovecot.conf.factory_settings
-rw-r--r-- 1 dovecot dovecot 1314 Aug  3 22:02 dovecot.pem
drwx------ 2 dovecot dovecot 4096 Aug  4 03:53 private
-rwxr-xr-x 1 dovecot dovecot  357 Aug  4 08:23 users


/etc/dovecot/conf.d:
total 108
-rwxrwx--- 1 dovecot dovecot  5258 Aug  3 20:07 10-auth.conf
-rwxrwx--- 1 dovecot dovecot  1691 Aug  3 20:07 10-director.conf
-rwxrwx--- 1 dovecot dovecot  2650 Aug  4 03:50 10-logging.conf
-rwxrwx--- 1 dovecot dovecot 14476 Aug  3 20:07 10-mail.conf
-rwxrwx--- 1 dovecot dovecot  2920 Aug  3 20:07 10-master.conf
-rwxrwx--- 1 dovecot dovecot  1654 Aug  3 20:07 10-ssl.conf
-rwxrwx--- 1 dovecot dovecot  1654 Aug  3 20:07 10-ssl.conf.save
-rw-r--r-- 1 dovecot dovecot   291 May 14 18:11 10-tcpwrapper.conf
-rwxrwx--- 1 dovecot dovecot  1607 Aug  3 20:07 15-lda.conf
-rw-r--r-- 1 dovecot dovecot  1137 May 14 18:11 15-mailboxes.conf
-rwxrwx--- 1 dovecot dovecot  2402 Aug  3 20:07 20-imap.conf
-rw-r--r-- 1 dovecot dovecot  4007 May 14 18:11 20-pop3.conf
-rwxrwx--- 1 dovecot dovecot   676 Aug  3 20:07 90-acl.conf
-rwxrwx--- 1 dovecot dovecot   292 Aug  3 20:07 90-plugin.conf
-rwxrwx--- 1 dovecot dovecot  2251 Aug  3 20:07 90-quota.conf
-rw-r--r-- 1 dovecot dovecot   499 May 14 18:11 auth-checkpassword.conf.ext
-rwxrwx--- 1 dovecot dovecot   486 Aug  3 20:07 auth-deny.conf.ext
-rwxrwx--- 1 dovecot dovecot   558 Aug  3 20:07 auth-master.conf.ext
-rwxrwx--- 1 dovecot dovecot   329 Aug  4 03:45 auth-passwdfile.conf.ext
-rw-r--r-- 1 dovecot dovecot   788 May 14 18:11 auth-sql.conf.ext
-rwxrwx--- 1 dovecot dovecot   608 Aug  3 20:07 auth-static.conf.ext
-rwxrwx--- 1 dovecot dovecot  2106 Aug  3 20:07 auth-system.conf.ext
-rwxrwx--- 1 dovecot dovecot   327 Aug  3 20:07 auth-vpopmail.conf.ext
_

_ls -lR /home/dovecot-user/Maildir/_:

_/home/dovecot-user/Maildir/:
total 4
drwx------ 10 dovecot-user dovecot-user 4096 Aug  4 03:45 test
_

/ home/dovecot-user/Maildir/test:

_total 12
drwx------ 2 dovecot-user dovecot-user 4096 Aug  4 03:45 cur
drwx------ 2 dovecot-user dovecot-user 4096 Aug  4 03:45 new
drwx------ 2 dovecot-user dovecot-user 4096 Aug  4 03:45 tmp
_

_dovecot -n_からの出力:

_# 2.2.9: /etc/dovecot/dovecot.conf  
doveconf: Error: setmntent(/etc/mtab) failed: No such file or directory  
 # OS: Linux 3.13.0-32-generic x86_64 Ubuntu 14.04.1 LTS  
first_valid_uid = 8
last_valid_uid = 1001
log_path = /testout
mail_gid = 1000
mail_location = maildir:/home/dovecot-user/Maildir/%u
mail_privileged_group = mail
mail_uid = 1000
namespace {
  inbox = yes
  location = 
  prefix = 
  separator = /
  type = private
}
namespace inbox {
  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=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
protocols = " imap pop3"
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
verbose_ssl = yes
_

これがファイルのアクセス許可の問題なのか、apparmorまたはselinuxの問題なのか、そしてデバッグと修正の方法がわかりません。私は過去数年からこれに関するほぼ12のフォーラム投稿を見てきましたが、十分に文書化された修正はありません。したがって、この問題は私に固有のものではないと思います。将来のために十分に文書化されるここで、いくつかの助けを得ることを望んでいます。

4
J L

AppArmorをオフ/アンインストールしてもエラーメッセージが表示されなかったため、これが実際にAppArmorの問題であったかどうかはわかりません(上記の@André-Danielのコメントに従ってください)。ただし、記録として、問題を解決する1つの方法を見つけました。修正にはいくつかのコンポーネントが含まれていました。

  1. 有効なuidとgid(たとえば、ホームディレクトリにMaildirディレクトリが保存されているユーザーの)が/etc/dovecot/conf.d/10-mail.confに設定されていることを確認します。
  2. Maildirディレクトリ内のすべてのファイルがそのuidとgidによって所有されていることを確認してください(chown --recursive $(id -u):$(id -g) /home/username/Maildir
  3. 上記(1)のユーザーがアクセスできる/ etc/dovecotの外部にusers/passwordファイルを保存します。これを実行し、上記の(2)のようにchownedすると、重複する名前空間について、dovecotログに別のエラーメッセージが表示され始めました。
  4. 上記の(3)のエラーを次のように解決しました https://workaround.org/comment/3326#comment-3326 、_inbox = yes_を_namespace inbox {..._セクションに追加することをお勧めします/etc/dovecot/conf.d/15-mailboxes.conf、および/etc/dovecot/conf.d/10-mail.confのnamespaceセクション全体をコメントアウトします。
1
J L

私の場合、次のエラーを解決しました。

Mar  7 22:55:01 servername dovecot: pop3-login: Error: auth: connect(login) in directory / failed: Permission denied (euid=996(<unknown>) egid=995(<unknown>) missing +w perm: //login, dir owned by 0:995 mode=0750)
Mar  7 22:55:03 servername dovecot: pop3-login: Error: auth: connect(login) in directory / failed: Permission denied (euid=996(<unknown>) egid=995(<unknown>) missing +w perm: //login, dir owned by 0:995 mode=0750)
Mar  7 22:55:06 servername dovecot: imap-login: Warning: Auth process not responding, delayed sending initial response (greeting): user=<>, rip=12.12.123.123, lip=12.12.123.124, session=<vzAfW30twwDVf4d6>
Mar  7 22:55:11 servername dovecot: pop3-login: Warning: Auth process not responding, delayed sending initial response (greeting): user=<>, rip=127.0.0.1, lip=127.0.0.1, secured, session=<8Z5uW30tLgB/AAAB>
Mar  7 22:55:13 servername dovecot: pop3-login: Warning: Auth process not responding, delayed sending initial response (greeting): user=<>, rip=12.12.123.123, lip=12.12.123.124, session=<B9+JW30tAgBRBHv8>

実行することによって:

setfacl -k /var/run/dovecot/login
0
BVB Media