Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

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

Рубрика: Безопасность -> Защита сервисов
Метки: | |
Среда, 21 октября 2009 г.
Просмотров: 6679
Подписаться на комментарии по RSS

Даже если РОРЗ/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

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)