GNU/Linux >> Tutoriels Linux >  >> Ubuntu

11 meilleures façons de sécuriser votre serveur SSH

SSH fait référence à Secure Shells qui aide à exploiter des services réseau tels que la connexion à distance au serveur, le transfert de fichiers et d'autres opérations liées aux serveurs en toute sécurité sur un réseau non sécurisé ou sécurisé.

La configuration par défaut de SSH n'est pas suffisante pour renforcer le canal SSH; nous devons configurer le paramètre supplémentaire pour améliorer pleinement sa sécurité. Dans cet article, nous allons apprendre 11 méthodes pour sécuriser votre serveur ssh.

Désactivation de la connexion racine sur le serveur SSH

Comme l'utilisateur root a accès à l'ensemble des services du serveur et qu'il est préférable de ne pas risquer que le système autorise la connexion root à distance. Il pourrait être beaucoup trop vulnérable si le mot de passe est exposé lors de l'utilisation d'une attaque par force brute ou d'un autre outil de piratage. Il est donc préférable de désactiver la connexion root à distance et de s'en tenir à l'utilisateur habituel.

Pour désactiver la connexion root à distance, ouvrez le fichier sshd_config.

$ sudo vim /etc/ssh/sshd_config

Ensuite, définissez "PermitRootLogin" sur non

Désactivez la connexion de l'utilisateur root ssh.

Désactiver le mot de passe vide

Certaines distributions Linux créeront des utilisateurs sans mot de passe, il pourrait donc être vulnérable d'autoriser une connexion ssh avec des mots de passe vides pour l'accès à distance. Donc, pour désactiver ce service, nous devons définir "PermitEmptyPasswords" sur no dans le fichier sshd_config.

PermitEmptyPasswords no

Désactiver la connexion par mot de passe vide.

Utilisez l'authentification basée sur une clé publique sur le protocole SSH.

Il est fortement recommandé d'utiliser une authentification basée sur une clé publique car le serveur SSH prend en charge différents processus d'authentification. Le pirate tente différents outils de piratage pour casser le mot de passe en utilisant diverses méthodes comme l'attaque par force brute. Pour éviter que cela ne se produise, nous utilisons une authentification basée sur une clé publique.

Tout d'abord, nous devons générer une clé publique et une clé privée à l'aide de la commande ssh-keygen. Pour générer la clé, exécutez la commande suivante. Dans le processus, il vous sera demandé où générer la clé ssh, appuyez sur Entrée si vous souhaitez continuer avec la valeur par défaut. Ensuite, il vous sera demandé une phrase secrète qui fait référence au mot de passe de votre clé ssh, utilise un mot de passe fort composé d'un caractère spécial, d'un alphabet et de chiffres. Une fois le mot de passe défini, votre clé ssh sera générée sur le répertoire .ssh de votre répertoire personnel.

$ ssh-keygen -t rsa

Génération de paires de clés ssh.

Avant de télécharger la clé publique, assurez-vous d'avoir le répertoire .ssh sur votre serveur distant, sinon créez-en un dans votre répertoire personnel, puis téléchargez votre clé publique ssh sur le serveur à l'aide de la commande suivante.

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Téléchargement de la clé publique sur le serveur.

Vous pouvez maintenant vous connecter en tant qu'utilisateur ubuntu en utilisant la clé publique sur le protocole ssh.

Authentification basée sur une clé publique.

Désactiver l'authentification de connexion SSH avec mot de passe

Il est fortement recommandé d'utiliser l'authentification par clé publique ssh pour l'accès à distance au serveur car les mots de passe peuvent être exposés par des attaques par force brute si un mot de passe fort n'est pas utilisé. Pour désactiver l'authentification par mot de passe à partir du serveur SSH, définissez la valeur "PasswordAuthentication" sur non.

Authentification par mot de passe non

Modifier le port 22 par défaut SSH.

Par défaut, SSH s'exécute sur le port 22 du système. Si nous modifions le port standard SSH, cela pourrait ajouter une couche de sécurité supplémentaire en évitant le trafic inhabituel vers le port ouvert. Donc, pour changer le port, ce n'est pas simple, ouvrez le fichier sshd_config et définissez votre numéro de port inutilisé souhaitable dans la section port. Dans l'exemple suivant, j'ai défini le port sur 454.

Changer le port ssh par défaut.

Limiter l'accès à la connexion des utilisateurs à l'aide de SSH.

