671 lines
26 KiB
HTML
671 lines
26 KiB
HTML
<?xml version="1.0" ?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<title>stunnel.8</title>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
<link rev="made" href="mailto:root@localhost" />
|
|
</head>
|
|
|
|
<body style="background-color: white">
|
|
|
|
|
|
<!-- INDEX BEGIN -->
|
|
<div name="index">
|
|
<p><a name="__index__"></a></p>
|
|
<!--
|
|
|
|
<ul>
|
|
|
|
<li><a href="#nom">NOM</a></li>
|
|
<li><a href="#synopsis">SYNOPSIS</a></li>
|
|
<li><a href="#description">DESCRIPTION</a></li>
|
|
<li><a href="#options">OPTIONS</a></li>
|
|
<li><a href="#fichier_de_configuration">FICHIER DE CONFIGURATION</a></li>
|
|
<ul>
|
|
|
|
<li><a href="#options_globales">OPTIONS GLOBALES</a></li>
|
|
<li><a href="#options_de_service">OPTIONS DE SERVICE</a></li>
|
|
</ul>
|
|
|
|
<li><a href="#valeur_de_retour">VALEUR DE RETOUR</a></li>
|
|
<li><a href="#exemples">EXEMPLES</a></li>
|
|
<li><a href="#fichiers">FICHIERS</a></li>
|
|
<li><a href="#bogues">BOGUES</a></li>
|
|
<li><a href="#restrictions">RESTRICTIONS</a></li>
|
|
<li><a href="#notes">NOTES</a></li>
|
|
<ul>
|
|
|
|
<li><a href="#mode_inetd">MODE INETD</a></li>
|
|
<li><a href="#certificats">CERTIFICATS</a></li>
|
|
<li><a href="#aleatoire">ALEATOIRE</a></li>
|
|
</ul>
|
|
|
|
<li><a href="#voir_aussi">VOIR AUSSI</a></li>
|
|
<li><a href="#auteur">AUTEUR</a></li>
|
|
<li><a href="#adaptation_fran__aise">ADAPTATION FRANÇAISE</a></li>
|
|
</ul>
|
|
|
|
-->
|
|
|
|
|
|
</div>
|
|
<!-- INDEX END -->
|
|
|
|
<p>
|
|
</p>
|
|
<h1><a name="nom">NOM</a></h1>
|
|
<p>stunnel - tunnel SSL universel</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="synopsis">SYNOPSIS</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="unix" class="item"><strong>Unix:</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p><strong>stunnel</strong> [fichier] | -fd [n] | -help | -version | -sockets</p>
|
|
</dd>
|
|
<dt><strong><a name="win32" class="item"><strong>WIN32:</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p><strong>stunnel</strong> [fichier] | -install | -uninstall | -help | -version | -sockets</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="description">DESCRIPTION</a></h1>
|
|
<p>Le programme <strong>stunnel</strong> est conçu pour fonctionner comme une couche
|
|
de chiffrement <em>SSL</em> entre des clients distants et des serveurs locaux
|
|
(<em>inetd</em>-démarrables) ou distants. Le concept est qu'à partir de daemons
|
|
non-SSL présents sur le système, on peut facilement les configurer pour
|
|
communiquer avec des clients sur des liens sécurisés SSL.</p>
|
|
<p><strong>stunnel</strong> peut être utilisé pour ajouter des fonctionnalités SSL à des
|
|
daemons classiques <em>Inetd</em> tels que les serveurs POP-2, POP-3 et IMAP,
|
|
à d'autres autonomes tels que NNTP, SMTP et HTTP, ainsi que pour tunneliser
|
|
PPP sur des sockets réseau sans modification du code source.</p>
|
|
<p>Ce produit inclut du code de chiffrement écrit par
|
|
Eric Young (<a href="mailto:eay@cryptsoft.com">eay@cryptsoft.com</a>)</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="options">OPTIONS</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="fichier" class="item"><strong>[fichier]</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Utilisation du fichier de configuration spécifié.</p>
|
|
</dd>
|
|
<dt><strong><a name="fd_n_unix_seulement" class="item"><strong>-fd [n]</strong> (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Lecture du fichier de configuration depuis le descripteur de
|
|
fichier indiqué.</p>
|
|
</dd>
|
|
<dt><strong><a name="help" class="item"><strong>-help</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Affiche le menu d'aide de <strong>stunnel</strong>.</p>
|
|
</dd>
|
|
<dt><strong><a name="version" class="item"><strong>-version</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Affiche la version de <strong>stunnel</strong> et les options de compilation.</p>
|
|
</dd>
|
|
<dt><strong><a name="sockets" class="item"><strong>-sockets</strong></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Affiche les options socket par défaut.</p>
|
|
</dd>
|
|
<dt><strong><a name="install" class="item"><strong>-install</strong> (NT/2000/XP seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Installe un service NT.</p>
|
|
</dd>
|
|
<dt><strong><a name="uninstall" class="item"><strong>-uninstall</strong> (NT/2000/XP only)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Désinstalle un service NT.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="fichier_de_configuration">FICHIER DE CONFIGURATION</a></h1>
|
|
<p>Chaque ligne du fichier de configuration peut être soit :</p>
|
|
<ul>
|
|
<li>
|
|
<p>une ligne vide (ignorée) ;</p>
|
|
</li>
|
|
<li>
|
|
<p>un commentaire commençant par « # » (ignoré) ;</p>
|
|
</li>
|
|
<li>
|
|
<p>une paire « option = valeur » ;</p>
|
|
</li>
|
|
<li>
|
|
<p>« [service_name] » indiquant le début de la définition d'un service ;</p>
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
</p>
|
|
<h2><a name="options_globales">OPTIONS GLOBALES</a></h2>
|
|
<dl>
|
|
<dt><strong><a name="capath_r_pertoire" class="item"><strong>CApath</strong> = répertoire</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Répertoire des autorités de certification (CA)</p>
|
|
<p>C'est le répertoire dans lequel <strong>stunnel</strong> cherche les certificats si
|
|
l'on utilise <em>verify</em>. Les certificats doivent être dénommés selon la
|
|
forme XXXXXXXX.0, où XXXXXXXX est la valeur de hachage du certificat.</p>
|
|
<p>Le cas échéant, le répertoire <em>CApath</em> est relatif au répertoire <em>chroot</em>.</p>
|
|
</dd>
|
|
<dt><strong><a name="cafile_fichier" class="item"><strong>CAfile</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Fichier d'autorités de certification</p>
|
|
<p>Ce fichier, utilisé avec <em>verify</em>, contient plusieurs certificats de CA.</p>
|
|
</dd>
|
|
<dt><strong><a name="cert_fichier" class="item"><strong>cert</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Fichier de chaîne de certificats PEM</p>
|
|
<p>Une PEM est toujours nécessaire en mode serveur.
|
|
En mode client, cette option utilise cette PEM comme une chaîne côté client.
|
|
L'utilisation de certificats côté client est optionnelle. Les certificats
|
|
doivent être au format PEM et triés par ordre de niveau décroissant (CA racine
|
|
en premier).</p>
|
|
</dd>
|
|
<dt><strong><a name="pertoire" class="item"><strong>chroot</strong> = répertoire (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Répertoire de chroot du processus <strong>stunnel</strong></p>
|
|
<p><strong>chroot</strong> enferme <strong>stunnel</strong> dans une cellule chroot. <em>CApath</em>, <em>CRLpath</em>, <em>pid</em>
|
|
et <em>exec</em> sont situés à l'intérieur de la cellule et les répertoires doivent être
|
|
relatifs au répertoire correspondant.</p>
|
|
<p>Pour que le contrôle de libwrap (wrappeur TCP) soit effectif dans un environnement
|
|
chroot, il faut aussi y recopier leurs fichiers de configuration (/etc/hosts.allow et
|
|
/etc/hosts.deny).</p>
|
|
</dd>
|
|
<dt><strong><a name="ciphers_listes_de_chiffre" class="item"><strong>ciphers</strong> = listes de chiffre</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Sélection des chiffres SSL autorisés</p>
|
|
<p>Liste délimitée par deux-points (« : ») des chiffres autorisés pour la connexion SSL.
|
|
Exemple : DES-CBC3-SHA:IDEA-CBC-MD5</p>
|
|
</dd>
|
|
<dt><strong><a name="client_yes_no" class="item"><strong>client</strong> = yes | no</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Mode client (Le service distant utilise SSL)</p>
|
|
<p>Par défaut : no (mode server)</p>
|
|
</dd>
|
|
<dt><strong><a name="crlpath_r_pertoire" class="item"><strong>CRLpath</strong> = répertoire</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Répertoire des listes de révocation de certificats (CRL)</p>
|
|
<p>C'est le répertoire dans lequel <strong>stunnel</strong> recherche les CRL avec
|
|
l'option <em>verify</em>. Les CRL doivent être dénommés selon la
|
|
forme XXXXXXXX.0 où XXXXXXXX est la valeur de hachage de la CRL.</p>
|
|
<p>Le cas échéant, le répertoire <em>CRLpath</em> est relatif au répertoire <em>chroot</em>.</p>
|
|
</dd>
|
|
<dt><strong><a name="crlfile_fichier" class="item"><strong>CRLfile</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Fichier de listes de révocation de certificats (CRL)</p>
|
|
<p>Ce fichier, utilisé avec <em>verify</em>, contient plusieurs CRL.</p>
|
|
</dd>
|
|
<dt><strong><a name="debug_facilit_niveau" class="item"><strong>debug</strong> = [facilité.]niveau</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>niveau de déverminage</p>
|
|
<p>Le niveau est un nom ou un numéro conforme à ceux de syslog :
|
|
emerg (0), alert (1), crit (2), err (3), warning (4), notice (5),
|
|
info (6) ou debug (7). Toutes les traces du niveau indiqué et des niveaux
|
|
numériquement inférieurs seront affichées. <strong>debug = debug</strong> ou
|
|
<strong>debug = 7</strong> donneront le maximum d'informations. La valeur par défaut
|
|
est notice (5).</p>
|
|
<p>La facilité syslog « daemon » est utilisée, sauf si un autre nom est spécifié
|
|
(Win32 ne permet pas l'usage des facilités.)</p>
|
|
<p>La casse est ignorée, aussi bien pour la facilité que pour le niveau.</p>
|
|
</dd>
|
|
<dt><strong><a name="chemin" class="item"><strong>EGD</strong> = chemin (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Emplacement du socket du daemon de recueil d'entropie (EGD - Entropy Gathering Daemon)</p>
|
|
<p>Socket EGD à utiliser pour alimenter le générateur d'aléatoires de OpenSSL (disponible
|
|
seulement si la compilation a été effectuée avec OpenSSL 0.9.5a ou supérieur).</p>
|
|
</dd>
|
|
<dt><strong><a name="no" class="item"><strong>foreground</strong> = yes | no (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Mode avant-plan</p>
|
|
<p>Reste en avant-plan (sans fork) et dirige la trace sur stderr
|
|
au lieu de syslog (sauf si <strong>output</strong> est spécifié).</p>
|
|
<p>Par défault : arrière-plan en mode daemon.</p>
|
|
</dd>
|
|
<dt><strong><a name="key_fichier" class="item"><strong>key</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Fichier de clef privée pour le certificat spécifié par <em>cert</em></p>
|
|
<p>La clef privée est nécessaire pour authentifier le titulaire du
|
|
certificat.
|
|
Puisque ce fichier doit rester secret, il ne doit être lisible que
|
|
par son propriétaire. Sur les systèmes Unix, on peut utiliser la
|
|
commande suivante :</p>
|
|
<pre>
|
|
chmod 600 fichier</pre>
|
|
<p>Par défault : Valeur de <em>cert</em></p>
|
|
</dd>
|
|
<dt><strong><a name="options_options_ssl" class="item"><strong>options</strong> = Options_SSL</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Options de la bibliothèque OpenSSL</p>
|
|
<p>Le paramètre est l'option OpenSSL décrite dans la page de man
|
|
<em>SSL_CTX_set_options(3ssl)</em>, débarassée du préfixe <em>SSL_OP_</em>.
|
|
Plusieurs <em>options</em> peuvent être spécifiées.</p>
|
|
<p>Par exemple, pour la compatibilité avec l'implantation SSL défaillante
|
|
d'Eudora, on peut utiliser :</p>
|
|
<pre>
|
|
options = DONT_INSERT_EMPTY_FRAGMENTS</pre>
|
|
</dd>
|
|
<dt><strong><a name="output_fichier" class="item"><strong>output</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Ajoute la trace à la fin d'un fichier au lieu d'utiliser syslog.</p>
|
|
<p>/dev/stdout peut être utilisé pour afficher les traces sur la sortie standard
|
|
(par exemple pour les traiter avec les outils splogger).</p>
|
|
</dd>
|
|
<dt><strong><strong>pid</strong> = fichier (Unix seulement)</strong></dt>
|
|
|
|
<dd>
|
|
<p>Emplacement du fichier pid</p>
|
|
<p>Si l'argument est vide, aucun fichier ne sera créé.</p>
|
|
<p>Le cas échéant, le chemin <em>pid</em> est relatif au répertoire <em>chroot</em>.</p>
|
|
</dd>
|
|
<dt><strong><a name="rndbytes_nombre" class="item"><strong>RNDbytes</strong> = nombre</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Nombre d'octets à lire depuis les fichiers de « sel » aléatoire</p>
|
|
<p>Avec les SSL de version inférieure à 0.9.5a, détermine aussi le nombre
|
|
d'octets considérés comme suffisants pour « saler » le PRNG. Les versions plus
|
|
récentes d'OpenSSL ont une fonction intégrée qui détermine lorsque l'aléatoire
|
|
est suffisant.</p>
|
|
</dd>
|
|
<dt><strong><a name="rndfile_fichier" class="item"><strong>RNDfile</strong> = fichier</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>chemin du fichier de données de « sel » aléatoire</p>
|
|
<p>La bibliothèque SSL utilise prioritairement les données de ce fichier pour
|
|
« saler » le générateur d'aléatoire.</p>
|
|
</dd>
|
|
<dt><strong><a name="rndoverwrite_yes_no" class="item"><strong>RNDoverwrite</strong> = yes | no</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Recouvre les fichiers de « sel » avec de nouvelles données aléatoires.</p>
|
|
<p>Par défaut : yes</p>
|
|
</dd>
|
|
<dt><strong><a name="service_nom" class="item"><strong>service</strong> = nom</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Définit le nom de service à utiliser</p>
|
|
<p><strong>Sous Unix :</strong> nom de service du mode <em>inetd</em> pour la bibliothèque TCP Wrapper.</p>
|
|
<p>Par défaut : stunnel</p>
|
|
</dd>
|
|
<dt><strong><a name="session_timeout" class="item"><strong>session</strong> = timeout</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Timeout du cache de session</p>
|
|
</dd>
|
|
<dt><strong><a name="nom" class="item"><strong>setgid</strong> = nom (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Nom de groupe utilisé en mode daemon (les éventuels autres noms de groupe attribués sont supprimés)</p>
|
|
</dd>
|
|
<dt><strong><strong>setuid</strong> = nom (Unix seulement)</strong></dt>
|
|
|
|
<dd>
|
|
<p>Nom d'utilisateur utilisé en mode daemon</p>
|
|
</dd>
|
|
<dt><strong><a name="socket_a_l_r_option_valeur_valeur" class="item"><strong>socket</strong> = a|l|r:option=valeur[:valeur]</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Configure une option de socket accept (a), locale (l) ou distante (r)</p>
|
|
<p>Les valeurs de l'option linger sont : l_onof:l_linger.
|
|
Les valeurs de l'option time sont : tv_sec:tv_usec.</p>
|
|
<p>Exemples :</p>
|
|
<pre>
|
|
socket = l:SO_LINGER=1:60
|
|
définit un délai d'une minute pour la clôture des sockets locaux
|
|
socket = r:SO_OOBINLINE=yes
|
|
Place directement les données hors-bande dans le flux de réception
|
|
des sockets distants
|
|
socket = a:SO_REUSEADDR=no
|
|
désactive la réutilisation d'adresses (activée par défaut)
|
|
socket = a:SO_BINDTODEVICE=lo
|
|
limite l'acceptation des connexions sur la seule interface de bouclage</pre>
|
|
</dd>
|
|
<dt><strong><strong>taskbar</strong> = yes | no (WIN32 seulement)</strong></dt>
|
|
|
|
<dd>
|
|
<p>active l'icône de la barre de tâches</p>
|
|
<p>Par défaut : yes</p>
|
|
</dd>
|
|
<dt><strong><a name="verify_niveau" class="item"><strong>verify</strong> = niveau</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Vérifie le certificat du correspondant</p>
|
|
<pre>
|
|
niveau 1 - vérifie le certificat s'il est présent
|
|
niveau 2 - vérifie le certificat
|
|
niveau 3 - contrôle le correspondant avec le certificat local</pre>
|
|
<p>Par défaut - pas de vérification</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<h2><a name="options_de_service">OPTIONS DE SERVICE</a></h2>
|
|
<p>Chaque section de configuration commence par le nom du service entre crochets.
|
|
Celui-ci est utilisé par le contrôle d'accès de libwrap (TCP Wrappers) et sert
|
|
à distinguer les services <strong>stunnel</strong> dans les fichiers de traces.</p>
|
|
<p>Si l'on souhaite utiliser <strong>stunnel</strong> en mode <em>inetd</em> (lorsqu'un socket lui est
|
|
fourni par un serveur comme <em>inetd</em>, <em>xinetd</em> ou <em>tcpserver</em>), il faut se
|
|
reporter à la section <em>MODE INETD</em> plus bas.</p>
|
|
<dl>
|
|
<dt><strong><a name="accept_h_te_port" class="item"><strong>accept</strong> = [hôte:]port</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Accepte des connexions sur le port spécifié</p>
|
|
<p>Si l'hôte n'est pas indiqué, le port est ouvert pour toutes les adresses IP de
|
|
la machine locale.</p>
|
|
</dd>
|
|
<dt><strong><a name="connect_h_te_port" class="item"><strong>connect</strong> = [hôte:]port</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Se connecte au port distant indiqué</p>
|
|
<p>Par défaut, l'hôte est localhost.</p>
|
|
</dd>
|
|
<dt><strong><a name="delay_yes_no" class="item"><strong>delay</strong> = yes | no</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Retarde la recherche DNS pour l'option « connect »</p>
|
|
</dd>
|
|
<dt><strong><a name="cutable" class="item"><strong>exec</strong> = chemin_exécutable (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Exécute un programme local de type inetd</p>
|
|
<p>Le cas échéant, le chemin <em>exec</em> est relatif au répertoire <em>chroot</em>.</p>
|
|
</dd>
|
|
<dt><strong><a name="execargs_0_1_2_unix_seulement" class="item"><strong>execargs</strong> = $0 $1 $2 ... (Unix seulement)</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Arguments pour <em>exec</em>, y compris le nom du programme ($0)</p>
|
|
<p>Les quotes ne peuvent actuellement pas être utilisées.
|
|
Les arguments sont séparés par un nombre quelconque d'espaces.</p>
|
|
</dd>
|
|
<dt><strong><a name="ident_nom" class="item"><strong>ident</strong> = nom</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Applique le contrôle d'identité d'utilisateur IDENT (<a href="http://www.ietf.org/rfc/rfc1413.txt" class="rfc">RFC 1413</a>)</p>
|
|
</dd>
|
|
<dt><strong><a name="local_h_te" class="item"><strong>local</strong> = hôte</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Adresse IP de l'interface de sortie utilisée pour les connexions distantes.
|
|
Cette option permet de relier une adresse statique locale.</p>
|
|
</dd>
|
|
<dt><strong><a name="protocol_protocole" class="item"><strong>protocol</strong> = protocole</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Négocie avec SSL selon le protocole indiqué</p>
|
|
<p>Actuellement gérés : cifs, nntp, pop3, smtp</p>
|
|
</dd>
|
|
<dt><strong><strong>pty</strong> = yes | no (Unix seulement)</strong></dt>
|
|
|
|
<dd>
|
|
<p>Alloue un pseudo-terminal pour l'option « exec »</p>
|
|
</dd>
|
|
<dt><strong><a name="timeoutbusy_secondes" class="item"><strong>TIMEOUTbusy</strong> = secondes</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Durée d'attente de données</p>
|
|
</dd>
|
|
<dt><strong><a name="timeoutclose_secondes" class="item"><strong>TIMEOUTclose</strong> = secondes</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Durée d'attente du close_notify (mis à 0 pour MSIE qui est bogué)</p>
|
|
</dd>
|
|
<dt><strong><a name="timeoutidle_secondes" class="item"><strong>TIMEOUTidle</strong> = secondes</a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Durée d'attente sur une connexion inactive</p>
|
|
</dd>
|
|
<dt><strong><strong>transparent</strong> = yes | no (Unix seulement)</strong></dt>
|
|
|
|
<dd>
|
|
<p>Mode mandataire transparent</p>
|
|
<p>Ré-écrit les adresses pour qu'elles apparaissent provenir de la
|
|
machine client SSL plutôt que de celle qui exécute <strong>stunnel</strong>.
|
|
Cette option n'est disponible en mode local (option <em>exec</em>) qu'avec
|
|
la bibliothèque partagée LD_PRELOADing env.so shared library et en mode
|
|
distant (option <em>connect</em>) sur les noyaux Linux 2.2 compilés avec
|
|
l'option <em>transparent proxy</em> et seulement en mode serveur. Cette
|
|
option ne se combine pas au mode mandataire (<em>connect</em>) sauf si la
|
|
route par défaut du client vers la cible passe par l'hôte qui fait
|
|
tourner <strong>stunnel</strong>, qui ne peut être localhost.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="valeur_de_retour">VALEUR DE RETOUR</a></h1>
|
|
<p><strong>stunnel</strong> renvoie zéro en cas de succès, une autre valeur en cas d'erreur.</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="exemples">EXEMPLES</a></h1>
|
|
<p>Pour encapsuler votre service <em>imapd</em> local avec SSL :</p>
|
|
<pre>
|
|
[imapd]
|
|
accept = 993
|
|
exec = /usr/sbin/imapd
|
|
execargs = imapd</pre>
|
|
<p>Pour tunneliser un daemon <em>pppd</em> sur le port 2020 :</p>
|
|
<pre>
|
|
[vpn]
|
|
accept = 2020
|
|
exec = /usr/sbin/pppd
|
|
execargs = pppd local
|
|
pty = yes</pre>
|
|
<p>Configuration de <em>stunnel.conf</em> pour utiliser <strong>stunnel</strong> en mode <em>inetd</em>
|
|
qui lance imapd à son tour (il ne doit pas y avoir de section <em>[service_name]</em>) :</p>
|
|
<pre>
|
|
exec = /usr/sbin/imapd
|
|
execargs = imapd</pre>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="fichiers">FICHIERS</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="stunnel_conf" class="item"><em class="file">stunnel.conf</em></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Fichier de configuration de <strong>stunnel</strong></p>
|
|
</dd>
|
|
<dt><strong><a name="stunnel_pem" class="item"><em class="file">stunnel.pem</em></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Certificat et clef privée de <strong>stunnel</strong></p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="bogues">BOGUES</a></h1>
|
|
<p>L'option <em>execargs</em> n'admet pas les quotes.</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="restrictions">RESTRICTIONS</a></h1>
|
|
<p><strong>stunnel</strong> ne peut être utilisé pour le daemon FTP en raison de la nature
|
|
du protocole FTP qui utilise des ports multiples pour les transferts de données.
|
|
Il existe cependant des versions SSL de FTP et de telnet.</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="notes">NOTES</a></h1>
|
|
<p>
|
|
</p>
|
|
<h2><a name="mode_inetd">MODE INETD</a></h2>
|
|
<p>L'utilisation la plus commune de <strong>stunnel</strong> consiste à écouter un port
|
|
réseau et à établir une communication, soit avec un nouveau port
|
|
avec l'option <em>connect</em>, soit avec un programme avec l'option <em>exec</em>.
|
|
On peut parfois cependant souhaiter qu'un autre programme reçoive les
|
|
connexions entrantes et lance <strong>stunnel</strong>, par exemple avec <em>inetd</em>,
|
|
<em>xinetd</em> ou <em>tcpserver</em>.</p>
|
|
<p>Si, par exemple, la ligne suivante se trouve dans <em>inetd.conf</em> :</p>
|
|
<pre>
|
|
imaps stream tcp nowait root /usr/bin/stunnel stunnel /etc/stunnel/imaps.conf</pre>
|
|
<p>Dans ces cas, c'est le programme du genre <em>inetd</em>-style qui est
|
|
responsable de l'établissement de la connexion (<em>imaps</em> ci-dessus) et de passer
|
|
celle-ci à <strong>stunnel</strong>.
|
|
Ainsi, <strong>stunnel</strong> ne doit alors avoir aucune option <em>accept</em>.
|
|
Toutes les <em>options de niveau service</em> doivent être placées dans
|
|
la section des options globales et aucune section <em>[service_name]</em> ne doit
|
|
être présente. Voir la section <em>EXEMPLES</em> pour des exemples de configurations.</p>
|
|
<p>
|
|
</p>
|
|
<h2><a name="certificats">CERTIFICATS</a></h2>
|
|
<p>Chaque daemon à propriétés SSL doit présenter un certificat X.509
|
|
valide à son interlocuteur. Il a aussi besoin d'une clef privé pour
|
|
déchiffrer les données entrantes. La méthode la plus simple pour
|
|
obtenir un certificat et une clef est d'engendrer celles-ci avec
|
|
le paquetage libre <em>OpenSSL</em>. Plus d'informations sur la génération de
|
|
certificats se trouvent dans les pages indiquées plus bas.</p>
|
|
<p>Deux choses importantes lors de la génération de paires certificat-clef
|
|
pour <strong>stunnel</strong> :</p>
|
|
<ul>
|
|
<li>
|
|
<p>la clef privée ne peut être chiffrée puisque le serveur n'a aucun moyen
|
|
d'obtenir le mot de passe de l'utilisateur ; pour produire une clef non chiffrée,
|
|
ajouter l'option <em>-nodes</em> à la commande <strong>req</strong> de <em>OpenSSL</em> ;</p>
|
|
</li>
|
|
<li>
|
|
<p>l'ordre du contenu du fichier <em>.pem</em> est significatif : il doit contenir d'abord
|
|
une clef privée non chiffrée, puis un certificat signé (et non une demande de certificat).
|
|
Il doit aussi y avoir des lignes vides après le certificat et après la clef privée.
|
|
L'information textuelle ajoutée au début d'un certificat doit être supprimée afin que
|
|
le fichier ait l'allure suivante :</p>
|
|
<pre>
|
|
-----BEGIN RSA PRIVATE KEY-----
|
|
[clef encodée]
|
|
-----END RSA PRIVATE KEY-----
|
|
[ligne vide]
|
|
-----BEGIN CERTIFICATE-----
|
|
[certificat encodé]
|
|
-----END CERTIFICATE-----
|
|
[ligne vide]</pre>
|
|
</li>
|
|
</ul>
|
|
<p>
|
|
</p>
|
|
<h2><a name="aleatoire">ALEATOIRE</a></h2>
|
|
<p><strong>stunnel</strong> doit « saler » le générateur de pseudo-aléatoires PRNG (pseudo random
|
|
number generator) afin que SSL utilise un aléatoire de qualité. Les sources suivantes
|
|
sont chargées dans l'ordre jusqu'à ce qu'une quantité suffisante de données soit lue :</p>
|
|
<ul>
|
|
<li>
|
|
<p>le fichier spécifié par <em>RNDfile</em> ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le fichier spécifié par la variable d'environnement RANDFILE, à défaut
|
|
le fichier .rnd du répertoire $HOME de l'utilisateur ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le fichier spécifié par « --with-random » lors de la compilation ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le contenu de l'écran (MS-Windows seulement) ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le socket EGD spécifié par <em>EGD</em> ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le socket EGD spécifié par « --with-egd-sock » lors de la compilation ;</p>
|
|
</li>
|
|
<li>
|
|
<p>le périphérique /dev/urandom.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Avec un OpenSSL récent (>=OpenSSL 0.9.5a) le chargement de données s'arrête
|
|
automatiquement lorsqu'un niveau d'entropie suffisant est atteint.
|
|
Les versions précédentes continuent à lire toutes les sources puisqu'aucune
|
|
fonction SSL ne leur permet de savoir que suffisamment de données sont disponibles.</p>
|
|
<p>Sur les machines MS-Windows qui n'ont pas d'interaction utilisateur sur la console,
|
|
(mouvements de souris, création de fenêtres, etc.), le contenu de l'écran n'est
|
|
pas suffisamment changeant et il est nécessaire de fournir un fichier d'aléatoire
|
|
par le biais de <em>RNDfile</em>.</p>
|
|
<p>Le fichier spécifié par <em>RNDfile</em> doit contenir des informations aléatoires --
|
|
c'est-à-dire des informations différentes à chaque lancement de <strong>stunnel</strong>.
|
|
Cela est géré automatiquement sauf si l'option <em>RNDoverwrite</em> est utilisée.
|
|
Si l'on souhaite procéder manuellement à la mise à jour de ce fichier, la
|
|
commande <em>openssl rand</em> des versions récentes d'OpenSSL sera sans doute utile.</p>
|
|
<p>Note importante : si /dev/urandom est disponible, OpenSSL a l'habitude d'utiliser
|
|
celui-ci pour « saler » le PRNG même lorsqu'il contrôle l'état de l'aléatoire ;
|
|
ainsi, même si /dev/urandom est dernier de la liste ci-dessus, il est vraisemblable
|
|
qu'il soit utilisé s'il est présent.
|
|
Ce n'est pas le comportement de <strong>stunnel</strong>, c'est celui d'OpenSSL.</p>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="voir_aussi">VOIR AUSSI</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="tcpd" class="item"><a href="#tcpd">tcpd(8)</a></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Service de contrôle d'accès pour les services internet</p>
|
|
</dd>
|
|
<dt><strong><a name="inetd" class="item"><a href="#inetd">inetd(8)</a></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>« super-serveur » internet</p>
|
|
</dd>
|
|
<dt><strong><a name="http_www_stunnel_org" class="item"><em class="file"><a href="http://www.stunnel.org/">http://www.stunnel.org/</a></em></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Page de référence de <strong>stunnel</strong></p>
|
|
</dd>
|
|
<dt><strong><a name="http_www_openssl_org" class="item"><em class="file"><a href="http://www.openssl.org/">http://www.openssl.org/</a></em></a></strong></dt>
|
|
|
|
<dd>
|
|
<p>Site web du projet OpenSSL</p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="auteur">AUTEUR</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="micha_trojnara" class="item">Michał Trojnara</a></strong></dt>
|
|
|
|
<dd>
|
|
<p><<em class="file"><a href="mailto:Michal.Trojnara@mirt.net">Michal.Trojnara@mirt.net</a></em>></p>
|
|
</dd>
|
|
</dl>
|
|
<p>
|
|
</p>
|
|
<hr />
|
|
<h1><a name="adaptation_fran__aise">ADAPTATION FRANÇAISE</a></h1>
|
|
<dl>
|
|
<dt><strong><a name="bernard_choppy" class="item">Bernard Choppy</a></strong></dt>
|
|
|
|
<dd>
|
|
<p><<em class="file">choppy AT free POINT fr</em>></p>
|
|
</dd>
|
|
</dl>
|
|
|
|
</body>
|
|
|
|
</html>
|