| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649 | 
							- <!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>
 
- <meta http-equiv=content-type content="text/html; charset=UTF-8">
 
- <title>stunnel.8</title>
 
- <link rev="made" href="mailto:root@localhost" />
 
- </head>
 
- <BODY>
 
- <A NAME="__index__"></A>
 
- <!-- INDEX BEGIN -->
 
- <UL>
 
- 	<LI><A HREF="#name">NAME</A></LI>
 
- 	<LI><A HREF="#synopsis">SYNOPSIS</A></LI>
 
- 	<LI><A HREF="#description">DESCRIPTION</A></LI>
 
- 	<LI><A HREF="#options">OPTIONS</A></LI>
 
- 	<LI><A HREF="#configuration file">CONFIGURATION FILE</A></LI>
 
- 	<UL>
 
- 		<LI><A HREF="#global options">GLOBAL OPTIONS</A></LI>
 
- 		<LI><A HREF="#servicelevel options">SERVICE-LEVEL OPTIONS</A></LI>
 
- 	</UL>
 
- 	<LI><A HREF="#return value">RETURN VALUE</A></LI>
 
- 	<LI><A HREF="#examples">EXAMPLES</A></LI>
 
- 	<LI><A HREF="#files">FILES</A></LI>
 
- 	<LI><A HREF="#bugs">BUGS</A></LI>
 
- 	<LI><A HREF="#restrictions">RESTRICTIONS</A></LI>
 
- 	<LI><A HREF="#notes">NOTES</A></LI>
 
- 	<UL>
 
- 		<LI><A HREF="#inetd mode">INETD MODE</A></LI>
 
- 		<LI><A HREF="#certificates">CERTIFICATES</A></LI>
 
- 		<LI><A HREF="#randomness">RANDOMNESS</A></LI>
 
- 	</UL>
 
- 	<LI><A HREF="#see also">SEE ALSO</A></LI>
 
- 	<LI><A HREF="#author">AUTHOR</A></LI>
 
- </UL>
 
- <!-- INDEX END -->
 
- <HR>
 
- <P>
 
- <H1><A NAME="name">NAME</A></H1>
 
- <P>stunnel - Универсальный SSL/TLS тунель</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="synopsis">SYNOPSIS</A></H1>
 
- <DL>
 
- <DT><STRONG><A NAME="item_Unix%3A"><STRONG>Unix:</STRONG></A></STRONG><BR>
 
- <DD>
 
- <STRONG>stunnel</STRONG> [<filename>] | -fd n | -help | -version | -sockets
 
- <P></P>
 
- <DT><STRONG><A NAME="item_WIN32%3A"><STRONG>WIN32:</STRONG></A></STRONG><BR>
 
- <DD>
 
- <STRONG>stunnel</STRONG> [ [-install | -uninstall | -start | -stop]
 
-     [-quiet] [<filename>] ] | -help | -version | -sockets
 
- <P></P></DL>
 
- <P>
 
- <HR>
 
- <H1><A NAME="description">DESCRIPTION</A></H1>
 
- <P><STRONG>stunnel</STRONG> утилита разработанная для создания <EM>TLS</EM> защищенного соединения
 
- между клиентом и локальным (<EM>Iinetd</EM>-запускаемым) или удаленным сервером. 
 
- Таким образом, не имея поддержки TLS в том или ином демоне(сервисе) в Вашей системы, Вы можете легко
 
- обеспечить защиту(шифрование, одностороннюю или двустороннюю аутентификацию) соединения 
 
- с использыванием <EM>TLS</EM>.
 
- <STRONG>stunnel</STRONG> может быть использован для добавления функции <EM>TLS</EM> для
 
- популярных <EM>Inetd</EM> сервисов, тиких как <EM>POP-2</EM>, <EM>POP-3</EM>, и <EM>IMAP</EM> , так же для 
 
- сервисов как NNTP, SMTP и HTTP, или организацию PPP тунелей без изменения кода самих сервисов.</P>
 
- <P>Этот продукт, для реализации <EM>TLS</EM> использует либо пакеты Security Support Provider Interface (SSPI)
 
- от Microsoft (www.microsoft.com) или Крипто-Про(www.cryptopro.ru), либо пакет OpenSSL написанный 
 
- Eric Young (<A HREF="mailto:eay@cryptsoft.com">eay@cryptsoft.com</A>)</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="options">OPTIONS</A></H1>
 
- <DL>
 
- <DT><STRONG><A NAME="item_%3Cfilename%3E"><<STRONG>filename</STRONG>></A></STRONG><BR>
 
- <DD>
 
