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

Dovecot не создает / var / spool / postfix / private / auth

Я перемещаю почтовую установку Ubuntu 14.04 с одного компьютера на другой. Текущая настройка в значительной степени отлично работает с настройкой postfix и dovecot Ubuntu по умолчанию, чтобы пользователи могли использовать SMTP-аутентификацию и т. Д.

Поэтому я скопировал соответствующие файлы конфигурации на новый компьютер (на котором также работает Ubuntu 14.04) и запустил там postfix после внесения необходимых изменений в DNS.

Но я получаю это в почтовом журнале новой машины:

Oct 28 14:18:50 lorina postfix/smtpd[13445]: warning: SASL: Connect to private/auth failed: No such file or directory

Oct 28 14:18:50 lorina postfix/smtpd[13445]: fatal: no SASL authentication mechanisms

Oct 28 14:18:51 lorina postfix/master[13440]: warning: process /usr/lib/postfix/smtpd pid 13445 exit status 1

Oct 28 14:18:51 lorina postfix/master[13440]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling

Postfix настроен на использование следующего:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

а в конфиге голубятни у меня есть:

  # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }

Однако я вижу, что / var / spool / postfix / private / auth не существует на новом компьютере.

Я попытался перезагрузить компьютер, если какие-либо службы не работали должным образом. Когда создается этот файл? Как я могу его упаковать?

Чтобы ответить на ваши вопросы:

  • Сокет создается при запуске dovecot. Dovecot предлагает сервис для постфикса, поэтому dovecot должен его создать. Это должно быть сделано, как только завелась голубятня. Если после перезапуска dovecot сокета нет, проверьте журналы dovecot, а не postfix.
  • Как его создать? Создавать его вручную точно не стоит.

Я думаю, что в вашей настройке отсутствуют некоторые настройки (Postfix и Dovecot), и они полагаются на настройки по умолчанию. Это могло измениться от одной машины к другой.

Dovecot

Я бы сказал, что самая большая проблема в том, что вы не говорите dovecot, кому должна принадлежать розетка. Обычно он назначается пользователю и группе постфикса, например:

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}

Проверьте право собственности на родительский каталог сокета («частный»). Какому пользователю и группе он назначен? Вам понадобится dovecot, чтобы использовать того же пользователя, чтобы он мог писать в каталоге.

Постфикс

Параметр smtpd_sasl_path зависит от параметра queue_directory. По умолчанию queue_directory должен быть / var / spool / postfix, но не помешает сделать это явным.

queue_directory = /var/spool/postfix

Из журналов видно, что вы включили sasl в postfix, хотя в вашей конфигурации этого не сказано. Но на каком агенте? Если вы установите smtpd_sasl_auth_enable = yes в main.cf, это применимо ко всем агентам, включая smtpd на порту 25. Я считаю, что лучше использовать его только для агента отправки в master.cf (который работает на порту 587). Если вы редактируете существующий master.cf, просто раскомментируйте строку отправки и любые строки параметров ниже, которые вам нужны.

submission inet n        -       -       -       -       smtpd
-o syslog_name=postfix/submission
-o smtpd_sasl_auth_enable=yes

Похоже, сообщение об ошибке вводило в заблуждение. Фактически, был путь к сертификату SSL, который dovecot не нашел, поэтому он не запускался должным образом и, следовательно, не создавал сокет в / var / spool / postfix / private / auth.