SSH est un protocole largement utilisé pour accéder en toute sécurité aux serveurs Linux. La plupart des utilisateurs utilisent des connexions SSH avec les paramètres par défaut pour se connecter à un serveur distant. Cependant, les configurations par défaut non sécurisées posent également divers risques de sécurité.
Le compte root d'un serveur avec un accès SSH ouvert peut être à risque. Et surtout si vous utilisez une adresse IP publique, il est beaucoup plus facile de pirater le mot de passe root. Par conséquent, il est nécessaire d'avoir des connaissances sur la sécurité SSH.
Voici comment vous pouvez sécuriser vos connexions de serveur SSH sous Linux.
1. Désactiver les connexions d'utilisateur racine
Pour cela, d'abord, désactivez l'accès SSH de l'utilisateur root et créer un nouvel utilisateur avec les privilèges root. La désactivation de l'accès au serveur pour l'utilisateur root est une stratégie de défense qui empêche les attaquants d'atteindre leur objectif d'intrusion dans le système. Par exemple, vous pouvez créer un utilisateur nommé exempleracine comme suit:
useradd -m exampleroot
passwd exampleroot
usermod -aG sudo exampleroot
Voici une brève explication des commandes susmentionnées :
- ajout d'utilisateur crée un nouvel utilisateur et le -m paramètre crée un dossier sous le domicile répertoire de l'utilisateur que vous avez créé.
- La mot de passe La commande sert à attribuer un mot de passe au nouvel utilisateur. N'oubliez pas que les mots de passe que vous attribuez aux utilisateurs doivent être complexes et difficiles à deviner.
- mod utilisateur -aG sudo ajoute l'utilisateur nouvellement créé au groupe admin.
Après le processus de création de l'utilisateur, il est nécessaire d'apporter quelques modifications au sshd_config dossier. Vous pouvez trouver ce fichier sur /etc/ssh/sshd_config. Ouvrez le fichier avec n'importe quel éditeur de texte et apportez-lui les modifications suivantes :
# Authentification:
#LoginGraceTime 2m
PermitRootLogin non
AllowUsers exampleroot
PermitRootLogin empêchera l'utilisateur root d'accéder à distance à l'aide de SSH. Y compris exempleracine dans le Autoriser les utilisateurs list accorde les autorisations nécessaires à l'utilisateur.
Enfin, redémarrez le service SSH à l'aide de la commande suivante :
sudo systemctl redémarrer ssh
Si cela échoue et que vous recevez un message d'erreur, essayez la commande ci-dessous. Cela peut différer en fonction de la distribution Linux que vous utilisez.
sudo systemctl redémarrer sshd
2. Modification du port par défaut
Le port de connexion SSH par défaut est 22. Bien sûr, tous les attaquants le savent et il est donc nécessaire de changer le numéro de port par défaut pour assurer la sécurité SSH. Bien qu'un attaquant puisse facilement trouver le nouveau numéro de port avec un scan Nmap, le but ici est de compliquer le travail de l'attaquant.
Pour modifier le numéro de port, ouvrez /etc/ssh/sshd_config et apportez les modifications suivantes au fichier :
Comprendre /etc/ssh/sshd_config.d/*.conf
Port 5922
Après cette étape, redémarrez à nouveau le service SSH avec sudo systemctl redémarrer ssh. Vous pouvez maintenant accéder à votre serveur en utilisant le port que vous venez de définir. Si vous utilisez un pare-feu, vous devez également y apporter les modifications de règles nécessaires. En exécutant le netstat-tlpn commande, vous pouvez voir que votre numéro de port pour SSH a changé.
3. Bloquer l'accès pour les utilisateurs avec des mots de passe vides
Il se peut que vous ayez créé accidentellement des utilisateurs sans mot de passe sur votre système. Pour empêcher ces utilisateurs d'accéder aux serveurs, vous pouvez définir le Autoriser les mots de passe vides valeur de ligne dans le sshd_config fichier à non.
PermitEmptyPasswords non
4. Limiter les tentatives de connexion/d'accès
Par défaut, vous pouvez accéder au serveur en faisant autant de tentatives de mot de passe que vous le souhaitez. Cependant, les attaquants peuvent utiliser cette vulnérabilité pour forcer brutalement le serveur. Vous pouvez résilier automatiquement la connexion SSH après un certain nombre de tentatives en spécifiant le nombre de tentatives de mot de passe autorisées.
Pour cela, changez le MaxAuthTries valeur dans le sshd_config dossier.
MaxAuthTries 3
5. Utilisation de SSH Version 2
La deuxième version de SSH a été publiée en raison des nombreuses vulnérabilités de la première version. Par défaut, vous pouvez permettre au serveur d'utiliser la deuxième version en ajoutant le Protocole paramètre à votre sshd_config dossier. Ainsi, toutes vos futures connexions utiliseront la deuxième version de SSH.
Comprendre /etc/ssh/sshd_config.d/*.conf
Protocole 2
6. Désactivation du transfert de port TCP et du transfert X11
Les attaquants peuvent essayer d'accéder à vos autres systèmes en transférant des ports via des connexions SSH. Pour éviter cela, vous pouvez désactiver le AutoriserTcpTransfert et X11Transfert fonctionnalités dans le sshd_config dossier.
X11Renvoi non
AllowTcpForwarding non
7. Connexion avec une clé SSH
L'un des moyens les plus sûrs de se connecter à votre serveur consiste à utiliser une clé SSH. Lorsque vous utilisez une clé SSH, vous pouvez accéder au serveur sans mot de passe. En outre, vous pouvez désactiver complètement l'accès par mot de passe au serveur en modifiant les paramètres liés au mot de passe dans le sshd_config dossier.
Lorsque vous créez une clé SSH, il y a deux clés: Public et Privé. La clé publique est téléchargée sur le serveur auquel vous souhaitez vous connecter et la clé privée est stockée sur l'ordinateur à l'aide duquel vous établirez la connexion.
Créez une clé SSH avec le ssh-keygen commande sur votre ordinateur. Ne laissez pas le Mot de passe champ vide et rappelez-vous le mot de passe que vous avez entré ici. Si vous le laissez vide, vous ne pourrez y accéder qu'avec le fichier de clé SSH. Cependant, si vous définissez un mot de passe, vous pouvez empêcher un attaquant disposant du fichier clé d'y accéder. Par exemple, vous pouvez créer une clé SSH avec la commande suivante :
ssh-keygen
8. Restrictions IP pour les connexions SSH
La plupart du temps, le pare-feu bloque l'accès en utilisant des cadres de ses propres normes et vise à protéger le serveur. Cependant, cela ne suffit pas toujours et vous devez augmenter ce potentiel de sécurité.
Pour ce faire, ouvrez le /etc/hosts.allow dossier. Avec les ajouts que vous apportez à ce fichier, vous pouvez restreindre l'autorisation SSH, autoriser un blocage IP spécifique ou entrer une adresse IP unique et bloquer toutes les adresses IP restantes avec la commande deny.
Vous trouverez ci-dessous quelques exemples de paramètres. Après cela, redémarrez le service SSH comme d'habitude pour enregistrer les modifications.
L'importance de la sécurité des serveurs Linux
Les problèmes de données et de sécurité des données sont assez détaillés et doivent être pris en compte par tous les administrateurs de serveur. La sécurité des serveurs est une question très sensible, car les attaques se concentrent principalement sur les serveurs Web, et ils contiennent presque toutes les informations sur un système. Étant donné que la plupart des serveurs fonctionnent sur l'infrastructure Linux, il est très important de se familiariser avec le système Linux et l'administration du serveur.
La sécurité SSH n'est qu'un des moyens de protéger les serveurs. Il est possible de minimiser les dégâts que vous subissez en arrêtant, bloquant ou ralentissant une attaque. Outre la sécurité SSH, il existe de nombreuses méthodes différentes que vous pouvez mettre en œuvre pour sécuriser vos serveurs Linux.