Stunnel : Fabrication d'un tunnel SSL
Contents
1 Introduction
Si par exemple vous avez un soft qui ne supporte pas le ssl, et que vous voulez sécuriser les connections réseaux, alors encapsulez le dans un tunnel SSL. Ce tunnel encryptera donc les données de bout en bout.
2 Installation
2.1 Debian
apt-get install stunnel4
2.2 Red-Hat
wget http://www.stunnel.org/download/stunnel/src/stunnel-4.20.tar.gz tar -xzvf stunnel-4.20.tar.gz cd stunnel-4.20 ./configure && make && make install
2.3 Windows
Telecharger le client : http://www.stunnel.org/download/binaries.html
Sous Windows, tous les fichiers de configurations sont dans "C:\Program Files\stunnel", adapter donc les exemples ci dessous en fonction des chemins de fichiers
3 Configuration
3.1 Serveur
On ne touche pas au fichier /etc/stunnel/stunnel.conf, il est préférable de créer un fichier à part (par exemple "/etc/stunnel/services.conf")
voici en exemple le contenu du fichier qui va servir à forwarder du telnet ainsi qu'une connexion VNC (en admettant qu'un serveur VNC tourne sur le port "5901").
cert = /etc/stunnel/stunnel.pem # Certificat à utiliser CAfile = /etc/stunnel/stunnel.pem # idem verify = 3 # Niveau de verification des certificats ##Définition des Services## [Telnet] # Nom du Service accept = 88.191.31.151:12345 # Adresse du serveur qui héberge le service : Port alternatif sécurisé connect = 127.0.0.1:23 # Adresse locale du serveur : Port réel du service [VNC] # Nom du Service accept = 88.191.31.151:54321 # Adresse du serveur qui héberge le service : Port alternatif sécurisé connect = 127.0.0.1:5901 # Adresse locale du serveur : Port réel du service
3.2 Client
Comme pour le serveur, il est préférable de créer un fichier de configuration à part.(toujours "/etc/stunnel/services.conf"
Ce fichier sera semblable au fichier du serveur sauf que la logique des services est inversée et l'option "Client" est définie:
client = yes # Indique qu'il s'agit du client cert = /etc/stunnel/stunnel.pem # Certificat à utiliser CAfile = /etc/stunnel/stunnel.pem # idem verify = 3 # Niveau de verification des certificats ##Définition des Services## [Telnet] # Nom du Service accept = 127.0.0.1:23 # Adresse du serveur qui héberge le service : Port alternatif sécurisé connect = 88.191.31.151:12345 # Adresse locale du serveur : Port réel du service [VNC] # Nom du Service accept = 127.0.0.1:5901 # Adresse du serveur qui héberge le service : Port alternatif sécurisé connect = 88.191.31.151:54321 # Adresse locale du serveur : Port réel du service
4 Generation du Certificat
Créer un fichier "/etc/stunnel/cert.conf" avec les lignes suivantes :
[ req ] default_bits = 1024 # Mettez 2056 si vous êtes parano encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] C=FR ST=France L=Paris O=Deimos OU=Deimos Network Team CN=deimos.fr emailAddress=deimos@deimos.fr [ cert_type ] nsCertType = server
Puis pour generer le certificat, se placer dans le dossier "/etc/stunnel" taper :
openssl req -new -days 365 -nodes -config /etc/stunnel/cert.conf -out stunnel.pem -x509 -keyout stunnel.pem
5 Utilisation
Maintenant que les fichiers de configuration sont créés stunnel est pret à etre lancé.
Linux
stunnel4 /etc/stunnel/services.conf
Windows :
cd "C:\Programe Files\stunnel" stunnel.exe services.conf
Le client pourra donc se connecter au service distant de cette facon :
telnet 127.0.0.1 vnc4client 127.0.0.1:5901