Vous êtes ici

Mise en place d'un tunnel SSL : stunnel

Nous allons voir dans cet article comment mettre en place un connexion sécurisée entre 2 points en établissant un tunnel crypté en SSL. Pour cela nous allons utiliser stunnel.

Nous avons donc dans notre exemple :
- 1 serveur avec un service en écoute sur le port 4242 (c’est le serveur que nous voulons joindre avec une connexion sécurisée)
- 1 client qui veut joindre ce serveur
- 1 serveur tiers qui va héberger le service stunnel en mode serveur (ce service peut également être hébergé sur le même serveur que celui sur lequel il y a le service à securiser)

  • Sur le serveur stunnel

Nous installons le service stunnel :

apt-get install stunnel4

Nous gênerons un certificat SSL :

openssl genrsa -out key.pem 2048
openssl req -new -x509 -key key.pem -out cert.pem -days 1095
cat key.pem cert.pem >> /etc/stunnel/stunnel.pem

Maintenant nous allons passer au fichier de configuration de stunnel :

vi /etc/stunnel/stunnel.conf :
client = no
[opentsdb]
accept = 1088
connect = 192.168.0.67:4242
cert = /etc/stunnel/stunnel.pem

Explication :
client = no : nous sommes coté serveur , donc c’est normal
[opentsdb] : c’est à titre informatif, c’est le nom du service que nous voulons faire passer dans le tunnel
accept = 1088 : ici, c’est le port sur lequel notre serveur stunnel va ecouter, il faudra que le client se connecte sur ce port pour établir la liaison securisée avec le serveur stunnel
connect = 192.168.0.67:4242 > c’est l’ip et le port du serveur et du service que nous voulons encapsuler dans le tunnel SSL
cert = /etc/stunnel/stunnel.pem > le certificat que nous avons généré précédemment qui va être utilisé pour crypter la connexion

Nous éditons ensuite le fichier /etc/default/stunnel4 pour permettre a stunnel de démarrer automatiquement avec le serveur :

vi /etc/default/stunnel4 :
ENABLED=1
FILES="/etc/stunnel/*.conf"
OPTIONS=""

il n’y a plus qu’à executer le service stunnel serveur :

/etc/init.d/stunnel4 restart

 

  • Coté client :

Installation de stunnel4 :

apt-get install stunnel4


Nous copions à l’identique le fichier stunnel.pem que nous avons créé précédemment :

vi /etc/stunnel/stunnel.pem

Nous éditons la configuration de stunnel :

vi /etc/stunnel/stunnel.conf
cert = /etc/stunnel/stunnel.pem
client = yes
[opentsdb]
accept = 127.0.0.1:4242
connect = **.**.119.43:1088

Explication :
cert = /etc/stunnel/stunnel.pem : le certificat identique à celui du serveur qui va permettre d’établir la connexion sécurisée
client = yes : nous passons en mode client
[opentsdb] : c’est a titre informatif, c’est le nom du service que nous voulons faire passer dans le tunnel
accept = 127.0.0.1:4242 : ici, c’est l’ip et le port sur lequel le client stunnel va écouter, il faudra donc renseigner cette ip/port à l’application cliente au lieu du serveur initial 192.168.0.67:4242. Ce sera totalement transparent, à la sortie du tunnel , le flux sera directement dirigé vers le serveur 192.168.0.67:4242, mais il aura transité par le stunnel de manière crypté en SSL
connect = **.**.119.43:1088 : ip/port du serveur stunnel

nous éditons ensuite le fichier /etc/default/stunnel4 pour permettre a stunnel de démarrer automatiquement avec le serveur :

vi /etc/default/stunnel4 :
ENABLED=1
FILES="/etc/stunnel/*.conf"
OPTIONS=""


il n’y a plus qu’à executer le service stunnel serveur :

/etc/init.d/stunnel4 restart

 

Tags: 

www.le-gas.fr : Le guide de l'admin Systeme