Introduction à Stunnel
Le paquet Stunnel contient un
programme qui vous permet de chiffrer des connexions TCP de votre
choix 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
ajouter la fonctionnalité SSL aux démons Inetd couramment utilisés comme les serveurs
POP-2, POP-3, et IMAP, aussi bien qu'à des démons autonomes comme
NNTP, SMTP et HTTP. stunnel peut
aussi être utilisé pour les tunnels PPP par des sockets réseaux
sans modifications du code source du paquet du serveur.
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-7.7.
Informations sur le paquet
Dépendances de Stunnel
Requises
OpenSSL-1.0.2
Facultatives
tcpwrappers et
TOR
Notes utilisateur : http://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 que le paquet
est installé, 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 lançant les
commandes suivantes :
Note
Pour certains sytèmes avec une version de binutils inférieure à 2.25, configure peut échouer. Si
nécessaire, corrigez le avec:
sed -i '/LDFLAGS.*static_flag/ s/^/#/' configure
ou, si llvm-3.5.1 est installé avec Clang, vous pouvez
remplacer ./configure
... avec CC=clang
./configure ... dans la première commande
dessous.
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-systemd &&
make
Ce paquet n'est pas fourni avec une suite de tests.
Maintenant, en tant qu'utilisateur root
:
make docdir=/usr/share/doc/stunnel-5.10 install
si vous n'avez pas déjà un certificat SSL signé et une clé privé,
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]:
répondre 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 de 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
chmod -v 644 /etc/stunnel/stunnel.conf
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>
Si vous utilisez Stunnel pour
chiffrer un démon lancé à partir de [x]inetd, il se peut que vous
deviez désactiver ce démon dans le fichier /etc/[x]inetd.conf
et activer un service
<service>
_stunnel
correspondant. Il se peut que vous deviez également ajouter une
entrée adéquate dans /etc/services
.
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-20150304.
make install-stunnel