SysFailure

Imprimer

Stunnel

.

Il arrive souvent que l'on souhaite mettre en place une communication automatique entre un client et un serveur, communication devant passer par un réseau non sécurisé (typiquement Internet), mais aucun des deux communicants ne sachant parler SSL. Un exemple typique est une connexion vers une base de données (nous supposons que les risques associés à l'accessibilité d'une base de données depuis Internet sont limités par des filtres de paquets ou tout autre mécanisme; ne mettez jamais en ligne une base de données sans la protéger !).

Stunnel, développé par Michal Trojnara, est un outil qui permet de répondre à ce besoin. Il s'agit d'un programme permettant de SSL-iser un couple client/serveur, sans la moindre modification du code des clients et serveurs en question. Le résultat est une communication transparente entre le client et le serveur, avec SSL grâce à Stunnel (qui s'interpose entre le client et le serveur) :

  1. le client dialogue en clair et en local (généralement) avec un processus Stunnel,
  2. configuré pour dialoguer de manière chiffrée avec un second processus Stunnel,
  3. lequel dialogue en clair et en local avec le serveur.

La figure 1 présente le schéma général des échanges.

Schéma fonctionnement Stunnel

Il est à noter que rien n'oblige à ce que STunnel fonctionne aux deux extrémités de l'échange réseau. STunnel peut être utilisé

  • uniquement sur le client, pour que des programmes non SSL-isés puissent dialoguer avec un serveur SSL (lynx sans SSL avec un serveur Web SSL par exemple), ou
  • uniquement sur le serveur, pour que des programmes ne faisant que du SSL puissent dialoguer avec un serveur incapable d'accepter une connexion chiffrée.

Installation de Stunnel

Les sources de Stunnel sont disponibles sous licence GPL. La compilation et l'installation ne posent pas de difficultés particulières :

$ ./configure
$ make
# make install

L'utilitaire configure propose diverses options pour la gestion de l'installation. La commande

$ ./configure --help

vous permettra d'examiner toutes les options possibless la majeure partie concernant les répertoires d'installation

L'installation doit être exécutée par l'utilisateur root. L'exécutable (stunnel) est, par défaut, placé dans le répertoire /usr/local/sbin. Le fichier de configuration d'exemple (stunnel.conf-sample) et un certificat SSL autosigné (mail.pem) sont normalement placés dans /usr/local/etc/stunnel.