Le serveur SSH permet à tous les utilisateurs d'accéder au serveur à distance, mais nous pouvons remplacer le paramètre par défaut et définir uniquement des utilisateurs spécifiques pour autoriser ou refuser l'accès à distance via le protocole SSH. D'une manière simple, avoir un accès à distance à tous les utilisateurs du système se connecte en créant un moyen possible pour le pirate d'accéder à notre système.

Pour permettre aux utilisateurs spécifiques de se connecter via SSH, ajoutez la ligne suivante dans sshd_config.

Autoriser les utilisateurs utilisateur1 utilisateur2 ubuntu

De même, vous pouvez restreindre un utilisateur spécifique et autoriser d'autres à accéder via SSH en ajoutant la ligne de code suivante.

DenyUsers root user3 user4

Améliorer l'utilisation de mots de passe forts pour l'utilisateur/la clé SSH.

Habituellement, les gens utilisent souvent des mots de passe simples pour leur connexion comme 123456, quelque chose123, afin qu'ils puissent se souvenir facilement des mots de passe. C'est pourquoi une attaque par force brute fonctionne parfaitement car il est judicieux de tenter de vérifier le mot de passe. Donc, pour éviter cela, nous devons utiliser un mot de passe contenant des caractères spéciaux, un alphabet majuscule et minuscule, des chiffres et un mot de passe d'une longueur minimale de 8 caractères.

Configurer l'intervalle de temporisation d'inactivité

Les utilisateurs gardent souvent leur connexion SSH inactive pendant une période plus longue, il y aura donc un risque élevé si quelqu'un essaie de prendre le contrôle de votre session SSH et de faire ce qu'il veut lorsque les utilisateurs ne sont pas présents pour le moment. Nous pouvons donc définir le délai d'expiration de notre session de connexion après une certaine période d'inactivité afin que nous devions nous reconnecter à l'expiration de la session. Pour définir le délai d'inactivité, nous devons définir la valeur "ClientAliveInterval" dans le fichier sshd_config. Dans l'exemple suivant, j'ai défini la valeur de délai d'attente 360 ​​qui est de 6 minutes.

ClientAliveInterval 360

Utiliser le protocole SSH 2

SSH a deux variantes de protocole SSH protocol 1 et SSH protocol 2, le protocole 1 est la valeur par défaut du système qui est moins sécurisée que le protocole 2 car le protocole 2 applique un cryptage en masse, des algorithmes robustes et des vérifications cryptographiques. Pour passer au protocole 2, nous devons ajouter la ligne suivante dans le fichier sshd_config.

Protocole 2

Utilisation du protocole ssh 2.

Configurer une limite pour les tentatives de mot de passe

Nous pouvons limiter le nombre de tentatives de mot de passe pour la connexion ssh afin qu'après un nombre limité de tentatives, la connexion soit interrompue, ce qui ajoutera une couche de sécurité supplémentaire qui empêchera le système d'attaquer le bot. Pour ce faire, nous devons définir la valeur de la directive "MaxAuthTries". Dans l'exemple, j'ai fixé sa limite à 4 tentatives.

MaxAuthTries 3

Limitez la tentative de connexion ssh.

Désactiver la tunnellisation et le transfert de port

Si vous n'utilisez pas le service de tunnellisation et de redirection de port, il est préférable de le garder désactivé car un pirate informatique pourrait utiliser ces services pour percer votre système. Pour y parvenir, définissez la valeur de directive suivante sur no.

AllowAgentForwarding non

AllowTcpForwarding non

PermisTunnel non

Enfin, une fois que tout est configuré, n'oubliez pas de redémarrer votre serveur ssh pour appliquer les modifications

$ sudo systemctl restart ssh

Conclusion

Dans cet article, nous apprenons quelques méthodes courantes de renforcement des serveurs SSH qui aident à éviter différents risques de sécurité. J'espère que cet article vous plaira.


Ubuntu
  1. 3 façons de configurer SSH pour la confidentialité

  2. Connexion SSH au serveur RHEL 7 sans mot de passe

  3. Meilleures pratiques de sécurité OpenSSH

  4. Un script BASH simple pour la post-installation du serveur Ubuntu

  5. Carte de clé privée-publique Ssh pour le client ?

Comment se connecter à votre serveur via SSH

Comment configurer une clé SSH sur un serveur Plesk

Comment ajouter une clé publique SSH au serveur

10 conseils de renforcement SSH exploitables pour sécuriser votre serveur Linux

Comment sécuriser SSH avec Fail2Ban

5 meilleures pratiques de sécurité Linux SSH pour sécuriser vos systèmes