Записи с тегом «postfix»

Настройка SASL И TLS в Postfix на хостинговом почтовом сервере

Прежде всего хочу отметить очень хороший сайт по настройке postifx. Подобрать себе нужное HOW-TO там можно без проблем. В моём случае пришлось пользоваться несколькими документами по настройке сабжа и немного погуглить. Цель была построить почтовый рилей + POP3/IMAP сервер для клиентов с повышеной безопасностью. А для почтового сервиса это практически означает криптование всего что только можно криптануть :). Не буду писать про настройку связки с базой и прочей приевшейся документации, а просто обращу Ваше внимание на несколько моментов. Также я не буду писать полное HOW-TO для ленивых :) Итак, что мы будем криптовать:
  • пароли в базе;
  • всю авторизацию клиентов (как SMTP так и POP3/IMAP);
  • обмен данными клиент-сервер и сервер-сервер;
Первым делом настроим сам postfix на предмет работы с SSL. Прежде всего он должен был скомпилирован с поддержкой SSL. Для каждой платформы проверять надо по разному. Потом надо сгенерировать ключ, как это сделать тоже много статей и описаний. По быстрому так:

# mkdir /postfix/configs_dir/ssl

# cd /postfix/configs_dir/ssl

# openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 3650

Следующим шагом будет настройка postfix (добавляем в main.cf):

smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_cert_file = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_CAfile = /postfix/configs_dir/ssl/smtpd.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom После этого получаем криптование при отправки и приёме почты на рилее. Потом ещё добавляем авторизацию через SASL для клиентов, чтоб могли с любого места пользоваться своим рилеем. Подразумевается что SASL тоже стоит в системе и postfix умеет с ним работать. Так как в нашем случае в качестве POP3/IMAP сервера выбран Courier-IMAP, то и авторизовать SMTP нам надо через него. Следовательно используем Courier-authlib, с которой умеет работать SASL. В postfix это выглядит так:

broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous smtpd_sasl_auth_enable = yes В SASL, (lib/sasl2/smtpd.conf)

pwcheck_method: authdaemond log_level: 7 mech_list: PLAIN LOGIN authdaemond_path:/var/run/authdaemond/socket Получаем такую цепочку:

postfix <-> sasl <-> courier-authlib <-> sql-backend

Теперь о граблях... точнее об одной. В postfix есть такая опция smtpd_sasl_local_domain, она мешает ему авторизовать клиента. Глубоко не копал, просто погуглил и нашёл что такая бага есть, а всё остально заработало гладко.

Апдейт софта на сервере httpd

Обновился следующий софт до версий:
  • apache-2.0.55
  • php4-4.4.2
  • mysql-4.1.16
  • postfix-2.2.8
Приятной и стабильной работы! :)