Articles récents
Linux : Sécuriser les échanges réseau
Avec l'affaire Snowden et les révélations sur les écoutes de la NSA, il devient évident que tous nos échanges sont exploités voir sauvegardés par des organismes gouvernementaux pour des raisons diverses et variées. Je ne m’édenterais pas sur ce sujet, mais simplement il comment faire pour sécuriser les échanges réseaux?
Et bien, il suffit d'utiliser des protocoles sécurisés ou des mécanismes de chiffrement comme le tunnel SSH ou le VPN.
1) SĂ©curiser les transfert FTP
Le protocole FTP est fait pour échanger des fichiers (File Transfer Protocol). Mais il s'agit d'un vieux protocole qui n'est pas sécurisé, les mots de passe en clair! Il existe désormais le protocole FTPS (S pour sécurisé) qui utilise un chiffrement pour protéger les données échangées. Sous Linux, vous pouvez utiliser l'application VsFTPd pour utiliser le protocole FTPS. Sous Debian, cette application n'est pas native, vous pouvez l'installer par la commande apt-get install vsftpd.Cette application est produite par Chris Evans, chargé de la sécurité autour de Chrome chez Google. Le fichier de configuration est /etc/vsftpd.conf et pour une fois il est très bien documenté! Avec un quelques notions d'anglais, il suffit de le suivre pour retenir les quelques paramètres intéressants. Globalement, pour forcer un utilisateur à se connecter en utilisant un mot de passe vous pouvez utiliser cet exemple:
2) Utilisation de SSH
2.1) Généralités
SSH pour Secure Shell, est un protocole et également un ensemble d'outils (comme ssh, sftp, scp, ...) qui permet des communications sécurisés. La suite d'outil la plus complète dans ce domaine est l'openssh. Il ne faut confondre SSH et SSL/TLS (TLS est l'autre nom de SSL, créé par Netscape sous le nom SSL et normalisé par l'IETF sous le nom TLS). SSL est un protocole de chiffrement orienté autour de https, alors que SSH permet de chiffrer des tunnels est donc du FTP, HTTP, ... SSL/TLS permet de sécuriser le transport d'informations via le Web, et SSH est une véritable plate-forme de sécurisation pour toutes formes de communications électroniques.Le tunnel SSH est un mécanisme qui permet le déport d'un port d'un service généralement distant. Il y a encapsulation des trames dans un canal sécurisé communément appelé tunnel. Cela permet de communiquer sur le port de votre choix et de rendre intelligible l'échange. Il suffit de choisir un port non filtré par le firewall de votre entreprise pour communiquer ni vu ni connu.
2.2) Créer un tunnel SSH
Voyons comment créer un tunnel entre deux stations linux. Il y a globalement trois méthodes:Mais concrètement, comment faire un tunnel entre deux stations Linux? Tout d'abord, il faut activer le service sshd sur vos deux stations par la commande service sshd start. Prenons l'exemple, d'un serveur web sous Linux et d'une station cliente Linux, pour créer un tunnel il suffit de taper la commande au format ci dessous:
ssh -L port_local:adresse_locale:port_distant user@adresse_server_distant
Par exemple, j'ai tapé :
ssh -L 4321:127.0.0.1:80 root@192.168.73.74
Ensuite, il suffit de taper dans le navigateur de ma station cliente l'url : localhost:4321 .
2.3) Echange de clés
Lors de la première connexion, la station indique qu'elle ne connait pas la clé publique du serveur et propose de la sauvegarder. Les clés publiques sont sauvegardés sous /home/user/.ssh/know_hosts.Mais ce qui est intéressant avec SSH, c'est de créer une clé, de la publier sur le serveur et de communiquer avec. Voyons comment faire :
3)Créer un VPN
3.1) Généralités
Le fonctionnement du VPN est très différent. Cela revient à tirer un câble entre le LAN du serveur VPN et entre votre station. En fait, le VPN vous permet d'obtenir une adresse IP du réseau distant du serveur. Le VPN sécurise également l'échange en créant un tunnel et donc une encapsulation des trames qui seront chiffrées à l'intérieur.3.2) Création d'un canal non sécurisé
La première étape dans la mise en oeuvre d'un VPN est de créer un canal sans chiffrement. Il suffit de deux machines pour tester notre canal (un client et un serveur), en théorie le serveur VPN ouvre le canal sur le LAN des serveurs/services métiers. Je n'ai pas de serveur pour ce test, on se contentera de pinguer l'interface virtuelle du tunnel.La première étape consiste à installer openvpn par apt-get install openvpn ou yum install openvpn selon votre distribution. Ensuite on créé un fichier de configuration par touch /etc/openvpn/openvpn-client.conf sur la station cliente. Dans le fichier, vous pouvez ajouter :
De mĂŞme pour le serveur :
Ensuite il suffit de lancer l'application avec la commande (si le service est lancé, faire un service openvpn stop):
Le canal est créé entre deux interfaces virtuelles du tunnel. Sur le client, on observe une interface tun0.
Pour tester le canal, il suffit alors de pinguer les interfaces virtuelles tun0 par ping 12.0.0.1 et ping 12.1.0.1 selon si vous ĂŞtes sur le serveur ou sur le client.
3.3) Création d'un canal sécurisé par une clé statique
Pour générer la clé, il suffit de taper la commande openvpn --genkey --secret macle. Ensuite, il faut copier la clé par scp macle A.B.C.D:/etc/openvpn. Ensuite les fichiers de configuration sont à modifier comme ci-dessous. Pour le serveur:Et pour le client :
3.4) Création d'un canal SSL VPN
Pour cela je vous conseille l'article http://mathieu-androz.developpez.com/articles/linux/vpn/. Il suffit de suivre ce qui est indiqué.Globalement, il faut suivre la séquence suivante:
Conclusion
Voila, nous avons vu quelques méthodes pour sécuriser vos échanges de données. Enfin, pour un échange ponctuel entre deux stations Linux, SSL propose la commande scp qui est à employer sans modération! (exemple : scp monfic.txt 192.168.0.1:/etc/openvpn)
© 2024 www.doritique.fr par Robert DORIGNY