- Использовать указанный конфигурационный файл
 
- <P></P>
 
- <DT><STRONG><A NAME="item_n"><STRONG>-fd n</STRONG> (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Прочитать конфигурационный файл из указанного дескриптора
 
- <P></P>
 
- <DT><STRONG><A NAME="item_%2Dhelp"><STRONG>-help</STRONG></A></STRONG><BR>
 
- <DD>
 
- Напечатать справку по <STRONG>stunnel</STRONG>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_%2Dversion"><STRONG>-version</STRONG></A></STRONG><BR>
 
- <DD>
 
- Печать версии <STRONG>stunnel</STRONG>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_%2Dsockets"><STRONG>-sockets</STRONG></A></STRONG><BR>
 
- <DD>
 
- Печать опций для сокета
 
- <P></P>
 
- <DT><STRONG><A NAME="item_install"><STRONG>-install</STRONG> (NT/2000/XP only)</A></STRONG><BR>
 
- <DD>
 
- Установить NT сервис
 
- <P></P>
 
- <DT><STRONG><A NAME="item_uninstall"><STRONG>-uninstall</STRONG> (NT/2000/XP only)</A></STRONG><BR>
 
- <DD>
 
- Удалить NT сервис
 
- <P></P>
 
- <DT><STRONG><A NAME="item_start"><STRONG>-start</STRONG> (NT/2000/XP only)</A></STRONG><BR>
 
- <DD>
 
- Запустить NT сервис
 
- <P></P>
 
- <DT><STRONG><A NAME="item_stop"><STRONG>-stop</STRONG> (NT/2000/XP only)</A></STRONG><BR>
 
- <DD>
 
- Остановить NT сервис
 
- <P></P>
 
- <DT><STRONG><A NAME="item_quiet"><STRONG>-quiet</STRONG> (NT/2000/XP only)</A></STRONG><BR>
 
- <DD>
 
- Не открывать окошки с сообщениями
 
- <P></P></DL>
 
- <P>
 
- <HR>
 
- <H1><A NAME="configuration file">CONFIGURATION FILE</A></H1>
 
- <P>Каждая строка конфигурационного файла должна быть:</P>
 
- <UL>
 
- <LI>
 
- Пустой строкой (игнорируется);
 
- <P></P>
 
- <LI>
 
- Комментарий начинающийся с  ';' (игнорируется);
 
- <P></P>
 
- <LI>
 
- Парой 'option_name = option_value';
 
- <P></P>
 
- <LI>
 
- Строкой '[service_name]', с которой начиинается секция описания конкретного сервиса;
 
- <P></P></UL>
 
- <P>
 
- <H2><A NAME="global options">GLOBAL OPTIONS</A></H2>
 
- <DL>
 
- <DT><STRONG><A NAME="item_directory"><STRONG>chroot</STRONG> = directory (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Каталог вызова функции <A HREF="#item_chroot"><CODE>chroot()</CODE></A> которая вызывается после разбора конфигурационного файла <STRONG>stunnel</STRONG>
 
- <P>Примечания:</P>
 
- <P>1)Использование данной возможности крайне желательно сопровождать использованием <STRONG>setuid</STRONG>;</P>
 
- <P>2)При создании замкнутого окружения, в нем должны бытьустановлены все внешние обьекты CryptoAPI/SSPI,
 
- <EM>CApath</EM>, <EM>CRLpath</EM>, <EM>pid</EM>, <EM>exec</EM> дожны находиться в нем. Например, если вы используете (TCP Wrappers)
 
- вы дожны скопировать файлы /etc/hosts.allow /etc/hosts.deny внутрь каталога <STRONG>chroot</STRONG>.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_rle"><STRONG>compression</STRONG> = zlib | <CODE>rle(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Алгоритм сжатия данных
 
- <P>По умолчанию: без сжатия</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_debug_%3D_%5Bfacility%2E%5Dlevel"><STRONG>debug</STRONG> = [facility.]level</A></STRONG><BR>
 
- <DD>
 
- Уровень протоколирования
 
- <P>Уровни задаются аналогично syslogd
 
- emerg (0), alert (1), crit (2), err (3), warning (4), notice (5),
 
- info (6), или debug (7).  Все сообщения с заданным уровнем и уровнем ниже 
 
- заданного будут запротоколированы.  Пример <STRONG>debug = debug</STRONG> или <STRONG>debug = 7</STRONG>.</P>
 
- <P>По умолчанию: <STRONG>debug = notice</STRONG> и используется syslog(Unix only.)
 
