Установка зашифрованного соединения между компьютерами на основе SSL
Настраиваем защищенное получение почты
Соединение двух портов на разных компьютерах через зашифрованное соединение можно установить, использую программу stunnel. Сам дистрибутив программы фриварный и работает как под *nix так и под w32, взять можно на
http://www.stunnel.org/download/
Пример: незащищенное pop3 соединение двух портов (Хост А и хост В)
A:1099 ----->>Прозрачные данные>>-----> B:110
Защищенное pop3 соединение:
A:1099->A:995(stunnel client) -->>Шифрованные данные>>-> B:995(stunnel server) -> B:110
первым делом нужно проинсталить сервер (Linux/Debian, Stunnel-4.07):
tar -xzf stunnel-4.07.tar.gz
cd stunnel-4.07
Перед следующей коммандой ужно убедится,что существует директория /etc/ssl/certs/trusted и если нет, создать ее
./configure --with-pem-dir=/etc/ssl/certs --with-cert-dir=/etc/ssl/certs/trusted
Опция --with-pem-dir указывает каталог, где будет находиться секретный ключ и сертификат. Каталог зависит от опций компиляции OpenSSL. Это может быть /etc/ssl/certs,/usr/local/ssl/certs, /var/openssl/certs или какой-либо другой. Опция --with-cert-dir указывает каталог, где будут находиться проверенные сертификаты удаленных хостов. В принципе, можно указать любой каталог для хранения сертификатов и секретного ключа, это особого значения не имеет.
Далее комманда собрать пакет:
make
После сборки stunnel будут созданы секретный ключ и сертификат сервера, которые будут помещены в файл stunnel.pem. Для этого потребуется ввести некоторые данные. Первые три - код страны, название штата (области) и город:
/usr/bin/openssl req -new -x509 -days 365 -nodes \
-config stunnel.cnf -out stunnel.pem -keyout stunnel.pem
Using configuration from stunnel.cnf
Generating a 1024 bit RSA private key
.......................++++++
........++++++
writing new private key to 'stunnel.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [PL]:EN
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:city
Затем - название организации и отдела организации:
Organization Name (eg, company) [Stunnel Developers Ltd]:company
Organizational Unit Name (eg, section) []:
Затем имя сервера:
Common Name (FQDN of your server) []:server.com
Common Name (default) []:localhost
Второе значение (localhost) проставляется без твоей помощи. От этого можно избавится, если удалить строку 1. commonName_value = localhost в файле stunnel.cnf, удалить файл stunnel.pem (если он есть) и запустить сборку заново, введя в этом месте имя хоста.
В конце будут выведены данные созданного сертификата:
/usr/bin/openssl x509 -subject -dates -fingerprint -noout \
-in stunnel.pem
subject= /C=EN/ST=Some-State/L=сшен/O=company/CN=server.com/CN=localhost
notBefore=Mar 11 22:53:11 2001 GMT
notAfter=Mar 11 22:53:11 2002 GMT
MD5 Fingerprint=FA:2A:D8:D7:4B:23:D5:6C:67:22:D9:EC:06:C4:26:6F
Осталось только установить пакет:
su -c "make install"
После установки должны появиться следующие файлы:
/usr/local/sbin/stunnel
/usr/local/lib/stunnel.so
/usr/local/man/man8/stunnel.8
/usr/local/var
/usr/local/etc/stunnel/stunnel.pem
Инсталяция сервера завершена
До того места мануал частично взят с http://dh.opennet.ru/
Теперь займемся клиентом (используется windows-клиент)
Скачать можно с:
http://www.stunnel.org/download/stunnel/win32/stunnel-4.07.exe
Если не установлены библиотеки OpenSSL, которые требует прорамма, взять можно с :
http://www.stunnel.org/download/stunnel/win32/openssl-0.9.7e-zlib/openssl.zip
, распаковать и все .dll скопировать в \windows\system32
Далее скопировать созданый на сервере /usr/local/etc/stunnel/stunnel.pem на машину клиента в папку с stunnel-4.07.exe
Осталось главное - настроить файлы конфигов stunnel.conf
На сервере (/usr/local/etc/stunnel/stunnel.conf):
chroot = /usr/local/var/stunnel/
setuid = nobody
setgid = nogroup
pid = /stunnel.pid
verify = 2
CAfile = /usr/local/etc/stunnel/stunnel.pem
debug = 7
output = stunnel.log
[pop3s]
accept = 995
connect = 110
Все остальное может быть закомментировано
И на клиенте (stunnel.conf в директории с stunnel-4.07.exe):
cert = stunnel.pem
client = yes
[pop3s]
accept = 995
connect = 110
Все остальное может быть закомментировано
Теперь можно запускать stunnel на сервере (комманда stunnel) и клиент на windows-машине (stunnel-4.07.exe). В почтовом клиенте вместо удаленного имени компьютера ставим локальное и порт 995, дальше по ssl-тунелю данные на сервер пойдут по защищенному каналу
(с) ru_admin