SASL обеспечивает возможность отправки сообщений пользователям не из mynetworks. При этом пользователь должен аутенифицироваться при соединении с сервером. Т.к. имя пользователя/пароль передавать открытым текстом не следует, то предварительно должно быть установлено защищённое соединение через TLS.
Требуется postfix с поддержкой SSL (с релиза 2.2 должна быть штатно в основной ветви). Устанавливается cyrus-sasl2
.
При использовании базы данных пользователей в файле настройка и запуск демона saslauthd не требуется.
База пользователей должна быть в chroot-окружении Postfix (/var/spool/postfix/etc/sasl2/sasldb2
).
Создаём каталог и файл:
# mkdir /var/spool/postfix/etc/sasl2/ # touch /var/spool/postfix/etc/sasl2/sasldb2 # chmod 640 /var/spool/postfix/etc/sasl2/sasldb2 # chown root:postfix /var/spool/postfix/etc/sasl2/sasldb2
Добавляются новые пользователи:
# saslpasswd2 -f /var/spool/postfix/etc/sasl2/sasldb2 -c user@domain
Проверяем наличие пользователя:
# sasldblistusers2 /var/spool/postfix/etc/sasl2/sasldb2
Указываем метод проверки паролей для Postfix:
# echo "pwcheck_method: sasldb" > /etc/sasl2/smtpd.conf
Создаём сертификаты postfix.pem; postfix-dsa.pem; cacert.pem, без DH. См. Создание сертификатов OpenSSL.
Создаём ключи DH:
# openssl gendh -out /etc/postfix/dh_1024.pem -2 -rand /var/run/egd-pool 1024 # openssl gendh -out /etc/postfix/dh_512.pem -2 -rand /var/run/egd-pool 512 # chmod 400 /etc/postfix/dh_1024.pem /etc/postfix/dh_512.pem # chown root:root /etc/postfix/dh_1024.pem /etc/postfix/dh_512.pem
Создаём файлы для кеширования соединений:
# touch /etc/postfix/smtpd_scache.dir # touch /etc/postfix/smtpd_scache.pag # chown root:postfix /etc/postfix/smtpd_scache.* # chmod 660 /etc/postfix/smtpd_scache.*
Добавляем в main.cf:
# SASL support smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = domain.ru smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination smtpd_sasl_security_options = noanonymous smtpd_sasl_tls_security_options = $smtpd_sasl_security_options smtpd_tls_auth_only=yes # TLS support smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_enforce_tls = yes smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache smtpd_tls_session_cache_timeout = 360s # tls_random_source = dev:/dev/urandom # tls_daemon_random_source = dev:/dev/urandom # Sertificates smtpd_tls_cert_file = /etc/postfix/postfix.pem smtpd_tls_key_file = $smtpd_tls_cert_file smtpd_tls_dcert_file = /etc/postfix/postfix-dsa.pem smtpd_tls_dkey_file = $smtpd_tls_dcert_file smtpd_tls_CAfile = /etc/postfix/cacert.pem smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
И всё. Без TLS оно работает в обычном режиме, без авторизации.
При подключении с использованием TLS - разрешает авторизацию.
Для получения сертификатов сервера и проверки работы SSL к серверу можно подключиться через
openssl s_client -connect <server>:<port> -showcerts -starttls smtp
Дата создания: 2006-11-25 17:45:04 (Фетисов Н. А. (naf))
Последнее изменение: 2006-11-25 17:45:04 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 1
Wiki::Admin Карта раздела Оглавление Изменения за сутки Изменения за неделю Изменения за месяц