- Параметры <STRONG>facility</STRONG> и <STRONG>level</STRONG> регистронезависимы.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_no"><STRONG>foreground</STRONG> = yes | no (Unix only)</A></STRONG><BR>
 
- <DD>
 
- foreground режим
 
- <P>Оставаться в  foreground режиме (не использовать fork) и писать протокол в stderr
 
- (если не указан <STRONG>output</STRONG>).</P>
 
- <P>По умолчанию: no, т.е в режиме демона</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_output_%3D_file"><STRONG>output</STRONG> = file</A></STRONG><BR>
 
- <DD>
 
- Писать протокол в <STRONG>file</STRONG>, а не в syslog
 
- <P>Допустимо значение /dev/stdout</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_file"><STRONG>pid</STRONG> = file (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Файл для сохранения pid
 
- <P>Если аргумент не задан, то pid не сохраняется.</P>
 
- <P>Если задана опция <STRONG>chroot</STRONG>, то путь указывается относително ее.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_bytes"><STRONG>RNDbytes</STRONG> = <CODE>bytes(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Количество байт для чтения из фала со случайной последовательностью.
 
- <P>Количество байт для чтения из файла со случайной последовательностью. Для OpenSSL 
 
- версии меньше 0.9.5a, она так же определяет сколько байт достаточно для инициализации
 
- датчика случайных чисел.  Более поздние версии OpenSSL имеют встроенные 
 
- функции для определения достаточного количества байт для инициализации.</P>
 
- <P></P>
 
