Шифрование трафика с помощью Stunnel
26.11.2010 - 09:00
Обновляем порты и устанавливаем пакет:
В Options for stunnel 4.34_1 выбираем:
После установки нас попросят создать сертификат:
Добавим демон для автозапуска в /etc/rc.conf:
Создаем конфиг stunnel:
Stunnel - это программа, с помощью которой мы можем шифровать трафик других программ при помощи SSL.
Пример:
Обновляем порты и устанавливаем пакет:
[root@router /]# cd /usr/ports/security/stunnel
[root@router /usr/ports/security/stunnel]# make config && make install && make cert && make clean
[root@router /usr/ports/security/stunnel]# make config && make install && make cert && make clean
В Options for stunnel 4.34_1 выбираем:
[X] PTHREAD use the pthread(3) threading model (default)
[X] LIBWRAP use TCP wrappers
[X] SSL_PORT use OpenSSL from the Ports Collection
[X] LIBWRAP use TCP wrappers
[X] SSL_PORT use OpenSSL from the Ports Collection
После установки нас попросят создать сертификат:
Country Name (2 letter code) [PL]:UA
State or Province Name (full name) [Some-State]:Ukraine
Locality Name (eg, city) []:Cherkassy
Organization Name (eg, company) [Stunnel Developers Ltd]:House
Organizational Unit Name (eg, section) []:HouseIT
Common Name (FQDN of your server) [localhost]:lymar.no-ip.org
subject= /C=UA/ST=Ukraine/L=Cherkassy/O=House/OU=HouseIT/CN=lymar.no-ip.org
notBefore=Nov 26 10:06:55 2010 GMT
notAfter=Nov 26 10:06:55 2011 GMT
SHA1 Fingerprint=60:AA:06:9C:87:A4:31:15:42:C8:E8:77:35:C8:23:60:CF:B6:35:20
/usr/bin/install -c -o root -g wheel -d -m 1770 /var/tmp/lib/stunnel
chgrp nogroup /var/tmp/lib/stunnel
if uname | grep SunOS; then /usr/bin/install -c -o root -g wheel -d -m 755 /var/tmp/lib/stunnel/dev; mknod /var/tmp/lib/stunnel/dev/zero c 13 12; chmod 666 /var/tmp/lib/stunnel/dev/zero; fi
===> Cleaning for stunnel-4.33
[root@srv /usr/ports/security/stunnel]#
State or Province Name (full name) [Some-State]:Ukraine
Locality Name (eg, city) []:Cherkassy
Organization Name (eg, company) [Stunnel Developers Ltd]:House
Organizational Unit Name (eg, section) []:HouseIT
Common Name (FQDN of your server) [localhost]:lymar.no-ip.org
subject= /C=UA/ST=Ukraine/L=Cherkassy/O=House/OU=HouseIT/CN=lymar.no-ip.org
notBefore=Nov 26 10:06:55 2010 GMT
notAfter=Nov 26 10:06:55 2011 GMT
SHA1 Fingerprint=60:AA:06:9C:87:A4:31:15:42:C8:E8:77:35:C8:23:60:CF:B6:35:20
/usr/bin/install -c -o root -g wheel -d -m 1770 /var/tmp/lib/stunnel
chgrp nogroup /var/tmp/lib/stunnel
if uname | grep SunOS; then /usr/bin/install -c -o root -g wheel -d -m 755 /var/tmp/lib/stunnel/dev; mknod /var/tmp/lib/stunnel/dev/zero c 13 12; chmod 666 /var/tmp/lib/stunnel/dev/zero; fi
===> Cleaning for stunnel-4.33
[root@srv /usr/ports/security/stunnel]#
Добавим демон для автозапуска в /etc/rc.conf:
[root@srv /]# cat /etc/rc.conf | grep stunn
stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"
[root@srv /]#
stunnel_enable="YES"
stunnel_pidfile="/var/tmp/stunnel/stunnel.pid"
[root@srv /]#
Создаем конфиг stunnel:
[root@srv /]# cp /usr/local/etc/stunnel/stunnel.conf-sample /usr/local/etc/stunnel/stunnel.conf
У меня он выглядит так:
; Расположение сертификата.
cert = /usr/local/etc/stunnel/stunnel.pem
; Расположение ключа.
;key = /usr/local/etc/stunnel/mail.pem
; Версии протоколов, выбираем все. (all, SSLv2, SSLv3, TLSv1)
sslVersion = all
; Каталог для chroot.
chroot = /var/tmp/stunnel
; Пользователь и группа с правами которых запущен stunnel.
setuid = stunnel
setgid = nogroup
; PID-файл, создается в chroot-окружении.
pid = /stunnel.pid
; Настройки, которые повышают производительность.
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
; Подробность записей в log-файле
;debug = 7
; Расположение log-файла
;output = stunnel.log
; Use it for client mode
;client = yes
; Конфигурируем сервисы:
; accept = адрес и порт, на который поступают зашифрованные запросы.
; connect = адрес и порт, на который следует передавать расшифрованные данные для незащищенного сервиса.
[pop3s]
accept = 995
connect = 110
[imaps]
accept = 993
connect = 143
[ssmtp]
accept = 465
connect = 25
[https]
accept = 443
connect = 80
TIMEOUTclose = 0
cert = /usr/local/etc/stunnel/stunnel.pem
; Расположение ключа.
;key = /usr/local/etc/stunnel/mail.pem
; Версии протоколов, выбираем все. (all, SSLv2, SSLv3, TLSv1)
sslVersion = all
; Каталог для chroot.
chroot = /var/tmp/stunnel
; Пользователь и группа с правами которых запущен stunnel.
setuid = stunnel
setgid = nogroup
; PID-файл, создается в chroot-окружении.
pid = /stunnel.pid
; Настройки, которые повышают производительность.
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
; Подробность записей в log-файле
;debug = 7
; Расположение log-файла
;output = stunnel.log
; Use it for client mode
;client = yes
; Конфигурируем сервисы:
; accept = адрес и порт, на который поступают зашифрованные запросы.
; connect = адрес и порт, на который следует передавать расшифрованные данные для незащищенного сервиса.
[pop3s]
accept = 995
connect = 110
[imaps]
accept = 993
connect = 143
[ssmtp]
accept = 465
connect = 25
[https]
accept = 443
connect = 80
TIMEOUTclose = 0
Так как демон stunnel работает в chroot окружении, создадим необходимый каталог для chroot и установим нужные права:
[root@srv /]# mkdir -p /var/tmp/stunnel
[root@srv /]# touch /var/tmp/stunnel/stunnel.pid
[root@srv /]# chown -R stunnel:nogroup /var/tmp/stunnel
[root@srv /]# touch /var/tmp/stunnel/stunnel.pid
[root@srv /]# chown -R stunnel:nogroup /var/tmp/stunnel
Пробуем запускать демон:
[root@router /]# ./usr/local/etc/rc.d/stunnel start
Starting stunnel.
Starting stunnel.
Проверяем поднялся ли он:
[root@router /]# ./usr/local/etc/rc.d/stunnel status
stunnel is running as pid 53295.
stunnel is running as pid 53295.
Не забываем открыть в фаерволе необходимые порты.
- Войдите на сайт для отправки комментариев
- Версия для печати