Návod ke zprovoznění stunnel-3.8p4, sslwrap
Tento daemon umožňuje zabezpečit různé služby pomocí SSL tunelu např.: IMAP,
POP3, HTTP,.....
Oficiální stránky projektu najdete na
http://www.stunnel.org/
Původně byla tato stránka určena pouze pro popis programu stunnel, ale jeho provozní vlastnosti mě
donutili najít jiné řešení a to sslwrap, který najdete na
http://www.rickk.com/sslwrap/
1. Předpoklad je mít nainstalované následující tři programy v tomto pořadí:
- m4-1.4, dát slink do
/usr/bin
- autoconf-2.13
- rsaref-2.0
2. Instalace OpenSSL-0.9.6:
Chceme zapnutou podporu multi-threadingu, takže ve FreeBSD musíme použít v config
následující přepínače (v Linuxu nejsou potřeba):
./config threads -D_REENTRANT
make
make test
make install
3. Vygenerování certifikátu:
instalace proběhla do adresáře /usr/local/ssl
(defaultní nastavení), kde se budeme nadále pohybovat
- vygenerovat certifikát a případně nechat ověřit (do adresare
./private
)
- k tomu požijeme buď následující řádek:
/usr/local/ssl/bin/openssl req -new -x509 -days 365 -nodes -out stunnel.pem -keyout stunnel.pem
- který vygeneruje self-signed certifikát, není potřeba ověřovat jede hned, readme na
http://www.stunnel.org/faq/certs.html
- nejlépe být v adresáři
/usr/local/ssl/private
- nebo následující řádek:
/usr/local/ssl/bin/openssl req -new -out key.csr -newkey rsa:1024
- ten vygeneruje privkey a certrequest, který se nechá ověřit u CA, v našem
případě readme na: http://ca.vutbr.cz/unix.html
- soubory, které jsme obdrželi máme v
/usr/local/ssl/private
- pokud jsme použili druhý způsob, tak musíme ještě vyrobit soubor
stunnel.pem
,
což se provede následovně:
cp ./privkey.pem ./stunnel.pem
cat ./cert.crt >> ./stunnel.pem
- a z
stunnel.pem
vymažeme všecky zbytečnosti tak, aby zbylo jen to mezi:
-----BEGIN RSA PRIVATE KEY-----
.....
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
.....
-----END CERTIFICATE-----
- přesuneme
stunnel.pem
z adresáře ./private
do adresáře ./certs
- pomocí následujícího příkazu vyrobíme v adr.
./certs
slink na stunnel.pem
ln -s stunnel.pem `/usr/local/ssl/bin/openssl x509 -hash -noout -in stunnel.pem`.0
- a slink
server.pem
ukazující rovněž na stunnel.pem
:
ln -s ./stunnel.pem ./server.pem
4. nainstalovat stunnel v našem případě:
./configure --with-pem-dir=/usr/local/ssl/certs --with-ssl=/usr/local/ssl
- vzniklý spustitelný soubor hodíme do
/usr/local/sbin/
- spustíme něco v následujícím stylu, to už záleží na platformě a zda to
chceme rozjet při startu systemu, v našem případe (FreeBSD) je to v
rc.local
(poběží jako daemon, dá se i přes inetd viz. readme):
-
if [ -x /usr/local/sbin/stunnel ]
then
echo 'starting stunnel '
killall -9 stunnel
rm -f /usr/local/var/stunnel/stunnel.imap.pid
rm -f /usr/local/var/stunnel/stunnel.pop3.pid
/usr/local/sbin/stunnel -d 993 -r imap -v 1
/usr/local/sbin/stunnel -d 995 -r pop3 -v 1
fi
5. nebo nainstalovat sslwrap:
make
a program pak nakopírovat do /usr/local/sbin/
spouštět se bude přes inetd:
imaps stream tcp nowait root /usr/local/sbin/sslwrap sslwrap \
-cert /usr/local/ssl/certs/server.pem -port 143
pop3s stream tcp nowait root /usr/local/sbin/sslwrap sslwrap \
-cert /usr/local/ssl/certs/server.pem -port 110
Při spouštění přes inetd musíme samozřejmě zrušit ochranu privkeye pass frází, podle
typu šifry buď RSA nebo DSA:
openssl rsa -in key.pem -out keyout.pem
nebo
openssl dsa -in key.pem -out keyout.pem
6. DŮLEŽITÉ POSTŘEHY:
7. AKTUALITY:
- nejnovější je stunnel-3.13, automatizuje generování klíče
při
make
, takže pokud již máte vlastní klíč, tak vám ho po
make install
sprostě přemaže novým.
- nejnovější openssl-0.9.6
- nejnovější sslwrap-2.06
Tak to by bylo pro tentokát vše, přeju příjemnou zábavu.