RSS
 

Защита POP3 с помощью Stunnel.

22 Дек

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

Stunnel предназначен для универсального туннелирования ТСР-соединений. Если Stunnel еще не установлен, можно загрузить его с сайта: http://www.stunnel.org (конечно, понадобится 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

 
Комментарии к записи Защита POP3 с помощью Stunnel. отключены

Рубрика: Linux, POP3, SMTP, Stunel

 

Comments are closed.