SSL защита для pop3 в Linux

Даже если РОРЗ/IМАР-сервер не поддерживает ни один из вариантов безопасных протоколов (SPOP IMAPS), можно применить Stunnel, чтобы создавать TCP туннели, по которым данные пересылаются в зашифрованном виде.Stunnel предназначен для универсального туннелирования ТСР-соединений. Если Stunnel еще не установлен, можно загрузить его с сайта (конечно, понадобится SSL-библиотека, к примеру OpenSSL). Co стороны сервера можно употреблять Stunnel, чтобы предоставлять сервисы SPOP и IMPAS пользователям.

Генерация ключа

Сначала надо сгенерировать ключ для сервера. В каталоге /etc/stunnel для этих целей можно найти сценарий generate-stunnel-key.sh, вызывающий библиотеку openssl для генерирования сертификатов х509.
USE_DH=0

openssl req -new x509 -days
365 -nodes -config .stunnel.
cnf \ -out stunnel.pem
-keyout stunnel.pem

test $USE_DH -eq 0 opensll
gendh 512 » stunnel.pem

openssl x509 -subject
-dates -fingerprint -noout
-in stunnel.pem

chmod 600 stunnel.pem rm -f
stunnel. rr.d


Если был вызван сценарий generate-stunnel-key.sh не из каталога /etc/stunnel, нужно переместить .pem-файлы в каталог /etc/stunnel.После этого надо создать конфигурационный файл для Stunnel. Можносоздать конфигурационный файл для туннелирования РОРЗ-сервера, но если нужно применять Stunnel для туннелирования другого ТСР-сервиса, то надо будет модифицировать конфигурацию Stunnel.Stunnel поддерживает chroot окружения, поэтому надо создатьгруппу и пользователя, от имени которых будет запускаться Stunnel, а также структуру каталогов /chroot/stunnel:
# mkdir -p /chroot/stunnel/chroot/stunnel/etc /
chroot/var /chroot/stunnel/var/run
# groupadd stunnel
# useradd -g stunnel -s/sbin/nologin


Нужно создать файл /etc/stunnel/stunnel.conf и добавить в него следующие записи:
сhroot = /chroot/stunnel
setuid = stunnel
setgid = stunnel
pid = /stunnel.pid
debug = mail.notice
client = no


Кроме этого можно указать месторасположение только что созданного сертификата:
сert = /etc/stunnel/stunnel.pem

Путь к сертификату указывать абсолютный (а не относительно chroot-окружения), потому что сертификат загружается до вызова chroot().Это позволяет хранить сертификаты за пределами «песочницы», что обеспечивает дополнительную безопасность.Теперь надо подумать о клиентах.Конечно, самый безопасный вариант когда клиенты предоставляют свои сертификаты, но это и самый непрактичный результат: представьте себе лицо обычного пользователя, которому надо сказать:
«Создайте сертификат Х509». Поэтому с практической точки зрения лучшим будет вариант, когда пользователи будут пропускаться как с сертификатом, так и без него:
verify = 1

Осталось только добавить опции РОРЗ:
[рорЗ server]
accept = 995
connect = localhost:pop3


Строка [рорЗ server] применяется для повышения читабельности конфигурационного файла, 995 стандартный порт для SPOP (этот порт будет прослушивать spop), а третья строка устанавливает имя узла и порт, которому будет перенаправлено (forward) соединение.
Все, что теперь осталось – запустить Stunnel (и конечно же, обеспечить его автоматический запуск):
# stunnel /etc/stunnel/stunnel.conf


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.