GNU/Linux >> Tutoriels Linux >  >> Cent OS

Top 7 des conseils de renforcement de la sécurité pour le serveur CentOS 8 / RHEL 8

Une fois que vous avez installé votre serveur CentOS 8 / RHEL 8, le sécuriser pour empêcher les accès non autorisés et les intrusions vient en second. Comme le dit l'adage, "mieux vaut prévenir que guérir", il vaut donc mieux prévenir les piratages que tenter de remédier.

Laissez-nous explorer quelques étapes que vous pouvez suivre pour renforcer et sécuriser le serveur CentOS 8 / RHEL 8 et contrecarrer les tentatives de piratage.

1) Configurer un pare-feu

En tant qu'utilisateur Linux soucieux de la sécurité, vous n'autoriseriez pas n'importe quel trafic dans votre système CentOS 8 / RHEL 8 pour des raisons de sécurité. En fait, la configuration d'un pare-feu est l'une des tâches initiales de configuration du serveur qu'un administrateur système doit effectuer pour n'ouvrir que des ports spécifiques et autoriser les services en cours d'utilisation.

Par défaut, le système CentsO8 / RHEL 8 est livré avec firewalld pare-feu qui peut être démarré et activé au démarrage en exécutant les commandes :

$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

Pour vérifier les services autorisés sur le pare-feu, lancez simplement la commande :

$ sudo firewall-cmd --list all

Pour ouvrir un port sur le pare-feu, par exemple le port 443, exécutez la commande :

$ sudo firewall-cmd --add-port=443/tcp --zone=public --permanent

Pour autoriser un service, par exemple ssh , utilisez la commande :

$ sudo firewall-cmd --add-service=ssh  --zone=public --permanent

Pour supprimer un port et un service, utilisez la commande –remove-port et –remove-service attributs respectivement.

Pour que les modifications prennent effet, rechargez toujours le pare-feu comme indiqué.

$ sudo firewall-cmd --reload

2) Désactiver les services inutilisés/indésirables

Il est toujours conseillé de désactiver les services inutilisés ou inutiles sur votre serveur. En effet, plus le nombre de services en cours d'exécution est élevé, plus le nombre de ports ouverts sur votre système pouvant être exploités par un attaquant pour accéder à votre système est élevé. De plus, renoncez à utiliser un service ancien et non sécurisé comme telnet qui envoie le trafic en texte brut

Les meilleures pratiques de sécurité recommandent de désactiver les services inutilisés et de se débarrasser de tous les services non sécurisés exécutés sur votre système. Vous pouvez utiliser l'outil nmap pour analyser votre système et vérifier quels ports sont ouverts et écoutés.

3) Sécuriser les fichiers critiques

Il est essentiel de verrouiller les fichiers critiques pour éviter toute suppression ou modification accidentelle. Ces fichiers incluent /etc/passwd et /etc/gshadow qui contiennent des mots de passe hachés. Pour rendre les fichiers immuables (c'est-à-dire empêcher toute modification ou suppression accidentelle), utilisez la commande chattr comme indiqué :

$ sudo chattr +i /etc/passwd
$ sudo chattr +i /etc/shadow

Cela garantit qu'un pirate ne peut modifier aucun des mots de passe des utilisateurs ou les supprimer, ce qui entraînerait un refus de connexion au système.

4) Protocole SSH sécurisé

Le protocole SSH est un protocole couramment utilisé pour les connexions à distance. Par défaut, le protocole présente des faiblesses natives qui peuvent être exploitées par un pirate.

Par défaut, SSH autorise la connexion à distance par l'utilisateur root. Il s'agit d'une faille potentielle et si un pirate peut mettre la main sur le mot de passe root de votre système, votre serveur est pratiquement à sa merci. Pour éviter cela, il est conseillé de refuser la connexion root à distance et de créer à la place un utilisateur régulier de connexion avec des privilèges sudo. Vous pouvez effectuer cela en modifiant le fichier de configuration SSH /etc/ssh/sshd_config et en désactivant la connexion root comme indiqué :

Autoriser la connexion racine

