Introduction à stunnel
Le paquet stunnel contient un
programme qui vous permet de chiffrer des connexions TCP
arbitraires en SSL (Secure Sockets Layer) pour que vous puissiez
communiquer facilement avec des clients par des canaux sécurisés.
stunnel peut être utilisé pour les
tunnels PPP par des sockets réseaux sans modifications du code
source du paquet du serveur.
Note
Development versions of BLFS may not build or run some packages
properly if dependencies have been updated since the most recent
stable versions of the book.
Informations sur le paquet
Dépendances de stunnel
Facultatives
libnsl-2.0.0, netcat (requis pour les
tests), tcpwrappers
et TOR
Notes utilisateur : https://wiki.linuxfromscratch.org/blfs/wiki/stunnel
Installation de stunnel
Le démon Stunnel sera
lancé dans une cage chroot par un utilisateur non
privilégié. Créez le nouvel utilisateur et le nouveau groupe en
utilisant les commandes suivantes en tant qu'utilisateur
root
:
groupadd -g 51 stunnel &&
useradd -c "stunnel Daemon" -d /var/lib/stunnel \
-g stunnel -s /bin/false -u 51 stunnel
Note
Un certificat SSL signé et une clé privée sont nécessaires pour
lancer le démon stunnel. Après l'installation
du paquet, il y a des instructions pour les générer. Cependant si
vous possédez ou si vous avez déjà créé un certificat SSL signé
que vous souhaitez l'utiliser, copiez-le dans /etc/stunnel/stunnel.pem
avant de commencer la
construction (assurez-vous que seul root
a l'accès en lecture et écriture). Le
fichier .pem
doit être formaté
comme décrit ci-dessous :
-----BEGIN PRIVATE KEY-----
<many encrypted lines of private key>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<many encrypted lines of certificate>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<encrypted lines of dh parms>
-----END DH PARAMETERS-----
Installez stunnel en exécutant les
commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-systemd &&
make
Si vous avez installé l'application netcat facultative, les tests
de regression peuvent être lancés avec make check.
Maintenant, en tant qu'utilisateur root
:
make docdir=/usr/share/doc/stunnel-5.65 install
Si vous n'avez pas déjà un certificat SSL signé et une clé privée,
créez le fichier stunnel.pem
dans le
répertoire /etc/stunnel
en utilisant
la commande suivante. Vous aurez une invite pour rentrer les
informations nécessaires. Assurez-vous de répondre à
Common Name (FQDN of your server) [localhost]:
avec le nom ou l'adresse IP que vous utiliserez pour accéder au(x)
service(s).
Pour générer un certificat, en tant qu'utilisateur root
, tapez :
make cert
Explication des commandes
--disable-systemd
: Ce
paramètre désactive le support de l'activation de systemd, qui
n'est pas disponible dans BLFS.
make docdir=...
install : Cette commande installe le paquet et
modifie le répertoire d'installation de la documentation en un nom
conforme aux conventions.
Configuration de Stunnel
Fichiers de
configuration
/etc/stunnel/stunnel.conf
Informations sur la configuration
En tant qu'utilisateur root
,
créez le répertoire utilisé pour le fichier .pid
créé quand le démon Stunnel démarre :
install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run &&
chown stunnel:stunnel /var/lib/stunnel
Ensuite, créez un fichier de configuration /etc/stunnel/stunnel.conf
de base en utilisant
les commandes suivantes en tant qu'utilisateur root
:
cat > /etc/stunnel/stunnel.conf << "EOF"
; File: /etc/stunnel/stunnel.conf
; Note: The pid and output locations are relative to the chroot location.
pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
cert = /etc/stunnel/stunnel.pem
;debug = 7
;output = stunnel.log
;[https]
;accept = 443
;connect = 80
;; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL
;; Microsoft implementations do not use SSL close-notify alert and thus
;; they are vulnerable to truncation attacks
;TIMEOUTclose = 0
EOF
Enfin, ajoutez le(s) service(s) que vous souhaitez chiffrer au
fichier de configuration. Le format ressemble à ce qui
suit :
[<service>
]
accept = <hostname:portnumber>
connect = <hostname:portnumber>
Pour une explication complète des commandes et de leurs syntaxes,
utilisées dans le fichier de configuration, lancez man stunnel.
Script de démarrage
Pour démarrer automatiquement le démon stunnel quand on démarre le
système, installez le script de démarrage /etc/rc.d/init.d/stunnel
du paquet blfs-bootscripts-20220722.
make install-stunnel