Maitrisez Le Tunneling SSH - DevSecOps
Maitrisez Le Tunneling SSH - DevSecOps
Maitrisez Le Tunneling SSH - DevSecOps
Docs Blog
L’utilisation du tunneling SSH est devenue incontournable pour toute personne soucieuse de
sécuriser ses communications réseau, en particulier lorsque des données sensibles transitent
par des réseaux non sécurisés. Que vous soyez administrateur système ou développeur,
comprendre et maîtriser cette technique vous permettra de créer des connexions sécurisées
entre différentes machines, en redirigeant le trafic à travers une connexion chiffrée. De plus, le
tunneling SSH est indispensable dans le développement ou l’administration système pour
éviter d’ouvrir des flux réseau supplémentaires comme lors de l’analyse des incidents. En
centralisant et sécurisant le trafic via un tunnel SSH, vous pouvez diagnostiquer et résoudre
les problèmes sans compromettre la sécurité du réseau.
Redirection de port : La redirection de port est une technique qui consiste à rediriger le trafic
réseau d’un port spécifique vers un autre port, souvent sur une machine différente. Cette
technique est utilisée pour acheminer le trafic à travers une connexion SSH sécurisée,
permettant d’accéder à des services distants ou locaux en toute sécurité.
Proxy SOCKS : Le proxy SOCKS est un protocole qui permet de rediriger le trafic d’une
application via un serveur intermédiaire. Dans le contexte du tunneling SSH, un proxy SOCKS
est utilisé pour acheminer le trafic réseau de manière dynamique, ce qui permet d’accéder à
plusieurs services à travers une seule connexion sécurisée.
Le tunneling SSH est une méthode puissante qui permet de sécuriser et de rediriger le trafic réseau
Docs Blog
d’un point à un autre via une connexion SSH chiffrée. Cette technique repose sur trois principales
fonctionnalités, chacune offrant des avantages spécifiques en fonction des besoins de l’utilisateur :
Sur cette page Vue d’ensemble
Redirection de port local : Cette fonctionnalité permet de rediriger le trafic destiné à un port
local vers un port spécifique d’un serveur distant via un tunnel SSH sécurisé. Cela peut être
utile pour accéder à des services distants comme s’ils étaient hébergés localement.
Redirection de port distant : À l’inverse de la redirection de port local, cette méthode permet
de rediriger le trafic d’un port sur un serveur distant vers un port local de votre machine. Cela
facilite l’accès à des services locaux pour des utilisateurs ou des systèmes distants.
Supposons que vous souhaitez accéder à une base de données MySQL sur un serveur privé qui
n’est pas directement accessible depuis votre réseau. Le serveur MySQL est situé derrière un
bastion et écoute sur le port 3306 . Vous pouvez configurer une redirection de port local avec la
commande suivante :
3307 est le port local sur votre machine où vous accéderez à la base de données.
Docs Blog
192.168.1.100 est l’adresse IP du serveur MySQL dans le réseau privé.
pageest le port
3306
Sur cette Vuesur lequel MySQL écoute sur le serveur privé.
d’ensemble
[email protected] correspond aux informations de connexion SSH au bastion.
Désormais, en utilisant localhost:3307 , vous pouvez accéder à la base de données MySQL comme
si elle était exécutée localement.
Imaginons que vous ayez un serveur web local exécuté sur le port 8080 et que vous souhaitiez le
rendre accessible via le bastion. Vous pouvez configurer une redirection de port distant avec la
commande suivante :
8080 est le port sur le bastion que les utilisateurs distants peuvent utiliser pour accéder à
votre serveur web local.
localhost:8080 correspond à votre serveur web local que vous souhaitez rendre accessible.
Une fois cette redirection établie, toute personne qui accède à http://203.0.113.10:8080 sera
redirigée vers votre serveur web local.
Tunneling dynamique
Le tunneling dynamique est un peu plus flexible que les redirections de port locales ou distantes. Il
vous permet de créer un proxy SOCKS, qui peut être utilisé pour rediriger tout le trafic réseau à
travers un bastion. Cela est particulièrement utile pour sécuriser votre navigation web ou pour
accéder à des services réseau sans modifier la configuration de chaque service.
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 3/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
Docs Blog
1080 est le port local sur votre machine que vous utiliserez comme proxy SOCKS.
Une fois ce tunnel configuré, vous pouvez configurer votre navigateur ou toute autre application
réseau pour utiliser localhost:1080 comme proxy SOCKS. Tout le trafic sera alors chiffré et redirigé
à travers le bastion, offrant ainsi un accès sécurisé aux services distants.
Conclusion
Ces trois méthodes de tunneling SSH permettent de sécuriser et de rediriger le trafic réseau selon
vos besoins spécifiques. Que vous ayez besoin d’accéder à des services distants de manière
sécurisée, de rendre un service local accessible à des utilisateurs distants, ou de sécuriser
l’ensemble de votre trafic réseau, le tunneling SSH offre une solution flexible et puissante. En
maîtrisant ces configurations, vous pourrez mieux protéger vos données et gérer efficacement les
ressources réseau.
Pour générer une paire de clés SSH, vous pouvez utiliser la commande suivante sur votre machine
locale :
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 4/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
Docs Blog
Cette commande génère une paire de clés SSH avec un chiffrement RSA de 4096 bits. La clé
publique pageensuite Vue
Sur cette doit être d’ensemble
copiée sur le bastion ou tout autre serveur SSH auquel vous vous
connectez régulièrement :
ssh-copy-id [email protected]
Une fois les clés SSH configurées, assurez-vous de désactiver l’authentification par mot de passe sur
vos serveurs SSH en modifiant le fichier de configuration SSH /etc/ssh/sshd_config :
PasswordAuthentication no
Cela réduit considérablement le risque de compromission via des attaques par force brute sur les
mots de passe.
Par exemple, pour n’autoriser que les utilisateurs admin et deploy à se connecter via SSH, vous
pouvez ajouter la ligne suivante :
Cette simple configuration peut réduire la surface d’attaque en limitant le nombre de comptes
susceptibles d’être ciblés par des tentatives de connexion non autorisées.
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 5/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
potentielle. Pour minimiser les risques, assurez-vous de fermer les tunnels SSH une fois que vous
Docs Blog
avez terminé de les utiliser.
Sur cette
Vous pageterminerVue
pouvez uned’ensemble
session SSH (et fermer tous les tunnels associés) en utilisant la
commande exit ou en fermant simplement le terminal.
who
Pour une surveillance plus avancée, envisagez de mettre en place des outils de détection d’intrusion
comme Fail2ban ou crowdsec, qui peuvent détecter et bloquer automatiquement les tentatives de
connexion suspectes ou répétées.
Par exemple, si vous utilisez ufw comme pare-feu sur un serveur Ubuntu, vous pouvez autoriser
uniquement une adresse IP spécifique à se connecter via SSH :
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 6/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
Pour garder une trace des connexions SSH et des actions effectuées via SSH, il est important
Docs Blog
d’activer une journalisation avancée. Cela vous permet de retracer les actions en cas de
comportement suspect ou de brèche de sécurité.
Sur cette page Vue d’ensemble
LogLevel VERBOSE
Cette configuration permet de capturer plus d’informations sur les connexions et les tentatives de
connexion, ce qui peut être utile lors d’une analyse post-incident.
Sur un serveur basé sur Ubuntu ou Debian, vous pouvez mettre à jour vos paquets SSH avec la
commande suivante :
Conclusion
Le tunneling SSH est bien plus qu’un simple outil pour rediriger du trafic réseau ; il représente une
méthode essentielle pour sécuriser les communications, protéger les données sensibles et faciliter
l’accès à des services et ressources distants de manière sécurisée. Que vous soyez développeur,
administrateur système ou responsable de la sécurité, maîtriser le tunneling SSH est une
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 7/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
compétence indispensable dans le contexte actuel où les menaces de sécurité informatique sont
Docs Blog
omniprésentes.
Plus loin
Note
Ce guide fait partie de la formation complète à l’administration de serveurs Linux
Pour maîtriser chaque aspect essentiel de l’administration de serveurs Linux, parcourez les
autres documentations de cette formation :
Installation des Serveurs Linux ↗ : Suivez un guide complet pour installer Linux et
configurer votre serveur de manière fiable et performante.
Création de Scripts Shell ↗ : Automatisation des tâches courantes pour une gestion plus
efficace.
Optimisation des Performances ↗ : Suivez des pratiques pour surveiller et améliorer les
performances du serveur.
Connexion SSH ↗ : Configurez des connexions SSH sécurisées pour accéder à distance
à vos serveurs.
Sécurisation des Scripts Shell ↗ : Adoptez les bonnes pratiques pour sécuriser vos
scripts shell.
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 8/9
30/10/2024 11:06 Maitrisez le tunneling SSH | DevSecOps
Ce contenu est régulièrement enrichi avec de nouveaux guides pour intégrer les dernières
Docs Blog
pratiques et outils en administration Linux. Profitez de chaque documentation pour bâtir une
expertise complète et devenir un administrateur Linux compétent et efficace.
Sur cette page Vue d’ensemble
L'intégralité des contenus présents sur ce site appartiennent aux auteurs des
contenus en question. En droit français, il est donc interdit de copier ces
contenus, sans accord préalable de(s) auteur(s).
Précédent Suivant
https://blog.stephane-robert.info/docs/admin-serveurs/linux/ssh-tunneling/ 9/9