GNU/Linux >> Tutoriels Linux >  >> Panels >> Webmin

Tunnel SSL

Sur cette page, le programme STunnel et le module Webmin pour sa mise en place sont documentés.

Introduction à SSL et STunnel

SSL est un protocole de cryptage des données dans une connexion TCP lorsqu'elles transitent sur le réseau. Il a été développé à l'origine pour protéger le trafic entre les navigateurs Web et les serveurs, mais peut être utilisé pour chiffrer tout type de flux de données qui serait normalement envoyé via le protocole TCP.

Le protocole SSL permet aux clients et aux serveurs de s'authentifier les uns auprès des autres, de sorte qu'un client peut être sûr qu'il se connecte réellement à l'hôte qu'il pense être. Cela se fait à l'aide de certificats émis par une autorité de certification reconnue par le client (afin qu'ils puissent être vérifiés) et associés à un nom d'hôte particulier. Sans certificats, un attaquant pourrait rediriger une connexion SSL vers son propre serveur et capturer des informations sensibles d'un client qui pense parler au vrai serveur.

Toutes les données circulant sur Internet sans être chiffrées peuvent être capturées et lues par un attaquant ayant accès à l'un des réseaux qu'elles traversent. Même les données circulant entre un système client et un système serveur sur un réseau local peuvent être facilement écoutées. Lorsque vous vous connectez à un serveur telnet, FTP ou POP3, votre mot de passe est envoyé sur le réseau et peut donc être capturé par un attaquant.

SSL peut être utilisé pour protéger les données dans ce genre de situations, mais uniquement si le client et le serveur le prennent en charge. La plupart des navigateurs Web et des clients de messagerie peuvent établir des connexions HTTP, POP3 et IMAP cryptées SSL, mais tous les serveurs Web et POP3 ne peuvent pas les accepter. POP3 en particulier est difficile à protéger, car le serveur standard fourni avec la plupart des systèmes Unix ne prend pas du tout en charge SSL. Heureusement, il existe une solution - STunnel.

STunnel est un programme simple qui convertit une connexion non cryptée en une connexion cryptée SSL. Il est généralement configuré pour être exécuté à partir d'un super-serveur comme inetd ou xinetd, puis exécuter un autre programme comme le serveur POP3 qui ne prend pas en charge SSL. Cette conception lui permet de protéger n'importe quel serveur qui est normalement exécuté à partir d'inetd, comme les serveurs telnet, NNTP et IMAP.

Cependant, tous les serveurs ne peuvent pas être efficacement protégés par cryptage, car aucun client n'existe pour les utiliser en mode SSL. Par exemple, je n'ai jamais entendu parler d'un client telnet ou FTP pouvant utiliser SSL, car le package SSH commun permet déjà les connexions à distance chiffrées et les transferts de fichiers.

Le module Tunnels SSL

Ce module Webmin facilite la configuration de services de super-serveur qui exécutent STunnel pour démarrer un programme serveur. Même si cela peut être fait manuellement à l'aide du module Services Internet (traité au chapitre 15), celui-ci est spécifiquement conçu pour l'installation et la configuration de STunnel. Il détecte automatiquement si vous avez installé inetd et/ou xinetd, lit leurs configurations pour vérifier les tunnels SSL existants et les ajoute lorsque vous créez un nouveau tunnel. Si les deux sont installés, de nouveaux tunnels SSL sont ajoutés à la configuration xinetd car c'est le supérieur des deux à mon avis.

Le module se trouve dans Webmin sous la catégorie Réseaux du menu principal. Lorsque vous cliquez sur son icône, une page comme celle ci-dessous s'affiche, listant tous les tunnels existants. Au bas de la page se trouve un bouton intitulé Appliquer les modifications qui, une fois cliqué, redémarre inetd ou xinetd, rendant ainsi la configuration actuelle active.


Le module Tunnels SSL

Si le programme est introuvable sur votre serveur, un message d'erreur du type *La commande STunnel /usr/bin/stunnel n'a pas été trouvée sur votre système* s'affichera à la place. Cela peut indiquer qu'il n'est pas installé ou que le module recherche dans le mauvais répertoire la commande stunnel. Dans ce dernier cas, vous pouvez ajuster la configuration du module, comme expliqué dans la section *Configuration du module Tunnels SSL* plus loin sur la page.

Cependant, si le programme n'est vraiment pas installé, vérifiez le CD de votre système d'exploitation ou votre site Web pour voir s'il existe un package pour STunnel. Si tel est le cas, vous pouvez l'installer à l'aide du module Progiciels. Sinon, vous devrez télécharger le code source depuis www.stunnel.org, le compiler et l'installer.

Créer et modifier des tunnels SSL

Si vous souhaitez protéger certains services avec un cryptage SSL, vous devrez créer un nouveau tunnel SSL. Deux types de tunnel différents peuvent être créés - un qui exécute un processus serveur comme le fait inetd, ou un qui se connecte à un autre hôte et port en mode non SSL. Ce dernier est plus simple si le serveur fonctionne déjà en mode non crypté, mais sera légèrement plus lent en raison de la nécessité d'établir une connexion réseau supplémentaire.

Avant de pouvoir créer un tunnel, vous devez choisir un numéro de port à utiliser. Pour certains protocoles, il existe un numéro de port standard - par exemple, 995 est souvent utilisé pour le POP3 crypté et 993 est utilisé pour l'IMAP crypté. Bien sûr, le numéro de port que vous choisissez ne doit pas être utilisé par un autre service ou serveur inetd sur votre système.

Les étapes à suivre pour créer un tunnel sont :

  1. Sur la page principale du module, cliquez sur Ajouter un nouveau tunnel SSL lien au-dessus ou au-dessous du tableau des tunnels existants. Le formulaire de création illustré à la Figure 46-2 s'affichera dans votre navigateur.
  2. Dans le nom du service saisissez un nom unique pour le service inetd de ce tunnel, tel que ssl-pop3 .
  3. Dans le port TCP saisissez le numéro de port sur lequel le tunnel doit accepter les connexions, par exemple 993 .
  4. À moins que vous ne souhaitiez que le tunnel soit temporairement désactivé, définissez l'option Actif ? champ sur Oui .
  5. Si ce tunnel doit exécuter un programme comme un serveur POP3, sélectionnez le Exécuter le programme de style inetd option. Dans le Chemin d'accès au programme saisissez le chemin d'accès complet au serveur, par exemple /usr/sbin/ipop3d . Dans le avec arguments saisissez le nom du programme suivi de tout argument de ligne de commande, tel que ipop3d . Comme pour les services créés dans le module Services et protocoles Internet, vous devez inclure le nom du programme comme premier argument.
  6. Alternativement, si ce tunnel doit se connecter à un serveur existant, sélectionnez Se connecter à l'hôte distant option. Entrez ensuite l'hôte auquel se connecter (tel que localhost ) et le numéro de port à utiliser (tel que 110 ) dans *Nom d'hôte distant et *Port distant champs respectivement.
  7. Le certificat SSL et le fichier de clé champ détermine quel certificat SSL sera présenté aux clients pour cette connexion. Si vous avez généré votre propre certificat auto-signé ou réel avec la commande openssl, sélectionnez Utiliser le certificat dans le fichier option et entrez le chemin d'accès complet au fichier dans la zone de texte adjacente. Sinon, vous pouvez choisir Utiliser le certificat de Webmin pour utiliser le même certificat que Webmin utilise en mode SSL, ou *Compiled-in default* pour utiliser le certificat fourni avec le logiciel STunnel. Si vous générez votre propre certificat, assurez-vous que le fichier contient à la fois la clé privée et le certificat au format PEM.
  8. Lors de la connexion à un hôte distant, STunnel peut être configuré pour se comporter de manière opposée à la normale. Au lieu d'accepter une connexion SSL et de la décrypter, vous pouvez choisir de lui faire accepter une connexion normale et de la crypter pour vous connecter à un autre serveur compatible SSL. Ce mode peut être activé en sélectionnant Accepter normal et se connecter avec SSL dans le champ *Mode tunnel*. Cela peut être utile si ni vos programmes client ni serveur ne prennent en charge SSL, mais que vous souhaitez toujours que les données entre eux soient cryptées. STunnel peut être configuré sur le système client dans ce mode, configuré pour se connecter à un autre service STunnel sur le système serveur qui utilise le mode *Accepter SSL et se connecter normalement*.
  9. Cliquez sur Créer bouton en bas de la page pour ajouter le nouveau service.
  10. Une fois que vous êtes revenu sur la page principale du module, cliquez sur Apply Changes pour activer le nouveau tunnel.


Le formulaire de création de tunnel SSL

Tous les détails d'un tunnel existant peuvent être modifiés en cliquant sur son nom dans la liste de la page principale du module. Cela fera apparaître un formulaire d'édition similaire à celui de la Figure 46-2, mais avec tous les champs déjà remplis. Vous pouvez soit apporter des modifications et cliquer sur Enregistrer pour les enregistrer, ou cliquez sur Supprimer pour supprimer complètement le tunnel. D'une autre manière, l'option Appliquer les modifications sur la page principale doit être cliqué pour rendre les modifications actives.


Webmin
  1. Serveur de messagerie instantanée Jabber

  2. Serveur de base de données PostgreSQL

  3. Serveur ProFTPD

  4. Serveur proxy Squid

  5. Serveur WU-FTPD

Serveur OpenSLP

Serveur de messagerie Postfix

Serveur SSH

Dépannage :erreurs de connexion au serveur

Installer des certificats SSL sur un serveur Windows

Comment faire un transfert SSL de Tomcat à Tomcat sur CentOS