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

Postfix возвращает «нет механизмов аутентификации SASL», несмотря на то, что конфигурация аутентификации mySQL кажется действительной.

Я пытаюсь настроить почтовый сервер с поддержкой нескольких доменов с помощью Postfix + Dovecot + mySQL. Я следил это руководство.

Кажется, у меня все настроено, и сервер отправляет сертификат SSL dovecot (выдает диалоговое окно исключения сертификата в моем клиенте), однако почта не отправляется и не получает.

/ var / log / mail_err возвращает эту ошибку постфикса:

Не удалось подключиться к частному / аутентификационному: соединение отклонено

/var/log/mail.log возвращает немного более подробную информацию:

Sep 25 19:33:58 localhost postfix/postscreen[11483]: CONNECT from [MYIPADDRESS]:58837 to [MYSERVERIPADDRESS]:25
Sep 25 19:33:58 localhost postfix/postscreen[11483]: PASS OLD [MYIPADDRESS]:58837
Sep 25 19:34:01 localhost postfix/smtpd[11486]: connect from MYHOSTMASK[MYIPADDRESS]
Sep 25 19:34:01 localhost postfix/smtpd[11486]: warning: SASL: Connect to private/auth failed: Connection refused
Sep 25 19:34:01 localhost postfix/smtpd[11486]: fatal: no SASL authentication mechanisms
Sep 25 19:34:02 localhost postfix/master[4556]: warning: process /usr/lib/postfix/smtpd pid 11486 exit status 1
Sep 25 19:34:02 localhost postfix/master[4556]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling
Sep 25 19:34:02 localhost postfix/postscreen[11483]: CONNECT from [MYIPADDRESS]:58839 to [MYSERVERIPADDRESS]:25
Sep 25 19:34:02 localhost postfix/postscreen[11483]: PASS OLD [MYIPADDRESS]:58839
Sep 25 19:35:02 localhost postfix/smtpd[11780]: connect from MYHOSTMASK[MYIPADDRESS]
Sep 25 19:35:49 localhost dovecot: auth-worker: mysql(127.0.0.1): Connected to database mailserver
Sep 25 19:35:49 localhost dovecot: imap-login: Login: user=<MY@EMAILADDRESS.COM>, method=PLAIN, rip=MYIPADDRESS, lip=MYSERVERIPADDRESS, mpid=11804, TLS
Sep 25 19:38:07 localhost postfix/anvil[11379]: statistics: max connection rate 1/60s for (submission:MYIPADDRESS) at Sep 25 19:28:57
Sep 25 19:38:07 localhost postfix/anvil[11379]: statistics: max connection count 1 for (submission:MYIPADDRESS) at Sep 25 19:28:57
Sep 25 19:38:07 localhost postfix/anvil[11379]: statistics: max cache size 2 at Sep 25 19:28:57
Sep 25 19:39:02 localhost postfix/smtpd[11780]: lost connection after UNKNOWN from MYHOSTMASK[MYIPADDRESS]
Sep 25 19:39:02 localhost postfix/smtpd[11780]: disconnect from MYHOSTMASK[MYIPADDRESS]
Sep 25 19:39:02 localhost postfix/smtpd[11945]: connect from MYHOSTMASK[MYIPADDRESS]
Sep 25 19:39:03 localhost postfix/smtpd[11945]: warning: SASL: Connect to private/auth failed: Connection refused
Sep 25 19:39:03 localhost postfix/smtpd[11945]: fatal: no SASL authentication mechanisms
Sep 25 19:39:04 localhost postfix/master[4556]: warning: process /usr/lib/postfix/smtpd pid 11945 exit status 1

Опять же, я не получаю и не могу отправлять почту. Похоже, что postfix вылетает из-за преждевременного выхода. У меня нет идей, и я бы предпочел не стирать все и не начинать настройку заново. Есть предположения? Это VPS, работающий на Ubuntu 12.04.

РЕДАКТИРОВАТЬ

postconf -n вывод:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = ipv4
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = localhost
myhostname = lightningcoders.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pem
smtpd_tls_key_file = /etc/ssl/private/dovecot.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp

главный конфиг postfix:

root@orion:~# cat /etc/postfix/master.cf | grep ^smtp
smtp      inet  n       -       -       -       -       smtpd
smtp      inet  n       -       -       -       1       postscreen
smtpd     pass  -       -       -       -       -       smtpd
smtp      unix  -       -       -       -       -       smtp

РЕДАКТИРОВАТЬ 2:

root@orion:/home/jknipp# ls -ld /var/spool/postfix/private/auth
srw-rw-rw- 1 postfix postfix 0 Sep 25 02:38 /var/spool/postfix/private/auth

Что касается конфигурации dovecot:

2.0.19: /etc/dovecot/dovecot.conf
# OS: Linux 3.9.3-x86_64-linode33 x86_64 Ubuntu 12.04.3 LTS ext3
auth_mechanisms = plain login
mail_location = maildir:/var/mail/vhosts/%d/%n
mail_privileged_group = mail
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocols = imap pop3 lmtp
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  driver = static
}

Мой партнер установил довольно строгие начальные правила брандмауэра, то есть только открытие необходимых портов. В настоящее время открыты эти порты: 22,10000,25,587,993,143,110,465,21, 80, 443, 6667. Нужно ли мне открывать определенный порт?

Основываясь на ваших изменениях, я не вижу, чтобы вы вообще настроили прослушиватель сокетов Dovecot. Это номера 34 и 35 в разделе Dovecot в руководстве, которое вы связали.

Если вы используете структуру каталогов conf.d (как предлагается в руководстве), убедитесь, что все соответствующие разделы, например conf.d/10-master.conf включены и где они должны быть.

После того, как вы исправили или добавили их, перезапустите Dovecot и doveconf -n где-то должно быть следующее:

...
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
...

Вам не нужно открывать какие-либо специальные порты на вашем брандмауэре, так как Postfix и Dovecot находятся на одной машине, а Postfix общается с Dovecot через прослушиватель сокетов, которые настраиваются указанными выше директивами.