Une autre façon de sécuriser SSH consiste à configurer l'authentification sans mot de passe SSH à l'aide de clés ssh. Au lieu d'utiliser l'authentification par mot de passe qui est sujette aux attaques par force brute, les clés SSH sont préférées car elles permettent uniquement l'entrée aux utilisateurs avec la clé ssh pour se connecter au serveur distant et bloquer tout autre utilisateur. La première étape pour activer l'authentification sans mot de passe consiste à générer une paire de clés à l'aide de la commande :

$ ssh-keygen

Cela génère une paire de clés publique et privée. La clé privée réside sur l'hôte tandis que la clé publique est copiée sur le système ou le serveur distant. Une fois la paire de clés ssh copiée, vous pouvez facilement vous connecter au système distant sans être invité à entrer un mot de passe. Ensuite, désactivez l'authentification par mot de passe en modifiant le fichier de configuration /etc/ssh/sshd_config et en définissant cette valeur :

PasswordAuthentication no

Une fois que vous avez apporté les modifications, assurez-vous de redémarrer le service SSH pour que les modifications prennent effet.

$ sudo systemctl restart sshd

5 ) Définissez une limite pour les tentatives de mot de passe

Pour renforcer davantage votre serveur, vous pouvez envisager de limiter le nombre de tentatives de mot de passe lors de la connexion via SSH pour dissuader les attaques par force brute. Encore une fois, rendez-vous sur le fichier de configuration SSH, faites défiler et localisez le paramètre "MaxAuthTries". Décommentez-le et définissez une valeur , par exemple 3 comme indiqué.

MaxAuthTries 3

Cela implique qu'après 3 tentatives de mot de passe incorrectes, la session sera fermée. Cela s'avère particulièrement utile lorsque vous souhaitez bloquer les scripts/programmes robotiques essayant d'accéder à votre système.

6) Mettre en place un système de prévention des intrusions (IPS)

Jusqu'à présent, nous avons couvert les étapes de base que vous pouvez suivre pour renforcer votre serveur CentOS 8 / RHEL 8. Pour ajouter une autre couche, il est recommandé d'installer un système de détection d'intrusion. Un exemple parfait d'IPS est Fail2ban.

Fail2ban est un système de prévention des intrusions gratuit et open source qui protège les serveurs des attaques par force brute en interdisant les adresses IP après un certain nombre de tentatives de connexion qui peut être spécifié dans son fichier de configuration. Une fois bloqué, l'utilisateur malveillant ou non autorisé ne peut même pas initier une tentative de connexion SSH.

7) Mettez régulièrement à jour votre serveur

Cet article ne serait pas complet sans souligner à quel point il est essentiel de mettre à jour régulièrement votre serveur. Cela garantit que votre serveur reçoit les dernières mises à jour de fonctionnalités et de sécurité qui sont essentielles pour résoudre les problèmes de sécurité existants.

Vous pouvez configurer des mises à jour automatiques à l'aide de l'utilitaire de cockpit qui est un outil de gestion de serveur basé sur une interface graphique qui effectue également une foule d'autres tâches. C'est idéal surtout si vous avez l'intention de partir en long séjour ou en vacances sans accès au serveur.


Cent OS
  1. 15 étapes de durcissement Linux pour le serveur CentOS 7

  2. Comment configurer un port séparé pour SSH et SFTP sur CentOS/RHEL

  3. Comment configurer le serveur VNC pour un nouvel utilisateur dans CentOS/RHEL 5

  4. Comment créer un référentiel Yum pour l'installation de packages système dans CentOS/RHEL

  5. Installez MySQL 5.6 sur CentOS 7 / RHEL 7

Configurer le serveur Samba sur CentOS 8/RHEL 8 pour le partage de fichiers

7 conseils efficaces pour bloquer le spam par e-mail avec Postfix sur CentOS/RHEL

Comment installer Varnish Cache pour Apache sur CentOS/RHEL 8

Meilleures pratiques pour déployer le serveur Hadoop sur CentOS/RHEL 7 - Partie 1

CentOS Web Panel - Panneau de contrôle d'hébergement Web gratuit tout-en-un pour CentOS / RHEL 6

Comment configurer SSH sur CentOS et RHEL