Новая установка Dovecot не разрешает вход в систему, выдавая ошибку разрешений, несмотря на то, что разрешения "выглядят нормально"
Я устанавливаю dovecot на виртуальную машину Virtualbox с 64-битным гостевым сервером Ubuntu 64.04. Сам Dovecot устанавливается в контейнер Docker (я не уверен, что это актуально здесь, но отмечу это на всякий случай). У меня проблемы с получением dovecot, чтобы я мог войти через telnet для проверки аутентификации пользователя с помощью файла passwd.
Сам Dovecot, кажется, установил нормально. Я начал это с sudo dovecot
и сейчас пытаюсь проверить его, следуя вики-руководству по адресу http://wiki2.dovecot.org/TestInstallation.
Внутри контейнера я вхожу 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.
Я подтвердил, что эта команда работает на существующем (работающем) сервере dovecot Ubuntu 12.04 с аналогичным файлом passwd в /etc/dovecot/users.
/etc/dovecot/users
Файл содержит следующую строку:
test:{SHA512-CRYPT}$6$PHmKiepXqf1vbk7u$.ruON3KVGW7LfuqxAFKG3kG5O0s3tocK5jpbaMH2Qh9scnjj.RENQ230ulYXgp9SEaZbJjFlD9HJdA6o4wVIJ1::::/home/dovecot-user/Maildir/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/
быть максимально снисходительным и chown
файлы для dovecot: dovecot, 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
/ Главная / голубятня пользователь /Maildir/ тест:
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
проблема, и как сделать отладку и исправить ее. За последние несколько лет я видел почти дюжину сообщений на форуме об этом, но никаких хорошо документированных исправлений нет. Таким образом, я думаю, что эта проблема не является уникальной для меня, и я надеюсь получить некоторую помощь здесь, где она будет хорошо документирована в будущем.
2 ответа
Я не уверен, действительно ли это было проблемой AppArmor (после комментария @André-Daniel выше), поскольку отключение / удаление AppArmor не помогло с сообщениями об ошибках. Для справки, однако, я нашел один способ решить проблему. Исправление включало несколько компонентов:
- Убедитесь, что действительные uid и gid (например, пользователя, в домашнем каталоге которого хранится каталог Maildir) установлены в /etc/dovecot/conf.d/10-mail.conf
- Убедиться, что все файлы в каталоге Maildir принадлежат этому uid и gid (
chown --recursive $(id -u):$(id -g) /home/username/Maildir
) - Храните файл users / password вне / etc / dovecot, где пользователь из (1) может иметь к нему доступ. Как только я это сделал, и
chown
Как и в (2) выше, я начал получать отдельное сообщение об ошибке в журнале dovecot о дублированных пространствах имен. - Я решил ошибку из (3) выше, следуя https://workaround.org/comment/3326, который рекомендует добавить
inbox = yes
кnamespace inbox {...
раздел /etc/dovecot/conf.d/15-mailboxes.conf и комментируя весьnamespace
раздел в /etc/dovecot/conf.d/10-mail.conf
В моем случае я решил следующие ошибки:
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