Comment sécuriser et durcir le serveur OpenSSH
- 4113
- 1144
- Noa Faure
Lorsqu'il s'agit d'accéder à des appareils distants tels que des serveurs, des routeurs et des commutateurs, le protocole SSH est fortement recommandé étant donné sa capacité à crypter le trafic et à éloigner quiconque pourrait essayer d'écouter vos connexions.
Que cela puisse, les paramètres par défaut de Ssh ne sont pas infaillibles et des ajustements supplémentaires sont nécessaires pour rendre le protocole plus sécurisé. Dans ce guide, nous explorons différentes manières que vous pouvez utiliser pour sécuriser et durcir l'installation d'OpenSSH sur le serveur.
1. Configurer l'authentification sans mot de passe SSH
Par défaut, Ssh Exige que les utilisateurs fournissent leurs mots de passe lors de la connexion. Mais voici le problème: les pirates peuvent deviner les mots de passe ou même effectuer une attaque de force brute à l'aide d'outils de piratage spéciaux et accéder à votre système. Pour être sûr, l'utilisation de l'authentification sans mot de passe SSH est fortement encouragée.
La première étape consiste à générer une paire de clés SSH qui se compose d'un Clé publique et un Clé privée. Le Clé privée réside sur votre système hôte tandis que le Clé publique est ensuite copié sur le serveur distant.
Une fois la Clé publique est copié avec succès, vous pouvez désormais SSH dans le serveur distant de manière transparente sans avoir à fournir un mot de passe.
L'étape suivante consiste à désactiver l'authentification du mot de passe, pour y parvenir, vous devez modifier le fichier de configuration SSH.
$ sudo vim / etc / ssh / sshd_config
À l'intérieur du fichier de configuration, faites défiler et localisez la directive suivante. Décommente et modifiez l'option 'Oui'
pour 'Non'
PasswordAuthentication NonDésactiver l'authentification du mot de passe SSH
Puis redémarrez le démon ssh.
# sudo systemctl redémarrer sshd
À ce stade, vous n'aurez accès qu'au serveur distant en utilisant l'authentification de la clé SSH.
2. Désactiver les demandes de connexion sans mot de passe de l'utilisateur SSH
Une autre façon recommandée de fortifier la sécurité de votre serveur est de désactiver les connexions SSH des utilisateurs sans mot de passe. Cela semble un peu étrange, mais parfois les administrateurs système peuvent créer des comptes d'utilisateurs et oublier d'attribuer des mots de passe - ce qui est une très mauvaise idée.
Pour rejeter les demandes des utilisateurs sans mot de passe, encore une fois, rendez-vous dans le fichier de configuration à / etc / ssh / sshd_config
Et assurez-vous que vous avez la directive ci-dessous:
Pertinermptypasswords nonDésactiver les connexions sans mot de passe SSH de l'utilisateur
Puis redémarrez le service SSH pour que le changement soit effectué.
$ sudo systemctl redémarrer sshd
3. Désactiver les connexions racines SSH
C'est une évidence ce qui peut arriver si un pirate parvient à forcer brute votre mot de passe racine. Autoriser la connexion à distance à distance est invariablement une mauvaise idée qui pourrait compromettre la sécurité de votre système.
Pour cette raison, il est toujours recommandé de désactiver la connexion à la racine à distance SSH et de vous en tenir à un utilisateur non root ordinaire. Encore une fois, dirigez-vous vers le fichier de configuration et modifiez cette ligne comme indiqué.
Permutrootlogine noDésactiver les connexions racines SSH
Une fois que vous avez terminé, redémarrez le service SSH pour que le changement soit effectué.
$ sudo systemctl redémarrer sshd
Désormais, la connexion des racines distantes sera désactivée.
4. Utiliser le protocole SSH 2
SSH est disponible en deux versions: SSH protocole 1 et protocole 2. Ssh protocole 2 a été introduit en 2006 et est plus sûr que protocole 1 Merci à ses vérifications cryptographiques, un chiffrement en vrac et des algorithmes robustes.
Par défaut, SSH utilise protocole 1. Pour changer cela en plus sécurisé Protocole 2, Ajoutez la ligne ci-dessous au fichier de configuration:
Protocole 2Utiliser le protocole SSH 2
Comme toujours, redémarrez SSH pour que les changements entrent en vigueur.
$ sudo systemctl redémarrer sshd
À l'avenir, SSH utilisera Protocole 2 par défaut.
Pour tester si SSH protocole 1 est plus pris en charge, exécutez la commande:
$ ssh -1 [Protégé par e-mail]
Vous obtiendrez une erreur qui se lit "Protocole SSH V.1 n'est plus pris en charge".
Dans ce cas, la commande était:
$ ssh -1 [Protégé par e-mail]Vérifiez le protocole SSH
De plus, vous pouvez simplement spécifier le -2
Tag juste pour être sûr que Protocole 2 Le protocole par défaut est-il utilisé.
$ ssh -2 [e-mail protégé]Utiliser le protocole SSH 2
5. Définir la valeur d'inactivité du délai de la connexion SSH
Laisser votre PC sans surveillance pendant de longues périodes avec une connexion SSH inactive peut présenter un risque de sécurité. Quelqu'un peut simplement passer et reprendre votre session SSH et faire tout ce qu'il plaide. Pour résoudre le problème, il est donc prudent de définir une limite de délai de délai d'inactivité qui, lorsqu'elle est dépassée, la session SSH sera fermée.
Encore une fois, ouvrez votre fichier de configuration SSH et localisez la directive «ClientaliveInterval». Attribuer une valeur raisonnable, par exemple, j'ai fixé la limite à 180 secondes.
ClientaliveInterval 180
Cela implique que la session SSH sera abandonnée si aucune activité n'est enregistrée après 3 minutes, ce qui est l'équivalent de 180 secondes.
Définir la valeur de délai d'expiration de la connexion SSHPuis redémarrez le démon ssh pour effectuer les modifications apportées.
$ sudo systemctl redémarrer sshd
6. Limiter l'accès SSH à certains utilisateurs
Pour une couche de sécurité supplémentaire, vous pouvez définir les utilisateurs qui ont besoin de protocole SSH pour se connecter et effectuer des tâches distantes sur le système. Cela empêche les autres utilisateurs qui pourraient essayer de rentrer dans votre système sans votre approbation.
Comme toujours, ouvrez le fichier de configuration et ajoutez la directive "Permis"Suivi des noms des utilisateurs que vous souhaitez accorder. Dans l'exemple ci-dessous, j'ai autorisé les utilisateursTecmint' et 'James'Pour avoir un accès à distance au système via SSH. Tout autre utilisateur qui essaie d'obtenir un accès à distance sera bloqué.
Autorisers tecmint JamesLimiter les connexions de l'utilisateur SSH
Par la suite redémarrer SSH pour les changements pour persister.
$ sudo systemctl redémarrer sshd
7. Configurer une limite pour les tentatives de mot de passe
Une autre façon dont vous pouvez ajouter une couche de sécurité est de limiter le nombre de tentatives de connexion SSH telles qu'après un certain nombre de tentatives infructueuses, la connexion baisse. Donc, une fois de plus, dirigez-vous vers le fichier de configuration et localisez le "Maxauthtries”Directive et définissez une valeur pour le nombre maximum de tentatives.
Dans cet exemple, la limite a été fixée à 3 Tentatives comme indiqué.
Maxauthtries 3Limiter les tentatives de mot de passe SSH
Et enfin, redémarrez le service SSH comme dans les scénarios précédents.
Vous pouvez également trouver ces articles liés à SSH suivants utiles:
- Comment installer OpenSSH 8.0 serveur de Source dans Linux
- Comment installer Fail2ban pour protéger SSH sur Centos / Rhel 8
- Comment changer le port SSH dans Linux
- Comment créer des tunnels SSH ou un transfert de port dans Linux
- 4 façons d'accélérer les connexions SSH dans Linux
- Comment trouver toutes les tentatives de connexion SSH échouées dans Linux
- Comment déconnecter les connexions SSH inactives ou inactives dans Linux
Conclusion
C'était un tour d'horizon de certaines des mesures que vous pouvez prendre pour sécuriser vos connexions à distance SSH. Il est important d'ajouter que vous devez toujours attribuer des mots de passe solides aux utilisateurs ayant un accès à distance aux attaques de force brute. Nous espérons que vous avez trouvé ce guide perspicace. Vos commentaires sont bien les bienvenus.
- « Top 3 des systèmes de gestion des packages interdistributions open source pour Linux
- Comment passer à Linux Mint 20 Ulyana »