SSH (Secure Shell) est un protocole réseau sécurisé basé sur l'architecture client-serveur qui vous permet d'accéder en toute sécurité à des ordinateurs/serveurs distants sur le réseau.
SSH est largement utilisé par les administrateurs système pour se connecter à des serveurs distants. Cela permet aux administrateurs de gérer facilement les serveurs et les applications à distance et en toute sécurité, de n'importe où et à tout moment.
Dans ce guide, je vais vous montrer comment configurer et activer SSH sur les systèmes CentOS/RHEL. Avec le SSH activé sur ce système CentOS, vous devriez pouvoir accéder à ce système à partir d'autres ordinateurs en utilisant son adresse IP.
Ce didacticiel comprend également les étapes pour modifier le port SSH par défaut, désactiver la connexion SSH pour l'utilisateur root et configurer firewalld pour sécuriser votre serveur SSH.
Pour suivre ce guide, assurez-vous que vous disposez des conditions suivantes :
- Un système Linux CentOS/RHEL. Vous pouvez l'installer sur votre machine physique/matériel réel, ou en utilisant la machine virtuelle via KVM/VirtualBox, ou en utilisant des fournisseurs de cloud tiers comme Linode (mais ils ont généralement déjà activé SSH).
- Un utilisateur non root avec des privilèges sudo/root. Cet utilisateur sera utilisé pour modifier votre système. Et à la fin, cet utilisateur peut être utilisé pour se connecter à votre serveur.
Installation des packages OpenSSH
OpenSSH est l'une des implémentations logicielles les plus populaires du protocole SSH. Il est utilisé par des millions de serveurs Linux et devient un élément essentiel de l'environnement du serveur. Par défaut, OpenSSH est disponible sur la plupart des référentiels de distribution Linux, y compris les systèmes CentOS et RHEL.
Avant de commencer, actualisez votre index de package à l'aide du gestionnaire de packages DNF comme ci-dessous.
sudo dnf check-update
Ensuite, installez les packages OpenSSH sur les systèmes CentOS/RHEL à l'aide de la commande suivante. Cette commande installera les packages de serveur OpenSSH, ainsi que le logiciel client OpenSSH.
sudo dnf install openssh-server openssh-clients -y
Une fois l'installation d'OpenSSH terminée, exécutez la commande suivante pour démarrer sshd
service et activez-le pour qu'il démarre automatiquement au démarrage du système.
sudo systemctl enable --now sshd
Maintenant, vérifiez le sshd
état du service en exécutant la commande suivante.
sudo systemctl status sshd
Vous recevrez une sortie comme la capture d'écran suivante. Le sshd
le service est active (running)
.
![](https://m.unixlinux.online/article/uploadfiles/202205/2022050918534908.png)
Configuration du serveur SSH
Par défaut, la configuration SSH est disponible dans le /etc/ssh
répertoire, et le fichier de configuration principal est sshd_config
. Ce fichier contient une configuration SSH de base, telle que ListenAddress
qui détermine l'adresse IP du service SSH en cours d'exécution, Port
pour configurer le port de service SSH, les méthodes d'authentification et bien d'autres.
Dans cette section, vous allez modifier la configuration sshd_config
, puis modifiez le port SSH par défaut et désactivez la connexion pour l'utilisateur racine.
Ce paramètre est recommandé pour des raisons de sécurité, il s'agit d'augmenter la sécurité du serveur et de réduire les attaques par force brute contre votre serveur.
Maintenant, ouvrez le fichier sshd_config
en utilisant vi
éditeur ou votre éditeur préféré.
sudo vi /etc/ssh/sshd_config
Avant de commencer à éditer le fichier, vous devez savoir que les lignes commençant par #
et les lignes vides sont interprétées comme des commentaires.
En haut de la ligne, changez le port SSH par défaut de 22
vers votre port préféré. Ce tutoriel utilise le port non standard 2028
pour SSH.
Port 2028
⚠️Veuillez vous assurer que vous avez un utilisateur non root avec un accès sudo déjà activé sur ce système. Sinon, si vous désactivez la connexion root, vous ne pourrez peut-être pas vous connecter à distance à votre serveur.
Ensuite, modifiez l'option de PermitRootLogin yes
à PermitRootLogin no
. Cela désactivera la connexion SSH pour l'utilisateur root
utilisateur. Facultativement, vous pouvez ajouter #
au début de la ligne PermitRootLogin
.
PermitRootLogin no
Enregistrez et fermez le fichier.
Après avoir apporté des modifications, vérifiez la configuration SSH, puis redémarrez le sshd
services.
sshd -t
sudo systemctl restart sshd
Maintenant, vous pouvez vous connecter à votre serveur SSH en exécutant le ssh
commande ci-dessous.
ssh [email protected] -p PORT
Le -p
L'option est utilisée pour spécifier le port de votre serveur SSH.
Dans cette section, vous avez terminé la configuration de base pour sécuriser le serveur SSH en modifiant le port SSH par défaut et en désactivant la connexion pour la root
utilisateur. De plus, vous avez appris à vous connecter au serveur SSH avec un port non standard. Ensuite, vous allez installer et configurer firewalld.
Installation et configuration de Firewalld
Si vous utilisez le serveur CentOS/RHEL sur l'Internet public, tel qu'un serveur cloud, vous devrez peut-être activer le pare-feu. Cela augmentera la sécurité de votre serveur en limitant l'accès uniquement à des services spécifiques tels que SSH, HTTP et HTTPS. Sur la distribution basée sur CentOS/RHEL, firewalld est le package de pare-feu par défaut que vous pouvez installer sur votre système.
Dans cette section, vous allez installer firewalld et configurer ses ports ouverts pour votre serveur SSH.
Pour installer firewalld, exécutez le dnf
commande ci-dessous.
sudo dnf install firewalld -y
Une fois l'installation de firewalld terminée, démarrez et activez le firewalld
un service. Vérifiez ensuite son état en exécutant la commande suivante.
sudo systemctl enable --now firewalld
sudo systemctl status firewalld
Vous recevrez une sortie similaire comme la capture d'écran ci-dessous. Le firewalld
le service est active (running)
.
![](https://m.unixlinux.online/article/uploadfiles/202205/2022050918535050.png)
Pour interagir avec firewalld, vous pouvez utiliser la commande firewall-cmd
. Il s'agit de l'interface de ligne de commande pour la gestion des règles de pare-feu. Vous pouvez utiliser firewall-cmd
pour ajouter, supprimer et modifier des règles de pare-feu. Et il y a beaucoup plus que vous pouvez faire en utilisant le firewall-cmd
.
Maintenant, pour ajouter le port SSH personnalisé à votre système, exécutez le firewall-cmd
commande ci-dessous.
sudo firewall-cmd --add-port=2028/tcp --permanent
Vous recevrez la sortie success
, ce qui signifie que l'opération est réussie et terminée.
Cet exemple utilise le port 2028
comme port SSH personnalisé. et le service SSH s'exécute sur le port TCP, vous devez donc spécifier le port et le protocole tels que 2028/tcp
. L'option --permanent
rend cette règle permanente.
Ensuite, rechargez les règles du pare-feu pour appliquer une nouvelle configuration à l'aide de la commande suivante.
sudo firewall-cmd --reload
Vous avez ajouté le port personnalisé SSH au firewalld. Exécutez la commande ci-dessous pour répertorier toutes les règles activées.
sudo firewall-cmd --list-all
Vous verrez maintenant une liste des règles activées dans firewalld. Les services SSH, Cockpit et DHCP sont activés par défaut.
![](https://m.unixlinux.online/article/uploadfiles/202205/2022050918535076.png)
Pour supprimer la règle SSH par défaut, exécutez le firewall-cmd
commande ci-dessous. Ensuite, rechargez à nouveau les règles du pare-feu.
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reload
Vous avez maintenant terminé l'installation et la configuration de firewalld pour sécuriser votre serveur SSH.
Conclusion
Dans ce guide, vous avez terminé l'installation et la configuration de SSH sur le système CentOS/RHEL. Vous avez sécurisé votre serveur SSH en modifiant le port par défaut et en désactivant la connexion pour la root
utilisateur. De plus, vous avez terminé l'installation et la configuration du pare-feu sur le système CentOS/RHEL pour sécuriser le serveur SSH.
Faites-nous savoir si vous avez des questions.