Назад | Перейти на главную страницу

Конфигурация Dovecot (с Postfix) отказала в соединении при доступе к auth-userdb

... это было сложно описать в заголовке. Это описание должно выделить проблему.

Контекст

Конф. Файлы

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
}

авторизация-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 test@chefdovecot.com

Письмо не пришло с find /var/vmail ничего не показал.

В системном журнале сервера присутствуют следующие ошибки:

postfix/pickup[16842]: 019023A06AB: uid=1000 from=<vagrant>
postfix/cleanup[19542]: 019023A06AB: message-id=   <20130620140358.019023A06AB@mail-server-berkshelf>
postfix/qmgr[16843]: 019023A06AB: from=<vagrant@mail-server-berkshelf.localdomain>, 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=<test@chefdovecot.com>, 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 и найдите путь или голубятню), чтобы убедиться, что голубятня слушает.