- <DT><STRONG><STRONG>RNDfile</STRONG> = <CODE>file(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Путь к файлу со случайной последовательностью
 
- <P>Библиотека OpenSSL использует эти данные для инициализации  
 
- датчика случайных чисел.</P>
 
- <P></P>
 
- <DT><STRONG><STRONG>RNDoverwrite</STRONG> = yes | <CODE>no(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Перезаписывать файл со случайной последовательностью
 
- <P>По умолчанию: yes</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_service_%3D_servicename"><STRONG>service</STRONG> = servicename</A></STRONG><BR>
 
- <DD>
 
- Имя сервиса
 
- <P><STRONG>On Unix:</STRONG> В <EM>inetd</EM> это имя для  TCP Wrapper библиотеки.</P>
 
- <P><STRONG>On NT/2000/XP:</STRONG> Имя NT сервиса для контрольной панели.</P>
 
- <P>По умолчанию: stunnel</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_groupname"><STRONG>setgid</STRONG> = groupname (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Выплняется <CODE>setgid()</CODE> в эту группу.
 
- <P></P>
 
- <DT><STRONG><A NAME="item_username"><STRONG>setuid</STRONG> = username (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Выполняется <CODE>setuid()</CODE> под этого пользователя
 
- <P></P>
 
- <DT><STRONG><A NAME="item_socket_%3D_a%7Cl%7Cr%3Aoption%3Dvalue%5B%3Avalue%5"><STRONG>socket</STRONG> = a|l|r:option=value[:value]</A></STRONG><BR>
 
- <DD>
 
- Опции <STRONG>setsockopt()</STRONG> для сокета приема соединений, а так же для локального и удаленного сокетов.
 
- <P>Формат значений для <STRONG>SO_LINGER</STRONG> : l_onof:l_linger.
 
- Формат значений для времени: tv_sec:tv_usec.</P>
 
- <P>Пример:</P>
 
- <PRE>
 
-     socket = l:SO_LINGER=1:60
 
-         Установить минунтный таймаут для локального сокета
 
-     socket = r:TCP_NODELAY=1
 
-         Выключить Nagle алгоритм для удаленного сокета
 
-     socket = a:SO_REUSEADDR=0
 
-         Запретить повторное использование портов TCP (по умолчанию разрешено)
 
-     socket = a:SO_BINDTODEVICE=lo
 
-         Принимать соединения только с loopback интерфейса</PRE>
 
- <P></P>
 
- <DT><STRONG><STRONG>taskbar</STRONG> = yes | no (WIN32 only)</STRONG><BR>
 
- <DD>
 
- Разрешить иконку.
 
- <P>По умолчанию: yes</P>
 
- <P></P></DL>
 
- <P>
 
- <H2><A NAME="servicelevel options">SERVICE-LEVEL OPTIONS</A></H2>
 
- <P>Каждая секция в конфигурационном файле начинается с имени сервиса в 
 
- квадратных скобках. Это имя будет использоваться библиотекой libwrap и PAM,
 
- а так же дает возможность различать протокольные сообщения.</P>
 
- <P>Примечание:
 
- Если вы хотите запускать <STRONG>stunnel</STRONG> в <EM>Inetd</EM> режиме, смотрите секцию
 
- <EM>Inetd MODE</EM> описанную ниже</P>
 
- <DL>
 
- <DT><STRONG><A NAME="item_accept_%3D_%5Bhost%3A%5Dport"><STRONG>accept</STRONG> = [host:]port</A></STRONG><BR>
 
- <DD>
 
- Принимать соединения только с host:port
 
- <P>Если host не указан, то для всех ip данного компьютера.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_store"><STRONG>CApath</STRONG> = <CODE>store(SSPI)</CODE></A></STRONG><BR>
 
- <DD>
 
- Хранилище доверенных корневых центров сертификации, используемое вместо ROOT.
 
- <P>Пример: My</P>
 
- <P></P>
 
- <DT><STRONG><STRONG>CApath</STRONG> = <CODE>directory(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Каталог с сертификатами CA
 
- <P>Каталог  в которой  <STRONG>stunnel</STRONG> будет искать сертификаты CA при использовании
 
- <EM>verify</EM>. Сертификаты в этой дериктории должны называться как XXXXXXXX.0 
 
- где XXXXXXXX значение хеша Der кодированно сертификата.
 
- (первые 4 байта в  MD5 хеше).</P>
 
- <P>Если указан <EM>chroot</EM> то <EM>CApath</EM> указывается относительно него.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_certfile"><STRONG>CAfile</STRONG> = <CODE>certfile(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Файл с сертификатом СА
 
- <P>Этот файл может сожержать множество сертификатов СА. Используется в  <EM>verify</EM>.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_pemfile"><STRONG>cert</STRONG> = <CODE>pemfile(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Цепочка сертификатов PEM файл. Сертификаты должны быть в PEM
 
- формате и должны начинаться с сертификата верхнего в цепочке (корневого CA).
 
- <P>Сертификат stunnel обязателен для использования в качестве сервера.
 
- Указание этой опции в режиме клиента необходимо для удовлетворения
 
- требования TLS сервера на двустороннюю аутентификацию по сертификату клиента.
 
- Использование клиентского сертификата опционально.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_Id"><STRONG>cert</STRONG> = Cert-Id(SSPI)</A></STRONG><BR>
 
- <DD>
 
- Сертификат в der кодировке. Соответствующий сертификат в хранилище должен иметь ссылку на закрытый ключ.
 
- <P></P>
 
- <DT><STRONG><A NAME="item_ciphers_%3D_cipherlist"><STRONG>ciphers</STRONG> = cipherlist</A></STRONG><BR>
 
- <DD>
 
- Список разрешенный SSL/TLS алгоритмов.
 
- <P>Пример:  GOST34102001-WITH-GOST28147-OFB-GOST28147:DES-CBC3-SHA:IDEA-CBC-MD5</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_keysize"><STRONG>minkeysize</STRONG> = keysize (SSPI – only)</A></STRONG><BR>
 
- <DD>
 
- Минимальная длина ключа
 
- <P></P>
 
- <DT><STRONG><A NAME="item_client_%3D_yes_%7C_no"><STRONG>client</STRONG> = yes | no</A></STRONG><BR>
 
- <DD>
 
- Режим клиента (удаленный сервис использует TLS/SSL)
 
- <P>По умолчанию: no (режим сервера)</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_connect_%3D_%5Bhost%3A%5Dport"><STRONG>connect</STRONG> = [host:]port</A></STRONG><BR>
 
- <DD>
 
- Соединять с удаленным сервером, если не указано то с localhost
 
- <P></P>
 
- <DT><STRONG><STRONG>CRLpath</STRONG> = <CODE>directory(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Каталог сожержащий CRL.
 
- <P>Примечание: Файлы в этой дериктории должны быть названы
 
- как XXXXXXXX.0 где XXXXXXXX значение хеша  CRL.</P>
 
- <P>Если указан <EM>chroot</EM> то <EM>CApath</EM> указывается относительно него.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_Store"><STRONG>CRLpath</STRONG> = <CODE>Store(SSPI)</CODE></A></STRONG><BR>
 
- <DD>
 
- Хранилище CRL, используемое вместо хранилища по умолчанию.
 
- <P>Пример: My</P>
 
- <P></P>
 
- <DT><STRONG><STRONG>CRLfile</STRONG> = <CODE>certfile(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- CRL файл
 
- <P>Этот файл содержит множество CRL, используеммых в  <EM>verify</EM>.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_delay_%3D_yes_%7C_no"><STRONG>delay</STRONG> = yes | no</A></STRONG><BR>
 
- <DD>
 
- Задержка для DNS запроса для 'connect' опции
 
- <P></P>
 
- <DT><STRONG><A NAME="item_number"><STRONG>engineNum</STRONG> = engine <CODE>number(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Использовать для чтения закрытого ключа engine
 
- <P>Нумерация начинается с 1.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_executable_path"><STRONG>exec</STRONG> = executable_path (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Запустить локально inetd программу
 
- <P><EM>exec</EM> путь относителен <EM>chroot</EM> дериктории если она задана.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_execargs_%3D_%240_%241_%242_%2E%2E%2E_%28Unix_only"><STRONG>execargs</STRONG> = $0 $1 $2 ... (Unix only)</A></STRONG><BR>
 
- <DD>
 
- Аргументы для программы указанной в  <EM>exec</EM> опции, включая ее имя-($0)
 
- <P>Кавычки не поддерживаются.
 
- Аргументы должны быть разделены пробелами.</P>
 
- <P></P>
 
- <DT><STRONG><STRONG>ident</STRONG> = <CODE>username(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Использовать IDENT (RFC 1413) проверку имени
 
- <P></P>
 
- <DT><STRONG><A NAME="item_keyfile"><STRONG>key</STRONG> = <CODE>keyfile(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Закрытый ключ для сертификата из <EM>cert</EM> опции
 
- <P>Закрытый ключ необходим для аутентификации обладателя сертификата.
 
- Файл должен быть защищен от доступа третьих лиц,в Unix системах
 
- можно использовать следующую команду:</P>
 
- <PRE>
 
-     chmod 600 keyfile</PRE>
 
- <P>По умолчанию: значение <EM>cert</EM> опции</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_local_%3D_host"><STRONG>local</STRONG> = host</A></STRONG><BR>
 
- <DD>
 
- Интерфейс, который должен быть использован для соединения с удаленны хостом.
 
- <P></P>
 
- <DT><STRONG><A NAME="item_url"><STRONG>ocsp</STRONG> = <CODE>url(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- OCSP сервер для проверки сертификатов
 
- <P></P>
 
- <DT><STRONG><A NAME="item_SSL_options"><STRONG>options</STRONG> = <CODE>SSL_options(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Опции для библиотеки OpenSSL
 
- <P>Параметры для OpenSSL описанные в <EM>SSL_CTX_set_options(3ssl)</EM> 
 
- реководстве но без префискса  <EM>SSL_OP_</EM>.
 
- Несколько <EM>options</EM>  могут быть использованы для
 
- указания множества опций.</P>
 
- <P>Например, для совместимости с Eudora SSL реализацией 
 
- следущие опции должны быть установлены.</P>
 
- <PRE>
 
-     options = DONT_INSERT_EMPTY_FRAGMENTS</PRE>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_protocol_%3D_proto"><STRONG>protocol</STRONG> = proto</A></STRONG><BR>
 
- <DD>
 
- Протокол внутри  SSL/TLS
 
- <P>Поддерживаемые: cifs, connect, nntp, pop3, smtp</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_protocolCredentials_%3D_username%3Apassword"><STRONG>protocolCredentials</STRONG> = username:password</A></STRONG><BR>
 
- <DD>
 
- пароль и имя пользователя для протокола <EM>proto</EM>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_protocolHost_%3D_host%3Aport"><STRONG>protocolHost</STRONG> = host:port</A></STRONG><BR>
 
- <DD>
 
- Удаленный сервер для внутренего протокола
 
- <P></P>
 
- <DT><STRONG><STRONG>pty</STRONG> = yes | no (Unix only)</STRONG><BR>
 
- <DD>
 
- Создать псевдо-терминал для 'exec' опции
 
- <P></P>
 
- <DT><STRONG><A NAME="item_session_%3D_timeout"><STRONG>session</STRONG> = timeout</A></STRONG><BR>
 
- <DD>
 
- Таймаут сессии
 
- <P></P>
 
- <DT><STRONG><A NAME="item_version"><STRONG>sslVersion</STRONG> = <CODE>version(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Версия  SSL протокола
 
- <P>Допустимые опции: all, SSLv2, SSLv3, TLSv1</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_TIMEOUTbusy_%3D_seconds"><STRONG>TIMEOUTbusy</STRONG> = seconds</A></STRONG><BR>
 
- <DD>
 
- таймаут для ожидания входящий данных
 
- <P></P>
 
- <DT><STRONG><A NAME="item_seconds"><STRONG>TIMEOUTclose</STRONG> = <CODE>seconds(OpenSSL)</CODE></A></STRONG><BR>
 
- <DD>
 
- Таймаут для ожидания  close_notify
 
- <P></P>
 
- <DT><STRONG><A NAME="item_TIMEOUTconnect_%3D_seconds"><STRONG>TIMEOUTconnect</STRONG> = seconds</A></STRONG><BR>
 
- <DD>
 
- Таймаут для соединения с удаленным хостом
 
- <P></P>
 
- <DT><STRONG><A NAME="item_TIMEOUTidle_%3D_seconds"><STRONG>TIMEOUTidle</STRONG> = seconds</A></STRONG><BR>
 
- <DD>
 
- Таймаут для keep alive
 
- <P></P>
 
- <DT><STRONG><STRONG>transparent</STRONG> = yes | no (Unix only)</STRONG><BR>
 
- <DD>
 
- transparent proxy
 
- <P>Re-write address to appear as if wrapped daemon is connecting
 
- from the SSL client machine instead of the machine running <STRONG>stunnel</STRONG>.
 
- This option is only available in local mode (<EM>exec</EM> option)
 
- by LD_PRELOADing env.so shared library or in remote mode (<EM>connect</EM>
 
- option) on Linux 2.2 kernel compiled with <EM>transparent proxy</EM> option
 
- and then only in server mode. Note that this option will not combine
 
- with proxy mode (<EM>connect</EM>) unless the client's По умолчанию route to the target
 
- machine lies through the host running <STRONG>stunnel</STRONG>, which cannot be localhost.</P>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_level"><STRONG>verify</STRONG> = <CODE>level(SSPI)</CODE></A></STRONG><BR>
 
- <DD>
 
- Уровень проверки цепочки
 
- <PRE>
 
-     default – Проверка по умолчанию, если не заданы CRLpath или CRLfile, то использует доступ к CDP по http/ldap;
 
-     level 3 - Проверять используя локально установленные сертификаты;
 
-     level 2 - Проверять каждый сертификат;
 
-     level 1 - Проверять каждый сертификат если есть;
 
-     level 0 - Не проверять;
 
- FIX ME!!!    НЕ ЗАКОНЧЕНА</PRE>
 
- <P></P>
 
- <DT><STRONG><STRONG>verify</STRONG> = <CODE>level(OpenSSL)</CODE></STRONG><BR>
 
- <DD>
 
- Уровень проверки
 
- <PRE>
 
-     level 1 - Проверять каждый сертификат если есть
 
-     level 2 - Проверять каждый сертификат
 
-     level 3 - Проверять используя локально установленные сертификаты
 
-     default - Не проверять</PRE>
 
- <P></P></DL>
 
- <P>
 
- <HR>
 
- <H1><A NAME="return value">RETURN VALUE</A></H1>
 
- <P><STRONG>stunnel</STRONG> Возвращает нулевой код завершения при успешном выполнении,
 
- при ошибках возвращается не нулевой код возвращения.</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="examples">EXAMPLES</A></H1>
 
- <P>Для реализации инкапсуляции <EM>imapd</EM> в SSL/TLS:</P>
 
- <PRE>
 
-     [imapd]
 
-     accept = 993
 
-     exec = /usr/sbin/imapd
 
-     execargs = imapd</PRE>
 
- <P>Тунелирование  <EM>pppd</EM> через SSL/TLS по порту 2020,</P>
 
- <PRE>
 
-     [vpn]
 
-     accept = 2020
 
-     exec = /usr/sbin/pppd
 
-     execargs = pppd local
 
-     pty = yes</PRE>
 
- <P>Для запуска <STRONG>stunnel</STRONG> в <EM>inetd</EM> стиле
 
- можно использовать следующий <EM>stunnel.conf</EM>.</P>
 
- <P>Примечание: в конфигурационном файле не должно быть <EM>[service_name]</EM> секции.</P>
 
- <PRE>
 
-     exec = /usr/sbin/imapd
 
-     execargs = imapd</PRE>
 
- <P>Ниже приведен пример конфигурации engine для считывания закрытого ключа
 
- используя OpenSC engine.</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>
 
- <P>
 
- <HR>
 
- <H1><A NAME="files">FILES</A></H1>
 
- <DL>
 
- <DT><STRONG><A NAME="item_stunnel%2Econf"><EM>stunnel.conf</EM></A></STRONG><BR>
 
- <DD>
 
- <STRONG>stunnel</STRONG> Конфигурационный файл
 
- <P></P>
 
- <DT><STRONG><A NAME="item_stunnel%2Epem"><EM>stunnel.pem</EM></A></STRONG><BR>
 
- <DD>
 
- <STRONG>stunnel</STRONG> Сертификат и закрытый ключ
 
- <P></P></DL>
 
- <P>
 
- <HR>
 
- <H1><A NAME="bugs">BUGS</A></H1>
 
- <P>Опция <EM>execargs</EM> не поддерживает кавычки.</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="restrictions">RESTRICTIONS</A></H1>
 
- <P><STRONG>stunnel</STRONG> нельзя использовать с  FTP демоном из-за природы 
 
- FTP протокола который использует множество портов для передачи данных.</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="notes">NOTES</A></H1>
 
- <P>
 
- <H2><A NAME="inetd mode">INETD MODE</A></H2>
 
- <P>Наиболее распространненый вариант использования <STRONG>stunnel</STRONG>
 
- когда он слушает порт и устанавливает соединение или с другим портом 
 
- из опции connect или прграммой из <EM>exec</EM> опции.
 
- Так же могут быть причины по которым вы хотите что бы другая программа
 
- принимала входящие соединения и запускала <STRONG>stunnel</STRONG> из
 
- <EM>inetd</EM>, <EM>xinetd</EM>, или <EM>tcpserver</EM>.</P>
 
- <P>Например если вы имеете следующий конфиг в  \fIinetd.conf\fR:</P>
 
- <PRE>
 
-     imaps stream tcp nowait root /usr/sbin/stunnel stunnel /etc/stunnel/imaps.conf</PRE>
 
- <P>В таком случае  <EM>inetd</EM> демон  ответственен за привязку сокета 
 
- и передачу его в  <STRONG>stunnel</STRONG> когда соединение установлено.
 
- Таким образом  <STRONG>stunnel</STRONG> не имеет ни одной <EM>accept</EM> опции.
 
- Все <EM>Service Level Options</EM> должны содержаться в глобалных опциях
 
- и не должно быть ни одной <EM>[service_name]</EM> секции
 
- Смотри раздел <EM>EXAMPLES</EM> с примерами.</P>
 
- <P>
 
- <H2><A NAME="certificates">CERTIFICATES</A></H2>
 
- <P>Каждый  \s-1SSL\s0 демон должен предстваить валидный X.509 сертификат
 
- Так же ему нужен закрытый ключ для расшифровки входящий данных.
 
- Наиболее простой путь получения сертификата и закрытого ключа
 
- это использовать <EM>OpenSSL</EM> пакет. Больше информации про этот
 
- пакет можно найти в описании следующих пакетов.</P>
 
- <P>Две вещи наиболее важны при генерации пары сертификат-закрытый ключ для
 
- <STRONG>stunnel</STRONG>. Закрытый ключ не может быть зашифрован, так как сервер
 
- не имеет возможности получить пароль от пользователя.
 
- Для генерации незашифрованого ключа добавьте <EM>-nodes</EM> опцию
 
- при выполнении <STRONG>req</STRONG> каманды из пакета <EM>OpenSSL</EM>.</P>
 
- <P>Порядок следования сертификатов в <EM>.pem</EM> файле то же важен.
 
- Он должнет сожержать не зашифрованый закрытый ключ в начале,
 
- затем сертификат. Затем пустая строка после закрытого ключа и сертификата.
 
- Не зашифрованая информация о сертификате (в верху сертификата) должна быть удалена
 
- Файл должнен выглядеть вот так:</P>
 
- <PRE>
 
-     -----BEGIN RSA PRIVATE KEY-----
 
-     [encoded key]
 
-     -----END RSA PRIVATE KEY-----
 
-     [empty line]
 
-     -----BEGIN CERTIFICATE-----
 
-     [encoded certificate]
 
-     -----END CERTIFICATE-----
 
-     [empty line]</PRE>
 
- <P>
 
- <H2><A NAME="randomness">RANDOMNESS</A></H2>
 
- <P>В <STRONG>stunnel</STRONG> нужен для инициализации PRNG (Датчик псевдо случайных чисел)
 
- для того что бы SSL использовал хорошие последовательности.
 
- Следующие источники будут использоваться (в указанном порядке) до тех пор пока 
 
- не будет полученно соответствующие кол-во данных.</P>
 
- <UL>
 
- <LI>
 
- Файл указанный в  <EM>RNDfile</EM> опции.
 
- <P></P>
 
- <LI>
 
- Файл указанный в  переменной окружения RANDFILE (если указан).
 
- <P></P>
 
- <LI>
 
- Файл  .rnd в домашней дериктории, если не указана RANDFILE.
 
- <P></P>
 
- <LI>
 
- Файл указанный в опции '--with-random' при компиляции.
 
- <P></P>
 
- <LI>
 
- Сожержимое экрана если работает под Windows.
 
- <P></P>
 
- <LI>
 
- сокет указанный в  <EM>EGD</EM> опции.
 
- <P></P>
 
- <LI>
 
- Сокет указанный в опции  '--with-egd-sock' при компиляции.
 
- <P></P>
 
- <LI>
 
- /dev/urandom.
 
- <P></P></UL>
 
- <P>В последних версиях (>=OpenSSL 0.9.5a) при получении достаточной энтропии
 
- источники случайных данных будут закрыты автоматически. В предыдущих версиях
 
- OpenSSL не существует функций для определения достаточного количества данных.</P>
 
- <P>Примечание:
 
- На Windows машинах нет консоли для интерактивного взаимодействия с пользователем
 
- (движение мыши, создание окон и т.д.) и содержание окна не достаточно, вам необходимо 
 
- созадть файл с случайной последовательностью и указать его в опции <EM>RNDfile</EM>.</P>
 
- <P>Файл указанный в опции <EM>RNDfile</EM> должен сожержать случайную последовательность
 
- это означает что он должен содержать разные данные при каждом запуске 
 
- <STRONG>stunnel</STRONG>.  Это будет делаться автоматически ло тех пор пока не будет 
 
- указана опция <EM>RNDoverwrite</EM>. Если вы хотите обновлять его вручную, то
 
- <EM>openssl rand</EM> команда из последней версии OpenSSL будет весьма полезна.</P>
 
- <P>Если  /dev/urandom доступен, OpenSSL имеет привычку инициализировать
 
- PRNG данными из него да же кога проверяет случайное состояние,
 
- таким образом на системах с ним вероятнее всего вы используете его да же
 
- если он в самом низу списка указаного выше.  Это не поведение <STRONG>stunnel's</STRONG>, это
 
- OpenSSL.</P>
 
- <P>
 
- <HR>
 
- <H1><A NAME="see also">SEE ALSO</A></H1>
 
- <DL>
 
- <DT><STRONG><A NAME="item_tcpd"><A HREF="#item_tcpd">tcpd(8)</A></A></STRONG><BR>
 
- <DD>
 
- Управление доступом для интернет сервисов
 
- <P></P>
 
- <DT><STRONG><A NAME="item_inetd"><A HREF="#item_inetd">inetd(8)</A></A></STRONG><BR>
 
- <DD>
 
- Интеренет 'super-server'
 
- <P></P>
 
- <DT><STRONG><A NAME="item_pam"><A HREF="#item_pam">pam(8)</A></A></STRONG><BR>
 
- <DD>
 
- модель имепрсонализации
 
- <P></P>
 
- <DT><STRONG><A NAME="item_setsockopt"><A HREF="#item_setsockopt">setsockopt(2)</A></A></STRONG><BR>
 
- <DD>
 
- Установка опций для сокета
 
- <P></P>
 
- <DT><STRONG><A NAME="item_chroot"><A HREF="#item_chroot">chroot(2)</A></A></STRONG><BR>
 
- <DD>
 
- создание замкнутого окружения
 
- <P></P>
 
- <DT><STRONG><A NAME="item_http%3A%2F%2Fstunnel%2Emirt%2Enet%2F"><EM><A HREF="http://stunnel.mirt.net/">http://stunnel.mirt.net/</A></EM></A></STRONG><BR>
 
- <DD>
 
- домашня страница <STRONG>stunnel</STRONG>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_http%3A%2F%2Fwww%2Estunnel%2Eorg%2F"><EM><A HREF="http://www.stunnel.org/">http://www.stunnel.org/</A></EM></A></STRONG><BR>
 
- <DD>
 
- Часто задаваемые вопросы по <STRONG>stunnel</STRONG>
 
- <P></P>
 
- <DT><STRONG><A NAME="item_http%3A%2F%2Fwww%2Eopenssl%2Eorg%2F"><EM><A HREF="http://www.openssl.org/">http://www.openssl.org/</A></EM></A></STRONG><BR>
 
- <DD>
 
- Домашняя страница проекта OpenSSL
 
- <P></P></DL>
 
- <P>
 
- <HR>
 
- <H1><A NAME="author">AUTHOR</A></H1>
 
- <DL>
 
- <DT><STRONG><A NAME="item_Michal_Trojnara">Michal Trojnara</A></STRONG><BR>
 
- <DD>
 
- <<EM><A HREF="mailto:Michal.Trojnara@mirt.net">Michal.Trojnara@mirt.net</A></EM>>
 
- <P></P></DL>
 
- </BODY>
 
- </HTML>
 
 
  |