Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> Security —> stunnel для pop3,smtp

SSL защита для pop3,smtp,www с помощью stunnel

Автор: Morty.


Програмка stunnel, из описания:
stunnel - это SSL врапер между клиентом и локальным демоном.
Програмка предназначена для добавления SSL функциональности
таким службам как POP3, SMTP, IMAP, WEB

Установка

# cd /usr/ports/security/stunnel/
# make && make install && make cert && make clean

make cert - пишем если хотим чтобы сертификат был создан
сразу в момент установки, "средствами данного порта"
Опции при сборке я оставлял по умолчанию

   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
   +                    Options for stunnel 4.21_1                      +
   + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +
   + +   [ ] FORK      use the fork(3) threading model                + +
   + +   [X] PTHREAD   use the pthread(3) threading model (default)   + +
   + +   [ ] UCONTEXT  use the ucontext(3) threading model            + +
   + +   [ ] IPV6      enable IPv6 support                            + +
   + +                                                                + +
   + +                                                                + +
   + +                                                                + +
   + +                                                                + +
   + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +
   +                       [  OK  ]       Cancel                        +
   ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

По окончанию сборки, будет предложено создать сертефикат,
отвечаем на вопросы, домен нада указать тот который будет
обслуживать данный сертефикат. Иначе в бровзере например будет не соответствие
сертификата и домена.

Country Name (2 letter code) [PL]:UA
State or Province Name (full name) [Some-State]:Ukraine
Locality Name (eg, city) []:Kiev
Organization Name (eg, company) [Stunnel Developers Ltd]:
Organizational Unit Name (eg, section) []:IT
Common Name (FQDN of your server) [localhost]:mail.domain.com
subject= /C=UA/ST=Ukraine/L=Kiev/O=Developers Ltd/OU=IT/CN=mail.domain.com
notBefore=Jan 14 11:11:09 2008 GMT
notAfter=Jan 13 11:11:09 2009 GMT
MD5 Fingerprint=9C:AF:06:54:00:91:D2:2A:70:59:16:21:E9:90:6B:66
/usr/bin/install -c -o root -g wheel -d -m 1770 /usr/local/var/lib/stunnel
chgrp nogroup /usr/local/var/lib/stunnel
if uname | grep SunOS; then  /usr/bin/install -c -o root -g wheel -d -m 755 
/usr/local/var/lib/stunnel/dev;  mknod
/usr/local/var/lib/stunnel/dev/zero c 13 12;  
chmod 666 /usr/local/var/lib/stunnel/dev/zero;  fi
===>  Cleaning for stunnel-4.21_1

Установка закончена, остаёться настроить, добавляем
в rc.conf
stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"

копируем пример конфига и редактируем
cd /usr/local/etc/stunnel
cp stunnel.conf-sample stunnel.conf

Создаём папки, выставляем права
mkdit /var/tmp/stunnel
touch /var/tmp/stunnel/stunnel.pid
chown -R stunnel:nogroup /var/tmp/stunnel

Правим конфиг
/usr/local/etc/stunnel/stunnel.conf


; Sample stunnel configuration file by Michal Trojnara 2002-2006
; Some options used here may not be adequate for your particular configuration
; Please make sure you understand them (especially the effect of chroot jail)

; я здесь практически ничего не менял, только путь на фaйл сертификат
; и порты с которыми работает программа можно указывать петлю явно ,
; можно не указывать
; работает и так и так
; Certificate/key is needed in server mode and optional in client mode
cert = /usr/local/etc/stunnel/stunnel.pem
;key = /usr/local/etc/stunnel/mail.pem

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = all

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/tmp/stunnel
setuid = stunnel
setgid = nogroup
; PID is created inside chroot jail
pid = /stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = rle

; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; Authentication stuff
;verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /certs
; It's often easier to use CAfile
;CAfile = /usr/local/etc/stunnel/certs.pem
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively you can use CRLfile
;CRLfile = /usr/local/etc/stunnel/crls.pem

; Some debugging stuff useful for troubleshooting
;debug = 7
;output = stunnel.log

; Use it for client mode
;client = yes

; Service-level configuration

[pop3s]
accept  = 995
connect = 110
; здесь можно писать connect = 127.0.0.1:110 
; хотя и так работает
[imaps]
accept  = 993
connect = 143

[ssmtp]
accept  = 465
connect = 25

[https]
accept  = 443
connect = 80
TIMEOUTclose = 0

; vim:ft=dosini

можно попробовать запустить
/usr/local/etc/rc.d/stunnel start

смотрим ...
ps -ax | grep stunnel
64038  ??  Is     0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64033  p2  I      0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64034  p2  I      0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64035  p2  I      0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64036  p2  I      0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64037  p2  I      0:00,00 /usr/local/bin/stunnel /usr/local/etc/stunnel/stunnel.conf
64076  p2  RV+    0:00,00 grep stunnel (csh)

Запущено якобы несколько процессов, но это потому как
програмка с тредами

sockstat -4 | grep stunnel
stunnel  stunnel    64038 11 tcp4   *:995                 *:*
stunnel  stunnel    64038 12 tcp4   *:993                 *:*
stunnel  stunnel    64038 13 tcp4   *:465                 *:*
stunnel  stunnel    64038 14 tcp4   *:443                 *:*

Все, в итоге имеем защищенную (SSL) передачу данных по POP3, SMTP, IMAP, ну и на
юзерский вэб интерфейс можно включить SSL. Что тут и сделано.



размещено: 2008-01-17,
последнее обновление: 2008-03-12,
автор: Morty


GR, 2008-01-18 в 3:47:39

Да - демон знатный!
В недавние времена без него было совсем тяжко. Сейчас полегче, к примеру все вышеозвученные сервисы умеют SSL своими силами :)

o2x, 2008-01-18 в 20:46:00

Советую:
sslVersion = all

www2, 2008-01-21 в 7:10:58

Присоединяюсь
sslVersion = all
Не все клиенты поддерживают SSLv3. Ставить SSLv2 тоже не советую - откажутся работать клиенты, поддерживающие SSLv3.

Morty, 2008-01-21 в 21:14:27

поправил на
sslVersion = all

dikens3, 2008-02-21 в 18:15:58

Сервер не может быть остановлен корректно
# ./stunnel stop
stunnel not running? (check /var/run/stunnel.pid)

Я добавил в /etc/rc.conf упоминание про pid.
stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"

Anonymous, 2008-09-25 в 20:26:11

очепятка:
mkdit /var/tmp/stunnel

Cancer, 2009-01-20 в 13:05:11

Статья рабочая, но есть одно но в самой проге.
Для того что бы рестартануть ее например в конфиге что то поменяли, нужно сначала убить процесс весь, а потом запустить
//> killall stunnel
//> /usr/local/etc/rc.d/stunnel start

Morty, 2009-01-20 в 16:50:16

Дикенс писал что нада пид файл прописать тогда все будет хорошо
stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"

проверял - нормально работает

Max, 2009-01-30 в 23:27:01

по поводу стопа.

stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"

на 7.1 всё ок, на 5.4 только 1 раз останавливается, потом только через килл

netkent, 2010-03-20 в 19:01:22

Могу помочь с изданием ключей и SSL сертификатов, сделаю недорого. Пишите ICQ UIN 238987959 mail iguzeyev@mail.ru



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.2234 секунд
Из них PHP: 31%; SQL: 69%; Число SQL-запросов: 77 шт.
Исходный размер: 29632; Сжатая: 7269