1088 lines
44 KiB
HTML
1088 lines
44 KiB
HTML
|
<?xml version="1.0" ?>
|
||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
|
<head>
|
||
|
<title>stunnel.8</title>
|
||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||
|
<link rev="made" href="mailto:root@localhost" />
|
||
|
</head>
|
||
|
|
||
|
<body style="background-color: white">
|
||
|
|
||
|
|
||
|
<!-- INDEX BEGIN -->
|
||
|
<div name="index">
|
||
|
<p><a name="__index__"></a></p>
|
||
|
<!--
|
||
|
|
||
|
<ul>
|
||
|
|
||
|
<li><a href="#nazwa">NAZWA</a></li>
|
||
|
<li><a href="#sk__adnia">SKŁADNIA</a></li>
|
||
|
<li><a href="#opis">OPIS</a></li>
|
||
|
<li><a href="#opcje">OPCJE</a></li>
|
||
|
<li><a href="#plik_konfiguracyjny">PLIK KONFIGURACYJNY</a></li>
|
||
|
<ul>
|
||
|
|
||
|
<li><a href="#opcje_globalne">OPCJE GLOBALNE</a></li>
|
||
|
<li><a href="#opcje_us__ug">OPCJE USŁUG</a></li>
|
||
|
</ul>
|
||
|
|
||
|
<li><a href="#zwracana_warto____">ZWRACANA WARTOŚĆ</a></li>
|
||
|
<li><a href="#signa__y">SIGNAŁY</a></li>
|
||
|
<li><a href="#przyk__ady">PRZYKŁADY</a></li>
|
||
|
<li><a href="#notki">NOTKI</a></li>
|
||
|
<ul>
|
||
|
|
||
|
<li><a href="#ograniczenia">OGRANICZENIA</a></li>
|
||
|
<li><a href="#tryb_inetd__tylko_unix_">TRYB INETD (tylko Unix)</a></li>
|
||
|
<li><a href="#certyfikaty">CERTYFIKATY</a></li>
|
||
|
<li><a href="#losowo____">LOSOWOŚĆ</a></li>
|
||
|
<li><a href="#parametry_dh">PARAMETRY DH</a></li>
|
||
|
</ul>
|
||
|
|
||
|
<li><a href="#pliki">PLIKI</a></li>
|
||
|
<li><a href="#b____dy">BŁĘDY</a></li>
|
||
|
<li><a href="#zobacz_r__wnie__">ZOBACZ RÓWNIEŻ</a></li>
|
||
|
<li><a href="#autor">AUTOR</a></li>
|
||
|
</ul>
|
||
|
|
||
|
-->
|
||
|
|
||
|
|
||
|
</div>
|
||
|
<!-- INDEX END -->
|
||
|
|
||
|
<p>
|
||
|
</p>
|
||
|
<h1><a name="nazwa">NAZWA</a></h1>
|
||
|
<p>stunnel - uniwersalny tunel protokołu SSL</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="sk__adnia">SKŁADNIA</a></h1>
|
||
|
<dl>
|
||
|
<dt><strong><a name="unix" class="item"><strong>Unix:</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p><strong>stunnel</strong> [<plik>] | -fd n | -help | -version | -sockets</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="win32" class="item"><strong>WIN32:</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p><strong>stunnel</strong> [ [-install | -uninstall | -start | -stop ] | -exit]
|
||
|
[-quiet] [<plik>] ] | -help | -version | -sockets</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="opis">OPIS</a></h1>
|
||
|
<p>Program <strong>stunnel</strong> został zaprojektowany do opakowywania w protokół <em>SSL</em>
|
||
|
połączeń pomiędzy zdalnymi klientami a lokalnymi lub zdalnymi serwerami.
|
||
|
Przez serwer lokalny rozumiana jest aplikacja przeznaczona do uruchamiania
|
||
|
przy pomocy <em>inetd</em>.
|
||
|
Stunnel pozwala na proste zestawienie komunikacji serwerów nie posiadających
|
||
|
funkcjonalności <em>SSL</em> poprzez bezpieczne kanały <em>SSL</em>.</p>
|
||
|
<p><strong>stunnel</strong> pozwala dodać funkcjonalność <em>SSL</em> do powszechnie stosowanych
|
||
|
demonów <em>inetd</em>, np. <em>pop3</em> lub <em>imap</em>, do samodzielnych demonów,
|
||
|
np. <em>nntp</em>, <em>smtp</em> lub <em>http</em>, a nawet tunelować ppp poprzez gniazda sieciowe
|
||
|
bez zmian w kodzie źródłowym.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="opcje">OPCJE</a></h1>
|
||
|
<dl>
|
||
|
<dt><strong><a name="plik" class="item"><<strong>plik</strong>></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>użyj podanego pliku konfiguracyjnego</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="n" class="item"><strong>-fd n</strong> (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wczytaj konfigurację z podanego deskryptora pliku</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="help" class="item"><strong>-help</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>drukuj listę wspieranych opcji</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="version" class="item"><strong>-version</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>drukuj wersję programu i domyślne wartości parametrów</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="sockets" class="item"><strong>-sockets</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>drukuj domyślne opcje gniazd</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="install" class="item"><strong>-install</strong> (tylko NT/2000/XP)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>instaluj serwis NT</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="uninstall" class="item"><strong>-uninstall</strong> (tylko NT/2000/XP)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>odinstaluj serwis NT</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="start" class="item"><strong>-start</strong> (tylko NT/2000/XP)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>uruchom serwis NT</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="stop" class="item"><strong>-stop</strong> (tylko NT/2000/XP)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>zatrzymaj serwis NT</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="exit" class="item"><strong>-exit</strong> (tylko Win32)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>zatrzymaj uruchomiony program</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="quiet" class="item"><strong>-quiet</strong> (tylko NT/2000/XP)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>nie wyświetlaj okienka informującego o pomyślnym zainstalowaniu lub
|
||
|
odinstalowaniu</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="plik_konfiguracyjny">PLIK KONFIGURACYJNY</a></h1>
|
||
|
<p>Linia w pliku konfiguracyjnym może być:</p>
|
||
|
<ul>
|
||
|
<li><strong><a name="pusta" class="item">pusta (ignorowana)</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="komentarzem_rozpoczynaj_cym_si_znakiem_ignorowana" class="item">komentarzem rozpoczynającym się znakiem ';' (ignorowana)</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="par_nazwa_opcji_warto_opcji" class="item">parą 'nazwa_opcji = wartość_opcji'</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="tekstem_nazwa_us_ugi_wskazuj_cym_pocz_tek_definicji_us_ugi" class="item">tekstem '[nazwa_usługi]' wskazującym początek definicji usługi</a></strong>
|
||
|
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p>Parametr adres może być:</p>
|
||
|
<ul>
|
||
|
<li><strong><a name="numerem_portu" class="item">numerem portu</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="adresu" class="item">oddzieloną średnikiem parą adresu (IPv4, IPv6, lub nazwą domenową) i numeru portu</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong>ścieżką do gniazda Unix (tylko Unix)</strong>
|
||
|
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="opcje_globalne">OPCJE GLOBALNE</a></h2>
|
||
|
<dl>
|
||
|
<dt><strong><a name="katalog" class="item"><strong>chroot</strong> = katalog (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>katalog roboczego korzenia systemu plików</p>
|
||
|
<p>Opcja określa katalog, w którym uwięziony zostanie proces programu
|
||
|
<strong>stunnel</strong> tuż po jego inicjalizacji, a przed rozpoczęciem odbierania
|
||
|
połączeń. Ścieżki podane w opcjach <em>CApath</em>, <em>CRLpath</em>, <em>pid</em>
|
||
|
oraz <em>exec</em> muszą być umieszczone wewnątrz katalogu podanego w opcji
|
||
|
<em>chroot</em> i określone względem tego katalogu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="compression_deflate_zlib_rle" class="item"><strong>compression</strong> = deflate | zlib | rle</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wybór algorytmu kompresji przesyłanych danych</p>
|
||
|
<p>domyślnie: bez kompresji</p>
|
||
|
<p>Algorytm deflate jest standardową metodą kompresji zgodnie z <a href="http://www.ietf.org/rfc/rfc1951.txt" class="rfc">RFC 1951</a>.</p>
|
||
|
<p>Kompresja zlib zaimplementowana w OpenSSL 0.9.8 i nowszych nie jest
|
||
|
kompatybilna implementacją OpenSSL 0.9.7.</p>
|
||
|
<p>Kompresja rle nie jest zaimplementowana w aktualnych wersjach OpenSSL.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="debug_poziom_podsystem" class="item"><strong>debug</strong> = poziom[.podsystem]</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>szczegółowość logowania</p>
|
||
|
<p>Poziom logowania można określić przy pomocy jednej z nazw lub liczb:
|
||
|
emerg (0), alert (1), crit (2), err (3), warning (4), notice (5),
|
||
|
info (6) lub debug (7).
|
||
|
Zapisywane są komunikaty o poziomie niższym (numerycznie) lub równym podanemu.
|
||
|
Do uzyskania najwyższego poziomu szczegółowości można użyć opcji
|
||
|
<em>debug = debug</em> lub <em>debug = 7</em>. Domyślnym poziomem jest notice (5).</p>
|
||
|
<p>O ile nie wyspecyfikowano podsystemu użyty będzie domyślny: daemon.
|
||
|
Podsystemy nie są wspierane przez platformę Win32.</p>
|
||
|
<p>Wielkość liter jest ignorowana zarówno dla poziomu jak podsystemu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ka_do_egd" class="item"><strong>EGD</strong> = ścieżka_do_EGD (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>ścieżka do gniazda programu Entropy Gathering Daemon</p>
|
||
|
<p>Opcja pozwala określić ścieżkę do gniazda programu Entropy Gathering Daemon
|
||
|
używanego do zainicjalizowania generatora ciągów pseudolosowych biblioteki
|
||
|
OpenSSL. Opcja jest dostępna z biblioteką OpenSSL 0.9.5a lub nowszą.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="engine_auto_identyfikator_urz_dzenia" class="item"><strong>engine</strong> = auto | <identyfikator urządzenia></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wybór sprzętowego urządzenia kryptograficznego</p>
|
||
|
<p>domyślnie: bez wykorzystania urządzeń kryptograficznych</p>
|
||
|
<p>Przykładowa konfiguracja umożliwiająca odczytanie klucza prywatnego z
|
||
|
urządzenia zgodnego z OpenSC:</p>
|
||
|
<pre>
|
||
|
engine=dynamic
|
||
|
engineCtrl=SO_PATH:/usr/lib/opensc/engine_pkcs11.so
|
||
|
engineCtrl=ID:pkcs11
|
||
|
engineCtrl=LIST_ADD:1
|
||
|
engineCtrl=LOAD
|
||
|
engineCtrl=MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so
|
||
|
engineCtrl=INIT</pre>
|
||
|
<pre>
|
||
|
[service]
|
||
|
engineNum=1
|
||
|
key=id_45</pre>
|
||
|
</dd>
|
||
|
<dt><strong><a name="enginectrl_command_parameter" class="item"><strong>engineCtrl</strong> = <command>[:<parameter>]</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>konfiguracja urządzenia kryptograficznego</p>
|
||
|
<p>Specjalne komendy "LOAD" i "INIT" pozwalają na załadowanie i inicjalizację
|
||
|
modułu kryptograficznego urządzenia.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="fips_yes_no" class="item"><strong>fips</strong> = yes | no</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Włącz lub wyłącz tryb FIPS 140-2.</p>
|
||
|
<p>Opcja pozwala wyłączyć wejście w tryb FIPS, jeśli stunnel został skompilowany
|
||
|
ze wsparciem dla FIPS 140-2.</p>
|
||
|
<p>domyślnie: yes (pracuj w trybie FIPS 140-2)</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="no" class="item"><strong>foreground</strong> = yes | no (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>tryb pierwszoplanowy</p>
|
||
|
<p>Użycie tej opcji powoduje, że <em>stunnel</em> nie przechodzi w tło logując
|
||
|
swoje komunikaty na konsolę zamiast przez <em>syslog</em> (o ile nie użyto
|
||
|
opcji <em>output</em>).</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="output_plik" class="item"><strong>output</strong> = plik</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>plik, do którego dopisane zostaną logi</p>
|
||
|
<p>Użycie tej opcji powoduje dopisanie logów do podanego pliku.</p>
|
||
|
<p>Do kierowaniakomunikatów na standardowe wyjście (na przykład po to, żeby
|
||
|
zalogować je programem splogger z pakietu daemontools) można podać jako
|
||
|
parametr urządzenie /dev/stdout.</p>
|
||
|
</dd>
|
||
|
<dt><strong><strong>pid</strong> = plik (tylko Unix)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>położenie pliku z numerem procesu</p>
|
||
|
<p>Jeżeli argument jest pusty plik nie zostanie stworzony.</p>
|
||
|
<p>Jeżeli zdefiniowano katalog <em>chroot</em>, to ścieżka do <em>pid</em> jest określona
|
||
|
względem tego katalogu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="rndbytes_liczba_bajt_w" class="item"><strong>RNDbytes</strong> = liczba_bajtów</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>liczba bajtów do zainicjowania generatora pseudolosowego</p>
|
||
|
<p>W wersjach biblioteki OpenSSL starszych niż 0.9.5a opcja ta określa
|
||
|
również liczbę bajtów wystarczających do zainicjowania PRNG.
|
||
|
Nowsze wersje biblioteki mają wbudowaną funkcję określającą, czy
|
||
|
dostarczona ilość losowości jest wystarczająca do zainicjowania generatora.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="rndfile_plik" class="item"><strong>RNDfile</strong> = plik</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>ścieżka do pliku zawierającego losowe dane</p>
|
||
|
<p>Biblioteka OpenSSL użyje danych z tego pliku do zainicjowania
|
||
|
generatora pseudolosowego.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="rndoverwrite_yes_no" class="item"><strong>RNDoverwrite</strong> = yes | no</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>nadpisz plik nowymi wartościami pseudolosowymi</p>
|
||
|
<p>domyślnie: yes (nadpisz)</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="nazwa_serwisu" class="item"><strong>service</strong> = nazwa_serwisu (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>użyj parametru jako nazwy serwisu dla biblioteki TCP Wrapper w trybie <em>inetd</em></p>
|
||
|
<p>domyślnie: stunnel</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="identyfikator_grupy" class="item"><strong>setgid</strong> = identyfikator_grupy (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>grupa z której prawami pracował będzie <em>stunnel</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ytkownika" class="item"><strong>setuid</strong> = identyfikator_użytkownika (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>użytkownik, z którego prawami pracował będzie <em>stunnel</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="socket_a_l_r_option_value_value" class="item"><strong>socket</strong> = a|l|r:option=value[:value]</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>ustaw opcję na akceptującym/lokalnym/zdalnym gnieździe</p>
|
||
|
<p>Dla opcji linger wartości mają postać l_onof:l_linger.
|
||
|
Dla opcji time wartości mają postać tv_sec:tv_usec.</p>
|
||
|
<p>Przykłady:</p>
|
||
|
<pre>
|
||
|
socket = l:SO_LINGER=1:60
|
||
|
ustaw jednominutowe przeterminowanie
|
||
|
przy zamykaniu lokalnego gniazda
|
||
|
socket = r:SO_OOBINLINE=yes
|
||
|
umieść dane pozapasmowe (out-of-band)
|
||
|
bezpośrednio w strumieniu danych
|
||
|
wejściowych dla zdalnych gniazd
|
||
|
socket = a:SO_REUSEADDR=no
|
||
|
zablokuj ponowne używanie portu
|
||
|
(domyślnie włączone)
|
||
|
socket = a:SO_BINDTODEVICE=lo
|
||
|
przyjmuj połączenia wyłącznie na
|
||
|
interfejsie zwrotnym (ang. loopback)</pre>
|
||
|
</dd>
|
||
|
<dt><strong><strong>syslog</strong> = yes | no (tylko Unix)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>włącz logowanie poprzez mechanizm syslog</p>
|
||
|
<p>domyślnie: yes (włącz)</p>
|
||
|
</dd>
|
||
|
<dt><strong><strong>taskbar</strong> = yes | no (tylko WIN32)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>włącz ikonkę w prawym dolnym rogu ekranu</p>
|
||
|
<p>domyślnie: yes (włącz)</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="opcje_us__ug">OPCJE USŁUG</a></h2>
|
||
|
<p>Każda sekcja konfiguracji usługi zaczyna się jej nazwą ujętą w nawias
|
||
|
kwadratowy. Nazwa usługi używana jest do kontroli dostępu przez
|
||
|
bibliotekę libwrap (TCP wrappers) oraz pozwala rozróżnić poszczególne
|
||
|
usługi w logach.</p>
|
||
|
<p>Jeżeli <strong>stunnel</strong> ma zostać użyty w trybie <em>inetd</em>, gdzie za odebranie
|
||
|
połączenia odpowiada osobny program (zwykle <em>inetd</em>, <em>xinetd</em>
|
||
|
lub <em>tcpserver</em>), należy przeczytać sekcję <em>TRYB INETD</em> poniżej.</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="accept_adres_port" class="item"><strong>accept</strong> = [adres:]port</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>nasłuchuje na połączenia na podanym adresie i porcie</p>
|
||
|
<p>Jeżeli nie został podany adres, <em>stunnel</em> domyślnie nasłuchuje
|
||
|
na wszystkich adresach IPv4 lokalnych interfejsów.</p>
|
||
|
<p>Aby nasłuchiwać na wszystkich adresach IPv6 należy użyć:</p>
|
||
|
<pre>
|
||
|
accept = :::port</pre>
|
||
|
</dd>
|
||
|
<dt><strong><a name="capath_katalog_ca" class="item"><strong>CApath</strong> = katalog_CA</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>katalog Centrum Certyfikacji</p>
|
||
|
<p>Opcja określa katalog, w którym <strong>stunnel</strong> będzie szukał certyfikatów,
|
||
|
jeżeli użyta została opcja <em>verify</em>. Pliki z certyfikatami muszą
|
||
|
posiadać specjalne nazwy XXXXXXXX.0, gdzie XXXXXXXX jest skrótem
|
||
|
kryptograficznym reprezentacji DER nazwy podmiotu certyfikatu.</p>
|
||
|
<p>Funkcja skrótu została zmieniona w wersji 1.0.0 biblioteki OpenSSL.
|
||
|
Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.</p>
|
||
|
<p>Jeżeli zdefiniowano katalog <em>chroot</em>, to ścieżka do <em>CApath</em> jest określona
|
||
|
względem tego katalogu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="cafile_plik_ca" class="item"><strong>CAfile</strong> = plik_CA</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>plik Centrum Certyfikacji</p>
|
||
|
<p>Opcja pozwala określić położenie pliku zawierającego certyfikaty używane
|
||
|
przez opcję <em>verify</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="cert_plik_pem" class="item"><strong>cert</strong> = plik_pem</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>plik z łańcuchem certyfikatów</p>
|
||
|
<p>Opcja określa położenie pliku zawierającego certyfikaty używane przez
|
||
|
program <strong>stunnel</strong> do uwierzytelnienia się przed drugą stroną połączenia.
|
||
|
Certyfikat jest konieczny, aby używać programu w trybie serwera.
|
||
|
W trybie klienta certyfikat jest opcjonalny.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ciphers_lista_szyfr_w" class="item"><strong>ciphers</strong> = lista_szyfrów</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>lista dozwolonych szyfrów SSL</p>
|
||
|
<p>Parametrem tej opcji jest lista szyfrów, które będą użyte przy
|
||
|
otwieraniu nowych połączeń SSL, np.: DES-CBC3-SHA:IDEA-CBC-MD5</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="client_yes_no" class="item"><strong>client</strong> = yes | no</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>tryb kliencki (zdalna usługa używa SSL)</p>
|
||
|
<p>domyślnie: no (tryb serwerowy)</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="connect_adres_port" class="item"><strong>connect</strong> = [adres:]port</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>połącz się ze zdalnym serwerem na podany port</p>
|
||
|
<p>Jeżeli nie został podany adres, <em>stunnel</em> domyślnie łączy się
|
||
|
z lokalnym serwerem.</p>
|
||
|
<p>Komenda może byc użyta wielokrotnie w pojedynczej sekcji
|
||
|
celem zapewnienia wysokiej niezawodności lub rozłożenia
|
||
|
ruchu pomiędzy wiele serwerów.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="crlpath_katalog_crl" class="item"><strong>CRLpath</strong> = katalog_CRL</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>katalog List Odwołanych Certyfikatów (CRL)</p>
|
||
|
<p>Opcja określa katalog, w którym <strong>stunnel</strong> będzie szukał list CRL,
|
||
|
jeżeli użyta została opcja <em>verify</em>. Pliki z listami CRL muszą
|
||
|
posiadać specjalne nazwy XXXXXXXX.r0, gdzie XXXXXXXX jest skrótem
|
||
|
listy CRL.</p>
|
||
|
<p>Funkcja skrótu została zmieniona w wersji 1.0.0 biblioteki OpenSSL.
|
||
|
Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.</p>
|
||
|
<p>Jeżeli zdefiniowano katalog <em>chroot</em>, to ścieżka do <em>CRLpath</em> jest określona
|
||
|
względem tego katalogu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="crlfile_plik_crl" class="item"><strong>CRLfile</strong> = plik_CRL</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>plik List Odwołanych Certyfikatów (CRL)</p>
|
||
|
<p>Opcja pozwala określić położenie pliku zawierającego listy CRL używane
|
||
|
przez opcję <em>verify</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="curve_nid" class="item"><strong>curve</strong> = nid</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>krzywa dla ECDH</p>
|
||
|
<p>Listę dostępnych krzywych można uzyskać poleceniem:</p>
|
||
|
<pre>
|
||
|
openssl ecparam -list_curves</pre>
|
||
|
<p>domyślnie: prime256v1</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="delay_yes_no" class="item"><strong>delay</strong> = yes | no</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>opóźnij rozwinięcie adresu DNS podanego w opcji <em>connect</em></p>
|
||
|
<p>Opcja jest przydatna przy dynamicznym DNS, albo gdy usługa DNS nie jest
|
||
|
dostępna przy starcie programu stunnel (klient VPN, połączenie wdzwaniane).</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="enginenum_numer_urz_dzenia" class="item"><strong>engineNum</strong> = <numer urządzenia></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wybierz urządzenie do odczyta klucza prywatnego</p>
|
||
|
<p>Urządzenia są numerowane od 1 w górę.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="exec_cie_ka_do_programu" class="item"><strong>exec</strong> = ścieżka_do_programu</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wykonaj lokalny program przystosowany do pracy z superdemonem inetd</p>
|
||
|
<p>Jeżeli zdefiniowano katalog <em>chroot</em>, to ścieżka do <em>exec</em> jest określona
|
||
|
względem tego katalogu.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="execargs_0_1_2" class="item"><strong>execargs</strong> = $0 $1 $2 ...</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>argumenty do opcji <em>exec</em> włącznie z nazwą programu ($0)</p>
|
||
|
<p>Cytowanie nie jest wspierane w obecnej wersji programu.
|
||
|
Argumenty są rozdzielone dowolną liczbą białych znaków.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="failover_rr_prio" class="item"><strong>failover</strong> = rr | prio</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Strategia wybierania serwerów wyspecyfikowanych parametrami "connect".</p>
|
||
|
<pre>
|
||
|
rr (round robin) - sprawiedliwe rozłożenie obciążenia
|
||
|
prio (priority) - użyj kolejności opcji w pliku konfiguracyjnym</pre>
|
||
|
<p>domyślnie: rr</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ident_nazwa_u_ytkownika" class="item"><strong>ident</strong> = nazwa_użytkownika</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>weryfikuj nazwę zdalnego użytkownika korzystając z protokołu IDENT (<a href="http://www.ietf.org/rfc/rfc1413.txt" class="rfc">RFC 1413</a>)</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="key_plik_klucza" class="item"><strong>key</strong> = plik_klucza</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>klucz prywatny do certyfikatu podanego w opcji <em>cert</em></p>
|
||
|
<p>Klucz prywatny jest potrzebny do uwierzytelnienia właściciela certyfikatu.
|
||
|
Ponieważ powinien on być zachowany w tajemnicy, prawa do jego odczytu
|
||
|
powinien mieć wyłącznie właściciel pliku. W systemie Unix można to osiągnąć
|
||
|
komendą:</p>
|
||
|
<pre>
|
||
|
chmod 600 keyfile</pre>
|
||
|
<p>domyślnie: wartość opcji <em>cert</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="libwrap_yes_no" class="item"><strong>libwrap</strong> = yes | no</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>włącz lub wyłącz korzystanie z /etc/hosts.allow i /etc/hosts.deny.</p>
|
||
|
<p>domyślnie: yes</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="local_serwer" class="item"><strong>local</strong> = serwer</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>IP źródła do nawiązywania zdalnych połączeń</p>
|
||
|
<p>Domyślnie używane jest IP najbardziej zewnętrznego interfejsu w stronę
|
||
|
serwera, do którego nawiązywane jest połączenie.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="nazwa_serwera" class="item"><strong>sni</strong> = nazwa_usługi:nazwa_serwera (tryb serwera)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Użyj usługi jako podrzędnej (virtualnego serwera) dla rozszerzenia TLS Server
|
||
|
Name Indication (<a href="http://www.ietf.org/rfc/rfc3546.txt" class="rfc">RFC 3546</a>).</p>
|
||
|
<p><em>nazwa_usługi</em> wskazuje usługę nadrzędną, która odbiera połączenia od klientów
|
||
|
przy pomocy opcji <em>accept</em>. <em>nazwa_serwera</em> wskazuje nazwę serwera
|
||
|
wirtualnego. Z pojedyńczą usługą nadrzędną powiązane jest zwykle wiele usług
|
||
|
podrzędnych. Opcja <em>sni</em> może być rownież użyta wielokrotnie w ramach jednej
|
||
|
usługi podrzędnej.</p>
|
||
|
<p>Zarówno usługa nadrzędna jak i podrzędna nie może być skonfigurowana w trybie
|
||
|
klienckim. Opcja <em>connect</em> usługi podrzędnej jest ignorowana w połączeniu z
|
||
|
opcją <em>protocol</em>, gdyż połączenie do zdalnego serwera jest w tym wypadku
|
||
|
nawiązywane przed negocjacją TLS. Uwierzytelnienie przy pomocy biblioteki
|
||
|
libwrap jest realizowane dwukrotnie: najpierw dla usługi nadrzędnej po
|
||
|
odebraniu połączenia TCP, a następnie dla usługi podrzędnej podczas negocjacji
|
||
|
TLS.</p>
|
||
|
<p>Opcja <em>sni</em> jest dostępna począwszy od wersji 1.0.0 biblioteki OpenSSL.</p>
|
||
|
</dd>
|
||
|
<dt><strong><strong>sni</strong> = nazwa_serwera (tryb klienta)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Użyj parametru jako wartości rozszerzenia TLS Server Name Indication
|
||
|
(<a href="http://www.ietf.org/rfc/rfc3546.txt" class="rfc">RFC 3546</a>).</p>
|
||
|
<p>Opcja <em>sni</em> jest dostępna począwszy od wersji 1.0.0 biblioteki OpenSSL.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ocsp_url" class="item"><strong>OCSP</strong> = URL</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>serwer OCSP do weryfikacji certyfikatów</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="ocspflag_flaga" class="item"><strong>OCSPflag</strong> = flaga</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>flaga serwera OCSP</p>
|
||
|
<p>aktualnie wspierane flagi: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY,
|
||
|
NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME</p>
|
||
|
<p>Aby wyspecyfikować kilka flag należy użyć <em>OCSPflag</em> wielokrotnie.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="options_opcje_ssl" class="item"><strong>options</strong> = opcje_SSL</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>opcje biblioteki OpenSSL</p>
|
||
|
<p>Parametrem jest nazwa opcji zgodnie z opisem w <em>SSL_CTX_set_options(3ssl)</em>,
|
||
|
ale bez przedrostka <em>SSL_OP_</em>.
|
||
|
Aby wyspecyfikować kilka opcji należy użyć <em>options</em> wielokrotnie.</p>
|
||
|
<p>Na przykład dla zachowania kompatybilności z błędami implementacji SSL
|
||
|
w programie Eudora można użyć opcji:</p>
|
||
|
<pre>
|
||
|
options = DONT_INSERT_EMPTY_FRAGMENTS</pre>
|
||
|
</dd>
|
||
|
<dt><strong><a name="protocol_protok" class="item"><strong>protocol</strong> = protokół</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>negocjuj SSL podanym protokołem aplikacyjnym (np. <em>starttls</em> lub <em>stls</em>)</p>
|
||
|
<p>Opcji <em>protocol</em> nie należy używać z szyfrowaniem SSL na osobnym porcie.</p>
|
||
|
<p>Aktualnie wspierane protokoły:</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="cifs" class="item"><em>cifs</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Unieudokumentowane rozszerzenie protokołu CIFS wspierane przez serwer Samba.
|
||
|
Wsparcie dla tego rozrzeczenia zostało zarzucone w wersji 3.0.0 serwera Samba.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="connect" class="item"><em>connect</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.ietf.org/rfc/rfc2817.txt" class="rfc">RFC 2817</a> - <em>Upgrading to TLS Within HTTP/1.1</em>, rozdział 5.2 - <em>Requesting a Tunnel with CONNECT</em></p>
|
||
|
<p>Ten protokół jest wspierany wyłącznie w trybie klienckim.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="imap" class="item"><em>imap</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.ietf.org/rfc/rfc2595.txt" class="rfc">RFC 2595</a> - <em>Using TLS with IMAP, POP3 and ACAP</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="nntp" class="item"><em>nntp</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.ietf.org/rfc/rfc4642.txt" class="rfc">RFC 4642</a> - <em>Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)</em></p>
|
||
|
<p>Ten protokół jest wspierany wyłącznie w trybie klienckim.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="pgsql" class="item"><em>pgsql</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982">http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982</a></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="pop3" class="item"><em>pop3</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.ietf.org/rfc/rfc2449.txt" class="rfc">RFC 2449</a> - <em>POP3 Extension Mechanism</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="proxy" class="item"><em>proxy</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Przekazywanie adresu IP haproxy <a href="http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt">http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt</a></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="smtp" class="item"><em>smtp</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Negocjacja <a href="http://www.ietf.org/rfc/rfc2487.txt" class="rfc">RFC 2487</a> - <em>SMTP Service Extension for Secure SMTP over TLS</em></p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
</dd>
|
||
|
<dt><strong><a name="protocolauthentication_uwierzytelnienie" class="item"><strong>protocolAuthentication</strong> = uwierzytelnienie</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>rodzaj uwierzytelnienia do negocjacji protokołu</p>
|
||
|
<p>aktualnie wspierane: basic, NTLM</p>
|
||
|
<p>Obecnie typ uwierzytelnienia ma zastosowanie wyłącznie w protokole 'connect'.</p>
|
||
|
<p>domyślnie: basic</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="protocolhost_adres_port" class="item"><strong>protocolHost</strong> = adres:port</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>adres docelowy do negocjacji protokołu</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="protocolpassword_has_o" class="item"><strong>protocolPassword</strong> = hasło</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>hasło do negocjacji protokołu</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="protocolusername_u_ytkownik" class="item"><strong>protocolUsername</strong> = użytkownik</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>nazwa użytkownika do negocjacji protokołu</p>
|
||
|
</dd>
|
||
|
<dt><strong><strong>pty</strong> = yes | no (tylko Unix)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>alokuj pseudoterminal dla programu uruchamianego w opcji 'exec'</p>
|
||
|
</dd>
|
||
|
<dt><strong><strong>retry</strong> = yes | no (tylko Unix)</strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>połącz ponownie sekcję connect+exec po rozłączeniu</p>
|
||
|
<p>domyślnie: no</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="session_przeterminowanie_pami_ci_podr_cznej_sesji" class="item"><strong>session</strong> = przeterminowanie_pamięci_podręcznej_sesji</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>czas w sekundach, po którym sesja SSL zostanie usunięta z pamięci podręcznej</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="sessiond_adres_port" class="item"><strong>sessiond</strong> = adres:port</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>adres sessiond - servera cache sesji SSL</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="sslversion_wersja" class="item"><strong>sslVersion</strong> = wersja</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>wersja protokołu SSL</p>
|
||
|
<p>Dozwolone opcje: all, SSLv2, SSLv3, TLSv1</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="w" class="item"><strong>stack</strong> = liczba_bajtów (z wyjątkiem modelu FORK)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>rozmiar stosu procesora wątku</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="timeoutbusy_liczba_sekund" class="item"><strong>TIMEOUTbusy</strong> = liczba_sekund</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>czas oczekiwania na spodziewane dane</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="timeoutclose_liczba_sekund" class="item"><strong>TIMEOUTclose</strong> = liczba_sekund</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>czas oczekiwania na close_notify (ustaw na 0, jeżeli klientem jest MSIE)</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="timeoutconnect_liczba_sekund" class="item"><strong>TIMEOUTconnect</strong> = liczba_sekund</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>czas oczekiwania na nawiązanie połączenia</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="timeoutidle_liczba_sekund" class="item"><strong>TIMEOUTidle</strong> = liczba_sekund</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>maksymalny czas utrzymywania bezczynnego połączenia</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="both" class="item"><strong>transparent</strong> = none | source | destination | both (tylko Unix)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>tryb przezroczystego proxy na wspieranych platformach</p>
|
||
|
<p>Wspierane opcje:</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="none" class="item"><strong>none</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Zablokuj wsparcie dla przezroczystago proxy. Jest to wartość domyślna.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="source" class="item"><strong>source</strong></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Przepisz adres, aby nawiązywane połączenie wydawało się pochodzić
|
||
|
bezpośrednio od klienta, a nie od programu <em>stunnel</em>.</p>
|
||
|
<p>Opcja jest aktualnie obsługiwana w:</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="zdalnym" class="item">Trybie zdalnym (opcja <em>connect</em>) w systemie <em>Linux >=2.6.28</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Konfiguracja wymaga następujących ustawień iptables oraz routingu
|
||
|
(na przykład w pliku /etc/rc.local lub analogicznym):</p>
|
||
|
<pre>
|
||
|
iptables -t mangle -N DIVERT
|
||
|
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
|
||
|
iptables -t mangle -A DIVERT -j MARK --set-mark 1
|
||
|
iptables -t mangle -A DIVERT -j ACCEPT
|
||
|
ip rule add fwmark 1 lookup 100
|
||
|
ip route add local 0.0.0.0/0 dev lo table 100
|
||
|
echo 0 >/proc/sys/net/ipv4/conf/lo/rp_filter</pre>
|
||
|
<p>Konfiguracja ta wymaga, aby <strong>stunnel</strong> był wykonywany jako root i bez opcji <em>setuid</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong>Trybie zdalnym (opcja <em>connect</em>) w systemie <em>Linux 2.2.x</em></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Konfiguracja ta wymaga skompilowania jądra z opcją <em>transparent proxy</em>.
|
||
|
Docelowa usługa musi być umieszczona na osobnej maszynie, do której routing
|
||
|
kierowany jest poprzez serwer stunnela.</p>
|
||
|
<p>Dodatkowo <strong>stunnel</strong> powinien być wykonywany jako root i bez opcji <em>setuid</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong>Trybie zdalnym (opcja <em>connect</em>) w systemie <em>FreeBSD >=8.0</em></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Konfiguracja ta wymaga skonfigurowania firewalla i routingu.
|
||
|
<strong>stunnel</strong> musi być wykonywany jako root i bez opcji <em>setuid</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="lokalnym" class="item">Trybie lokalnym (opcja <em>exec</em>)</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Konfiguracja ta jest realizowana przy pomocy biblioteki <em>libstunnel.so</em>.
|
||
|
Do załadowania biblioteki wykorzystywana jest zmienna środowiskowa _RLD_LIST na
|
||
|
platformie Tru64 lub LD_PRELOAD na innych platformach.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
</dd>
|
||
|
<dt><strong><a name="destination" class="item"><em>destination</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Oryginalny adres docelowy jest używany zamiast opcji <em>connect</em>.</p>
|
||
|
<p>Przykładowana konfiguracja przezroczystego adresu docelowego:</p>
|
||
|
<pre>
|
||
|
[transparent]
|
||
|
client=yes
|
||
|
accept=<port_stunnela>
|
||
|
transparent=destination</pre>
|
||
|
<p>Konfiguracja wymaga następujących ustawień iptables
|
||
|
(na przykład w pliku /etc/rc.local lub analogicznym):</p>
|
||
|
<pre>
|
||
|
/sbin/iptables -I INPUT -i eth0 -p tcp --dport <port_stunnela> -j ACCEPT
|
||
|
/sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp --dport <port_przekierowany> -j DNAT --to-destination <lokalne_ip>:<port_stunnela></pre>
|
||
|
<p>Przezroczysty adres docelowy jest aktualnie wspierany wyłącznie w systemie Linux.</p>
|
||
|
</dd>
|
||
|
<dt><strong><em>both</em></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Użyj przezroczystego proxy zarówno dla adresu źródłowego jak i docelowego.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>Dla zapewnienia kompatybilności z wcześniejszymim wersjami wspierane są dwie
|
||
|
dodatkowe opcje:</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="yes" class="item"><em>yes</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Opcja została przemianowana na <em>source</em>.</p>
|
||
|
</dd>
|
||
|
<dt><strong><em>no</em></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Opcja została przemianowana na <em>none</em>.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
</dd>
|
||
|
<dt><strong><a name="verify_poziom" class="item"><strong>verify</strong> = poziom</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>weryfikuj certyfikat drugiej strony połączenia</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="poziom_0_zarz_daj_certyfikatu_i_zignoruj_go" class="item"><em>poziom 0</em> - zarządaj certyfikatu i zignoruj go</a></strong></dt>
|
||
|
|
||
|
<dt><strong><a name="poziom_1_weryfikuj_je_eli_zosta_przedstawiony" class="item"><em>poziom 1</em> - weryfikuj, jeżeli został przedstawiony</a></strong></dt>
|
||
|
|
||
|
<dt><strong><a name="poziom_2_weryfikuj_z_zainstalowanym_certyfikatem_centrum_certyfikacji" class="item"><em>poziom 2</em> - weryfikuj z zainstalowanym certyfikatem Centrum Certyfikacji</a></strong></dt>
|
||
|
|
||
|
<dt><strong><a name="poziom_3_weryfikuj_z_lokalnie_zainstalowanym_certyfikatem_drugiej_strony" class="item"><em>poziom 3</em> - weryfikuj z lokalnie zainstalowanym certyfikatem drugiej strony</a></strong></dt>
|
||
|
|
||
|
<dt><strong><a name="poziom_4_weryfikuj_z_certyfikatem_drugiej_strony_ignoruj_c_a_cuch_ca" class="item"><em>poziom 4</em> - weryfikuj z certyfikatem drugiej strony ignorując łańcuch CA</a></strong></dt>
|
||
|
|
||
|
<dt><strong><a name="domy_lnie_nie_weryfikuj" class="item"><em>domyślnie</em> - nie weryfikuj</a></strong></dt>
|
||
|
|
||
|
</dl>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="zwracana_warto____">ZWRACANA WARTOŚĆ</a></h1>
|
||
|
<p><strong>stunnel</strong> zwraca zero w przypadku sukcesu, lub wartość niezerową
|
||
|
w przypadku błędu.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="signa__y">SIGNAŁY</a></h1>
|
||
|
<p>Następujące sygnały mogą być użyte do sterowania programem w systemie Unix:</p>
|
||
|
<dl>
|
||
|
<dt><strong><a name="sighup" class="item">SIGHUP</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Załaduj ponownie plik konfiguracyjny.</p>
|
||
|
<p>Niektóre globalne opcje nie będą przeładowane:</p>
|
||
|
<ul>
|
||
|
<li><strong><a name="chroot" class="item">chroot</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="foreground" class="item">foreground</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="pid" class="item">pid</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="setgid" class="item">setgid</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="setuid" class="item">setuid</a></strong>
|
||
|
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p>Jeżeli wykorzystywana jest opcja 'setuid' stunnel nie będzie mógł załadować
|
||
|
ponownie konfiguracji wykorzystującej uprzywilejowane (<1024) porty.</p>
|
||
|
<p>Jeżeli wykorzystywana jest opcja 'chroot' stunnel będzie szukał wszystkich
|
||
|
potrzebnych plików (łącznie z plikiem konfiguracyjnym, certyfikatami, logiem i
|
||
|
plikiem pid) wewnątrz katalogu wskazanego przez 'chroot'.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="sigusr1" class="item">SIGUSR1</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Zamknij i otwórz ponownie log.
|
||
|
Funkcja ta może zostać użyta w skrypcie rotującym log programu stunnel.</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="sigterm_sigquit_sigint" class="item">SIGTERM, SIGQUIT, SIGINT</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>Zakończ działanie programu.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>Skutek wysłania innych sygnałów jest niezdefiniowany.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="przyk__ady">PRZYKŁADY</a></h1>
|
||
|
<p>Szyfrowanie połączeń do lokalnego serwera <em>imapd</em> można użyć:</p>
|
||
|
<pre>
|
||
|
[imapd]
|
||
|
accept = 993
|
||
|
exec = /usr/sbin/imapd
|
||
|
execargs = imapd</pre>
|
||
|
<p>albo w trybie zdalnym:</p>
|
||
|
<pre>
|
||
|
[imapd]
|
||
|
accept = 993
|
||
|
connect = 143</pre>
|
||
|
<p>W połączeniu z programem <em>pppd</em> <strong>stunnel</strong> pozwala zestawić prosty VPN.
|
||
|
Po stronie serwera nasłuchującego na porcie 2020 jego konfiguracja
|
||
|
może wyglądać następująco:</p>
|
||
|
<pre>
|
||
|
[vpn]
|
||
|
accept = 2020
|
||
|
exec = /usr/sbin/pppd
|
||
|
execargs = pppd local
|
||
|
pty = yes</pre>
|
||
|
<p>Poniższy plik konfiguracyjny może być wykorzystany do uruchomienia
|
||
|
programu <strong>stunnel</strong> w trybie <em>inetd</em>. Warto zauważyć, że w pliku
|
||
|
konfiguracyjnym nie ma sekcji <em>[nazwa_usługi]</em>.</p>
|
||
|
<pre>
|
||
|
exec = /usr/sbin/imapd
|
||
|
execargs = imapd</pre>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="notki">NOTKI</a></h1>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="ograniczenia">OGRANICZENIA</a></h2>
|
||
|
<p><em>stunnel</em> nie może być używany do szyfrowania protokołu <em>FTP</em>,
|
||
|
ponieważ do przesyłania poszczególnych plików używa on dodatkowych
|
||
|
połączeń otwieranych na portach o dynamicznie przydzielanych numerach.
|
||
|
Istnieją jednak specjalne wersje klientów i serwerów FTP pozwalające
|
||
|
na szyfrowanie przesyłanych danych przy pomocy protokołu <em>SSL</em>.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="tryb_inetd__tylko_unix_">TRYB INETD (tylko Unix)</a></h2>
|
||
|
<p>W większości zastosowań <strong>stunnel</strong> samodzielnie nasłuchuje na porcie
|
||
|
podanym w pliku konfiguracyjnym i tworzy połączenie z innym portem
|
||
|
podanym w opcji <em>connect</em> lub nowym programem podanym w opcji <em>exec</em>.
|
||
|
Niektórzy wolą jednak wykorzystywać oddzielny program, który odbiera
|
||
|
połączenia, po czym uruchamia program <strong>stunnel</strong>. Przykładami takich
|
||
|
programów są inetd, xinetd i tcpserver.</p>
|
||
|
<p>Przykładowa linia pliku /etc/inetd.conf może wyglądać tak:</p>
|
||
|
<pre>
|
||
|
imaps stream tcp nowait root /usr/bin/stunnel
|
||
|
stunnel /etc/stunnel/imaps.conf</pre>
|
||
|
<p>Ponieważ w takich przypadkach połączenie na zdefiniowanym porcie
|
||
|
(tutaj <em>imaps</em>) nawiązuje osobny program (tutaj <em>inetd</em>), <strong>stunnel</strong>
|
||
|
nie może używać opcji <em>accept</em>. W pliku konfiguracyjnym nie może
|
||
|
być również zdefiniowana żadna usługa (<em>[nazwa_usługi]</em>), ponieważ
|
||
|
konfiguracja taka pozwala na nawiązanie tylko jednego połączenia.
|
||
|
Wszystkie <em>OPCJE USŁUG</em> powinny być umieszczone razem z opcjami
|
||
|
globalnymi. Przykład takiej konfiguracji znajduje się w sekcji
|
||
|
<em>PRZYKŁADY</em>.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="certyfikaty">CERTYFIKATY</a></h2>
|
||
|
<p>Protokół SSL wymaga, aby każdy serwer przedstawiał się nawiązującemu
|
||
|
połączenie klientowi prawidłowym certyfikatem X.509.
|
||
|
Potwierdzenie tożsamości serwera polega na wykazaniu, że posiada on
|
||
|
odpowiadający certyfikatowi klucz prywatny.
|
||
|
Najprostszą metodą uzyskania certyfikatu jest wygenerowanie
|
||
|
go przy pomocy wolnego pakietu <em>OpenSSL</em>. Więcej informacji na temat
|
||
|
generowania certyfikatów można znaleźć na umieszczonych poniżej stronach.</p>
|
||
|
<p>Istotną kwestią jest kolejność zawartości pliku <em>.pem</em>.
|
||
|
W pierwszej kolejności powinien on zawierać klucz prywatny,
|
||
|
a dopiero za nim podpisany certyfikat (nie żądanie certyfikatu).
|
||
|
Po certyfikacie i kluczu prywatnym powinny znajdować się puste linie.
|
||
|
Jeżeli przed certyfikatem znajdują się dodatkowe informacje tekstowe,
|
||
|
to powinny one zostać usunięte. Otrzymany plik powinien mieć
|
||
|
następującą postać:</p>
|
||
|
<pre>
|
||
|
-----BEGIN RSA PRIVATE KEY-----
|
||
|
[zakodowany klucz]
|
||
|
-----END RSA PRIVATE KEY-----
|
||
|
[pusta linia]
|
||
|
-----BEGIN CERTIFICATE-----
|
||
|
[zakodowany certyfikat]
|
||
|
-----END CERTIFICATE-----
|
||
|
[pusta linia]</pre>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="losowo____">LOSOWOŚĆ</a></h2>
|
||
|
<p><strong>stunnel</strong> potrzebuje zainicjować PRNG (generator liczb pseudolosowych),
|
||
|
gdyż protokół SSL wymaga do bezpieczeństwa kryptograficznego źródła
|
||
|
dobrej losowości. Następujące źródła są kolejno odczytywane aż do
|
||
|
uzyskania wystarczającej ilości entropii:</p>
|
||
|
<ul>
|
||
|
<li><strong><a name="zawarto_pliku_podanego_w_opcji_rndfile" class="item">Zawartość pliku podanego w opcji <em>RNDfile</em>.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="zawarto_pliku_o_nazwie_okre_lonej_przez_zmienn_rodowiskow_randfile_o_ile_jest_ona_ustawiona" class="item">Zawartość pliku o nazwie określonej przez zmienną środowiskową
|
||
|
RANDFILE, o ile jest ona ustawiona.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="plik_rnd_umieszczony_w_katalogu_domowym_u_ytkownika_je_eli_zmienna_randfile_nie_jest_ustawiona" class="item">Plik .rnd umieszczony w katalogu domowym użytkownika,
|
||
|
jeżeli zmienna RANDFILE nie jest ustawiona.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="plik_podany_w_opcji_with_random_w_czasie_konfiguracji_programu" class="item">Plik podany w opcji '--with-random' w czasie konfiguracji programu.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="zawarto_ekranu_w_systemie_windows" class="item">Zawartość ekranu w systemie Windows.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="gniazdo_egd_je_eli_u_yta_zosta_a_opcja_egd" class="item">Gniazdo egd, jeżeli użyta została opcja <em>EGD</em>.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="gniazdo_egd_podane_w_opcji_with_egd_socket_w_czasie_konfiguracji_programu" class="item">Gniazdo egd podane w opcji '--with-egd-socket' w czasie konfiguracji
|
||
|
programu.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
<li><strong><a name="urz_dzenie_dev_urandom" class="item">Urządzenie /dev/urandom.</a></strong>
|
||
|
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p>Współczesne (>=0.9.5a) wersje biblioteki <em>OpenSSL</em> automatycznie
|
||
|
zaprzestają ładowania kolejnych danych w momencie uzyskania wystarczającej
|
||
|
ilości entropii. Wcześniejsze wersje biblioteki wykorzystają wszystkie
|
||
|
powyższe źródła, gdyż nie istnieje tam funkcja pozwalająca określić,
|
||
|
czy uzyskano już wystarczająco dużo danych.</p>
|
||
|
<p>Warto zwrócić uwagę, że na maszynach z systemem Windows, na których
|
||
|
konsoli nie pracuje użytkownik, zawartość ekranu nie jest wystarczająco
|
||
|
zmienna, aby zainicjować PRNG. W takim przypadku do zainicjowania
|
||
|
generatora należy użyć opcji <em>RNDfile</em>.</p>
|
||
|
<p>Plik <em>RNDfile</em> powinien zawierać dane losowe -- również w tym sensie,
|
||
|
że powinny być one inne przy każdym uruchomieniu programu <strong>stunnel</strong>.
|
||
|
O ile nie użyta została opcja <em>RNDoverwrite</em> jest to robione
|
||
|
automatycznie. Do ręcznego uzyskania takiego pliku użyteczna
|
||
|
może być komenda <em>openssl rand</em> dostarczana ze współczesnymi
|
||
|
wersjami pakietu <em>OpenSSL</em>.</p>
|
||
|
<p>Jeszcze jedna istotna informacja -- jeżeli dostępne jest urządzenie
|
||
|
<em>/dev/urandom</em> biblioteka <em>OpenSSL</em> ma zwyczaj zasilania nim PRNG w trakcie
|
||
|
sprawdzania stanu generatora. W systemach z <em>/dev/urandom</em> urządzenie
|
||
|
to będzie najprawdopodobniej użyte, pomimo że znajduje się na samym końcu
|
||
|
powyższej listy. Jest to właściwość biblioteki <em>OpenSSL</em>, a nie programu
|
||
|
<em>stunnel</em>.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<h2><a name="parametry_dh">PARAMETRY DH</a></h2>
|
||
|
<p>Począwszy od wersji 4.40 stunnel zawiera w kodzie programu 2048-bitowe
|
||
|
parametry DH.</p>
|
||
|
<p>Alternatywnie parametry DH można umieścić w pliku razem z certyfikatem:</p>
|
||
|
<pre>
|
||
|
openssl dhparam 2048 >> stunnel.pem</pre>
|
||
|
<p>Wygenerowanie parametrów DH może zająć nawet wiele minut.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="pliki">PLIKI</a></h1>
|
||
|
<dl>
|
||
|
<dt><strong><a name="stunnel_conf" class="item"><em class="file">stunnel.conf</em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>plik konfiguracyjny programu</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="b____dy">BŁĘDY</a></h1>
|
||
|
<p>Opcja <em>execargs</em> nie obsługuje cytowania.</p>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="zobacz_r__wnie__">ZOBACZ RÓWNIEŻ</a></h1>
|
||
|
<dl>
|
||
|
<dt><strong><a name="tcpd" class="item"><a href="#tcpd">tcpd(8)</a></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>biblioteka kontroli dostępu do usług internetowych</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="inetd" class="item"><a href="#inetd">inetd(8)</a></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>'super-serwer' internetowy</p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="http_www_stunnel_org" class="item"><em class="file"><a href="http://www.stunnel.org/">http://www.stunnel.org/</a></em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>strona domowa programu <em>stunnel</em></p>
|
||
|
</dd>
|
||
|
<dt><strong><a name="http_www_openssl_org" class="item"><em class="file"><a href="http://www.openssl.org/">http://www.openssl.org/</a></em></a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p>strona projektu <em>OpenSSL</em></p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
<p>
|
||
|
</p>
|
||
|
<hr />
|
||
|
<h1><a name="autor">AUTOR</a></h1>
|
||
|
<dl>
|
||
|
<dt><strong><a name="micha_trojnara" class="item">Michał Trojnara</a></strong></dt>
|
||
|
|
||
|
<dd>
|
||
|
<p><<em class="file"><a href="mailto:Michal.Trojnara@mirt.net">Michal.Trojnara@mirt.net</a></em>></p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|