У меня такая конфигурация:
/etc/postfix/main.cf
smtpd_sasl_type = cyrus
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = /usr/lib/sasl2/smtpd
/usr/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN DIGEST-MD5 NTLM
Но когда я подключаюсь к SMTP, я получаю неожиданный механизм CRAM-MD5
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ubuntu8 ESMTP Postfix (Ubuntu)
EHLO localhost
250-AUTH NTLM CRAM-MD5 PLAIN LOGIN DIGEST-MD5
...
Так что похоже, что он не использует мою конфигурацию. Что здесь не так?
Кроме того, если я не укажу smtpd_sasl_path, есть ли конфигурация по умолчанию? В соответствии с http://www.postfix.org/SASL_README.html
Cyrus SASL version 2.x searches for the configuration file in /usr/lib/sasl2/.
Но на самом деле у меня по умолчанию не было конфигурации в этом месте.
Версии: ubuntu 8.04, postfix 2.5
Вы не должны указывать полный путь "/ usr / lib / sasl2 / smtpd" для "smtpd_sasl_path" здесь, только "smtpd" в порядке, в этом случае требуется имя приложения, а не путь для cyrus, чтобы выбрать файл конфигурации, используемый постфиксом .
видеть http://www.postfix.org/postconf.5.html#smtpd_sasl_path.
Документация по этому параметру конфигурации немного разрознена.
Как упоминалось в одном из других ответов, эта документация (http://www.postfix.org/postconf.5.html#smtpd_sasl_path) указывает, что по умолчанию smtpd
.
Затем, чтобы узнать, что это на самом деле означает, взгляните здесь -
http://www.postfix.org/SASL_README.html#server_cyrus_name
и тут -
http://www.postfix.org/SASL_README.html#server_cyrus_location
В них говорится:
Имя файла конфигурации (по умолчанию: smtpd.conf) можно изменить. Это конкатенация значения, которое SMTP-сервер Postfix отправляет библиотеке Cyrus SASL, и суффикса .conf, добавляемого Cyrus SASL.
Значение, отправленное Postfix, - это имя серверного компонента, который будет использовать Cyrus SASL. По умолчанию используется smtpd, и он настроен с одной из следующих переменных:
/etc/postfix/main.cf:
# Postfix 2.3 and later smtpd_sasl_path = smtpd # Postfix < 2.3 smtpd_sasl_application_name = smtpd
И:
Местоположение, в котором Cyrus SASL ищет указанный файл, зависит от версии Cyrus SASL и используемой ОС / дистрибутива.
Вы можете узнать больше по следующим темам:
Cyrus SASL версии 2.x ищет файл конфигурации в / usr / lib / sasl2 /.
Cyrus SASL версии 2.1.22 и новее дополнительно ищите в / etc / sasl2 /.
Некоторые дистрибутивы Postfix модифицированы и ищут файл конфигурации Cyrus SASL в / etc / postfix / sasl /, / var / lib / sasl2 / и т. Д. См. Документацию по конкретному дистрибутиву, чтобы определить ожидаемое местоположение.
Обратите внимание, что Cyrus SASL сначала ищет / usr / lib / sasl2 /. Если он найдет указанный файл конфигурации там, он не будет проверять другие места.
Затем вы можете проверить, где Postfix будет сначала искать файл конфигурации sasl, который можно найти (для дистрибутивов на основе debian) в /usr/share/doc/postfix/README.Debian
Здесь упоминается:
- По политическим причинам:
а. Конфигурация SASL находится в / etc / postfix / sasl
Итак ... Собираем все вместе, определяя как smtpd
(или оставив значение по умолчанию), он будет искать smtpd.conf
в /etc/poostfix/sasl
каталог.
Если его там нет, он будет искать файл в /usr/lib/sasl2/
затем /etc/sasl2/
Должен любить древнюю документацию: D
Значение smtpd_sasl_path
специфичен для вашей реализации SASL; с Dovecot он указывает на сокет, который Postfix может использовать для связи с демоном IMAP. Я не совсем уверен, что это значит с Cyrus, но вы можете найти его значение по умолчанию (а также значение по умолчанию для всех других переменных конфигурации Postfix), запустив:
$ sudo postconf -d | grep smtpd_sasl_path
Что касается файла конфигурации Cyrus, вы пробовали установить cyrus_sasl_config_path
в main.cf
?