Recherche de site Web

Comment restreindre l’accès SSH aux réseaux locaux sous Linux


SSH (Secure Shell) est un outil populaire qui permet aux utilisateurs de se connecter à des systèmes distants en toute sécurité sur un réseau. Par défaut, SSH est accessible à partir de n’importe quel réseau tant que le pare-feu et les paramètres réseau appropriés sont en place.

Toutefois, pour des raisons de sécurité, vous pouvez parfois restreindre l’accès SSH à votre réseau local. Ceci est particulièrement utile dans un environnement domestique ou professionnel où vous ne souhaitez pas d’accès externe à votre système via Internet.

Dans cet article, nous allons passer en revue les étapes à suivre pour restreindre l’accès SSH au réseau local sous Linux à l’aide de règles de pare-feu et de configurations SSH. Nous expliquerons chaque étape en termes simples pour nous assurer que même un débutant peut suivre.

Pourquoi restreindre SSH au réseau local ?

Restreindre l’accès SSH au seul réseau local peut réduire le risque d’accès non autorisé à votre système.

Voici quelques raisons pour lesquelles vous voudrez peut-être le faire :

  • Sécurité : Limiter l’accès à SSH à partir de réseaux extérieurs empêche les attaquants d’analyser ou d’essayer de forcer votre serveur sur Internet.
  • Accès contrôlé : si vous avez plusieurs appareils connectés au même réseau local, vous pouvez toujours gérer le système sans l’exposer à des menaces externes.
  • Simplicité : avec l’accès local uniquement, vous n’aurez pas à vous soucier de configurer des couches de sécurité supplémentaires pour l’accès externe.

Comprendre le réseau local

Avant de commencer, il est important de comprendre ce que l’on entend par « réseau local ». Un réseau local est un groupe d’appareils connectés au sein d’un même réseau physique ou sans fil, tel que votre réseau Wi-Fi domestique ou professionnel.

Ces périphériques partagent la même plage d’adresses IP internes, telle que 192.168.x.x ou 10.0.x.x, tandis que les périphériques externes (ceux sur Internet) auront des plages d’adresses IP différentes.

Étape 1 : Vérifiez votre plage d’adresses IP locales Linux

Pour connaître la portée de votre réseau local, vous devez d’abord déterminer l’adresse IP de votre appareil à l’aide de la commande ip suivante, qui affichera votre adresse IP et les informations sur votre réseau.

ip a

Vous verrez des informations sur les interfaces réseau. Recherchez quelque chose comme 192.168.x.x ou 10.0.x.x, qui vous indiquera votre adresse IP locale.

Habituellement, votre adresse IP locale se trouve dans l’une des plages privées suivantes :

192.168.x.x
10.0.x.x
172.16.x.x to 172.31.x.x

Par exemple, si votre adresse IP est 192.168.122.63, votre plage de réseau local est probablement 192.168.1.0/24, ce qui signifie que tous les appareils dont les adresses IP se situent dans la plage 192.168.1.x se trouvent sur le même réseau local.

Étape 2 : Configurer SSH pour écouter uniquement sur les adresses locales

Par défaut, SSH écoute sur toutes les interfaces réseau disponibles. Nous allons le changer pour écouter uniquement sur le réseau local.

sudo nano /etc/ssh/sshd_config

Trouvez la ligne avec #ListenAddress et décommentez-la (supprimez le # au début). Réglez-le sur votre adresse IP locale.

Par exemple, si votre adresse IP locale est 192.168.122.63, mettez à jour le fichier comme suit :

ListenAddress 192.168.122.63

Redémarrez le service SSH pour que les modifications prennent effet.

sudo systemctl restart ssh
OR
sudo systemctl restart sshd

Désormais, votre serveur SSH n’écoutera que les connexions à partir de votre adresse IP locale. Si vous essayez de vous connecter à partir d’un réseau externe, la connexion sera refusée.

Étape 3 : Restreindre SSH avec des règles de pare-feu

Bien qu’il soit utile de configurer le démon SSH pour qu’il n’écoute que les adresses locales, vous pouvez ajouter une couche de sécurité supplémentaire en configurant des règles de pare-feu, qui garantissent que seuls les appareils de votre réseau local peuvent se connecter via SSH, même si quelqu’un tente d’accéder à votre système à l’aide de votre adresse IP externe.

Utilisation de UFW (Uncomplicated Firewall)

Si vous utilisez UFW, le pare-feu par défaut sur de nombreuses distributions Linux comme Ubuntu, suivez ces commandes :

Pour autoriser les connexions SSH uniquement à partir de votre réseau local, telles que les adresses IP comprises dans la plage 192.168.1.x, et refuser les connexions SSH à partir d’autres réseaux. Assurez-vous de recharger le pare-feu et de vérifier son état.

sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw deny 22
sudo ufw reload
sudo ufw status

Utilisation de Firewalld

Pour restreindre SSH au réseau local sous Linux à l’aide de Firewalld, suivez ces commandes.

Pour autoriser l’accès SSH à partir de votre réseau local, par exemple les adresses IP comprises dans la plage 192.168.1.x, et refuser les connexions SSH à partir d’autres réseaux. Assurez-vous de recharger le pare-feu et de vérifier son état.

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="22" drop'
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

Utilisation d’iptables

Si vous n’utilisez pas UFW ou Firewalld, vous pouvez utiliser iptables pour configurer des règles similaires.

sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
sudo iptables-save | sudo tee /etc/iptables/rules.v4
sudo iptables -L

Désormais, l’accès SSH n’est autorisé qu’à partir d’appareils locaux à portée de votre réseau.

Étape 4 : Testez votre configuration

Après avoir configuré SSH et le pare-feu, il est temps de tester la configuration pour s’assurer que tout fonctionne comme prévu.

À partir d’un appareil de votre réseau local, essayez de vous connecter au serveur à l’aide de SSH :

ssh [email 

Si vous avez accès à un réseau externe (par exemple, à l’aide de données mobiles ou d’un VPN), essayez de vous connecter à l’adresse IP externe du système. La connexion doit être bloquée ou refusée.

Conseils supplémentaires

Voici quelques conseils supplémentaires pour configurer SSH sur le réseau local :

  • IP statique : il est judicieux de définir une adresse IP statique pour le périphérique dans lequel vous souhaitez vous connecter en SSH, en particulier si vous configurez des règles de pare-feu basées sur la plage d’adresses IP locales, ce qui empêchera votre adresse IP de changer si le routeur redémarre.
  • Accès VPN : Si vous avez besoin d’un accès à distance à partir d’un réseau externe, envisagez de configurer un VPN, qui vous permettra de vous connecter à votre réseau local en toute sécurité via Internet, et SSH ne sera toujours accessible qu’au sein du réseau local.
  • Surveillez les journaux : surveillez toujours vos journaux SSH pour détecter toute tentative d’accès non autorisé.

Vous pouvez vérifier les journaux à l’aide de la commande tail :

sudo tail -f /var/log/auth.log
Conclusion

Restreindre l’accès SSH au réseau local est un moyen simple mais efficace d’améliorer la sécurité de votre système Linux. En suivant les étapes de ce guide, vous pouvez empêcher l’accès externe à votre serveur SSH tout en conservant l’accès local pour les tâches de gestion et d’administration.

Avec des règles de pare-feu et une configuration appropriée, vous pouvez vous assurer que seuls les appareils de confiance de votre réseau local peuvent se connecter via SSH, réduisant ainsi le risque d’accès non autorisé.

Articles connexes: