20.7. Установка Cyrus-SASL

Проблема

Требуется включить на почтовом сервере поддержку Cyrus-SASL для обеспечения безопасной аутентификации.

Решение

Пользователям RPM-систем потребуются следующие пакеты:

ПРИМЕЧАНИЕ

Информация для пользователей Debian приводится в разделе 20.8.

Прежде чем устанавливать Cyrus-SASL, убедитесь, что ваша версия Postfix поддерживает SASL и TLS. Для этого выполните команду ldd для исполняемого файла smtpd. Вас интересуют записи libsasl2, libssl и libcrypto:

$ ldd /usr/lib/postfix/smtpd
libssl.so.0.9.7 => /usr/lib/i686/cmov/libssl.so.0.9.7 (0x4006f000)
libcrypto.so.0.9.7 => /usr/lib/i686/cmov/libcrypto.so.0.9.7 (0x4009e000)
libsasl2.so.2 => /usr/lib/libsasl.so.2 (0x4018f000)

Если Postfix компонуется с этими библиотеками, можно переходить к установке Cyrus-SASL. Если нет, у вас есть два варианта:

После установки Postfix и Cyrus-SASL запустите saslauthd:

# /etc/init.d/saslauthd start

Добавьте следующий фрагмент в main.cf:

smtpd_sasl_auth_enable = yes
smtpd_sasl2_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_unauth_destination

Активируйте изменения:

# postfix reload

Проверьте, видит ли Postfix новые библиотеки SASL, подключившись к серверу через telnet:

$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 windbag.test.net ESMTP Postfix (Libranet/GNU)
EHLO windbag.test.net
250-windbag.test.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-XVERP
250-8BITMIME

Нас интересуют строки STARTTLS и AUTH. Если они присутствуют, настройка завершена, и можно переходить к следующему шагу, описанному в разделе 20.9.

Комментарий

Файл main.cf содержит свыше сотни параметров конфигурации. Не стоит беспокоиться — используйте только те параметры, которые необходимы для выполнения вашей работы. В каталоге /usr/share/doc/postfix/examples/ содержится множество примеров конфигураций.

Запись smtpd_recipient_restrictions может содержать несколько аргументов, разделённых запятыми. Все аргументы могут находиться в одной строке или разбиваться на несколько строк. Каждая новая строка должна начинаться с пробела или табуляции.

См. также