Comment sécuriser le serveur SSH dans le top 10 d'Ubuntu.Top 10 de Basic à Advanced

Comment sécuriser le serveur SSH dans le top 10 d'Ubuntu.Top 10 de Basic à Advanced
Comme tous les autres serveurs, le serveur SSH est également sujet à des tentatives d'accès non autorisées. Par conséquent, chaque fois que vous souhaitez utiliser un serveur SSH, vous devez avoir envisagé de le sécuriser d'abord pour vous sauver de toute situation indésirable à plus long terme. Généralement, le terme «sécuriser un serveur» est également connu sous le nom de «durcissement d'un serveur."Cela peut être fait en prenant plusieurs mesures. Ces mesures dépendent du niveau de sécurité dont vous avez besoin.

Les mesures de sécurisation du serveur SSH vont de base à avancé, et comme nous l'avons dit plus tôt, vous pouvez les récupérer en fonction du niveau de sécurité dont vous avez besoin. Vous pouvez ignorer l'une des mesures prescrites si vous avez suffisamment de connaissances sur les conséquences et si vous êtes en bonne position pour y faire face. De plus, nous ne pouvons jamais dire qu'une seule étape garantira une sécurité à 100%, ou une certaine étape est meilleure que l'autre.

Tout dépend du type de sécurité dont nous avons réellement besoin. Par conséquent, aujourd'hui, nous avons l'intention de vous donner un aperçu très profond des étapes de base et avancées pour sécuriser un serveur SSH dans Ubuntu 20.04. En dehors de ces méthodes, nous partagerons également avec vous quelques conseils supplémentaires pour sécuriser votre serveur SSH en bonus. Alors, commençons par la discussion intéressante d'aujourd'hui.

Méthode pour sécuriser le serveur SSH dans Ubuntu 20.04:

Toutes les configurations SSH sont stockées dans son fichier / etc / ssh / sshd_config. Ce fichier est considéré comme très crucial pour le fonctionnement normal de votre serveur SSH. Par conséquent, avant d'apporter des modifications à ce fichier, il est fortement recommandé de créer une sauvegarde de ce fichier en exécutant la commande suivante dans votre terminal:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.bak


Si cette commande est exécutée avec succès, vous ne serez pas présenté avec une sortie, comme indiqué dans l'image ci-dessous:

Après avoir créé une sauvegarde de ce fichier, cette étape est facultative et est effectuée si vous souhaitez vérifier toutes les options actuellement activées dans ce fichier de configuration. Vous pouvez le vérifier en exécutant la commande suivante dans votre terminal:

sudo sshd -t


Les options actuellement activées du fichier de configuration SSH sont affichées dans l'image ci-dessous. Vous pouvez faire défiler cette liste pour afficher toutes les options.

Vous pouvez maintenant commencer à sécuriser votre serveur SSH tout en vous déplaçant des étapes de base vers les étapes avancées d'Ubuntu 20.04.

Étapes de base pour sécuriser le serveur SSH dans Ubuntu 20.04:

Les étapes de base pour sécuriser un serveur SSH dans Ubuntu 20.04 sont les suivants:

Étape n ° 1: Ouverture du fichier de configuration SSH:

Vous pouvez ouvrir le fichier de configuration SSH en exécutant la commande indiquée ci-dessous dans votre terminal:

sudo nano / etc / ssh / sshd_config


Le fichier de configuration SSH est affiché dans l'image suivante:

Étape # 2: désactivation de l'authentification basée sur les mots de passe:

Au lieu d'utiliser des mots de passe pour l'authentification, les clés SSH sont considérées comme plus sécurisées. Par conséquent, si vous avez généré les clés SSH pour l'authentification, vous devez désactiver l'authentification basée sur le mot de passe. Pour cela, vous devez localiser la variable «PasswordAuthentication», l'incommenter et définir sa valeur sur «non», comme en surbrillance dans l'image ci-dessous:

Étape n ° 3: rejet / refus des mots de passe vides:

Parfois, les utilisateurs trouvent extrêmement pratique de créer des mots de passe vides dans le but de se sauver de la mémorisation de mots de passe complexes. Cette pratique peut s'avérer préjudiciable à la sécurité de votre serveur SSH. Par conséquent, vous devez rejeter toutes les tentatives d'authentification avec des mots de passe vides. Pour cela, vous devez localiser la variable «permutEmpTyPasswords» et l'intervenir simplement car sa valeur est déjà définie sur «non» par défaut, comme en évidence dans l'image suivante:

Étape n ° 4: Connexion racine d'interdiction:

Vous devez strictement interdire les connexions racine pour protéger tout intrus de l'obtention d'un accès au niveau de la racine à votre serveur. Vous pouvez le faire en localisant la variable «permutrootlogin», en l'incommente et en définissant sa valeur sur «non», comme en évidence dans l'image illustrée ci-dessous:

Étape # 5: Utilisation du protocole SSH 2:

Le serveur SSH peut fonctionner sur deux protocoles différents, i.e., Protocole 1 et protocole 2. Protocol 2 met en œuvre des fonctionnalités de sécurité plus avancées, c'est pourquoi elle est préférée au protocole 1. Cependant, le protocole 1 est le protocole par défaut de SSH, et il n'est pas explicitement mentionné dans le fichier de configuration SSH. Par conséquent, si vous souhaitez travailler avec Protocol 2 au lieu du Protocole 1, vous devez ajouter explicitement la ligne «Protocole 2» à votre fichier de configuration SSH comme mis en surbrillance dans l'image suivante:

Étape # 6: Définition d'un délai d'expiration de session:

Parfois, les utilisateurs laissent leurs ordinateurs sans surveillance pendant très longtemps. Pendant ce temps, tout intrus peut venir et accéder à votre système tout en enfreignant sa sécurité. C'est là que le concept de délai de session entre en jeu. Cette fonctionnalité est utilisée pour déconnecter un utilisateur s'il reste inactif pendant longtemps afin qu'aucun autre utilisateur ne puisse accéder à son système.

Ce délai d'expiration peut être défini en localisant la variable «ClientaliveInterval», en la décrochant et en lui attribuez n'importe quelle valeur (en secondes) de votre choix. Dans notre cas, nous l'avons attribué la valeur de «300 secondes» ou «5 minutes». Cela signifie que si l'utilisateur reste à l'écart du serveur SSH pendant «300 secondes», il sera automatiquement déconnecté comme mis en évidence dans l'image illustrée ci-dessous:

Étape # 7: Permettre aux utilisateurs spécifiques d'accéder au serveur SSH:

Le serveur SSH n'est pas un serveur dont l'accès est requis par tous les autres utilisateurs. Par conséquent, son accès ne doit être limité qu'aux utilisateurs qui en ont réellement besoin. Pour permettre aux utilisateurs spécifiques d'accéder au serveur SSH, vous devez ajouter une variable nommée «Autorgers» au fichier de configuration SSH, puis écrire les noms de tous les utilisateurs que vous souhaitez permettre d'accéder au serveur SSH séparé par un espace. Dans notre cas, nous voulions seulement permettre à un utilisateur d'accéder au serveur SSH. C'est pourquoi nous n'avons ajouté son nom que souligné dans l'image suivante:

Étape # 8: limiter le nombre de tentatives d'authentification:

Chaque fois qu'un utilisateur essaie d'accéder à un serveur et qu'il n'est pas en mesure de s'authentifier pour la première fois, il essaie de recommencer. L'utilisateur continue de faire ces tentatives jusqu'à ce qu'il soit en mesure de s'authentifier avec succès, donc avoir accès au serveur SSH. Ceci est considéré comme une pratique très précaire car un pirate peut lancer une attaque par force brute (une attaque qui tente à plusieurs reprises de deviner un mot de passe jusqu'à ce que la bonne correspondance soit trouvée). En conséquence, il pourra accéder à votre serveur SSH.

C'est pourquoi il est fortement recommandé de limiter le nombre de tentatives d'authentification pour empêcher les attaques de devinettes de mot de passe. La valeur par défaut des tentatives d'authentification pour le serveur SSH est définie sur «6». Cependant, vous pouvez le changer en fonction du niveau de sécurité dont vous avez besoin. Pour cela, vous devez localiser les variables «Maxauthtries», l'incommenter et définir sa valeur sur tout numéro souhaité. Nous voulions limiter les tentatives d'authentification pour «3», comme en évidence dans l'image illustrée ci-dessous:

Étape # 9: exécuter le serveur SSH en mode test:

À ce jour, nous avons pris toutes les étapes de base pour sécuriser notre serveur SSH sur Ubuntu 20.04. Cependant, nous devons toujours nous assurer que les options que nous venons de configurer fonctionnent correctement. Pour cela, nous allons d'abord enregistrer et fermer notre fichier de configuration. Après cela, nous essaierons d'exécuter notre serveur SSH en mode test. S'il s'exécute avec succès en mode test, cela impliquera qu'il n'y a pas d'erreurs dans votre fichier de configuration. Vous pouvez exécuter votre serveur SSH en mode test en exécutant la commande suivante dans votre terminal:

sudo sshd -t


Lorsque cette commande est exécutée avec succès, elle n'a afficher aucune sortie sur le terminal, comme indiqué dans l'image ci-dessous. Cependant, s'il y aura des erreurs dans votre fichier de configuration, l'exécution de cette commande rendra ces erreurs sur le terminal. Vous serez alors censé corriger ces erreurs. Ce n'est qu'alors que vous pourrez continuer.

Étape # 10: Recharger le serveur SSH avec de nouvelles configurations:

Maintenant, lorsque le serveur SSH s'est déroulé avec succès en mode test, nous devons le recharger afin qu'il puisse lire le nouveau fichier de configuration, je.e., Les modifications que nous avons apportées au fichier de configuration SSH dans les étapes indiquées ci-dessus. Pour recharger le serveur SSH avec de nouvelles configurations, vous devez exécuter la commande suivante dans votre terminal:

SUDO SERVICE SSHD RELOAD


Si votre serveur SSH est redémarré avec succès, le terminal n'a afficher aucune sortie, comme indiqué dans l'image ci-dessous:

Étapes avancées pour sécuriser le serveur SSH dans Ubuntu 20.04:

Après avoir effectué toutes les étapes de base pour sécuriser le serveur SSH dans Ubuntu 20.04, vous pouvez enfin vous diriger vers les étapes avancées. Ceci est juste un pas en avant pour sécuriser votre serveur SSH. Cependant, si vous avez seulement l'intention d'atteindre un niveau de sécurité modéré, les étapes décrites ci-dessus seront suffisantes. Mais si vous voulez aller un peu plus loin, vous pouvez suivre les étapes expliquées ci-dessous:

Étape n ° 1: Ouverture du ~ /.Fichier SSH / Authorized_keys:

Les étapes de base de la sécurisation du serveur SSH sont implémentées dans le fichier de configuration SSH. Cela signifie que ces politiques seront bonnes pour tous les utilisateurs qui essaieront d'accéder au serveur SSH. Cela implique également que les étapes de base représentent une méthode générique pour sécuriser le serveur SSH. Cependant, si nous essayons de considérer le principe de la «défense en profondeur», nous réaliserons que nous devons sécuriser chaque clé SSH individuelle séparément. Cela peut être fait en définissant des paramètres de sécurité explicites pour chaque clé individuelle. Les touches SSH sont stockées dans le ~ /.Fichier SSH / AMORTINED_KEYS, nous allons donc d'abord accéder à ce fichier pour modifier les paramètres de sécurité. Nous exécuterons la commande suivante dans le terminal pour accéder au ~ /.Fichier SSH / Authorized_keys:

sudo nano ~ /.SSH / AUTORISED_KEYS

L'exécution de cette commande ouvrira le fichier spécifié avec l'éditeur Nano. Cependant, vous pouvez également utiliser tout autre éditeur de texte de votre choix pour ouvrir ce fichier. Ce fichier contiendra toutes les clés SSH que vous avez générées jusqu'à présent.

Étape # 2: Définition de configurations spécifiques pour des touches particulières:

Pour atteindre un niveau de sécurité avancé, les cinq options suivantes sont disponibles:

  • sans agent
  • sans portail
  • sans pyt
  • sans utilisateur-RC
  • No-x11-Forwarding

Ces options peuvent être écrites avant toute clé SSH de votre choix pour les rendre disponibles pour cette clé particulière. Encore plus d'une option peut également être configurée pour une seule clé SSH. Par exemple, vous souhaitez désactiver la rediffusion de port pour une clé particulière ou, en d'autres termes, vous souhaitez implémenter sans port pour une clé spécifique, alors la syntaxe sera la suivante:

NO-PORTRANDANT DESIREDSSHKEY

Ici, au lieu du souhaité, vous aurez une clé SSH réelle dans votre ~ /.fichier ssh / autorisé_keys. Après avoir appliqué ces options pour les clés SSH souhaitées, vous devrez enregistrer le ~ /.fichier ssh / autorisé_keys et fermez-le. Un bon cette méthode avancée est qu'il ne vous obligera pas à recharger votre serveur SSH après avoir apporté ces modifications. Ces modifications seront plutôt lues par votre serveur SSH automatiquement.

