24.10. SMTP аутентификация

Написал James Gorham.

Наличие SMTP аутентификации на почтовом сервере дает множество преимуществ. SMTP аутентификация может добавить дополнительный уровень безопасности к sendmail, и позволяет мобильным пользователям, подключающимся к разным хостам, возможность использовать тот же почтовый сервер без необходимости перенастройки почтового клиента при каждом подключении.

  1. Установите security/cyrus-sasl2 из портов. Вы можете найти этот порт в security/cyrus-sasl2. В пакете security/cyrus-sasl2 есть множество параметров компиляции. Для используемого здесь метода SMTP аутентификации убедитесь, что параметр LOGIN не отключен.

  2. После установки security/cyrus-sasl2, отредактируйте /usr/local/lib/sasl2/Sendmail.conf (или создайте его если он не существует) и добавьте следующую строку:

    pwcheck_method: saslauthd
    
  3. Затем установите security/cyrus-sasl2-saslauthd и добавьте в /etc/rc.conf следующую строку:

    saslauthd_enable="YES"
    

    а затем запустите saslauthd:

    # /usr/local/etc/rc.d/saslauthd start
    

    Этот даемон является посредником для аутентификации sendmail через базу данных passwd FreeBSD. Это позволяет избежать проблем, связанных с созданием нового набора имен пользователей и паролей для каждого пользователя, которому необходима SMTP аутентификация, пароль для входа в систему и для отправки почты будет одним и тем же.

  4. Теперь отредактируйте /etc/make.conf и добавьте следующие строки:

    SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
    SENDMAIL_LDFLAGS=-L/usr/local/lib
    SENDMAIL_LDADD=-lsasl2
    

    Эти параметры необходимы sendmail для подключения cyrus-sasl2 во время компиляции. Убедитесь, что cyrus-sasl2 был установлен до перекомпиляции sendmail.

  5. Перекомпилируйте sendmail, выполнив следующие команды:

    # cd /usr/src/lib/libsmutil
    # make cleandir && make obj && make
    # cd /usr/src/lib/libsm
    # make cleandir && make obj && make
    # cd /usr/src/usr.sbin/sendmail
    # make cleandir && make obj && make && make install
    

    Компиляция sendmail должна пройти без проблем, если /usr/src не был сильно изменен и доступны необходимые разделяемые библиотеки.

  6. После компилирования и переустановки sendmail, отредактируйте файл /etc/mail/freebsd.mc (или тот файл, который используется в качестве .mc; многие администраторы используют в качестве имени этого файла вывод hostname(1) для обеспечения уникальности). Добавьте к нему следующие строки:

    dnl set SASL options
    TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
    

    Эти параметры настраивают различные методы, доступные sendmail для аутентификации пользователей. Если вы хотите использовать вместо pwcheck другой метод, обратитесь к прилагаемой документации.

  7. Наконец, запустите make(1) в каталоге /etc/mail. Из файла .mc будет создан файл .cf, называющийся freebsd.cf (или с тем именем, которое было использовано для файла .mc). Затем используйте команду make install restart, которая скопирует файл в sendmail.cf, и правильно перезапустит sendmail. Дополнительная информация об этом процессе находится в /etc/mail/Makefile.

Если все шаги пройдены успешно, введите информацию для аутентификации в настройки почтового клиента и отправьте тестовое сообщение. Для определения причин возможных ошибок установите параметр sendmail LogLevel в 13 и просмотрите /var/log/maillog.

За дальнейшей информацией обратитесь к странице sendmail, посвященной SMTP аутентификации.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015