Stunnel : Fabrication d'un tunnel SSL

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

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
[email protected]
 
[ 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