De cette façon, vous pourrez sécuriser chaque clé SSH en profondeur en appliquant les mécanismes de sécurité avancés.

Quelques conseils supplémentaires pour sécuriser le serveur SSH dans Ubuntu 20.04:

En dehors de toutes les étapes de base et avancées que nous avons prises ci-dessus, il existe également des conseils supplémentaires qui peuvent s'avérer très bons pour sécuriser le serveur SSH dans Ubuntu 20.04. Ces conseils supplémentaires ont été discutés ci-dessous:

Gardez vos données cryptées:

Les données qui résident sur votre serveur SSH, ainsi que celle qui reste en transit, doit être cryptée et cela aussi, avec un fort algorithme de chiffrement. Cela protège non seulement l'intégrité et la confidentialité de vos données, mais empêchera également la sécurité de l'ensemble de votre serveur SSH d'être compromis.

Gardez votre logiciel à jour:

Le logiciel qui s'exécute sur votre serveur SSH doit être à jour. Cela est fait pour s'assurer qu'aucun bogue de sécurité dans votre logiciel ne reste sans surveillance. Ils devraient plutôt être corrigés bien à temps. Cela vous évitera de tout préjudice potentiel à long terme et empêchera également votre serveur de baisser ou d'être indisponible en raison de problèmes de sécurité.

Assurez-vous que SELINUX est activé:

SELINUX est le mécanisme qui jette la pierre de base de la sécurité dans les systèmes basés sur Linux. Il fonctionne en mettant en œuvre le contrôle d'accès obligatoire (Mac). Il implémente ce modèle de contrôle d'accès en définissant les règles d'accès dans sa politique de sécurité. Ce mécanisme est activé par défaut. Cependant, les utilisateurs sont autorisés à modifier ce paramètre à tout moment. Cela signifie qu'ils peuvent désactiver le selinux quand ils le souhaitent. Cependant, il est fortement recommandé de garder SELINUX activé afin qu'il puisse empêcher votre serveur SSH de tous les préjudices potentiels.

Utilisez des politiques de mot de passe strictes:

Si vous avez protégé votre serveur SSH avec des mots de passe, vous devez créer des politiques de mot de passe solides. Idéalement, les mots de passe devraient compter plus de 8 caractères. Ils doivent être modifiés après une heure spécifiée, disons, tous les 2 mois. Ils ne devraient contenir aucun mot de dictionnaire; ils devraient plutôt être une combinaison d'alphabets, de chiffres et de caractères spéciaux. De même, vous pouvez définir d'autres mesures supplémentaires pour vos politiques de mot de passe afin de vous assurer qu'elles sont suffisamment fortes.

Surveillez et entretenez les journaux d'audit de votre serveur SSH:

Si quelque chose ne va pas avec votre serveur SSH, votre premier aide peut être les journaux d'audit. Par conséquent, vous devez continuer à entretenir ces journaux afin que vous puissiez retracer la cause profonde du problème. De plus, si vous continuez à surveiller la santé et le travail de votre serveur SSH en continu, cela empêchera également les problèmes majeurs de se produire en premier lieu.

Maintenir des sauvegardes régulières de vos données:

Enfin et surtout, vous devez toujours garder une sauvegarde de l'ensemble de votre serveur SSH. Cela ne fera pas seulement que vos données soient corrompues ou entièrement perdues; Vous pouvez également utiliser ce serveur de sauvegarde chaque fois que votre serveur principal tombe en panne. Cela limitera également les temps d'arrêt du serveur et assurera sa disponibilité.

Conclusion:

En prenant soin de toutes les mesures qui ont été prescrites dans cet article, vous pouvez facilement sécuriser ou durcir votre serveur SSH dans Ubuntu 20.04. Cependant, si vous êtes issu de la sécurité de l'information, vous devez être bien conscient de ce fait qu'il n'y a rien de tel que la sécurité à 100%. Tout ce que nous pouvons obtenir est la meilleure promesse d'efforts, et ce meilleur effort ne sera sécurisé que jusqu'à ce qu'il soit également violé. C'est pourquoi même après avoir pris toutes ces mesures, vous ne pouvez pas dire que votre serveur SSH est 100% sécurisé; il peut plutôt avoir des vulnérabilités que vous n'auriez jamais pu penser. De telles vulnérabilités ne peuvent être prises en charge que si nous gardons un œil attentif sur notre serveur SSH et continuons à le mettre à jour chaque fois qu'il est nécessaire.