Я искал, но не нашел ответа, и у меня нет идей. Я просто недостаточно знаю о postfix и dovecot, чтобы разбирать конфиги или понимать, что может вызывать эту ошибку.
warning: SASL: Connect to /var/spool/postfix/private/auth failed: No such file or directory
fatal: no SASL authentication mechanisms
Я не могу подключиться к внешним клиентам (например, Thunderbird) для постфикса с помощью SASL. Я надеюсь, что это что-то очевидное, но я просто не вижу этого.
/ var / spool / postfix / private / auth
существует. Принадлежит postfix. Dovecot настроен на использование постфикса, поскольку пользователь
Dovecot работает и слушает:
unix 2 [ACC] ПРОСЛУШИВАНИЕ ПОТОКА 241906 12768 / dovecot / var / spool / postfix / private / auth
postconf -n
вывод:
alias_database = hash: / etc / aliases
alias_maps = хэш: / etc / aliases
append_dot_mydomain = нет
biff = нет
broken_sasl_auth_clients = да
Уровень совместимости = 2
inet_interfaces = все
inet_protocols = все
local_recipient_maps = $ virtual_mailbox_maps
local_transport = виртуальный
mailbox_size_limit = 0
milter_default_action = принять
milter_protocol = 2
mydestination = $ myhostname, my-server.my-server.com, my-server, localhost.localdomain, localhost
myhostname = мой-сервер
mynetworks = 127.0.0.0/8 [:: ffff: 127.0.0.0] / 104 [:: 1] / 128
myorigin = / etc / mailname
non_smtpd_milters = inet: localhost: 12301
readme_directory = нет
recipient_delimiter = +
relay_domains = $ mydestination, прокси: pgsql: /etc/postfix/pgsql/relay_domains.cf
relayhost =
smtp_sasl_auth_enable = да
smtp_tls_session_cache_database = btree: $ {data_directory} / smtp_scache
smtpd_banner = $ myhostname ESMTP $ mail_name (Ubuntu)
smtpd_milters = inet: localhost: 12301
smtpd_relay_restrictions = permission_mynetworks permission_sasl_authenticated defer_unauth_destination
smtpd_sasl_auth_enable = да
smtpd_sasl_authenticated_header = да
smtpd_sasl_path = / var / spool / postfix / private / auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = голубятня
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.my-server.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.my-server.com/privkey.pem
smtpd_tls_session_cache_database = btree: $ {каталог_данных} / smtpd_scache
smtpd_use_tls = да
virtual_alias_maps = прокси: pgsql: /etc/postfix/sql/psql_virtual_alias_maps.cf, прокси: pgsql: /etc/postfix/sql/psql_virtual_alias_domain_maps.cf, proxy: pgsql_domain_domain_maps.cf, proxy: pgsqaps_character_virtual_sql /
virtual_gid_maps = статический: 113
virtual_mailbox_base = / var / mail / vmail
virtual_mailbox_domains = прокси: pgsql: /etc/postfix/sql/psql_virtual_domains_maps.cf
virtual_mailbox_limit = 512000000
virtual_mailbox_maps = прокси: pgsql: /etc/postfix/sql/psql_virtual_mailbox_maps.cf, прокси: pgsql: /etc/postfix/sql/psql_virtual_alias_domain_mailbox_maps.cf
virtual_minimum_uid = 113
virtual_transport = виртуальный
virtual_uid_maps = статический: 113
dovecot -n
вывод:
# 2.2.33.2 (d6601f4ec): /etc/dovecot/dovecot.conf
# Pigeonhole версия 0.4.21 (92477967)
# ОС: Linux 4.15.0-66-generic x86_64 Ubuntu 18.04.3 LTS ext4
auth_mechanisms = простой вход
first_valid_uid = 113
log_path = /var/log/dovecot.log
login_greeting = Мой почтовый сервер
mail_location = maildir: / var / mail / vmail /% u /
mail_max_userip_connections = 50
mail_plugins = "zlib"
mail_privileged_group = почта
почтовый ящик пространства имен {
входящие = да
расположение =
mailbox Drafts {
special_use = \ Черновики
}
mailbox Junk {
special_use = \ Мусор
}
mailbox Sent {
special_use = \ Отправлено
}
почтовый ящик "Отправленные сообщения" {
special_use = \ Отправлено
}
mailbox Spam {
special_use = \ Мусор
}
mailbox Trash {
special_use = \ Корзина
}
префикс =
тип = частный
}
passdb {
водитель = пам
}
passdb {
args = /etc/dovecot/dovecot-sql.conf
драйвер = sql
}
plugin {
zlib_save = gz
zlib_save_level = 6
}
протоколы = imap pop3
service auth {
группа = постфикс
unix_listener / var / spool / postfix / private / auth {
группа = постфикс
mode = 0666
user = postfix
}
unix_listener auth-userdb {
группа = постфикс
mode = 0666
user = postfix
}
user = postfix
}
service imap-login {
inet_listener imaps {
порт = 993
ssl = да
}
}
service imap {
исполняемый файл = imap
}
ssl_cert =
В некоторых дистрибутивах, таких как Debian, postfix по умолчанию запускается в chroot. Chroot изменяет видимый корневой каталог, поэтому postfix не будет видеть вашу файловую систему, как вы. Вот почему он не видит /var/spool/postfix/private/auth
, хотя файл существует и принадлежит postfix.
Если вы хотите запускать postfix без chroot, отредактируйте файл /etc/postfix/master.cf
, чтобы явно установить для столбца chroot значение n
для каждого соответствующего элемента (это все они, для меня).Обратите внимание, что если вы используете неявное значение по умолчанию -
, вы все равно можете получить chroot, по-видимому, из-за того, что некоторые разработчики дистрибутива изменили значения по умолчанию для компиляции.
/etc/postfix/master.cf:
# =============================================================
# service type private unpriv chroot wakeup maxproc command
# (yes) (yes) (yes) (never) (100)
# =============================================================
smtp inet n - n - - smtpd
Если вы предпочитаете работу с chroot, см. документацию по подготовке posfix для chroot: BASIC_CONFIGURATION_README#chroot_setup