Здравствуйте, я работаю Linux
Я новичок в настройке почтовых серверов.
У меня есть постфикс для SMTP, и он может получать электронные письма.
Версия Postfix: mail_version = 3.1.12
Я также установил версию Dovecot: 2.2.27 (c0f36b0)
Моя конфигурация такова, что POSTFIX настроен на использование DOVECOT SASL через локальный сокет.
Моя система настроена для хранения электронной почты в / var / mail /
. Для каждого домена у меня есть собственный файл passwd, в котором dovecot должен искать имена пользователей и пароли.
/ var / mail /
.
Я создал виртуального пользователя
для доступа к почте и аутентификации пользователей.
Моя конфигурация голубятни:
В /etc/dovecot/dovecot.conf
я добавил в конец файла
userdb {
driver = passwd-file
args = username_format=%n /var/mail/%d/passwd
default_fields = uid=virtualmail gid=virtualmail home=/var/mail/%d/%n
}
passdb {
driver = passwd-file
args = username_format=%n /var/mail/%d/passwd
}
содержимое файла passwd в формате:
<username_without_domain>:{plain}test
В /etc/dovecot/conf.d/ 10-auth.conf
Я установил:
disable_plaintext_auth = no
auth_mechanisms = plain login
В /etc/dovecot/conf.d/10-mail.conf
я установил:
mail_home = /var/mail/home/%d/%n
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%d/%n
mail_privileged_group = virtualmail
Теперь проблема: Я тестировал конфигурацию с помощью telnet. POSTFIX получает электронную почту, сохраняет ее. Нет проблем. Когда я попытался войти в Dovecot IMAP с помощью Telnet, я получил следующее сообщение:
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN AUTH-LOGIN] Dovecot ready.
a login "username@owndomain.org" "test"
a NO [UNAVAILABLE] Internal error occured. Refer to server log for more information.
Я включил подробное ведение журнала, и это результат журналов:
/var/log/dovecot.log
имел следующее сообщение:
Nov 16 14:20:49 auth: Error: plain(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): user not found from any userdbs
Nov 16 14:20:49 imap: Error: Authenticated user not found from userdb, auth lookup id=684589057 (client-pid=9601 client-id=1)
/var/log/dovecot-debug.log
имел это сообщение:
Nov 16 14:20:18 auth: Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:18 auth: Debug: Read auth token secret from /var/run/dovecot/auth-token-secret.dat
Nov 16 14:20:18 auth: Debug: auth client connected (pid=9601)
Nov 16 14:20:47 auth: Debug: client in: AUTH 1 PLAIN service=imap session=RF4llXaXisPAqAmD lip=192.168.2.2 rip=192.168.9.131 lport=143 rport=$
Nov 16 14:20:47 auth-worker(9603): Debug: Loading modules from directory: /usr/lib/dovecot/modules/auth
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup service=dovecot
Nov 16 14:20:47 auth-worker(9603): Debug: pam(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): #1/1 style=1 msg=Password:
Nov 16 14:20:49 auth: Debug: passwd-file /var/mail/owndomain.org/passwd: Read 2 users in 0 secs
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: client passdb out: OK 1 user=username@owndomain.org
Nov 16 14:20:49 auth: Debug: master in: REQUEST 684589057 9601 1 a61dd67ee43390596ddf86e6c08db6f9 session_pid=9604 request_auth_token
Nov 16 14:20:49 auth-worker(9603): Debug: passwd(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup
Nov 16 14:20:49 auth: Debug: passwd-file(username@owndomain.org,192.168.9.131,<RF4llXaXisPAqAmD>): lookup: user=username file=/var/mail/owndomain.org/passwd
Nov 16 14:20:49 auth: Debug: master userdb out: NOTFOUND 684589057
И я совершенно не понимаю, в чем проблема . Потому что кажется, что пароль был найден, а пользователя нет? Пароль и пользователь ищутся в одном файле passwd. Я что-то забыл настроить? Любая помощь приветствуется!
Хорошо я узнал проблему. Или таким образом, это кажется.
В passwd файле я использовал формат
username:{scheme}password
, но я не сделал добавленных двойных двоеточий для остальной части пустых значений, таким образом, правильный формат должен был быть:
username:{scheme}password:::::
Issue решен.