|
Настройка SSL для SMTP-сервера sendmail (FreeBSD) |
|
Как правило, при отсылке писем используется самый простой способ авторизации
пользователя по логину и паролю. Проблема в том, что данный способ является самым
небезопасным методом авторизации пользователя, так как пара логин/пароль
передается в незашифрованном виде. С ростом мобильности пользователей (что влечет за
собой необходимость доступности SMTP-сервиса из Internet), а также с
развитием беспроводных технологий связи, становится очевидной необходимость
криптографической защиты этих данных.
Для реализации работы TSL/SSL в сервере sendmail используется
технология SASL (Simple Authentication and Security Layer). Далее описан процесс
настройки sendmail.
Установка и настройка sendmail
- Если это не было сделано ранее, установите openssl:
cd /usr/src/ports/security/openssl/ make && make install
- Установите пакеты SASL (cyrus-sasl2 и cyrus-sasl-saslauthd):
cd /usr/src/ports/security/cyrus-sasl2 make all install cd /usr/src/ports/security/cyrus-sasl2-saslauthd make all install
- Создайте файл конфигурации SASL для sendmail:
echo "pwcheck_method: saslauthd" > /usr/local/lib/sasl2/Sendmail.conf echo srvtab: /etc/srvtab >> /usr/local/lib/sasl2/Sendmail.conf
- Отредактируйте файл /etc/rc.conf и добавьте следующие строки для запускаcyrus-sasl при запуске системы:
saslauthd_enable="YES" sasl_saslauthd_flags="-a sasldb" cyrus_pwcheck_enable="YES"
- Запустите cyrus-sasl:
/usr/local/etc/rc.d/saslauthd.sh start
- Скопируйте полученные файлы сертификата и приватного ключа в
каталог для хранения сертификатов и ключей:
mkdir /etc/mail/certs cp certificate.crt /etc/mail/certs cp privatekey.key /etc/mail/certs cd /etc/mail/certs
- Отредактируйте файл /etc/make.conf и добавьте следующие строки для того,
чтобы скомпилировать sendmail с поддержкой SASL:
SENDMAIL_CFLAGS= -I/usr/local/include -DSASL=2 SENDMAIL_LDFLAGS= -L/usr/local/lib SENDMAIL_LDADD= -lsasl2 -lcrypto
- Перекомпилируйте sendmail:
cd /usr/lib/lib/libsm make clean && make obj && make depend && make cd /usr/src/lib/libsmutil make clean && make obj && make depend && make cd /usr/src/usr.sbin/sendmail make clean && make obj && make depend && make && make install
- Отредактируйте файл /etc/mail/freebsd.mc и добавьте следующие строки:
define(`confCACERT_PATH', `/etc/mail/certs') define(`confSERVER_CERT', `/etc/mail/certs/certificate.crt') define(`confSERVER_KEY', `/etc/mail/certs/privetekey.key') define(`confCLIENT_CERT', `/etc/mail/certs/certificate.crt') define(`confCLIENT_KEY', `/etc/mail/certs/privetekey.key') TRUST_AUTH_MECH(`LOGIN')dnl define(`confAUTH_MECHANISMS', `LOGIN')dnl
- Сгенерируйте конфигурационный файл sendmail:
cd /etc/mail make install
- Перезапустите sendmail.
- Для проверки результата настроек выполните следующую команду:
/usr/sbin/sendmail -d0.1 -bv root
В выводе команды должны присутствовать слова SASLv2 и STARTTLS.
- Проверьте работу sendmail:
telnet localhost 25
В результате вы должны увидеть строки:
250-AUTH LOGIN 250-STARTTLS
Управление пользователями осуществляется с помощью следующих команд:
Добавление пользователя: saslpasswd -c newuser
Просмотр существующих пользователей: sasldblistuser
Примечание: Если во время настройки возникают проблемы, воспользуйтесь
следующими ссылками на первоисточники:
http://www.sendmail.org/~ca/email/starttls.html
http://www.sendmail.org/~ca/email/auth.html
|