575 lines
23 KiB
Groff
575 lines
23 KiB
Groff
.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
|
||
.\"
|
||
.\" Standard preamble:
|
||
.\" ========================================================================
|
||
.de Sp \" Vertical space (when we can't use .PP)
|
||
.if t .sp .5v
|
||
.if n .sp
|
||
..
|
||
.de Vb \" Begin verbatim text
|
||
.ft CW
|
||
.nf
|
||
.ne \\$1
|
||
..
|
||
.de Ve \" End verbatim text
|
||
.ft R
|
||
.fi
|
||
..
|
||
.\" Set up some character translations and predefined strings. \*(-- will
|
||
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
|
||
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
|
||
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
|
||
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
|
||
.\" nothing in troff, for use with C<>.
|
||
.tr \(*W-
|
||
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
|
||
.ie n \{\
|
||
. ds -- \(*W-
|
||
. ds PI pi
|
||
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
|
||
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
|
||
. ds L" ""
|
||
. ds R" ""
|
||
. ds C` ""
|
||
. ds C' ""
|
||
'br\}
|
||
.el\{\
|
||
. ds -- \|\(em\|
|
||
. ds PI \(*p
|
||
. ds L" ``
|
||
. ds R" ''
|
||
'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
|
||
.\" 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"
|
||
..
|
||
. nr % 0
|
||
. rr F
|
||
.\}
|
||
.el \{\
|
||
. de IX
|
||
..
|
||
.\}
|
||
.\" ========================================================================
|
||
.\"
|
||
.IX Title "STUNNEL.FR 8"
|
||
.TH STUNNEL.FR 8 "2012.01.12" "4.53" "stunnel"
|
||
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
|
||
.\" way too many mistakes in technical documents.
|
||
.if n .ad l
|
||
.nh
|
||
.SH "NOM"
|
||
.IX Header "NOM"
|
||
stunnel \- tunnel \s-1SSL\s0 universel
|
||
.SH "SYNOPSIS"
|
||
.IX Header "SYNOPSIS"
|
||
.IP "\fBUnix:\fR" 4
|
||
.IX Item "Unix:"
|
||
\&\fBstunnel\fR [fichier] | \-fd [n] | \-help | \-version | \-sockets
|
||
.IP "\fB\s-1WIN32:\s0\fR" 4
|
||
.IX Item "WIN32:"
|
||
\&\fBstunnel\fR [fichier] | \-install | \-uninstall | \-help | \-version | \-sockets
|
||
.SH "DESCRIPTION"
|
||
.IX Header "DESCRIPTION"
|
||
Le programme \fBstunnel\fR est conçu pour fonctionner comme une couche
|
||
de chiffrement \fI\s-1SSL\s0\fR entre des clients distants et des serveurs locaux
|
||
(\fIinetd\fR\-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 \s-1SSL\s0.
|
||
.PP
|
||
\&\fBstunnel\fR peut être utilisé pour ajouter des fonctionnalités \s-1SSL\s0 à des
|
||
daemons classiques \fIInetd\fR tels que les serveurs \s-1POP\-2\s0, \s-1POP\-3\s0 et \s-1IMAP\s0,
|
||
à d'autres autonomes tels que \s-1NNTP\s0, \s-1SMTP\s0 et \s-1HTTP\s0, ainsi que pour tunneliser
|
||
\&\s-1PPP\s0 sur des sockets réseau sans modification du code source.
|
||
.PP
|
||
Ce produit inclut du code de chiffrement écrit par
|
||
Eric Young (eay@cryptsoft.com)
|
||
.SH "OPTIONS"
|
||
.IX Header "OPTIONS"
|
||
.IP "\fB[fichier]\fR" 4
|
||
.IX Item "[fichier]"
|
||
Utilisation du fichier de configuration spécifié.
|
||
.IP "\fB\-fd [n]\fR (Unix seulement)" 4
|
||
.IX Item "-fd [n] (Unix seulement)"
|
||
Lecture du fichier de configuration depuis le descripteur de
|
||
fichier indiqué.
|
||
.IP "\fB\-help\fR" 4
|
||
.IX Item "-help"
|
||
Affiche le menu d'aide de \fBstunnel\fR.
|
||
.IP "\fB\-version\fR" 4
|
||
.IX Item "-version"
|
||
Affiche la version de \fBstunnel\fR et les options de compilation.
|
||
.IP "\fB\-sockets\fR" 4
|
||
.IX Item "-sockets"
|
||
Affiche les options socket par défaut.
|
||
.IP "\fB\-install\fR (\s-1NT/2000/XP\s0 seulement)" 4
|
||
.IX Item "-install (NT/2000/XP seulement)"
|
||
Installe un service \s-1NT\s0.
|
||
.IP "\fB\-uninstall\fR (\s-1NT/2000/XP\s0 only)" 4
|
||
.IX Item "-uninstall (NT/2000/XP only)"
|
||
Désinstalle un service \s-1NT\s0.
|
||
.SH "FICHIER DE CONFIGURATION"
|
||
.IX Header "FICHIER DE CONFIGURATION"
|
||
Chaque ligne du fichier de configuration peut être soit :
|
||
.IP "\(bu" 4
|
||
une ligne vide (ignorée) ;
|
||
.IP "\(bu" 4
|
||
un commentaire commençant par « # » (ignoré) ;
|
||
.IP "\(bu" 4
|
||
une paire « option = valeur » ;
|
||
.IP "\(bu" 4
|
||
« [service_name] » indiquant le début de la définition d'un service ;
|
||
.SS "\s-1OPTIONS\s0 \s-1GLOBALES\s0"
|
||
.IX Subsection "OPTIONS GLOBALES"
|
||
.IP "\fBCApath\fR = répertoire" 4
|
||
.IX Item "CApath = répertoire"
|
||
Répertoire des autorités de certification (\s-1CA\s0)
|
||
.Sp
|
||
C'est le répertoire dans lequel \fBstunnel\fR cherche les certificats si
|
||
l'on utilise \fIverify\fR. Les certificats doivent être dénommés selon la
|
||
forme \s-1XXXXXXXX\s0.0, où \s-1XXXXXXXX\s0 est la valeur de hachage du certificat.
|
||
.Sp
|
||
Le cas échéant, le répertoire \fICApath\fR est relatif au répertoire \fIchroot\fR.
|
||
.IP "\fBCAfile\fR = fichier" 4
|
||
.IX Item "CAfile = fichier"
|
||
Fichier d'autorités de certification
|
||
.Sp
|
||
Ce fichier, utilisé avec \fIverify\fR, contient plusieurs certificats de \s-1CA\s0.
|
||
.IP "\fBcert\fR = fichier" 4
|
||
.IX Item "cert = fichier"
|
||
Fichier de chaîne de certificats \s-1PEM\s0
|
||
.Sp
|
||
Une \s-1PEM\s0 est toujours nécessaire en mode serveur.
|
||
En mode client, cette option utilise cette \s-1PEM\s0 comme une chaîne côté client.
|
||
L'utilisation de certificats côté client est optionnelle. Les certificats
|
||
doivent être au format \s-1PEM\s0 et triés par ordre de niveau décroissant (\s-1CA\s0 racine
|
||
en premier).
|
||
.IP "\fBchroot\fR = répertoire (Unix seulement)" 4
|
||
.IX Item "chroot = répertoire (Unix seulement)"
|
||
Répertoire de chroot du processus \fBstunnel\fR
|
||
.Sp
|
||
\&\fBchroot\fR enferme \fBstunnel\fR dans une cellule chroot. \fICApath\fR, \fICRLpath\fR, \fIpid\fR
|
||
et \fIexec\fR sont situés à l'intérieur de la cellule et les répertoires doivent être
|
||
relatifs au répertoire correspondant.
|
||
.Sp
|
||
Pour que le contrôle de libwrap (wrappeur \s-1TCP\s0) soit effectif dans un environnement
|
||
chroot, il faut aussi y recopier leurs fichiers de configuration (/etc/hosts.allow et
|
||
/etc/hosts.deny).
|
||
.IP "\fBciphers\fR = listes de chiffre" 4
|
||
.IX Item "ciphers = listes de chiffre"
|
||
Sélection des chiffres \s-1SSL\s0 autorisés
|
||
.Sp
|
||
Liste délimitée par deux-points (« : ») des chiffres autorisés pour la connexion \s-1SSL\s0.
|
||
Exemple : \s-1DES\-CBC3\-SHA:IDEA\-CBC\-MD5\s0
|
||
.IP "\fBclient\fR = yes | no" 4
|
||
.IX Item "client = yes | no"
|
||
Mode client (Le service distant utilise \s-1SSL\s0)
|
||
.Sp
|
||
Par défaut : no (mode server)
|
||
.IP "\fBCRLpath\fR = répertoire" 4
|
||
.IX Item "CRLpath = répertoire"
|
||
Répertoire des listes de révocation de certificats (\s-1CRL\s0)
|
||
.Sp
|
||
C'est le répertoire dans lequel \fBstunnel\fR recherche les \s-1CRL\s0 avec
|
||
l'option \fIverify\fR. Les \s-1CRL\s0 doivent être dénommés selon la
|
||
forme \s-1XXXXXXXX\s0.0 où \s-1XXXXXXXX\s0 est la valeur de hachage de la \s-1CRL\s0.
|
||
.Sp
|
||
Le cas échéant, le répertoire \fICRLpath\fR est relatif au répertoire \fIchroot\fR.
|
||
.IP "\fBCRLfile\fR = fichier" 4
|
||
.IX Item "CRLfile = fichier"
|
||
Fichier de listes de révocation de certificats (\s-1CRL\s0)
|
||
.Sp
|
||
Ce fichier, utilisé avec \fIverify\fR, contient plusieurs \s-1CRL\s0.
|
||
.IP "\fBdebug\fR = [facilité.]niveau" 4
|
||
.IX Item "debug = [facilité.]niveau"
|
||
niveau de déverminage
|
||
.Sp
|
||
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. \fBdebug = debug\fR ou
|
||
\&\fBdebug = 7\fR donneront le maximum d'informations. La valeur par défaut
|
||
est notice (5).
|
||
.Sp
|
||
La facilité syslog « daemon » est utilisée, sauf si un autre nom est spécifié
|
||
(Win32 ne permet pas l'usage des facilités.)
|
||
.Sp
|
||
La casse est ignorée, aussi bien pour la facilité que pour le niveau.
|
||
.IP "\fB\s-1EGD\s0\fR = chemin (Unix seulement)" 4
|
||
.IX Item "EGD = chemin (Unix seulement)"
|
||
Emplacement du socket du daemon de recueil d'entropie (\s-1EGD\s0 \- Entropy Gathering Daemon)
|
||
.Sp
|
||
Socket \s-1EGD\s0 à 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).
|
||
.IP "\fBforeground\fR = yes | no (Unix seulement)" 4
|
||
.IX Item "foreground = yes | no (Unix seulement)"
|
||
Mode avant-plan
|
||
.Sp
|
||
Reste en avant-plan (sans fork) et dirige la trace sur stderr
|
||
au lieu de syslog (sauf si \fBoutput\fR est spécifié).
|
||
.Sp
|
||
Par défault : arrière\-plan en mode daemon.
|
||
.IP "\fBkey\fR = fichier" 4
|
||
.IX Item "key = fichier"
|
||
Fichier de clef privée pour le certificat spécifié par \fIcert\fR
|
||
.Sp
|
||
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 :
|
||
.Sp
|
||
.Vb 1
|
||
\& chmod 600 fichier
|
||
.Ve
|
||
.Sp
|
||
Par défault : Valeur de \fIcert\fR
|
||
.IP "\fBoptions\fR = Options_SSL" 4
|
||
.IX Item "options = Options_SSL"
|
||
Options de la bibliothèque OpenSSL
|
||
.Sp
|
||
Le paramètre est l'option OpenSSL décrite dans la page de man
|
||
\&\fI\fISSL_CTX_set_options\fI\|(3ssl)\fR, débarassée du préfixe \fI\s-1SSL_OP_\s0\fR.
|
||
Plusieurs \fIoptions\fR peuvent être spécifiées.
|
||
.Sp
|
||
Par exemple, pour la compatibilité avec l'implantation \s-1SSL\s0 défaillante
|
||
d'Eudora, on peut utiliser :
|
||
.Sp
|
||
.Vb 1
|
||
\& options = DONT_INSERT_EMPTY_FRAGMENTS
|
||
.Ve
|
||
.IP "\fBoutput\fR = fichier" 4
|
||
.IX Item "output = fichier"
|
||
Ajoute la trace à la fin d'un fichier au lieu d'utiliser syslog.
|
||
.Sp
|
||
/dev/stdout peut être utilisé pour afficher les traces sur la sortie standard
|
||
(par exemple pour les traiter avec les outils splogger).
|
||
.IP "\fBpid\fR = fichier (Unix seulement)" 4
|
||
.IX Item "pid = fichier (Unix seulement)"
|
||
Emplacement du fichier pid
|
||
.Sp
|
||
Si l'argument est vide, aucun fichier ne sera créé.
|
||
.Sp
|
||
Le cas échéant, le chemin \fIpid\fR est relatif au répertoire \fIchroot\fR.
|
||
.IP "\fBRNDbytes\fR = nombre" 4
|
||
.IX Item "RNDbytes = nombre"
|
||
Nombre d'octets à lire depuis les fichiers de « sel » aléatoire
|
||
.Sp
|
||
Avec les \s-1SSL\s0 de version inférieure à 0.9.5a, détermine aussi le nombre
|
||
d'octets considérés comme suffisants pour « saler » le \s-1PRNG\s0. Les versions plus
|
||
récentes d'OpenSSL ont une fonction intégrée qui détermine lorsque l'aléatoire
|
||
est suffisant.
|
||
.IP "\fBRNDfile\fR = fichier" 4
|
||
.IX Item "RNDfile = fichier"
|
||
chemin du fichier de données de « sel » aléatoire
|
||
.Sp
|
||
La bibliothèque \s-1SSL\s0 utilise prioritairement les données de ce fichier pour
|
||
« saler » le générateur d'aléatoire.
|
||
.IP "\fBRNDoverwrite\fR = yes | no" 4
|
||
.IX Item "RNDoverwrite = yes | no"
|
||
Recouvre les fichiers de « sel » avec de nouvelles données aléatoires.
|
||
.Sp
|
||
Par défaut : yes
|
||
.IP "\fBservice\fR = nom" 4
|
||
.IX Item "service = nom"
|
||
Définit le nom de service à utiliser
|
||
.Sp
|
||
\&\fBSous Unix :\fR nom de service du mode \fIinetd\fR pour la bibliothèque \s-1TCP\s0 Wrapper.
|
||
.Sp
|
||
Par défaut : stunnel
|
||
.IP "\fBsession\fR = timeout" 4
|
||
.IX Item "session = timeout"
|
||
Timeout du cache de session
|
||
.IP "\fBsetgid\fR = nom (Unix seulement)" 4
|
||
.IX Item "setgid = nom (Unix seulement)"
|
||
Nom de groupe utilisé en mode daemon (les éventuels autres noms de groupe attribués sont supprimés)
|
||
.IP "\fBsetuid\fR = nom (Unix seulement)" 4
|
||
.IX Item "setuid = nom (Unix seulement)"
|
||
Nom d'utilisateur utilisé en mode daemon
|
||
.IP "\fBsocket\fR = a|l|r:option=valeur[:valeur]" 4
|
||
.IX Item "socket = a|l|r:option=valeur[:valeur]"
|
||
Configure une option de socket accept (a), locale (l) ou distante (r)
|
||
.Sp
|
||
Les valeurs de l'option linger sont : l_onof:l_linger.
|
||
Les valeurs de l'option time sont : tv_sec:tv_usec.
|
||
.Sp
|
||
Exemples :
|
||
.Sp
|
||
.Vb 9
|
||
\& socket = l:SO_LINGER=1:60
|
||
\& définit un délai d\*(Aqune 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\*(Aqadresses (activée par défaut)
|
||
\& socket = a:SO_BINDTODEVICE=lo
|
||
\& limite l\*(Aqacceptation des connexions sur la seule interface de bouclage
|
||
.Ve
|
||
.IP "\fBtaskbar\fR = yes | no (\s-1WIN32\s0 seulement)" 4
|
||
.IX Item "taskbar = yes | no (WIN32 seulement)"
|
||
active l'icône de la barre de tâches
|
||
.Sp
|
||
Par défaut : yes
|
||
.IP "\fBverify\fR = niveau" 4
|
||
.IX Item "verify = niveau"
|
||
Vérifie le certificat du correspondant
|
||
.Sp
|
||
.Vb 3
|
||
\& niveau 1 \- vérifie le certificat s\*(Aqil est présent
|
||
\& niveau 2 \- vérifie le certificat
|
||
\& niveau 3 \- contrôle le correspondant avec le certificat local
|
||
.Ve
|
||
.Sp
|
||
Par défaut \- pas de vérification
|
||
.SS "\s-1OPTIONS\s0 \s-1DE\s0 \s-1SERVICE\s0"
|
||
.IX Subsection "OPTIONS DE SERVICE"
|
||
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 (\s-1TCP\s0 Wrappers) et sert
|
||
à distinguer les services \fBstunnel\fR dans les fichiers de traces.
|
||
.PP
|
||
Si l'on souhaite utiliser \fBstunnel\fR en mode \fIinetd\fR (lorsqu'un socket lui est
|
||
fourni par un serveur comme \fIinetd\fR, \fIxinetd\fR ou \fItcpserver\fR), il faut se
|
||
reporter à la section \fI\s-1MODE\s0 \s-1INETD\s0\fR plus bas.
|
||
.IP "\fBaccept\fR = [hôte:]port" 4
|
||
.IX Item "accept = [hôte:]port"
|
||
Accepte des connexions sur le port spécifié
|
||
.Sp
|
||
Si l'hôte n'est pas indiqué, le port est ouvert pour toutes les adresses \s-1IP\s0 de
|
||
la machine locale.
|
||
.IP "\fBconnect\fR = [hôte:]port" 4
|
||
.IX Item "connect = [hôte:]port"
|
||
Se connecte au port distant indiqué
|
||
.Sp
|
||
Par défaut, l'hôte est localhost.
|
||
.IP "\fBdelay\fR = yes | no" 4
|
||
.IX Item "delay = yes | no"
|
||
Retarde la recherche \s-1DNS\s0 pour l'option « connect »
|
||
.IP "\fBexec\fR = chemin_exécutable (Unix seulement)" 4
|
||
.IX Item "exec = chemin_exécutable (Unix seulement)"
|
||
Exécute un programme local de type inetd
|
||
.Sp
|
||
Le cas échéant, le chemin \fIexec\fR est relatif au répertoire \fIchroot\fR.
|
||
.ie n .IP "\fBexecargs\fR = $0 $1 $2 ... (Unix seulement)" 4
|
||
.el .IP "\fBexecargs\fR = \f(CW$0\fR \f(CW$1\fR \f(CW$2\fR ... (Unix seulement)" 4
|
||
.IX Item "execargs = $0 $1 $2 ... (Unix seulement)"
|
||
Arguments pour \fIexec\fR, y compris le nom du programme ($0)
|
||
.Sp
|
||
Les quotes ne peuvent actuellement pas être utilisées.
|
||
Les arguments sont séparés par un nombre quelconque d'espaces.
|
||
.IP "\fBident\fR = nom" 4
|
||
.IX Item "ident = nom"
|
||
Applique le contrôle d'identité d'utilisateur \s-1IDENT\s0 (\s-1RFC\s0 1413)
|
||
.IP "\fBlocal\fR = hôte" 4
|
||
.IX Item "local = hôte"
|
||
Adresse \s-1IP\s0 de l'interface de sortie utilisée pour les connexions distantes.
|
||
Cette option permet de relier une adresse statique locale.
|
||
.IP "\fBprotocol\fR = protocole" 4
|
||
.IX Item "protocol = protocole"
|
||
Négocie avec \s-1SSL\s0 selon le protocole indiqué
|
||
.Sp
|
||
Actuellement gérés : cifs, nntp, pop3, smtp
|
||
.IP "\fBpty\fR = yes | no (Unix seulement)" 4
|
||
.IX Item "pty = yes | no (Unix seulement)"
|
||
Alloue un pseudo-terminal pour l'option « exec »
|
||
.IP "\fBTIMEOUTbusy\fR = secondes" 4
|
||
.IX Item "TIMEOUTbusy = secondes"
|
||
Durée d'attente de données
|
||
.IP "\fBTIMEOUTclose\fR = secondes" 4
|
||
.IX Item "TIMEOUTclose = secondes"
|
||
Durée d'attente du close_notify (mis à 0 pour \s-1MSIE\s0 qui est bogué)
|
||
.IP "\fBTIMEOUTidle\fR = secondes" 4
|
||
.IX Item "TIMEOUTidle = secondes"
|
||
Durée d'attente sur une connexion inactive
|
||
.IP "\fBtransparent\fR = yes | no (Unix seulement)" 4
|
||
.IX Item "transparent = yes | no (Unix seulement)"
|
||
Mode mandataire transparent
|
||
.Sp
|
||
Ré\-écrit les adresses pour qu'elles apparaissent provenir de la
|
||
machine client \s-1SSL\s0 plutôt que de celle qui exécute \fBstunnel\fR.
|
||
Cette option n'est disponible en mode local (option \fIexec\fR) qu'avec
|
||
la bibliothèque partagée LD_PRELOADing env.so shared library et en mode
|
||
distant (option \fIconnect\fR) sur les noyaux Linux 2.2 compilés avec
|
||
l'option \fItransparent proxy\fR et seulement en mode serveur. Cette
|
||
option ne se combine pas au mode mandataire (\fIconnect\fR) sauf si la
|
||
route par défaut du client vers la cible passe par l'hôte qui fait
|
||
tourner \fBstunnel\fR, qui ne peut être localhost.
|
||
.SH "VALEUR DE RETOUR"
|
||
.IX Header "VALEUR DE RETOUR"
|
||
\&\fBstunnel\fR renvoie zéro en cas de succès, une autre valeur en cas d'erreur.
|
||
.SH "EXEMPLES"
|
||
.IX Header "EXEMPLES"
|
||
Pour encapsuler votre service \fIimapd\fR local avec \s-1SSL\s0 :
|
||
.PP
|
||
.Vb 4
|
||
\& [imapd]
|
||
\& accept = 993
|
||
\& exec = /usr/sbin/imapd
|
||
\& execargs = imapd
|
||
.Ve
|
||
.PP
|
||
Pour tunneliser un daemon \fIpppd\fR sur le port 2020 :
|
||
.PP
|
||
.Vb 5
|
||
\& [vpn]
|
||
\& accept = 2020
|
||
\& exec = /usr/sbin/pppd
|
||
\& execargs = pppd local
|
||
\& pty = yes
|
||
.Ve
|
||
.PP
|
||
Configuration de \fIstunnel.conf\fR pour utiliser \fBstunnel\fR en mode \fIinetd\fR
|
||
qui lance imapd à son tour (il ne doit pas y avoir de section \fI[service_name]\fR) :
|
||
.PP
|
||
.Vb 2
|
||
\& exec = /usr/sbin/imapd
|
||
\& execargs = imapd
|
||
.Ve
|
||
.SH "FICHIERS"
|
||
.IX Header "FICHIERS"
|
||
.IP "\fIstunnel.conf\fR" 4
|
||
.IX Item "stunnel.conf"
|
||
Fichier de configuration de \fBstunnel\fR
|
||
.IP "\fIstunnel.pem\fR" 4
|
||
.IX Item "stunnel.pem"
|
||
Certificat et clef privée de \fBstunnel\fR
|
||
.SH "BOGUES"
|
||
.IX Header "BOGUES"
|
||
L'option \fIexecargs\fR n'admet pas les quotes.
|
||
.SH "RESTRICTIONS"
|
||
.IX Header "RESTRICTIONS"
|
||
\&\fBstunnel\fR ne peut être utilisé pour le daemon \s-1FTP\s0 en raison de la nature
|
||
du protocole \s-1FTP\s0 qui utilise des ports multiples pour les transferts de données.
|
||
Il existe cependant des versions \s-1SSL\s0 de \s-1FTP\s0 et de telnet.
|
||
.SH "NOTES"
|
||
.IX Header "NOTES"
|
||
.SS "\s-1MODE\s0 \s-1INETD\s0"
|
||
.IX Subsection "MODE INETD"
|
||
L'utilisation la plus commune de \fBstunnel\fR consiste à écouter un port
|
||
réseau et à établir une communication, soit avec un nouveau port
|
||
avec l'option \fIconnect\fR, soit avec un programme avec l'option \fIexec\fR.
|
||
On peut parfois cependant souhaiter qu'un autre programme reçoive les
|
||
connexions entrantes et lance \fBstunnel\fR, par exemple avec \fIinetd\fR,
|
||
\&\fIxinetd\fR ou \fItcpserver\fR.
|
||
.PP
|
||
Si, par exemple, la ligne suivante se trouve dans \fIinetd.conf\fR :
|
||
.PP
|
||
.Vb 1
|
||
\& imaps stream tcp nowait root /usr/bin/stunnel stunnel /etc/stunnel/imaps.conf
|
||
.Ve
|
||
.PP
|
||
Dans ces cas, c'est le programme du genre \fIinetd\fR\-style qui est
|
||
responsable de l'établissement de la connexion (\fIimaps\fR ci-dessus) et de passer
|
||
celle-ci à \fBstunnel\fR.
|
||
Ainsi, \fBstunnel\fR ne doit alors avoir aucune option \fIaccept\fR.
|
||
Toutes les \fIoptions de niveau service\fR doivent être placées dans
|
||
la section des options globales et aucune section \fI[service_name]\fR ne doit
|
||
être présente. Voir la section \fI\s-1EXEMPLES\s0\fR pour des exemples de configurations.
|
||
.SS "\s-1CERTIFICATS\s0"
|
||
.IX Subsection "CERTIFICATS"
|
||
Chaque daemon à propriétés \s-1SSL\s0 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 \fIOpenSSL\fR. Plus d'informations sur la génération de
|
||
certificats se trouvent dans les pages indiquées plus bas.
|
||
.PP
|
||
Deux choses importantes lors de la génération de paires certificat-clef
|
||
pour \fBstunnel\fR :
|
||
.IP "\(bu" 4
|
||
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 \fI\-nodes\fR à la commande \fBreq\fR de \fIOpenSSL\fR ;
|
||
.IP "\(bu" 4
|
||
l'ordre du contenu du fichier \fI.pem\fR 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 :
|
||
.Sp
|
||
.Vb 8
|
||
\& \-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\-
|
||
\& [clef encodée]
|
||
\& \-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\-
|
||
\& [ligne vide]
|
||
\& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-
|
||
\& [certificat encodé]
|
||
\& \-\-\-\-\-END CERTIFICATE\-\-\-\-\-
|
||
\& [ligne vide]
|
||
.Ve
|
||
.SS "\s-1ALEATOIRE\s0"
|
||
.IX Subsection "ALEATOIRE"
|
||
\&\fBstunnel\fR doit « saler » le générateur de pseudo\-aléatoires \s-1PRNG\s0 (pseudo random
|
||
number generator) afin que \s-1SSL\s0 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 :
|
||
.IP "\(bu" 4
|
||
le fichier spécifié par \fIRNDfile\fR ;
|
||
.IP "\(bu" 4
|
||
le fichier spécifié par la variable d'environnement \s-1RANDFILE\s0, à défaut
|
||
le fichier .rnd du répertoire \f(CW$HOME\fR de l'utilisateur ;
|
||
.IP "\(bu" 4
|
||
le fichier spécifié par « \-\-with\-random » lors de la compilation ;
|
||
.IP "\(bu" 4
|
||
le contenu de l'écran (MS-Windows seulement) ;
|
||
.IP "\(bu" 4
|
||
le socket \s-1EGD\s0 spécifié par \fI\s-1EGD\s0\fR ;
|
||
.IP "\(bu" 4
|
||
le socket \s-1EGD\s0 spécifié par « \-\-with\-egd\-sock » lors de la compilation ;
|
||
.IP "\(bu" 4
|
||
le périphérique /dev/urandom.
|
||
.PP
|
||
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 \s-1SSL\s0 ne leur permet de savoir que suffisamment de données sont disponibles.
|
||
.PP
|
||
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 \fIRNDfile\fR.
|
||
.PP
|
||
Le fichier spécifié par \fIRNDfile\fR doit contenir des informations aléatoires \*(--
|
||
c'est\-à\-dire des informations différentes à chaque lancement de \fBstunnel\fR.
|
||
Cela est géré automatiquement sauf si l'option \fIRNDoverwrite\fR est utilisée.
|
||
Si l'on souhaite procéder manuellement à la mise à jour de ce fichier, la
|
||
commande \fIopenssl rand\fR des versions récentes d'OpenSSL sera sans doute utile.
|
||
.PP
|
||
Note importante : si /dev/urandom est disponible, OpenSSL a l'habitude d'utiliser
|
||
celui-ci pour « saler » le \s-1PRNG\s0 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 \fBstunnel\fR, c'est celui d'OpenSSL.
|
||
.SH "VOIR AUSSI"
|
||
.IX Header "VOIR AUSSI"
|
||
.IP "\fItcpd\fR\|(8)" 4
|
||
.IX Item "tcpd"
|
||
Service de contrôle d'accès pour les services internet
|
||
.IP "\fIinetd\fR\|(8)" 4
|
||
.IX Item "inetd"
|
||
« super-serveur » internet
|
||
.IP "\fIhttp://www.stunnel.org/\fR" 4
|
||
.IX Item "http://www.stunnel.org/"
|
||
Page de référence de \fBstunnel\fR
|
||
.IP "\fIhttp://www.openssl.org/\fR" 4
|
||
.IX Item "http://www.openssl.org/"
|
||
Site web du projet OpenSSL
|
||
.SH "AUTEUR"
|
||
.IX Header "AUTEUR"
|
||
.IP "Michał Trojnara" 4
|
||
.IX Item "Michał Trojnara"
|
||
<\fIMichal.Trojnara@mirt.net\fR>
|
||
.SH "ADAPTATION FRANÇAISE"
|
||
.IX Header "ADAPTATION FRANÇAISE"
|
||
.IP "Bernard Choppy" 4
|
||
.IX Item "Bernard Choppy"
|
||
<\fIchoppy \s-1AT\s0 free \s-1POINT\s0 fr\fR>
|