diff --git a/doc/stunnel.8 b/doc/stunnel.8 index 7624a27..fcfb660 100644 --- a/doc/stunnel.8 +++ b/doc/stunnel.8 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) +.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== @@ -38,31 +38,36 @@ . ds PI \(*p . ds L" `` . ds R" '' +. ds C` +. ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" -.\" If the F register is turned on, we'll generate index entries on stderr for +.\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX .. -. nr % 0 -. rr F -.\} -.el \{\ +.if !\nF .nr F 0 +.if \nF>0 \{\ . de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} .\} .\" ======================================================================== .\" .IX Title "STUNNEL 8" -.TH STUNNEL 8 "2013.03.20" "4.56" "stunnel" +.TH STUNNEL 8 "2018.04.10" "4.56" "stunnel" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -87,8 +92,8 @@ your system you can easily set them up to communicate with clients over secure \s-1SSL\s0 channels. .PP \&\fBstunnel\fR can be used to add \s-1SSL\s0 functionality to commonly used \fIInetd\fR -daemons like \s-1POP\-2\s0, \s-1POP\-3\s0, and \s-1IMAP\s0 servers, to standalone daemons like -\&\s-1NNTP\s0, \s-1SMTP\s0 and \s-1HTTP\s0, and in tunneling \s-1PPP\s0 over network sockets without +daemons like \s-1POP\-2, POP\-3,\s0 and \s-1IMAP\s0 servers, to standalone daemons like +\&\s-1NNTP, SMTP\s0 and \s-1HTTP,\s0 and in tunneling \s-1PPP\s0 over network sockets without changes to the source code. .PP This product includes cryptographic software written by @@ -147,7 +152,7 @@ A port number. A colon-separated pair of \s-1IP\s0 address (either IPv4, IPv6, or domain name) and port number. .IP "\(bu" 4 A Unix socket path (Unix only). -.SS "\s-1GLOBAL\s0 \s-1OPTIONS\s0" +.SS "\s-1GLOBAL OPTIONS\s0" .IX Subsection "GLOBAL OPTIONS" .IP "\fBchroot\fR = directory (Unix only)" 4 .IX Item "chroot = directory (Unix only)" @@ -174,7 +179,7 @@ select data compression algorithm .Sp default: no compression .Sp -deflate is the standard compression method as described in \s-1RFC\s0 1951. +deflate is the standard compression method as described in \s-1RFC 1951.\s0 .Sp zlib compression of \fBOpenSSL 0.9.8\fR or above is not backward compatible with \&\fBOpenSSL 0.9.7\fR. @@ -226,14 +231,14 @@ OpenSC engine .IX Item "engineCtrl = command[:parameter]" control hardware engine .Sp -Special commands \*(L"\s-1LOAD\s0\*(R" and \*(L"\s-1INIT\s0\*(R" can be used to load and initialize the +Special commands \*(L"\s-1LOAD\*(R"\s0 and \*(L"\s-1INIT\*(R"\s0 can be used to load and initialize the engine cryptogaphic module. .IP "\fBfips\fR = yes | no" 4 .IX Item "fips = yes | no" -Enable or disable \s-1FIPS\s0 140\-2 mode. +Enable or disable \s-1FIPS 140\-2\s0 mode. .Sp This option allows to disable entering \s-1FIPS\s0 mode if \fBstunnel\fR was compiled -with \s-1FIPS\s0 140\-2 support. +with \s-1FIPS 140\-2\s0 support. .Sp default: yes .IP "\fBforeground\fR = yes | no (Unix only)" 4 @@ -263,7 +268,7 @@ bytes to read from random seed files .Sp Number of bytes of data read from random seed files. With \s-1SSL\s0 versions less than \fB0.9.5a\fR, also determines how many bytes of data are considered -sufficient to seed the \s-1PRNG\s0. More recent \fBOpenSSL\fR versions have a builtin +sufficient to seed the \s-1PRNG.\s0 More recent \fBOpenSSL\fR versions have a builtin function to determine when sufficient randomness is available. .IP "\fBRNDfile\fR = file" 4 .IX Item "RNDfile = file" @@ -325,7 +330,7 @@ you distinguish \fBstunnel\fR services in your log files. .PP Note that if you wish to run \fBstunnel\fR in \fIinetd\fR mode (where it is provided a network socket by a server such as \fIinetd\fR, \fIxinetd\fR, -or \fItcpserver\fR) then you should read the section entitled \fI\s-1INETD\s0 \s-1MODE\s0\fR +or \fItcpserver\fR) then you should read the section entitled \fI\s-1INETD MODE\s0\fR below. .IP "\fBaccept\fR = address" 4 .IX Item "accept = address" @@ -344,7 +349,7 @@ Certificate Authority directory .Sp This is the directory in which \fBstunnel\fR will look for certificates when using the \fIverify\fR. Note that the certificates in this directory should be named -\&\s-1XXXXXXXX\s0.0 where \s-1XXXXXXXX\s0 is the hash value of the \s-1DER\s0 encoded subject of the +\&\s-1XXXXXXXX.0\s0 where \s-1XXXXXXXX\s0 is the hash value of the \s-1DER\s0 encoded subject of the cert. .Sp The hash algorithm has been changed in \fBOpenSSL 1.0.0\fR. It is required to @@ -365,6 +370,36 @@ Specifying this flag in client mode will use this certificate chain as a client side certificate chain. Using client side certs is optional. The certificates must be in \s-1PEM\s0 format and must be sorted starting with the certificate to the highest level (root \s-1CA\s0). +.IP "\fBcheckEmail\fR = \s-1EMAIL\s0" 4 +.IX Item "checkEmail = EMAIL" +email address of the peer certificate subject +.Sp +Multiple \fIcheckEmail\fR options are allowed in a single service section. +Certificates are accepted if no \fIcheckEmail\fR option was specified, or the +email address of the peer certificate matches any of the email addresses +specified with \fIcheckEmail\fR. +.Sp +This option requires OpenSSL 1.0.2 or later. +.IP "\fBcheckHost\fR = \s-1HOST\s0" 4 +.IX Item "checkHost = HOST" +host of the peer certificate subject +.Sp +Multiple \fIcheckHost\fR options are allowed in a single service section. +Certificates are accepted if no \fIcheckHost\fR option was specified, or the host +name of the peer certificate matches any of the hosts specified with +\&\fIcheckHost\fR. +.Sp +This option requires OpenSSL 1.0.2 or later. +.IP "\fBcheckIP\fR = \s-1IP\s0" 4 +.IX Item "checkIP = IP" +\&\s-1IP\s0 address of the peer certificate subject +.Sp +Multiple \fIcheckIP\fR options are allowed in a single service section. +Certificates are accepted if no \fIcheckIP\fR option was specified, or the \s-1IP\s0 +address of the peer certificate matches any of the \s-1IP\s0 addresses specified with +\&\fIcheckIP\fR. +.Sp +This option requires OpenSSL 1.0.2 or later. .IP "\fBciphers\fR = cipherlist" 4 .IX Item "ciphers = cipherlist" Select permitted \s-1SSL\s0 ciphers @@ -393,7 +428,7 @@ Certificate Revocation Lists directory .Sp This is the directory in which \fBstunnel\fR will look for CRLs when using the \fIverify\fR. Note that the CRLs in this directory should -be named \s-1XXXXXXXX\s0.r0 where \s-1XXXXXXXX\s0 is the hash value of the \s-1CRL\s0. +be named \s-1XXXXXXXX\s0.r0 where \s-1XXXXXXXX\s0 is the hash value of the \s-1CRL.\s0 .Sp The hash algorithm has been changed in \fBOpenSSL 1.0.0\fR. It is required to c_rehash the directory on upgrade from \fBOpenSSL 0.x.x\fR to \fBOpenSSL 1.x.x\fR. @@ -419,8 +454,8 @@ default: prime256v1 .IX Item "delay = yes | no" delay \s-1DNS\s0 lookup for 'connect' option .Sp -This option is useful for dynamic \s-1DNS\s0, or when \s-1DNS\s0 is not available during -\&\fBstunnel\fR startup (road warrior \s-1VPN\s0, dial-up configurations). +This option is useful for dynamic \s-1DNS,\s0 or when \s-1DNS\s0 is not available during +\&\fBstunnel\fR startup (road warrior \s-1VPN,\s0 dial-up configurations). .IP "\fBengineNum\fR = engine number" 4 .IX Item "engineNum = engine number" select engine number to read private key @@ -450,7 +485,7 @@ Failover strategy for multiple \*(L"connect\*(R" targets. default: rr .IP "\fBident\fR = username" 4 .IX Item "ident = username" -use \s-1IDENT\s0 (\s-1RFC\s0 1413) username checking +use \s-1IDENT\s0 (\s-1RFC 1413\s0) username checking .IP "\fBkey\fR = keyfile" 4 .IX Item "key = keyfile" private key for certificate specified with \fIcert\fR option @@ -476,7 +511,7 @@ Use this option to bind a static local \s-1IP\s0 address, instead. .IP "\fBsni\fR = service_name:server_name_pattern (server mode)" 4 .IX Item "sni = service_name:server_name_pattern (server mode)" Use the service as a slave service (a name-based virtual server) for Server -Name Indication \s-1TLS\s0 extension (\s-1RFC\s0 3546). +Name Indication \s-1TLS\s0 extension (\s-1RFC 3546\s0). .Sp \&\fIservice_name\fR specifies the master service that accepts client connections with \fIaccept\fR option. \fIserver_name_pattern\fR specifies the host name to be @@ -497,21 +532,35 @@ Libwrap checks (Unix only) are performed twice: with master service name after Option \fIsni\fR is only available when compiled with \fBOpenSSL 1.0.0\fR and later. .IP "\fBsni\fR = server_name (client mode)" 4 .IX Item "sni = server_name (client mode)" -Use the parameter as the value of \s-1TLS\s0 Server Name Indication (\s-1RFC\s0 3546) +Use the parameter as the value of \s-1TLS\s0 Server Name Indication (\s-1RFC 3546\s0) extension. .Sp Option \fIsni\fR is only available when compiled with \fBOpenSSL 1.0.0\fR and later. .IP "\fB\s-1OCSP\s0\fR = url" 4 .IX Item "OCSP = url" select \s-1OCSP\s0 server for certificate verification +.IP "\fBOCSPaia\fR = yes | no" 4 +.IX Item "OCSPaia = yes | no" +validate certificates with their \s-1AIA OCSP\s0 responders +.Sp +This option enables \fIstunnel\fR to validate certificates with the list of +\&\s-1OCSP\s0 responder URLs retrieved from their \s-1AIA\s0 (Authority Information Access) +extension. .IP "\fBOCSPflag\fR = flag" 4 .IX Item "OCSPflag = flag" specify \s-1OCSP\s0 server flag .Sp Several \fIOCSPflag\fR can be used to specify multiple flags. .Sp -currently supported flags: \s-1NOCERTS\s0, \s-1NOINTERN\s0 \s-1NOSIGS\s0, \s-1NOCHAIN\s0, \s-1NOVERIFY\s0, -\&\s-1NOEXPLICIT\s0, \s-1NOCASIGN\s0, \s-1NODELEGATED\s0, \s-1NOCHECKS\s0, \s-1TRUSTOTHER\s0, \s-1RESPID_KEY\s0, \s-1NOTIME\s0 +currently supported flags: \s-1NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, +NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME\s0 +.IP "\fBOCSPnonce\fR = yes | no" 4 +.IX Item "OCSPnonce = yes | no" +send and verify the \s-1OCSP\s0 nonce extension +.Sp +This option protects the \s-1OCSP\s0 protocol against replay attacks. Due to its +computational overhead, the nonce extension is usually only supported on +internal (e.g. corporate) responders, and not on public \s-1OCSP\s0 responders. .IP "\fBoptions\fR = SSL_options" 4 .IX Item "options = SSL_options" \&\fBOpenSSL\fR library options @@ -542,15 +591,15 @@ Proprietary (undocummented) extension of \s-1CIFS\s0 protocol implemented in Sam Support for this extension was dropped in Samba 3.0.0. .IP "\fIconnect\fR" 4 .IX Item "connect" -Based on \s-1RFC\s0 2817 \- \fIUpgrading to \s-1TLS\s0 Within \s-1HTTP/1\s0.1\fR, section 5.2 \- \fIRequesting a Tunnel with \s-1CONNECT\s0\fR +Based on \s-1RFC 2817\s0 \- \fIUpgrading to \s-1TLS\s0 Within \s-1HTTP/1.1\s0\fR, section 5.2 \- \fIRequesting a Tunnel with \s-1CONNECT\s0\fR .Sp This protocol is only supported in client mode. .IP "\fIimap\fR" 4 .IX Item "imap" -Based on \s-1RFC\s0 2595 \- \fIUsing \s-1TLS\s0 with \s-1IMAP\s0, \s-1POP3\s0 and \s-1ACAP\s0\fR +Based on \s-1RFC 2595\s0 \- \fIUsing \s-1TLS\s0 with \s-1IMAP, POP3\s0 and \s-1ACAP\s0\fR .IP "\fInntp\fR" 4 .IX Item "nntp" -Based on \s-1RFC\s0 4642 \- \fIUsing Transport Layer Security (\s-1TLS\s0) with Network News Transfer Protocol (\s-1NNTP\s0)\fR +Based on \s-1RFC 4642\s0 \- \fIUsing Transport Layer Security (\s-1TLS\s0) with Network News Transfer Protocol (\s-1NNTP\s0)\fR .Sp This protocol is only supported in client mode. .IP "\fIpgsql\fR" 4 @@ -558,13 +607,13 @@ This protocol is only supported in client mode. Based on http://www.postgresql.org/docs/8.3/static/protocol\-flow.html#AEN73982 .IP "\fIpop3\fR" 4 .IX Item "pop3" -Based on \s-1RFC\s0 2449 \- \fI\s-1POP3\s0 Extension Mechanism\fR +Based on \s-1RFC 2449\s0 \- \fI\s-1POP3\s0 Extension Mechanism\fR .IP "\fIproxy\fR" 4 .IX Item "proxy" Haproxy client \s-1IP\s0 address http://haproxy.1wt.eu/download/1.5/doc/proxy\-protocol.txt .IP "\fIsmtp\fR" 4 .IX Item "smtp" -Based on \s-1RFC\s0 2487 \- \fI\s-1SMTP\s0 Service Extension for Secure \s-1SMTP\s0 over \s-1TLS\s0\fR +Based on \s-1RFC 2487\s0 \- \fI\s-1SMTP\s0 Service Extension for Secure \s-1SMTP\s0 over \s-1TLS\s0\fR .RE .RS 4 .RE @@ -613,7 +662,7 @@ this issue. default: yes (if supported by \fBOpenSSL\fR) .IP "\fBreset\fR = yes | no" 4 .IX Item "reset = yes | no" -attempt to use \s-1TCP\s0 \s-1RST\s0 flag to indicate an error +attempt to use \s-1TCP RST\s0 flag to indicate an error .Sp This option is not supported on some platforms. .Sp @@ -820,7 +869,7 @@ jail. .IX Item "SIGUSR1" Close and reopen \fBstunnel\fR log file. This function can be used for log rotation. -.IP "\s-1SIGTERM\s0, \s-1SIGQUIT\s0, \s-1SIGINT\s0" 4 +.IP "\s-1SIGTERM, SIGQUIT, SIGINT\s0" 4 .IX Item "SIGTERM, SIGQUIT, SIGINT" Shut \fBstunnel\fR down. .PP @@ -862,7 +911,7 @@ Note there must be no \fI[service_name]\fR section. \&\fBstunnel\fR cannot be used for the \s-1FTP\s0 daemon because of the nature of the \s-1FTP\s0 protocol which utilizes multiple ports for data transfers. There are available \s-1SSL\s0 enabled versions of \s-1FTP\s0 and telnet daemons, however. -.SS "\s-1INETD\s0 \s-1MODE\s0" +.SS "\s-1INETD MODE\s0" .IX Subsection "INETD MODE" The most common use of \fBstunnel\fR is to listen on a network port and establish communication with either a new port @@ -953,7 +1002,7 @@ Important note: If /dev/urandom is available, \fBOpenSSL\fR often seeds the \s-1 with it while checking the random state. On systems with /dev/urandom \&\fBOpenSSL\fR is likely to use it even though it is listed at the very bottom of the list above. This is the behaviour of \fBOpenSSL\fR and not \fBstunnel\fR. -.SS "\s-1DH\s0 \s-1PARAMETERS\s0" +.SS "\s-1DH PARAMETERS\s0" .IX Subsection "DH PARAMETERS" Stunnel 4.40 and later contains hardcoded 2048\-bit \s-1DH\s0 parameters. .PP diff --git a/doc/stunnel.html b/doc/stunnel.html index 9eef2c0..9e2bf61 100644 --- a/doc/stunnel.html +++ b/doc/stunnel.html @@ -4,341 +4,333 @@
-
-stunnel - universal SSL tunnel
--
-stunnel [<filename>] | -fd n | -help | -version | -sockets
-stunnel [<filename>] | -fd n | -help | -version | -sockets
+ + +stunnel [ [-install | -uninstall | -start | -stop] | -exit] - [-quiet] [<filename>] ] | -help | -version | -sockets
+ +stunnel [ [-install | -uninstall | -start | -stop] | -exit] [-quiet] [<filename>] ] | -help | -version | -sockets
+-
-The stunnel program is designed to work as SSL encryption wrapper -between remote clients and local (inetd-startable) or remote -servers. The concept is that having non-SSL aware daemons running on -your system you can easily set them up to communicate with clients over -secure SSL channels.
-stunnel can be used to add SSL functionality to commonly used Inetd -daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like -NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without -changes to the source code.
-This product includes cryptographic software written by -Eric Young (eay@cryptsoft.com)
--
-The stunnel program is designed to work as SSL encryption wrapper between remote clients and local (inetd-startable) or remote servers. The concept is that having non-SSL aware daemons running on your system you can easily set them up to communicate with clients over secure SSL channels.
+ +stunnel can be used to add SSL functionality to commonly used Inetd daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without changes to the source code.
+ +This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)
+ +Use specified configuration file
-Read the config file from specified file descriptor
-Print stunnel help menu
Print stunnel version and compile time defaults
+ +Print stunnel help menu
+Print stunnel version and compile time defaults
+Print default socket options
-Install NT Service
-Uninstall NT Service
-Start NT Service
-Stop NT Service
-Exit an already started stunnel
-Don't display any message boxes
+ +Don't display any message boxes
+-
-Each line of the configuration file can be either:
+An empty line (ignored).
+ +An empty line (ignored).
+A comment starting with ';' (ignored).
+A comment starting with ';' (ignored).
+An 'option_name = option_value' pair.
+An 'option_name = option_value' pair.
+'[service_name]' indicating a start of a service definition.
+'[service_name]' indicating a start of a service definition.
+An address parameter of an option may be either:
+A port number.
+ +A port number.
+A colon-separated pair of IP address (either IPv4, IPv6, or domain name) and port number.
+A colon-separated pair of IP address (either IPv4, IPv6, or domain name) and port number.
+A Unix socket path (Unix only).
+A Unix socket path (Unix only).
+-
-directory to chroot stunnel process
-chroot keeps stunnel in chrooted jail. CApath, CRLpath, pid -and exec are located inside the jail and the patches have to be relative -to the directory specified with chroot.
+ +directory to chroot stunnel process
+ +chroot keeps stunnel in chrooted jail. CApath, CRLpath, pid and exec are located inside the jail and the patches have to be relative to the directory specified with chroot.
+Several functions of the operating system also need their files to be located within chroot jail, e.g.:
+Delayed resolver typically needs /etc/nsswitch.conf and /etc/resolv.conf.
+ +Delayed resolver typically needs /etc/nsswitch.conf and /etc/resolv.conf.
+Local time in log files needs /etc/timezone.
+Local time in log files needs /etc/timezone.
+Some other functions may need devices, e.g. /dev/zero or /dev/null.
+Some other functions may need devices, e.g. /dev/zero or /dev/null.
+select data compression algorithm
+default: no compression
-deflate is the standard compression method as described in RFC 1951.
-zlib compression of OpenSSL 0.9.8 or above is not backward compatible with -OpenSSL 0.9.7.
-rle compression is currently not implemented by the OpenSSL library.
-deflate is the standard compression method as described in RFC 1951.
+ +zlib compression of OpenSSL 0.9.8 or above is not backward compatible with OpenSSL 0.9.7.
+ +rle compression is currently not implemented by the OpenSSL library.
+ + +debugging level
-Level is a one of the syslog level names or numbers -emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), -info (6), or debug (7). All logs for the specified level and -all levels numerically less than it will be shown. Use debug = debug or -debug = 7 for greatest debugging output. The default is notice (5).
-The syslog facility 'daemon' will be used unless a facility name is supplied. -(Facilities are not supported on Win32.)
+ +Level is a one of the syslog level names or numbers emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), info (6), or debug (7). All logs for the specified level and all levels numerically less than it will be shown. Use debug = debug or debug = 7 for greatest debugging output. The default is notice (5).
+ +The syslog facility 'daemon' will be used unless a facility name is supplied. (Facilities are not supported on Win32.)
+Case is ignored for both facilities and levels.
-path to Entropy Gathering Daemon socket
-Entropy Gathering Daemon socket to use to feed OpenSSL random number -generator. (Available only if compiled with OpenSSL 0.9.5a or higher)
-Entropy Gathering Daemon socket to use to feed OpenSSL random number generator. (Available only if compiled with OpenSSL 0.9.5a or higher)
+ + +select hardware engine
+default: software-only cryptography
-Here is an example of advanced engine configuration to read private key from an -OpenSC engine
-- engine=dynamic + +Here is an example of advanced engine configuration to read private key from an OpenSC engine
+ +-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
+ engineCtrl=INIT + [service] engineNum=1 - key=id_45-
control hardware engine
-Special commands "LOAD" and "INIT" can be used to load and initialize the -engine cryptogaphic module.
-Special commands "LOAD" and "INIT" can be used to load and initialize the engine cryptogaphic module.
+ + +Enable or disable FIPS 140-2 mode.
-This option allows to disable entering FIPS mode if stunnel was compiled -with FIPS 140-2 support.
+ +This option allows to disable entering FIPS mode if stunnel was compiled with FIPS 140-2 support.
+default: yes
-foreground mode
-Stay in foreground (don't fork) and log to stderr -instead of via syslog (unless output is specified).
+ +Stay in foreground (don't fork) and log to stderr instead of via syslog (unless output is specified).
+default: background in daemon mode
-append log messages to a file
-/dev/stdout device can be used to send log messages to the standard -output (for example to log them with daemontools splogger).
-/dev/stdout device can be used to send log messages to the standard output (for example to log them with daemontools splogger).
+ + +pid file location
+If the argument is empty, then no pid file will be created.
-pid path is relative to chroot directory if specified.
-pid path is relative to chroot directory if specified.
+ + +bytes to read from random seed files
-Number of bytes of data read from random seed files. With SSL versions less -than 0.9.5a, also determines how many bytes of data are considered -sufficient to seed the PRNG. More recent OpenSSL versions have a builtin -function to determine when sufficient randomness is available.
-Number of bytes of data read from random seed files. With SSL versions less than 0.9.5a, also determines how many bytes of data are considered sufficient to seed the PRNG. More recent OpenSSL versions have a builtin function to determine when sufficient randomness is available.
+ + +path to file with random seed data
-The SSL library will use data from this file first to seed the random -number generator.
-The SSL library will use data from this file first to seed the random number generator.
+ + +overwrite the random seed files with new random data
+default: yes
-use specified string as inetd mode service name for TCP Wrapper library
+ +use specified string as inetd mode service name for TCP Wrapper library
+default: stunnel
-setgid()
to groupname in daemon mode and clears all other groups
setuid()
to username in daemon mode
setgid() to groupname in daemon mode and clears all other groups
+setuid() to username in daemon mode
+ +Set an option on accept/local/remote socket
-The values for linger option are l_onof:l_linger. -The values for time are tv_sec:tv_usec.
+ +The values for linger option are l_onof:l_linger. The values for time are tv_sec:tv_usec.
+Examples:
-- socket = l:SO_LINGER=1:60 + +-socket = l:SO_LINGER=1:60 set one minute timeout for closing local socket socket = r:SO_OOBINLINE=yes place out-of-band data directly into the @@ -346,775 +338,893 @@ The values for time are tv_sec:tv_usec. socket = a:SO_REUSEADDR=no disable address reuse (enabled by default) socket = a:SO_BINDTODEVICE=lo - only accept connections on loopback interface
enable logging via syslog
+default: yes
-enable the taskbar icon
+default: yes
+-
-Each configuration section begins with service name in square brackets. -The service name is used for libwrap (TCP Wrappers) access control and lets -you distinguish stunnel services in your log files.
-Note that if you wish to run stunnel in inetd mode (where it -is provided a network socket by a server such as inetd, xinetd, -or tcpserver) then you should read the section entitled INETD MODE -below.
+ +Each configuration section begins with service name in square brackets. The service name is used for libwrap (TCP Wrappers) access control and lets you distinguish stunnel services in your log files.
+ +Note that if you wish to run stunnel in inetd mode (where it is provided a network socket by a server such as inetd, xinetd, or tcpserver) then you should read the section entitled INETD MODE below.
+accept connections on specified address
+If no host specified, defaults to all IPv4 addresses for the local host.
+To listen on all IPv6 addresses use:
-- connect = :::port-
connect = :::port
+
+
+Certificate Authority directory
-This is the directory in which stunnel will look for certificates when using -the verify. Note that the certificates in this directory should be named -XXXXXXXX.0 where XXXXXXXX is the hash value of the DER encoded subject of the -cert.
-The hash algorithm has been changed in OpenSSL 1.0.0. It is required to -c_rehash the directory on upgrade from OpenSSL 0.x.x to OpenSSL 1.x.x.
-CApath path is relative to chroot directory if specified.
-This is the directory in which stunnel will look for certificates when using the verify. Note that the certificates in this directory should be named XXXXXXXX.0 where XXXXXXXX is the hash value of the DER encoded subject of the cert.
+ +The hash algorithm has been changed in OpenSSL 1.0.0. It is required to c_rehash the directory on upgrade from OpenSSL 0.x.x to OpenSSL 1.x.x.
+ +CApath path is relative to chroot directory if specified.
+ + +Certificate Authority file
-This file contains multiple CA certificates, used with the verify.
-This file contains multiple CA certificates, used with the verify.
+ + +certificate chain PEM file name
-A PEM is always needed in server mode. -Specifying this flag in client mode will use this certificate chain -as a client side certificate chain. Using client side certs is optional. -The certificates must be in PEM format and must be sorted starting with the -certificate to the highest level (root CA).
+ +A PEM is always needed in server mode. Specifying this flag in client mode will use this certificate chain as a client side certificate chain. Using client side certs is optional. The certificates must be in PEM format and must be sorted starting with the certificate to the highest level (root CA).
+ +email address of the peer certificate subject
+ +Multiple checkEmail options are allowed in a single service section. Certificates are accepted if no checkEmail option was specified, or the email address of the peer certificate matches any of the email addresses specified with checkEmail.
+ +This option requires OpenSSL 1.0.2 or later.
+host of the peer certificate subject
+ +Multiple checkHost options are allowed in a single service section. Certificates are accepted if no checkHost option was specified, or the host name of the peer certificate matches any of the hosts specified with checkHost.
+ +This option requires OpenSSL 1.0.2 or later.
+Select permitted SSL ciphers
-A colon delimited list of the ciphers to allow in the SSL connection. -For example DES-CBC3-SHA:IDEA-CBC-MD5
+ +IP address of the peer certificate subject
+ +Multiple checkIP options are allowed in a single service section. Certificates are accepted if no checkIP option was specified, or the IP address of the peer certificate matches any of the IP addresses specified with checkIP.
+ +This option requires OpenSSL 1.0.2 or later.
+Select permitted SSL ciphers
+ +A colon delimited list of the ciphers to allow in the SSL connection. For example DES-CBC3-SHA:IDEA-CBC-MD5
+client mode (remote service uses SSL)
+default: no (server mode)
-connect to a remote address
+If no host is specified, the host defaults to localhost.
-Multiple connect options are allowed in a single service section.
-If host resolves to multiple addresses and/or if multiple connect -options are specified, then the remote address is chosen using a -round-robin algorithm.
-Multiple connect options are allowed in a single service section.
+ +If host resolves to multiple addresses and/or if multiple connect options are specified, then the remote address is chosen using a round-robin algorithm.
+ + +Certificate Revocation Lists directory
-This is the directory in which stunnel will look for CRLs when -using the verify. Note that the CRLs in this directory should -be named XXXXXXXX.r0 where XXXXXXXX is the hash value of the CRL.
-The hash algorithm has been changed in OpenSSL 1.0.0. It is required to -c_rehash the directory on upgrade from OpenSSL 0.x.x to OpenSSL 1.x.x.
-CRLpath path is relative to chroot directory if specified.
-This is the directory in which stunnel will look for CRLs when using the verify. Note that the CRLs in this directory should be named XXXXXXXX.r0 where XXXXXXXX is the hash value of the CRL.
+ +The hash algorithm has been changed in OpenSSL 1.0.0. It is required to c_rehash the directory on upgrade from OpenSSL 0.x.x to OpenSSL 1.x.x.
+ +CRLpath path is relative to chroot directory if specified.
+ + +Certificate Revocation Lists file
-This file contains multiple CRLs, used with the verify.
-This file contains multiple CRLs, used with the verify.
+ + +specify ECDH curve name
+To get a list of supported cuves use:
-- openssl ecparam -list_curves+ +
openssl ecparam -list_curves
+
default: prime256v1
-delay DNS lookup for 'connect' option
-This option is useful for dynamic DNS, or when DNS is not available during -stunnel startup (road warrior VPN, dial-up configurations).
delay DNS lookup for 'connect' option
+ +This option is useful for dynamic DNS, or when DNS is not available during stunnel startup (road warrior VPN, dial-up configurations).
+select engine number to read private key
+The engines are numbered starting from 1.
-execute local inetd-type program
-exec path is relative to chroot directory if specified.
-arguments for exec including program name ($0)
-Quoting is currently not supported. -Arguments are separated with arbitrary number of whitespaces.
+exec path is relative to chroot directory if specified.
+arguments for exec including program name ($0)
+Quoting is currently not supported. Arguments are separated with arbitrary number of whitespaces.
+ +Failover strategy for multiple "connect" targets.
-- rr (round robin) - fair load distribution - prio (priority) - use the order specified in config file+ +
rr (round robin) - fair load distribution
+ prio (priority) - use the order specified in config file
+
default: rr
-use IDENT (RFC 1413) username checking
private key for certificate specified with cert option
-Private key is needed to authenticate certificate owner. -Since this file should be kept secret it should only be readable -to its owner. On Unix systems you can use the following command:
-- chmod 600 keyfile-
default: value of cert option
+ +use IDENT (RFC 1413) username checking
+private key for certificate specified with cert option
+ +Private key is needed to authenticate certificate owner. Since this file should be kept secret it should only be readable to its owner. On Unix systems you can use the following command:
+ + chmod 600 keyfile
+default: value of cert option
+ +Enable or disable the use of /etc/hosts.allow and /etc/hosts.deny.
+default: yes
-IP of the outgoing interface is used as source for remote connections. -Use this option to bind a static local IP address, instead.
Use the service as a slave service (a name-based virtual server) for Server -Name Indication TLS extension (RFC 3546).
-service_name specifies the master service that accepts client connections -with accept option. server_name_pattern specifies the host name to be -redirected. The pattern may start with '*' character, e.g. '*.example.com'. -Multiple slave services are normally specified for a single master service. -sni option can also be specified more than once within a single slave -service.
-This service, as well as the master service, may not be configured in client -mode.
-connect option of the slave service is ignored when protocol option is -specified, as protocol connects remote host before TLS handshake.
-Libwrap checks (Unix only) are performed twice: with master service name after -TCP connection is accepted, and with slave service name during TLS handshake.
-Option sni is only available when compiled with OpenSSL 1.0.0 and later.
-IP of the outgoing interface is used as source for remote connections. Use this option to bind a static local IP address, instead.
+ + +Use the parameter as the value of TLS Server Name Indication (RFC 3546) -extension.
-Option sni is only available when compiled with OpenSSL 1.0.0 and later.
+ +Use the service as a slave service (a name-based virtual server) for Server Name Indication TLS extension (RFC 3546).
+ +service_name specifies the master service that accepts client connections with accept option. server_name_pattern specifies the host name to be redirected. The pattern may start with '*' character, e.g. '*.example.com'. Multiple slave services are normally specified for a single master service. sni option can also be specified more than once within a single slave service.
+ +This service, as well as the master service, may not be configured in client mode.
+ +connect option of the slave service is ignored when protocol option is specified, as protocol connects remote host before TLS handshake.
+ +Libwrap checks (Unix only) are performed twice: with master service name after TCP connection is accepted, and with slave service name during TLS handshake.
+ +Option sni is only available when compiled with OpenSSL 1.0.0 and later.
+Use the parameter as the value of TLS Server Name Indication (RFC 3546) extension.
+Option sni is only available when compiled with OpenSSL 1.0.0 and later.
+ +select OCSP server for certificate verification
+validate certificates with their AIA OCSP responders
+ +This option enables stunnel to validate certificates with the list of OCSP responder URLs retrieved from their AIA (Authority Information Access) extension.
+specify OCSP server flag
-Several OCSPflag can be used to specify multiple flags.
-currently supported flags: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, -NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME
-Several OCSPflag can be used to specify multiple flags.
+ +currently supported flags: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME
+ + +OpenSSL library options
-The parameter is the OpenSSL option name as described in the -SSL_CTX_set_options(3ssl) manual, but without SSL_OP_ prefix. -Several options can be used to specify multiple options.
-For example for compatibility with erroneous Eudora SSL implementation -the following option can be used:
-- options = DONT_INSERT_EMPTY_FRAGMENTS+ +
send and verify the OCSP nonce extension
+ +This option protects the OCSP protocol against replay attacks. Due to its computational overhead, the nonce extension is usually only supported on internal (e.g. corporate) responders, and not on public OCSP responders.
+OpenSSL library options
+The parameter is the OpenSSL option name as described in the SSL_CTX_set_options(3ssl) manual, but without SSL_OP_ prefix. Several options can be used to specify multiple options.
+ +For example for compatibility with erroneous Eudora SSL implementation the following option can be used:
+ + options = DONT_INSERT_EMPTY_FRAGMENTS
+
+application protocol to negotiate SSL
-This option enables initial, protocol-specific negotiation of the SSL/TLS -encryption. -protocol option should not be used with SSL encryption on a separate port.
+ +This option enables initial, protocol-specific negotiation of the SSL/TLS encryption. protocol option should not be used with SSL encryption on a separate port.
+Currently supported protocols:
+Proprietary (undocummented) extension of CIFS protocol implemented in Samba. -Support for this extension was dropped in Samba 3.0.0.
-Proprietary (undocummented) extension of CIFS protocol implemented in Samba. Support for this extension was dropped in Samba 3.0.0.
+ +Based on RFC 2817 - Upgrading to TLS Within HTTP/1.1, section 5.2 - Requesting a Tunnel with CONNECT
+ +Based on RFC 2817 - Upgrading to TLS Within HTTP/1.1, section 5.2 - Requesting a Tunnel with CONNECT
+This protocol is only supported in client mode.
-Based on RFC 2595 - Using TLS with IMAP, POP3 and ACAP
Based on RFC 2595 - Using TLS with IMAP, POP3 and ACAP
+ +Based on RFC 4642 - Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)
+ +Based on RFC 4642 - Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)
+This protocol is only supported in client mode.
-Based on http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
Based on RFC 2449 - POP3 Extension Mechanism
-Based on http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
+ + +Haproxy client IP address http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
+ +Based on RFC 2449 - POP3 Extension Mechanism
+Haproxy client IP address http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
+Based on RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
+ +Based on RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
+authentication type for protocol negotiations
+currently supported: basic, NTLM
-Currently authentication type only applies to the 'connect' protocol.
+ +Currently authentication type only applies to the 'connect' protocol.
+default: basic
-destination address for protocol negotiations
-protocolHost specifies the final SSL server to be connected by the proxy, -and not the proxy server directly connected by stunnel. -The proxy server should be specified with the 'connect' option.
-Currently protocol destination address only applies to 'connect' protocol.
-protocolHost specifies the final SSL server to be connected by the proxy, and not the proxy server directly connected by stunnel. The proxy server should be specified with the 'connect' option.
+ +Currently protocol destination address only applies to 'connect' protocol.
+ + +password for protocol negotiations
-username for protocol negotiations
-allocate pseudo terminal for 'exec' option
allocate pseudo terminal for 'exec' option
+support SSL renegotiation
-Applications of the SSL renegotiation include some authentication scenarios, -or re-keying long lasting connections.
-On the other hand this feature can facilitate a trivial CPU-exhaustion -DoS attack:
-http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
-Please note that disabling SSL renegotiation does not fully mitigate -this issue.
-default: yes (if supported by OpenSSL)
-Applications of the SSL renegotiation include some authentication scenarios, or re-keying long lasting connections.
+ +On the other hand this feature can facilitate a trivial CPU-exhaustion DoS attack:
+ +http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
+ +Please note that disabling SSL renegotiation does not fully mitigate this issue.
+ +default: yes (if supported by OpenSSL)
+ + +attempt to use TCP RST flag to indicate an error
+This option is not supported on some platforms.
+default: yes
-reconnect a connect+exec section after it's disconnected
+ +reconnect a connect+exec section after it's disconnected
+default: no
-session cache size
-sessionCacheSize specifies the maximum number of the internal session cache -entries.
-The value of 0 can be used for unlimited size. It is not recommended -for production use due to the risk of memory exhaustion DoS attack.
-sessionCacheSize specifies the maximum number of the internal session cache entries.
+ +The value of 0 can be used for unlimited size. It is not recommended for production use due to the risk of memory exhaustion DoS attack.
+ + +session cache timeout
+This is the number of seconds to keep cached SSL sessions.
-address of sessiond SSL cache server
-select version of SSL protocol
+Allowed options: all, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2
-thread stack size
-time to wait for expected data
-time to wait for close_notify (set to 0 for buggy MSIE)
-time to wait to connect a remote host
-time to keep an idle connection
-enable transparent proxy support on selected platforms
+Supported values:
+Disable transparent proxy support. This is the default.
-Disable transparent proxy support. This is the default.
+ +Re-write address to appear as if wrapped daemon is connecting -from the SSL client machine instead of the machine running stunnel.
+ +Re-write address to appear as if wrapped daemon is connecting from the SSL client machine instead of the machine running stunnel.
+This option is currently available in:
+This configuration requires stunnel to be executed as root and without -setuid option.
-This configuration requires the following setup for iptables and routing -(possibly in /etc/rc.local or equivalent file):
-- iptables -t mangle -N DIVERT + +This configuration requires stunnel to be executed as root and without setuid option.
+ +This configuration requires the following setup for iptables and routing (possibly in /etc/rc.local or equivalent file):
+ +-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
stunnel must also to be executed as root and without setuid option.
-
This configuration requires kernel to be compiled with transparent proxy -option. -Connected service must be installed on a separate host. -Routing towards the clients has to go through the stunnel box.
-stunnel must also to be executed as root and without setuid option.
-stunnel must also to be executed as root and without setuid option.
+This configuration requires additional firewall and routing setup. -stunnel must also to be executed as root and without setuid option.
+ +This configuration requires kernel to be compiled with transparent proxy option. Connected service must be installed on a separate host. Routing towards the clients has to go through the stunnel box.
+ +stunnel must also to be executed as root and without setuid option.
+This configuration requires additional firewall and routing setup. stunnel must also to be executed as root and without setuid option.
+This configuration works by pre-loading libstunnel.so shared library. -_RLD_LIST environment variable is used on Tru64, and LD_PRELOAD variable on -other platforms.
+ +This configuration works by pre-loading libstunnel.so shared library. _RLD_LIST environment variable is used on Tru64, and LD_PRELOAD variable on other platforms.
+Original destination is used instead of connect option.
+ +Original destination is used instead of connect option.
+A service section for transparent destination may look like this:
-- [transparent] + ++ +-[transparent] client=yes accept=<stunnel_port> - transparent=destination
This configuration requires the following setup for iptables -(possibly in /etc/rc.local or equivalent file):
-- /sbin/iptables -I INPUT -i eth0 -p tcp --dport <stunnel_port> -j ACCEPT - /sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp --dport <redirected_port> -j DNAT --to-destination <local_ip>:<stunnel_port>+ transparent=destination
This configuration requires the following setup for iptables (possibly in /etc/rc.local or equivalent file):
+ + /sbin/iptables -I INPUT -i eth0 -p tcp --dport <stunnel_port> -j ACCEPT
+ /sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp --dport <redirected_port> -j DNAT --to-destination <local_ip>:<stunnel_port>
+
Transparent destination option is currently only supported on Linux.
-Use both source and destination transparent proxy.
+ +Use both source and destination transparent proxy.
+Two legacy options are also supported for backward compatibility:
+This options has been renamed to source.
-This options has been renamed to source.
+ + +This options has been renamed to none.
+ +This options has been renamed to none.
+verify peer certificate
+Request and ignore peer certificate.
-Verify peer certificate if present.
-Verify peer certificate.
-Verify peer with locally installed certificate.
-Ignore CA chain and only verify peer certificate.
-No verify.
+It is important to understand, that this option was solely designed for access -control and not for authorization. Specifically for level 2 every non-revoked -certificate is accepted regardless of its Common Name. For this reason a -dedicated CA should be used with level 2, and not a generic CA commonly used -for webservers. Level 3 is preferred for point-to-point connections.
+ +It is important to understand, that this option was solely designed for access control and not for authorization. Specifically for level 2 every non-revoked certificate is accepted regardless of its Common Name. For this reason a dedicated CA should be used with level 2, and not a generic CA commonly used for webservers. Level 3 is preferred for point-to-point connections.
+ --
-stunnel returns zero on success, non-zero on error.
--
-The following signals can be used to control stunnel in Unix environment:
+ +stunnel returns zero on success, non-zero on error.
+ +The following signals can be used to control stunnel in Unix environment:
+Force a reload of the configuration file.
+Some global options will not be reloaded:
+chroot
+ +chroot
+foreground
+foreground
+pid
+pid
+setgid
+setgid
+setuid
+setuid
+The use of 'setuid' option will also prevent stunnel from binding privileged -(<1024) ports during configuration reloading.
-When 'chroot' option is used, stunnel will look for all its files (including -configuration file, certificates, log file and pid file) within the chroot -jail.
-Close and reopen stunnel log file. -This function can be used for log rotation.
+The use of 'setuid' option will also prevent stunnel from binding privileged (<1024) ports during configuration reloading.
+ +When 'chroot' option is used, stunnel will look for all its files (including configuration file, certificates, log file and pid file) within the chroot jail.
+Close and reopen stunnel log file. This function can be used for log rotation.
+ +Shut stunnel down.
+ +Shut stunnel down.
+The result of sending any other signals to the server is undefined.
--
-In order to provide SSL encapsulation to your local imapd service, use
-- [imapd] + ++ +EXAMPLES
+ +In order to provide SSL encapsulation to your local imapd service, use
+ +-[imapd] accept = 993 exec = /usr/sbin/imapd - execargs = imapd
If you want to provide tunneling to your pppd daemon on port 2020, -use something like
-- [vpn] + execargs = imapd+ +If you want to provide tunneling to your pppd daemon on port 2020, use something like
+ +-[vpn] accept = 2020 exec = /usr/sbin/pppd execargs = pppd local - pty = yes
If you want to use stunnel in inetd mode to launch your imapd -process, you'd use this stunnel.conf. -Note there must be no [service_name] section.
-- exec = /usr/sbin/imapd - execargs = imapd--
-
-NOTES
--
-RESTRICTIONS
-stunnel cannot be used for the FTP daemon because of the nature -of the FTP protocol which utilizes multiple ports for data transfers. -There are available SSL enabled versions of FTP and telnet daemons, however.
--
-INETD MODE
-The most common use of stunnel is to listen on a network -port and establish communication with either a new port -via the connect option, or a new program via the exec option. -However there is a special case when you wish to have -some other program accept incoming connections and -launch stunnel, for example with inetd, xinetd, -or tcpserver.
-For example, if you have the following line in inetd.conf:
-- imaps stream tcp nowait root /usr/bin/stunnel stunnel /etc/stunnel/imaps.conf-In these cases, the inetd-style program is responsible -for binding a network socket (imaps above) and handing -it to stunnel when a connection is received. -Thus you do not want stunnel to have any accept option. -All the Service Level Options should be placed in the -global options section, and no [service_name] section -will be present. See the EXAMPLES section for example -configurations.
--
-CERTIFICATES
-Each SSL enabled daemon needs to present a valid X.509 certificate -to the peer. It also needs a private key to decrypt the incoming -data. The easiest way to obtain a certificate and a key is to -generate them with the free OpenSSL package. You can find more -information on certificates generation on pages listed below.
-The order of contents of the .pem file is important. It should contain the -unencrypted private key first, then a signed certificate (not certificate -request). There should be also empty lines after certificate and private key. -Plaintext certificate information appended on the top of generated certificate -should be discarded. So the file should look like this:
-- -----BEGIN RSA PRIVATE KEY----- + pty = yes+ +If you want to use stunnel in inetd mode to launch your imapd process, you'd use this stunnel.conf. Note there must be no [service_name] section.
+ ++ +exec = /usr/sbin/imapd + execargs = imapd
NOTES
+ +RESTRICTIONS
+ +stunnel cannot be used for the FTP daemon because of the nature of the FTP protocol which utilizes multiple ports for data transfers. There are available SSL enabled versions of FTP and telnet daemons, however.
+ +INETD MODE
+ +The most common use of stunnel is to listen on a network port and establish communication with either a new port via the connect option, or a new program via the exec option. However there is a special case when you wish to have some other program accept incoming connections and launch stunnel, for example with inetd, xinetd, or tcpserver.
+ +For example, if you have the following line in inetd.conf:
+ ++ +imaps stream tcp nowait root /usr/bin/stunnel stunnel /etc/stunnel/imaps.conf
In these cases, the inetd-style program is responsible for binding a network socket (imaps above) and handing it to stunnel when a connection is received. Thus you do not want stunnel to have any accept option. All the Service Level Options should be placed in the global options section, and no [service_name] section will be present. See the EXAMPLES section for example configurations.
+ +CERTIFICATES
+ +Each SSL enabled daemon needs to present a valid X.509 certificate to the peer. It also needs a private key to decrypt the incoming data. The easiest way to obtain a certificate and a key is to generate them with the free OpenSSL package. You can find more information on certificates generation on pages listed below.
+ +The order of contents of the .pem file is important. It should contain the unencrypted private key first, then a signed certificate (not certificate request). There should be also empty lines after certificate and private key. Plaintext certificate information appended on the top of generated certificate should be discarded. So the file should look like this:
+ +------BEGIN RSA PRIVATE KEY----- [encoded key] -----END RSA PRIVATE KEY----- [empty line] -----BEGIN CERTIFICATE----- [encoded certificate] -----END CERTIFICATE----- - [empty line]
-
-RANDOMNESS
-stunnel needs to seed the PRNG (pseudo random number generator) in -order for SSL to use good randomness. The following sources are loaded -in order until sufficient random data has been gathered:
+ [empty line]
stunnel needs to seed the PRNG (pseudo random number generator) in order for SSL to use good randomness. The following sources are loaded in order until sufficient random data has been gathered:
+The file specified with the RNDfile flag.
+ +The file specified with the RNDfile flag.
+The file specified by the RANDFILE environment variable, if set.
+The file specified by the RANDFILE environment variable, if set.
+The file .rnd in your home directory, if RANDFILE not set.
+The file .rnd in your home directory, if RANDFILE not set.
+The file specified with '--with-random' at compile time.
+The file specified with '--with-random' at compile time.
+The contents of the screen if running on Windows.
+The contents of the screen if running on Windows.
+The egd socket specified with the EGD flag.
+The egd socket specified with the EGD flag.
+The egd socket specified with '--with-egd-sock' at compile time.
+The egd socket specified with '--with-egd-sock' at compile time.
+The /dev/urandom device.
+The /dev/urandom device.
+With recent (OpenSSL 0.9.5a or later) version of SSL it will stop loading -random data automatically when sufficient entropy has been gathered. With -previous versions it will continue to gather from all the above sources since -no SSL function exists to tell when enough data is available.
-Note that on Windows machines that do not have console user interaction -(mouse movements, creating windows, etc.) the screen contents are not -variable enough to be sufficient, and you should provide a random file -for use with the RNDfile flag.
-Note that the file specified with the RNDfile flag should contain -random data -- that means it should contain different information -each time stunnel is run. This is handled automatically -unless the RNDoverwrite flag is used. If you wish to update this file -manually, the openssl rand command in recent versions of OpenSSL, -would be useful.
-Important note: If /dev/urandom is available, OpenSSL often seeds the PRNG -with it while checking the random state. On systems with /dev/urandom -OpenSSL is likely to use it even though it is listed at the very bottom of -the list above. This is the behaviour of OpenSSL and not stunnel.
--
-With recent (OpenSSL 0.9.5a or later) version of SSL it will stop loading random data automatically when sufficient entropy has been gathered. With previous versions it will continue to gather from all the above sources since no SSL function exists to tell when enough data is available.
+ +Note that on Windows machines that do not have console user interaction (mouse movements, creating windows, etc.) the screen contents are not variable enough to be sufficient, and you should provide a random file for use with the RNDfile flag.
+ +Note that the file specified with the RNDfile flag should contain random data -- that means it should contain different information each time stunnel is run. This is handled automatically unless the RNDoverwrite flag is used. If you wish to update this file manually, the openssl rand command in recent versions of OpenSSL, would be useful.
+ +Important note: If /dev/urandom is available, OpenSSL often seeds the PRNG with it while checking the random state. On systems with /dev/urandom OpenSSL is likely to use it even though it is listed at the very bottom of the list above. This is the behaviour of OpenSSL and not stunnel.
+ +Stunnel 4.40 and later contains hardcoded 2048-bit DH parameters.
+It is also possible to specify DH parameters in the certificate file:
-- openssl dhparam 2048 >> stunnel.pem+ +
openssl dhparam 2048 >> stunnel.pem
+
DH parameter generation may take several minutes.
--
-stunnel configuration file
+ +stunnel configuration file
+-
-Option execargs and Win32 command line does not support quoting.
--
-Option execargs and Win32 command line does not support quoting.
+ +access control facility for internet services
-internet 'super-server'
stunnel homepage
+ +internet 'super-server'
+stunnel homepage
+OpenSSL project website
+ +OpenSSL project website
+-
-<Michal.Trojnara@mirt.net>
+-
-stunnel - uniwersalny tunel protokołu SSL
--
-stunnel [<plik>] | -fd n | -help | -version | -sockets
-stunnel [<plik>] | -fd n | -help | -version | -sockets
+ + +stunnel [ [-install | -uninstall | -start | -stop ] | -exit] - [-quiet] [<plik>] ] | -help | -version | -sockets
+ +stunnel [ [-install | -uninstall | -start | -stop ] | -exit] [-quiet] [<plik>] ] | -help | -version | -sockets
+-
-Program stunnel został zaprojektowany do opakowywania w protokół SSL -połączeń pomiędzy zdalnymi klientami a lokalnymi lub zdalnymi serwerami. -Przez serwer lokalny rozumiana jest aplikacja przeznaczona do uruchamiania -przy pomocy inetd. -Stunnel pozwala na proste zestawienie komunikacji serwerów nie posiadających -funkcjonalności SSL poprzez bezpieczne kanały SSL.
-stunnel pozwala dodać funkcjonalność SSL do powszechnie stosowanych -demonów inetd, np. pop3 lub imap, do samodzielnych demonów, -np. nntp, smtp lub http, a nawet tunelować ppp poprzez gniazda sieciowe -bez zmian w kodzie źródłowym.
--
-Program stunnel został zaprojektowany do opakowywania w protokół SSL połączeń pomiędzy zdalnymi klientami a lokalnymi lub zdalnymi serwerami. Przez serwer lokalny rozumiana jest aplikacja przeznaczona do uruchamiania przy pomocy inetd. Stunnel pozwala na proste zestawienie komunikacji serwerów nie posiadających funkcjonalności SSL poprzez bezpieczne kanały SSL.
+ +stunnel pozwala dodać funkcjonalność SSL do powszechnie stosowanych demonów inetd, np. pop3 lub imap, do samodzielnych demonów, np. nntp, smtp lub http, a nawet tunelować ppp poprzez gniazda sieciowe bez zmian w kodzie źródłowym.
+ +użyj podanego pliku konfiguracyjnego
-wczytaj konfigurację z podanego deskryptora pliku
-użyj podanego pliku konfiguracyjnego
-drukuj listę wspieranych opcji
drukuj wersję programu i domyślne wartości parametrów
+ +wczytaj konfigurację z podanego deskryptora pliku
+drukuj listę wspieranych opcji
+drukuj domyślne opcje gniazd
+ +drukuj wersję programu i domyślne wartości parametrów
+drukuj domyślne opcje gniazd
+instaluj serwis NT
-odinstaluj serwis NT
-uruchom serwis NT
-zatrzymaj serwis NT
-zatrzymaj uruchomiony program
-nie wyświetlaj okienka informującego o pomyślnym zainstalowaniu lub -odinstalowaniu
+ +nie wyświetlaj okienka informującego o pomyślnym zainstalowaniu lub odinstalowaniu
+-
-Linia w pliku konfiguracyjnym może być:
+ +Linia w pliku konfiguracyjnym może być:
+pusta (ignorowana)
+ +pusta (ignorowana)
+komentarzem rozpoczynającym się znakiem ';' (ignorowana)
+komentarzem rozpoczynającym się znakiem ';' (ignorowana)
+parą 'nazwa_opcji = wartość_opcji'
+parą 'nazwa_opcji = wartość_opcji'
+tekstem '[nazwa_usługi]' wskazującym początek definicji usługi
+tekstem '[nazwa_usługi]' wskazującym początek definicji usługi
+Parametr adres może być:
+ +Parametr adres może być:
+numerem portu
+ +numerem portu
+oddzieloną średnikiem parą adresu (IPv4, IPv6, lub nazwą domenową) i numeru portu
+oddzieloną średnikiem parą adresu (IPv4, IPv6, lub nazwą domenową) i numeru portu
+ścieżką do gniazda Unix (tylko Unix)
+ścieżką do gniazda Unix (tylko Unix)
+-
-katalog roboczego korzenia systemu plików
-Opcja określa katalog, w którym uwięziony zostanie proces programu -stunnel tuż po jego inicjalizacji, a przed rozpoczęciem odbierania -połączeń. Ścieżki podane w opcjach CApath, CRLpath, pid -oraz exec muszą być umieszczone wewnątrz katalogu podanego w opcji -chroot i określone względem tego katalogu.
-Niektóre funkcje systemu operacyjnego mogą wymagać dodatkowych plików umieszczonych w katalogu podanego w parametrze chroot:
+ +katalog roboczego korzenia systemu plików
+ +Opcja określa katalog, w którym uwięziony zostanie proces programu stunnel tuż po jego inicjalizacji, a przed rozpoczęciem odbierania połączeń. Ścieżki podane w opcjach CApath, CRLpath, pid oraz exec muszą być umieszczone wewnątrz katalogu podanego w opcji chroot i określone względem tego katalogu.
+ +Niektóre funkcje systemu operacyjnego mogą wymagać dodatkowych plików umieszczonych w katalogu podanego w parametrze chroot:
+opóźnione rozwinięcie adresów DNS typowo wymaga /etc/nsswitch.conf i /etc/resolv.conf
+ +opóźnione rozwinięcie adresów DNS typowo wymaga /etc/nsswitch.conf i /etc/resolv.conf
+lokalizacja strefy czasowej w logach wymaga pliku /etc/timezone
+lokalizacja strefy czasowej w logach wymaga pliku /etc/timezone
+niektóre inne pliki mogą potrzebować plików urządzeń, np. /dev/zero lub /dev/null
+niektóre inne pliki mogą potrzebować plików urządzeń, np. /dev/zero lub /dev/null
+wybór algorytmu kompresji przesyłanych danych
-domyślnie: bez kompresji
-Algorytm deflate jest standardową metodą kompresji zgodnie z RFC 1951.
-Kompresja zlib zaimplementowana w OpenSSL 0.9.8 i nowszych nie jest -kompatybilna implementacją OpenSSL 0.9.7.
-Kompresja rle nie jest zaimplementowana w aktualnych wersjach OpenSSL.
szczegółowość logowania
-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 -debug = debug lub debug = 7. Domyślnym poziomem jest notice (5).
-O ile nie wyspecyfikowano podsystemu użyty będzie domyślny: daemon. -Podsystemy nie są wspierane przez platformę Win32.
-Wielkość liter jest ignorowana zarówno dla poziomu jak podsystemu.
-wybór algorytmu kompresji przesyłanych danych
+ +domyślnie: bez kompresji
+ +Algorytm deflate jest standardową metodą kompresji zgodnie z RFC 1951.
+ +Kompresja zlib zaimplementowana w OpenSSL 0.9.8 i nowszych nie jest kompatybilna implementacją OpenSSL 0.9.7.
+ +Kompresja rle nie jest zaimplementowana w aktualnych wersjach OpenSSL.
+ + +ścieżka do gniazda programu Entropy Gathering Daemon
-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ą.
+ +szczegółowość logowania
+ +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 debug = debug lub debug = 7. Domyślnym poziomem jest notice (5).
+ +O ile nie wyspecyfikowano podsystemu użyty będzie domyślny: daemon. Podsystemy nie są wspierane przez platformę Win32.
+ +Wielkość liter jest ignorowana zarówno dla poziomu jak podsystemu.
+ścieżka do gniazda programu Entropy Gathering Daemon
+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ą.
+ +wybór sprzętowego urządzenia kryptograficznego
-domyślnie: bez wykorzystania urządzeń kryptograficznych
-Przykładowa konfiguracja umożliwiająca odczytanie klucza prywatnego z -urządzenia zgodnego z OpenSC:
-- engine=dynamic + ++ +wybór sprzętowego urządzenia kryptograficznego
+ +domyślnie: bez wykorzystania urządzeń kryptograficznych
+ +Przykładowa konfiguracja umożliwiająca odczytanie klucza prywatnego z urządzenia zgodnego z OpenSC:
+ +-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
+ engineCtrl=INIT + [service] engineNum=1 - key=id_45+ key=id_45
konfiguracja urządzenia kryptograficznego
+ +Specjalne komendy "LOAD" i "INIT" pozwalają na załadowanie i inicjalizację modułu kryptograficznego urządzenia.
+ +Włącz lub wyłącz tryb FIPS 140-2.
+ +Opcja pozwala wyłączyć wejście w tryb FIPS, jeśli stunnel został skompilowany ze wsparciem dla FIPS 140-2.
+ +domyślnie: yes (pracuj w trybie FIPS 140-2)
+ +tryb pierwszoplanowy
+ +Użycie tej opcji powoduje, że stunnel nie przechodzi w tło logując swoje komunikaty na konsolę zamiast przez syslog (o ile nie użyto opcji output).
+plik, do którego dopisane zostaną logi
+Użycie tej opcji powoduje dopisanie logów do podanego pliku.
+ +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.
+ +konfiguracja urządzenia kryptograficznego
-Specjalne komendy "LOAD" i "INIT" pozwalają na załadowanie i inicjalizację -modułu kryptograficznego urządzenia.
+ +położenie pliku z numerem procesu
+ +Jeżeli argument jest pusty plik nie zostanie stworzony.
+ +Jeżeli zdefiniowano katalog chroot, to ścieżka do pid jest określona względem tego katalogu.
+liczba bajtów do zainicjowania generatora pseudolosowego
+ +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.
+ +Włącz lub wyłącz tryb FIPS 140-2.
-Opcja pozwala wyłączyć wejście w tryb FIPS, jeśli stunnel został -skompilowany ze wsparciem dla FIPS 140-2.
-domyślnie: yes (pracuj w trybie FIPS 140-2)
+ +ścieżka do pliku zawierającego losowe dane
+ +Biblioteka OpenSSL użyje danych z tego pliku do zainicjowania generatora pseudolosowego.
+nadpisz plik nowymi wartościami pseudolosowymi
+ +domyślnie: yes (nadpisz)
+tryb pierwszoplanowy
-Użycie tej opcji powoduje, że stunnel nie przechodzi w tło logując -swoje komunikaty na konsolę zamiast przez syslog (o ile nie użyto -opcji output).
+ +użyj parametru jako nazwy serwisu dla biblioteki TCP Wrapper w trybie inetd
+ +domyślnie: stunnel
+ +grupa z której prawami pracował będzie stunnel
+ +użytkownik, z którego prawami pracował będzie stunnel
+ +ustaw opcję na akceptującym/lokalnym/zdalnym gnieździe
+ +Dla opcji linger wartości mają postać l_onof:l_linger. Dla opcji time wartości mają postać tv_sec:tv_usec.
+ +Przykłady:
+ + 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)
+
+włącz logowanie poprzez mechanizm syslog
+ +domyślnie: yes (włącz)
+ +włącz ikonkę w prawym dolnym rogu ekranu
+ +domyślnie: yes (włącz)
+ +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.
+ +Jeżeli stunnel ma zostać użyty w trybie inetd, gdzie za odebranie połączenia odpowiada osobny program (zwykle inetd, xinetd lub tcpserver), należy przeczytać sekcję TRYB INETD poniżej.
+ +nasłuchuje na połączenia na podanym adresie i porcie
+ +Jeżeli nie został podany adres, stunnel domyślnie nasłuchuje na wszystkich adresach IPv4 lokalnych interfejsów.
+ +Aby nasłuchiwać na wszystkich adresach IPv6 należy użyć:
+ + accept = :::port
+
katalog Centrum Certyfikacji
+Opcja określa katalog, w którym stunnel będzie szukał certyfikatów, jeżeli użyta została opcja verify. Pliki z certyfikatami muszą posiadać specjalne nazwy XXXXXXXX.0, gdzie XXXXXXXX jest skrótem kryptograficznym reprezentacji DER nazwy podmiotu certyfikatu.
+ +Funkcja skrótu została zmieniona w OpenSSL 1.0.0. Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.
+ +Jeżeli zdefiniowano katalog chroot, to ścieżka do CApath jest określona względem tego katalogu.
+ +plik, do którego dopisane zostaną logi
-Użycie tej opcji powoduje dopisanie logów do podanego pliku.
-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.
+ +plik Centrum Certyfikacji
+ +Opcja pozwala określić położenie pliku zawierającego certyfikaty używane przez opcję verify.
+plik z łańcuchem certyfikatów
+ +Opcja określa położenie pliku zawierającego certyfikaty używane przez program stunnel do uwierzytelnienia się przed drugą stroną połączenia. Certyfikat jest konieczny, aby używać programu w trybie serwera. W trybie klienta certyfikat jest opcjonalny.
+ +położenie pliku z numerem procesu
-Jeżeli argument jest pusty plik nie zostanie stworzony.
-Jeżeli zdefiniowano katalog chroot, to ścieżka do pid jest określona -względem tego katalogu.
+ +adres email przedstawionego certyfikatu
+ +Pojedyncza sekcja może zawierać wiele wystąpień opcji checkEmail. Certyfikaty są akceptowane, jeżeli sekcja nie zawiera opcji checkEmail, albo adres email przedstawionego certyfikatu pasuje do jednego z adresów email określonych przy pomocy checkEmail.
+ +Opcja ta wymaga biblioteki OpenSSL w wersji 1.0.2 lub nowszej.
+nazwa serwera przedstawionego certyfikatu
+ +Pojedyncza sekcja może zawierać wiele wystąpień opcji checkHost. Certyfikaty są akceptowane, jeżeli sekcja nie zawiera opcji checkHost, albo nazwa serwera przedstawionego certyfikatu pasuje do jednego nazw określonych przy pomocy checkHost.
+ +Opcja ta wymaga biblioteki OpenSSL w wersji 1.0.2 lub nowszej.
+ +liczba bajtów do zainicjowania generatora pseudolosowego
-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.
+ +adres IP przedstawionego certyfikatu
+ +Pojedyncza sekcja może zawierać wiele wystąpień opcji checkIP. Certyfikaty są akceptowane, jeżeli sekcja nie zawiera opcji checkIP, albo adres IP przedstawionego certyfikatu pasuje do jednego z adresów IP określonych przy pomocy checkIP.
+ +Opcja ta wymaga biblioteki OpenSSL w wersji 1.0.2 lub nowszej.
+lista dozwolonych szyfrów SSL
+ +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
+ścieżka do pliku zawierającego losowe dane
-Biblioteka OpenSSL użyje danych z tego pliku do zainicjowania -generatora pseudolosowego.
+ +tryb kliencki (zdalna usługa używa SSL)
+ +domyślnie: no (tryb serwerowy)
+połącz się ze zdalnym serwerem na podany port
+Jeżeli nie został podany adres, stunnel domyślnie łączy się z lokalnym serwerem.
+ +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.
+ +nadpisz plik nowymi wartościami pseudolosowymi
-domyślnie: yes (nadpisz)
+ +katalog List Odwołanych Certyfikatów (CRL)
+ +Opcja określa katalog, w którym stunnel będzie szukał list CRL, jeżeli użyta została opcja verify. Pliki z listami CRL muszą posiadać specjalne nazwy XXXXXXXX.r0, gdzie XXXXXXXX jest skrótem listy CRL.
+ +Funkcja skrótu została zmieniona OpenSSL 1.0.0. Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.
+ +Jeżeli zdefiniowano katalog chroot, to ścieżka do CRLpath jest określona względem tego katalogu.
+plik List Odwołanych Certyfikatów (CRL)
+ +Opcja pozwala określić położenie pliku zawierającego listy CRL używane przez opcję verify.
+użyj parametru jako nazwy serwisu dla biblioteki TCP Wrapper w trybie inetd
-domyślnie: stunnel
+ +krzywa dla ECDH
+ +Listę dostępnych krzywych można uzyskać poleceniem:
+ + openssl ecparam -list_curves
+
+domyślnie: prime256v1
+opóźnij rozwinięcie adresu DNS podanego w opcji connect
+ +Opcja jest przydatna przy dynamicznym DNS, albo gdy usługa DNS nie jest dostępna przy starcie programu stunnel (klient VPN, połączenie wdzwaniane).
+ +grupa z której prawami pracował będzie stunnel
+ +wybierz urządzenie do odczyta klucza prywatnego
+ +Urządzenia są numerowane od 1 w górę.
+wykonaj lokalny program przystosowany do pracy z superdemonem inetd
+ +Jeżeli zdefiniowano katalog chroot, to ścieżka do exec jest określona względem tego katalogu.
+użytkownik, z którego prawami pracował będzie stunnel
+ +argumenty do opcji exec włącznie z nazwą programu ($0)
+ +Cytowanie nie jest wspierane w obecnej wersji programu. Argumenty są rozdzielone dowolną liczbą białych znaków.
+Strategia wybierania serwerów wyspecyfikowanych parametrami "connect".
+ + rr (round robin) - sprawiedliwe rozłożenie obciążenia
+ prio (priority) - użyj kolejności opcji w pliku konfiguracyjnym
+domyślnie: rr
+ +ustaw opcję na akceptującym/lokalnym/zdalnym gnieździe
-Dla opcji linger wartości mają postać l_onof:l_linger. -Dla opcji time wartości mają postać tv_sec:tv_usec.
-Przykłady:
-- 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)+ +
weryfikuj nazwę zdalnego użytkownika korzystając z protokołu IDENT (RFC 1413)
+klucz prywatny do certyfikatu podanego w opcji cert
+ +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ą:
+ + chmod 600 keyfile
+domyślnie: wartość opcji cert
+ +włącz logowanie poprzez mechanizm syslog
-domyślnie: yes (włącz)
+ +włącz lub wyłącz korzystanie z /etc/hosts.allow i /etc/hosts.deny.
+ +domyślnie: yes
+IP źródła do nawiązywania zdalnych połączeń
+ +Domyślnie używane jest IP najbardziej zewnętrznego interfejsu w stronę serwera, do którego nawiązywane jest połączenie.
+ +Użyj usługi jako podrzędnej (virtualnego serwera) dla rozszerzenia TLS Server Name Indication (RFC 3546).
+ +nazwa_usługi wskazuje usługę nadrzędną, która odbiera połączenia od klientów przy pomocy opcji accept. wzorzec_nazwy_serwera wskazuje nazwę serwera wirtualnego. Wzorzec może zaczynać się znakiem '*', np. '*.example.com". Z pojedyńczą usługą nadrzędną powiązane jest zwykle wiele usług podrzędnych. Opcja sni może być rownież użyta wielokrotnie w ramach jednej usługi podrzędnej.
+ +Zarówno usługa nadrzędna jak i podrzędna nie może być skonfigurowana w trybie klienckim.
+ +Opcja connect usługi podrzędnej jest ignorowana w połączeniu z opcją protocol, 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.
+ +Opcja sni jest dostępna począwszy od OpenSSL 1.0.0.
+ +włącz ikonkę w prawym dolnym rogu ekranu
-domyślnie: yes (włącz)
+ +Użyj parametru jako wartości rozszerzenia TLS Server Name Indication (RFC 3546).
+ +Opcja sni jest dostępna począwszy od OpenSSL 1.0.0.
+-
-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.
-Jeżeli stunnel ma zostać użyty w trybie inetd, gdzie za odebranie -połączenia odpowiada osobny program (zwykle inetd, xinetd -lub tcpserver), należy przeczytać sekcję TRYB INETD poniżej.
+serwer OCSP do weryfikacji certyfikatów
+ +weryfikuj certyfikaty przy użyciu respondertów AIA
+ +flaga serwera OCSP
+ +aktualnie wspierane flagi: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME
+ +Aby wyspecyfikować kilka flag należy użyć OCSPflag wielokrotnie.
+ +wysyłaj i weryfikuj OCSP nonce
+ +Opcja OCSPnonce zabezpiecza protokół OCSP przed atakami powtórzeniowymi. Ze względu na złożoność obliczeniową rozszerzenie nonce jest zwykle wspierane jedynie przez wewnętrzne (np. korporacyjne), a nie przez publiczne respondery OCSP.
+ +opcje biblioteki OpenSSL
+ +Parametrem jest nazwa opcji zgodnie z opisem w SSL_CTX_set_options(3ssl), ale bez przedrostka SSL_OP_. Aby wyspecyfikować kilka opcji należy użyć options wielokrotnie.
+ +Na przykład dla zachowania kompatybilności z błędami implementacji SSL w programie Eudora można użyć opcji:
+ + options = DONT_INSERT_EMPTY_FRAGMENTS
+
+negocjuj SSL podanym protokołem aplikacyjnym
+ +Opcja ta włącza wstępną negocjację szyfrowania SSL dla wybranego protokołu aplikacyjnego. Opcji protocol nie należy używać z szyfrowaniem SSL na osobnym porcie.
+ +Aktualnie wspierane protokoły:
+Unieudokumentowane rozszerzenie protokołu CIFS wspierane przez serwer Samba. Wsparcie dla tego rozrzeczenia zostało zarzucone w wersji 3.0.0 serwera Samba.
+ +nasłuchuje na połączenia na podanym adresie i porcie
-Jeżeli nie został podany adres, stunnel domyślnie nasłuchuje -na wszystkich adresach IPv4 lokalnych interfejsów.
-Aby nasłuchiwać na wszystkich adresach IPv6 należy użyć:
-- accept = :::port+ +
Negocjacja RFC 2817 - Upgrading to TLS Within HTTP/1.1, rozdział 5.2 - Requesting a Tunnel with CONNECT
+ +Ten protokół jest wspierany wyłącznie w trybie klienckim.
+Negocjacja RFC 2595 - Using TLS with IMAP, POP3 and ACAP
+katalog Centrum Certyfikacji
-Opcja określa katalog, w którym stunnel będzie szukał certyfikatów, -jeżeli użyta została opcja verify. Pliki z certyfikatami muszą -posiadać specjalne nazwy XXXXXXXX.0, gdzie XXXXXXXX jest skrótem -kryptograficznym reprezentacji DER nazwy podmiotu certyfikatu.
-Funkcja skrótu została zmieniona w OpenSSL 1.0.0. -Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.
-Jeżeli zdefiniowano katalog chroot, to ścieżka do CApath jest określona -względem tego katalogu.
+ +Negocjacja RFC 4642 - Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)
+ +Ten protokół jest wspierany wyłącznie w trybie klienckim.
+Negocjacja http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
+ +plik Centrum Certyfikacji
-Opcja pozwala określić położenie pliku zawierającego certyfikaty używane -przez opcję verify.
+ +Negocjacja RFC 2449 - POP3 Extension Mechanism
+Przekazywanie adresu IP haproxy http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
+ +plik z łańcuchem certyfikatów
-Opcja określa położenie pliku zawierającego certyfikaty używane przez -program stunnel do uwierzytelnienia się przed drugą stroną połączenia. -Certyfikat jest konieczny, aby używać programu w trybie serwera. -W trybie klienta certyfikat jest opcjonalny.
+ +Negocjacja RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
+ +rodzaj uwierzytelnienia do negocjacji protokołu
+ +aktualnie wspierane: basic, NTLM
+ +Obecnie typ uwierzytelnienia ma zastosowanie wyłącznie w protokole 'connect'.
+ +domyślnie: basic
-lista dozwolonych szyfrów SSL
-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
tryb kliencki (zdalna usługa używa SSL)
-domyślnie: no (tryb serwerowy)
-połącz się ze zdalnym serwerem na podany port
-Jeżeli nie został podany adres, stunnel domyślnie łączy się -z lokalnym serwerem.
-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.
-adres docelowy do negocjacji protokołu
-katalog List Odwołanych Certyfikatów (CRL)
-Opcja określa katalog, w którym stunnel będzie szukał list CRL, -jeżeli użyta została opcja verify. Pliki z listami CRL muszą -posiadać specjalne nazwy XXXXXXXX.r0, gdzie XXXXXXXX jest skrótem -listy CRL.
-Funkcja skrótu została zmieniona OpenSSL 1.0.0. -Należy wykonać c_rehash przy zmianie OpenSSL 0.x.x na 1.x.x.
-Jeżeli zdefiniowano katalog chroot, to ścieżka do CRLpath jest określona -względem tego katalogu.
-protocolHost określa docelowy serwer SSL, do którego połączyć ma się proxy. Nie jest to adres serwera proxy, do którego połączenie zestawia stunnel. Adres serwera proxy powinien być określony przy pomocy opcji 'connect'.
-plik List Odwołanych Certyfikatów (CRL)
-Opcja pozwala określić położenie pliku zawierającego listy CRL używane -przez opcję verify.
-W obecnej wersji adres docelowy protokołu ma zastosowanie wyłącznie w protokole 'connect'.
-krzywa dla ECDH
-Listę dostępnych krzywych można uzyskać poleceniem:
-- openssl ecparam -list_curves-
domyślnie: prime256v1
opóźnij rozwinięcie adresu DNS podanego w opcji connect
-Opcja jest przydatna przy dynamicznym DNS, albo gdy usługa DNS nie jest -dostępna przy starcie programu stunnel (klient VPN, połączenie wdzwaniane).
-wybierz urządzenie do odczyta klucza prywatnego
-Urządzenia są numerowane od 1 w górę.
-hasło do negocjacji protokołu
-wykonaj lokalny program przystosowany do pracy z superdemonem inetd
-Jeżeli zdefiniowano katalog chroot, to ścieżka do exec jest określona -względem tego katalogu.
argumenty do opcji exec włącznie z nazwą programu ($0)
-Cytowanie nie jest wspierane w obecnej wersji programu. -Argumenty są rozdzielone dowolną liczbą białych znaków.
-Strategia wybierania serwerów wyspecyfikowanych parametrami "connect".
-- rr (round robin) - sprawiedliwe rozłożenie obciążenia - prio (priority) - użyj kolejności opcji w pliku konfiguracyjnym-
domyślnie: rr
-nazwa użytkownika do negocjacji protokołu
-weryfikuj nazwę zdalnego użytkownika korzystając z protokołu IDENT (RFC 1413)
klucz prywatny do certyfikatu podanego w opcji cert
-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ą:
-- chmod 600 keyfile-
domyślnie: wartość opcji cert
-włącz lub wyłącz korzystanie z /etc/hosts.allow i /etc/hosts.deny.
-domyślnie: yes
-alokuj pseudoterminal dla programu uruchamianego w opcji 'exec'
-IP źródła do nawiązywania zdalnych połączeń
-Domyślnie używane jest IP najbardziej zewnętrznego interfejsu w stronę -serwera, do którego nawiązywane jest połączenie.
Użyj usługi jako podrzędnej (virtualnego serwera) dla rozszerzenia TLS Server -Name Indication (RFC 3546).
-nazwa_usługi wskazuje usługę nadrzędną, która odbiera połączenia od klientów -przy pomocy opcji accept. wzorzec_nazwy_serwera wskazuje nazwę serwera -wirtualnego. Wzorzec może zaczynać się znakiem '*', np. '*.example.com". -Z pojedyńczą usługą nadrzędną powiązane jest zwykle wiele usług podrzędnych. -Opcja sni może być rownież użyta wielokrotnie w ramach jednej usługi -podrzędnej.
-Zarówno usługa nadrzędna jak i podrzędna nie może być skonfigurowana w trybie -klienckim.
-Opcja connect usługi podrzędnej jest ignorowana w połączeniu z opcją -protocol, 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.
-Opcja sni jest dostępna począwszy od OpenSSL 1.0.0.
-Użyj parametru jako wartości rozszerzenia TLS Server Name Indication -(RFC 3546).
-Opcja sni jest dostępna począwszy od OpenSSL 1.0.0.
-pozwalaj na renegocjację SSL
-serwer OCSP do weryfikacji certyfikatów
-Wśród zastosowań renegocjacji SSL są niektóre scenariusze uwierzytelnienia, oraz renegocjacja kluczy dla długotrwałych połączeń.
-flaga serwera OCSP
-aktualnie wspierane flagi: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, -NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME
-Aby wyspecyfikować kilka flag należy użyć OCSPflag wielokrotnie.
-Z drugiej strony własność na może ułatwić trywialny atak DoS poprzez wygenerowanie obciążenia procesora:
-opcje biblioteki OpenSSL
-Parametrem jest nazwa opcji zgodnie z opisem w SSL_CTX_set_options(3ssl), -ale bez przedrostka SSL_OP_. -Aby wyspecyfikować kilka opcji należy użyć options wielokrotnie.
-Na przykład dla zachowania kompatybilności z błędami implementacji SSL -w programie Eudora można użyć opcji:
-- options = DONT_INSERT_EMPTY_FRAGMENTS-
http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
-negocjuj SSL podanym protokołem aplikacyjnym
-Opcja ta włącza wstępną negocjację szyfrowania SSL dla wybranego protokołu -aplikacyjnego. -Opcji protocol nie należy używać z szyfrowaniem SSL na osobnym porcie.
-Aktualnie wspierane protokoły:
-Warto zauważyć, że zablokowanie renegocjacji SSL nie zebezpiecza w pełni przed opisanym problemem.
-Unieudokumentowane rozszerzenie protokołu CIFS wspierane przez serwer Samba. -Wsparcie dla tego rozrzeczenia zostało zarzucone w wersji 3.0.0 serwera Samba.
-domyślnie: yes (o ile wspierane przez OpenSSL)
-Negocjacja RFC 2817 - Upgrading to TLS Within HTTP/1.1, rozdział 5.2 - Requesting a Tunnel with CONNECT
-Ten protokół jest wspierany wyłącznie w trybie klienckim.
Negocjacja RFC 2595 - Using TLS with IMAP, POP3 and ACAP
-Negocjacja RFC 4642 - Using Transport Layer Security (TLS) with Network News Transfer Protocol (NNTP)
-Ten protokół jest wspierany wyłącznie w trybie klienckim.
-sygnalizuj wystąpienie błędu przy pomocy flagi TCP RST
-Negocjacja http://www.postgresql.org/docs/8.3/static/protocol-flow.html#AEN73982
-Ta opcja nie jest wspierana na niektórych platformach.
-Negocjacja RFC 2449 - POP3 Extension Mechanism
-domyślnie: yes
-Przekazywanie adresu IP haproxy http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
Negocjacja RFC 2487 - SMTP Service Extension for Secure SMTP over TLS
-rodzaj uwierzytelnienia do negocjacji protokołu
-aktualnie wspierane: basic, NTLM
-Obecnie typ uwierzytelnienia ma zastosowanie wyłącznie w protokole 'connect'.
-domyślnie: basic
-połącz ponownie sekcję connect+exec po rozłączeniu
-adres docelowy do negocjacji protokołu
-protocolHost określa docelowy serwer SSL, do którego połączyć ma się proxy. -Nie jest to adres serwera proxy, do którego połączenie zestawia stunnel. -Adres serwera proxy powinien być określony przy pomocy opcji 'connect'.
-W obecnej wersji adres docelowy protokołu ma zastosowanie wyłącznie w protokole -'connect'.
-domyślnie: no
-hasło do negocjacji protokołu
nazwa użytkownika do negocjacji protokołu
-alokuj pseudoterminal dla programu uruchamianego w opcji 'exec'
-rozmiar pamięci podręcznej sesji SSL
-pozwalaj na renegocjację SSL
-Wśród zastosowań renegocjacji SSL są niektóre scenariusze uwierzytelnienia, -oraz renegocjacja kluczy dla długotrwałych połączeń.
-Z drugiej strony własność na może ułatwić trywialny atak DoS poprzez -wygenerowanie obciążenia procesora:
-http://vincent.bernat.im/en/blog/2011-ssl-dos-mitigation.html
-Warto zauważyć, że zablokowanie renegocjacji SSL nie zebezpiecza w pełni -przed opisanym problemem.
-domyślnie: yes (o ile wspierane przez OpenSSL)
-Parametr określa maksymalną liczbę pozycji wewnętrznej pamięci podręcznej sesji.
-sygnalizuj wystąpienie błędu przy pomocy flagi TCP RST
-Ta opcja nie jest wspierana na niektórych platformach.
-domyślnie: yes
-Wartość 0 oznacza brak ograniczenia rozmiaru. Nie jest to zalecane dla systemów produkcyjnych z uwagi na ryzyko ataku DoS przez wyczerpanie pamięci RAM.
-połącz ponownie sekcję connect+exec po rozłączeniu
-domyślnie: no
rozmiar pamięci podręcznej sesji SSL
-Parametr określa maksymalną liczbę pozycji wewnętrznej pamięci podręcznej -sesji.
-Wartość 0 oznacza brak ograniczenia rozmiaru. Nie jest to zalecane dla -systemów produkcyjnych z uwagi na ryzyko ataku DoS przez wyczerpanie pamięci -RAM.
-przeterminowanie pamięci podręcznej sesji SSL
-Parametr określa czas w sekundach, po którym sesja SSL zostanie usunięta z -pamięci podręcznej.
-przeterminowanie pamięci podręcznej sesji SSL
+ +Parametr określa czas w sekundach, po którym sesja SSL zostanie usunięta z pamięci podręcznej.
+ +adres sessiond - servera cache sesji SSL
-wersja protokołu SSL
+ +wersja protokołu SSL
+Dozwolone opcje: all, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2
-rozmiar stosu procesora wątku
rozmiar stosu procesora wątku
+czas oczekiwania na spodziewane dane
-czas oczekiwania na close_notify (ustaw na 0, jeżeli klientem jest MSIE)
czas oczekiwania na nawiązanie połączenia
-czas oczekiwania na close_notify (ustaw na 0, jeżeli klientem jest MSIE)
+ + +maksymalny czas utrzymywania bezczynnego połączenia
+ +czas oczekiwania na nawiązanie połączenia
+maksymalny czas utrzymywania bezczynnego połączenia
+tryb przezroczystego proxy na wspieranych platformach
+Wspierane opcje:
+Zablokuj wsparcie dla przezroczystago proxy. Jest to wartość domyślna.
-Zablokuj wsparcie dla przezroczystago proxy. Jest to wartość domyślna.
+ +Przepisz adres, aby nawiązywane połączenie wydawało się pochodzić -bezpośrednio od klienta, a nie od programu stunnel.
-Opcja jest aktualnie obsługiwana w:
+ +Przepisz adres, aby nawiązywane połączenie wydawało się pochodzić bezpośrednio od klienta, a nie od programu stunnel.
+ +Opcja jest aktualnie obsługiwana w:
+Konfiguracja wymaga następujących ustawień iptables oraz routingu -(na przykład w pliku /etc/rc.local lub analogicznym):
-- iptables -t mangle -N DIVERT + +Konfiguracja wymaga następujących ustawień iptables oraz routingu (na przykład w pliku /etc/rc.local lub analogicznym):
+ +-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
Konfiguracja ta wymaga, aby stunnel był wykonywany jako root i bez opcji setuid.
-
Konfiguracja ta wymaga skompilowania jądra z opcją transparent proxy. -Docelowa usługa musi być umieszczona na osobnej maszynie, do której routing -kierowany jest poprzez serwer stunnela.
-Dodatkowo stunnel powinien być wykonywany jako root i bez opcji setuid.
-Konfiguracja ta wymaga, aby stunnel był wykonywany jako root i bez opcji setuid.
+Konfiguracja ta wymaga skonfigurowania firewalla i routingu. -stunnel musi być wykonywany jako root i bez opcji setuid.
+ +Konfiguracja ta wymaga skompilowania jądra z opcją transparent proxy. Docelowa usługa musi być umieszczona na osobnej maszynie, do której routing kierowany jest poprzez serwer stunnela.
+ +Dodatkowo stunnel powinien być wykonywany jako root i bez opcji setuid.
+Konfiguracja ta wymaga skonfigurowania firewalla i routingu. stunnel musi być wykonywany jako root i bez opcji setuid.
+ +Konfiguracja ta jest realizowana przy pomocy biblioteki libstunnel.so. -Do załadowania biblioteki wykorzystywana jest zmienna środowiskowa _RLD_LIST na -platformie Tru64 lub LD_PRELOAD na innych platformach.
+ +Konfiguracja ta jest realizowana przy pomocy biblioteki libstunnel.so. Do załadowania biblioteki wykorzystywana jest zmienna środowiskowa _RLD_LIST na platformie Tru64 lub LD_PRELOAD na innych platformach.
+Oryginalny adres docelowy jest używany zamiast opcji connect.
-Przykładowana konfiguracja przezroczystego adresu docelowego:
-- [transparent] + +Oryginalny adres docelowy jest używany zamiast opcji connect.
+ +Przykładowana konfiguracja przezroczystego adresu docelowego:
+ +-[transparent] client=yes accept=<port_stunnela> - transparent=destination
Konfiguracja wymaga następujących ustawień iptables -(na przykład w pliku /etc/rc.local lub analogicznym):
-- /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>-Przezroczysty adres docelowy jest aktualnie wspierany wyłącznie w systemie Linux.
-
Konfiguracja wymaga następujących ustawień iptables (na przykład w pliku /etc/rc.local lub analogicznym):
+ + /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>
+
+Przezroczysty adres docelowy jest aktualnie wspierany wyłącznie w systemie Linux.
+ + +Użyj przezroczystego proxy zarówno dla adresu źródłowego jak i docelowego.
+ +Użyj przezroczystego proxy zarówno dla adresu źródłowego jak i docelowego.
+Dla zapewnienia kompatybilności z wcześniejszymim wersjami wspierane są dwie -dodatkowe opcje:
+ +Dla zapewnienia kompatybilności z wcześniejszymim wersjami wspierane są dwie dodatkowe opcje:
+Opcja została przemianowana na source.
-Opcja została przemianowana na source.
+ + +Opcja została przemianowana na none.
+ +Opcja została przemianowana na none.
+weryfikuj certyfikat drugiej strony połączenia
+ +weryfikuj certyfikat drugiej strony połączenia
+zarządaj certyfikatu i zignoruj go
-weryfikuj, jeżeli został przedstawiony
+zarządaj certyfikatu i zignoruj go
+weryfikuj, jeżeli został przedstawiony
+weryfikuj z zainstalowanym certyfikatem Centrum Certyfikacji
-weryfikuj z lokalnie zainstalowanym certyfikatem drugiej strony
-weryfikuj z certyfikatem drugiej strony ignorując łańcuch CA
weryfikuj z certyfikatem drugiej strony ignorując łańcuch CA
+ +nie weryfikuj
+-
-stunnel zwraca zero w przypadku sukcesu, lub wartość niezerową -w przypadku błędu.
--
-Następujące sygnały mogą być użyte do sterowania programem w systemie Unix:
+ +stunnel zwraca zero w przypadku sukcesu, lub wartość niezerową w przypadku błędu.
+ +Następujące sygnały mogą być użyte do sterowania programem w systemie Unix:
+Załaduj ponownie plik konfiguracyjny.
-Niektóre globalne opcje nie będą przeładowane:
+ +Załaduj ponownie plik konfiguracyjny.
+ +Niektóre globalne opcje nie będą przeładowane:
+chroot
+ +chroot
+foreground
+foreground
+pid
+pid
+setgid
+setgid
+setuid
+setuid
+Jeżeli wykorzystywana jest opcja 'setuid' stunnel nie będzie mógł załadować -ponownie konfiguracji wykorzystującej uprzywilejowane (<1024) porty.
-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'.
-Zamknij i otwórz ponownie log. -Funkcja ta może zostać użyta w skrypcie rotującym log programu stunnel.
+Jeżeli wykorzystywana jest opcja 'setuid' stunnel nie będzie mógł załadować ponownie konfiguracji wykorzystującej uprzywilejowane (<1024) porty.
+ +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'.
+Zamknij i otwórz ponownie log. Funkcja ta może zostać użyta w skrypcie rotującym log programu stunnel.
+ +Zakończ działanie programu.
+ +Zakończ działanie programu.
+Skutek wysłania innych sygnałów jest niezdefiniowany.
--
-Szyfrowanie połączeń do lokalnego serwera imapd można użyć:
-- [imapd] + ++Skutek wysłania innych sygnałów jest niezdefiniowany.
+ +PRZYKŁADY
+ +Szyfrowanie połączeń do lokalnego serwera imapd można użyć:
+ ++ execargs = imapd[imapd] accept = 993 exec = /usr/sbin/imapd - execargs = imapd
albo w trybie zdalnym:
-- [imapd] + ++ +-[imapd] accept = 993 - connect = 143
W połączeniu z programem pppd stunnel pozwala zestawić prosty VPN. -Po stronie serwera nasłuchującego na porcie 2020 jego konfiguracja -może wyglądać następująco:
-- [vpn] + connect = 143+ +W połączeniu z programem pppd stunnel pozwala zestawić prosty VPN. Po stronie serwera nasłuchującego na porcie 2020 jego konfiguracja może wyglądać następująco:
+ +-[vpn] accept = 2020 exec = /usr/sbin/pppd execargs = pppd local - pty = yes
Poniższy plik konfiguracyjny może być wykorzystany do uruchomienia -programu stunnel w trybie inetd. Warto zauważyć, że w pliku -konfiguracyjnym nie ma sekcji [nazwa_usługi].
-- exec = /usr/sbin/imapd - execargs = imapd--
-
-NOTKI
--
-OGRANICZENIA
-stunnel nie może być używany do szyfrowania protokołu FTP, -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 SSL.
--
-TRYB INETD (tylko Unix)
-W większości zastosowań stunnel samodzielnie nasłuchuje na porcie -podanym w pliku konfiguracyjnym i tworzy połączenie z innym portem -podanym w opcji connect lub nowym programem podanym w opcji exec. -Niektórzy wolą jednak wykorzystywać oddzielny program, który odbiera -połączenia, po czym uruchamia program stunnel. Przykładami takich -programów są inetd, xinetd i tcpserver.
-Przykładowa linia pliku /etc/inetd.conf może wyglądać tak:
-- imaps stream tcp nowait root /usr/bin/stunnel - stunnel /etc/stunnel/imaps.conf-Ponieważ w takich przypadkach połączenie na zdefiniowanym porcie -(tutaj imaps) nawiązuje osobny program (tutaj inetd), stunnel -nie może używać opcji accept. W pliku konfiguracyjnym nie może -być również zdefiniowana żadna usługa ([nazwa_usługi]), ponieważ -konfiguracja taka pozwala na nawiązanie tylko jednego połączenia. -Wszystkie OPCJE USŁUG powinny być umieszczone razem z opcjami -globalnymi. Przykład takiej konfiguracji znajduje się w sekcji -PRZYKŁADY.
--
-CERTYFIKATY
-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 OpenSSL. Więcej informacji na temat generowania -certyfikatów można znaleźć na umieszczonych poniżej stronach.
-Istotną kwestią jest kolejność zawartości pliku .pem. -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ć:
-- -----BEGIN RSA PRIVATE KEY----- + pty = yes+ +Poniższy plik konfiguracyjny może być wykorzystany do uruchomienia programu stunnel w trybie inetd. Warto zauważyć, że w pliku konfiguracyjnym nie ma sekcji [nazwa_usługi].
+ ++ +exec = /usr/sbin/imapd + execargs = imapd
NOTKI
+ +OGRANICZENIA
+ +stunnel nie może być używany do szyfrowania protokołu FTP, 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 SSL.
+ +TRYB INETD (tylko Unix)
+ +W większości zastosowań stunnel samodzielnie nasłuchuje na porcie podanym w pliku konfiguracyjnym i tworzy połączenie z innym portem podanym w opcji connect lub nowym programem podanym w opcji exec. Niektórzy wolą jednak wykorzystywać oddzielny program, który odbiera połączenia, po czym uruchamia program stunnel. Przykładami takich programów są inetd, xinetd i tcpserver.
+ +Przykładowa linia pliku /etc/inetd.conf może wyglądać tak:
+ ++ +imaps stream tcp nowait root /usr/bin/stunnel + stunnel /etc/stunnel/imaps.conf
Ponieważ w takich przypadkach połączenie na zdefiniowanym porcie (tutaj imaps) nawiązuje osobny program (tutaj inetd), stunnel nie może używać opcji accept. W pliku konfiguracyjnym nie może być również zdefiniowana żadna usługa ([nazwa_usługi]), ponieważ konfiguracja taka pozwala na nawiązanie tylko jednego połączenia. Wszystkie OPCJE USŁUG powinny być umieszczone razem z opcjami globalnymi. Przykład takiej konfiguracji znajduje się w sekcji PRZYKŁADY.
+ +CERTYFIKATY
+ +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 OpenSSL. Więcej informacji na temat generowania certyfikatów można znaleźć na umieszczonych poniżej stronach.
+ +Istotną kwestią jest kolejność zawartości pliku .pem. 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ć:
+ +------BEGIN RSA PRIVATE KEY----- [zakodowany klucz] -----END RSA PRIVATE KEY----- [pusta linia] -----BEGIN CERTIFICATE----- [zakodowany certyfikat] -----END CERTIFICATE----- - [pusta linia]
-
-LOSOWOŚĆ
-stunnel 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:
+ [pusta linia]
stunnel 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:
+Zawartość pliku podanego w opcji RNDfile.
+ +Zawartość pliku podanego w opcji RNDfile.
+Zawartość pliku o nazwie określonej przez zmienną środowiskową -RANDFILE, o ile jest ona ustawiona.
+Zawartość pliku o nazwie określonej przez zmienną środowiskową RANDFILE, o ile jest ona ustawiona.
+Plik .rnd umieszczony w katalogu domowym użytkownika, -jeżeli zmienna RANDFILE nie jest ustawiona.
+Plik .rnd umieszczony w katalogu domowym użytkownika, jeżeli zmienna RANDFILE nie jest ustawiona.
+Plik podany w opcji '--with-random' w czasie konfiguracji programu.
+Plik podany w opcji '--with-random' w czasie konfiguracji programu.
+Zawartość ekranu w systemie Windows.
+Zawartość ekranu w systemie Windows.
+Gniazdo egd, jeżeli użyta została opcja EGD.
+Gniazdo egd, jeżeli użyta została opcja EGD.
+Gniazdo egd podane w opcji '--with-egd-socket' w czasie konfiguracji -programu.
+Gniazdo egd podane w opcji '--with-egd-socket' w czasie konfiguracji programu.
+Urządzenie /dev/urandom.
+Urządzenie /dev/urandom.
+Współczesne (0.9.5a lub nowsze) wersje biblioteki OpenSSL 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.
-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 RNDfile.
-Plik RNDfile powinien zawierać dane losowe -- również w tym sensie, -że powinny być one inne przy każdym uruchomieniu programu stunnel. -O ile nie użyta została opcja RNDoverwrite jest to robione -automatycznie. Do ręcznego uzyskania takiego pliku użyteczna -może być komenda openssl rand dostarczana ze współczesnymi -wersjami pakietu OpenSSL.
-Jeszcze jedna istotna informacja -- jeżeli dostępne jest urządzenie -/dev/urandom biblioteka OpenSSL ma zwyczaj zasilania nim PRNG w trakcie -sprawdzania stanu generatora. W systemach z /dev/urandom 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 OpenSSL, a nie programu -stunnel.
--
-Począwszy od wersji 4.40 stunnel zawiera w kodzie programu 2048-bitowe -parametry DH.
-Alternatywnie parametry DH można umieścić w pliku razem z certyfikatem:
-- openssl dhparam 2048 >> stunnel.pem-
Wygenerowanie parametrów DH może zająć nawet wiele minut.
--
-Współczesne (0.9.5a lub nowsze) wersje biblioteki OpenSSL 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.
+ +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 RNDfile.
+ +Plik RNDfile powinien zawierać dane losowe -- również w tym sensie, że powinny być one inne przy każdym uruchomieniu programu stunnel. O ile nie użyta została opcja RNDoverwrite jest to robione automatycznie. Do ręcznego uzyskania takiego pliku użyteczna może być komenda openssl rand dostarczana ze współczesnymi wersjami pakietu OpenSSL.
+ +Jeszcze jedna istotna informacja -- jeżeli dostępne jest urządzenie /dev/urandom biblioteka OpenSSL ma zwyczaj zasilania nim PRNG w trakcie sprawdzania stanu generatora. W systemach z /dev/urandom 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 OpenSSL, a nie programu stunnel.
+ +Począwszy od wersji 4.40 stunnel zawiera w kodzie programu 2048-bitowe parametry DH.
+ +Alternatywnie parametry DH można umieścić w pliku razem z certyfikatem:
+ + openssl dhparam 2048 >> stunnel.pem
+
+Wygenerowanie parametrów DH może zająć nawet wiele minut.
+ +plik konfiguracyjny programu
+-
-Opcja execargs oraz linia komend Win32 nie obsługuje cytowania.
--
-Opcja execargs oraz linia komend Win32 nie obsługuje cytowania.
+ +biblioteka kontroli dostępu do usług internetowych
-'super-serwer' internetowy
-biblioteka kontroli dostępu do usług internetowych
+ +strona domowa programu stunnel
+ +'super-serwer' internetowy
+strona domowa programu stunnel
+strona projektu OpenSSL
+ +strona projektu OpenSSL
+-
-<Michal.Trojnara@mirt.net>
+