5 conseils simples pour sécuriser votre serveur Linux

Conseils pour sécuriser le serveur Ubuntu 00 Image à la une

Les serveurs Linux sont le pilier d’Internet moderne. Aujourd’hui, presque chaque site Web et service auquel vous pouvez accéder via un navigateur fonctionne sur une distribution Linux. Nous vous montrons ici comment sécuriser votre serveur Linux.

Table des matières

    1. Supprimer l’accès SSH root
    1. Utiliser une paire de clés publiques pour l’accès SSH
    1. Renforcer le pare-feu de votre serveur Linux
    1. Créer un nouvel utilisateur pour chaque service
    1. Renforcer le noyau de votre serveur
  • Questions fréquentes

Remarque : ce tutoriel a été créé en utilisant un serveur Ubuntu, mais il devrait également s’appliquer à d’autres distributions Linux, y compris votre serveur Web local.

1. Supprimer l’accès SSH root

L’une des manières les plus rapides de sécuriser votre serveur Ubuntu est de sécuriser votre démon SSH en désactivant votre accès SSH root. Par défaut, le serveur OpenSSH permet à toute connexion entrante de se connecter en tant qu’utilisateur root.

Par exemple, l’exécution de la commande suivante sur un serveur non sécurisé fournira un prompt de connexion :

Conseils pour sécuriser le serveur Ubuntu 04 Connexion root non sécurisée

Cela peut être problématique, car cela laisse votre serveur ouvert et vulnérable à une attaque par force brute de mot de passe. Pour résoudre ce problème, connectez-vous à votre serveur Linux et mettez à jour le fichier de configuration de votre démon SSH.

Une fois que vous êtes à l’intérieur de votre serveur Linux, éditez le fichier de configuration SSH :

sudonano/etc/ssh/sshd_config

Conseils pour sécuriser le serveur Ubuntu 07 Configuration par défaut de sshd

Recherchez la variable PermitRootLogin dans GNU Nano en appuyant sur Ctrl + W et en tapant PermitRootLogin.

Conseils pour sécuriser le serveur Ubuntu 08 Variable PermitRootLogin

Changez la valeur de PermitRootLogin de “yes” à “no”, puis enregistrez le fichier en appuyant sur Ctrl + o, puis Ctrl + x.

Pour appliquer le nouveau paramètre, rechargez le démon SSH du serveur via systemctl :

sudo systemctl restart ssh

Conseils pour sécuriser le serveur Ubuntu 09 Recharger le serveur ssh

2. Utiliser une paire de clés publiques pour l’accès SSH

Une autre méthode rapide pour sécuriser votre serveur Linux est de créer une paire de clés publiques entre votre machine locale et votre compte utilisateur SSH. Cette approche évite le processus de connexion par mot de passe et vous authentifie automatiquement sur votre serveur distant.

Pour créer une paire de clés publiques, vous devez d’abord exécuter la commande suivante sur votre machine locale :

ssh-keygen

Le programme keygen vous demandera plusieurs informations sur la clé que vous souhaitez créer. Vous pouvez laisser ces options par défaut en appuyant trois fois sur Entrée.

Conseils pour sécuriser le serveur Ubuntu 10 Générer une clé SSH

Exportez votre nouvelle paire de clés publiques sur votre serveur distant en utilisant le programme ssh-copy-id. Il s’agit d’une simple utilité qui prépare à la fois les machines local et distant pour l’authentification par clé publique via SSH.

ssh-copy-id [email protected]

Conseils pour sécuriser le serveur Ubuntu 11 Copier l'identifiant SSH sur le serveur

Connectez-vous à votre machine distante en exécutant la commande suivante :

Il est également possible de sécuriser davantage votre serveur Linux en supprimant le prompt de connexion dans SSH. Ouvrez le fichier de configuration de votre démon avec la commande suivante :

sudonano/etc/ssh/sshd_config

Trouvez la variable PasswordAuthentication et changez sa valeur de “yes” à “no”.

Conseils pour sécuriser le serveur Ubuntu 13 Désactiver l'authentification par mot de passe

Rechargez votre démon SSH en exécutant la commande suivante :

sudo systemctl restart sshd

3. Renforcer le pare-feu de votre serveur Linux

En plus de restreindre l’accès SSH, vous pouvez également améliorer la sécurité de votre serveur Linux en configurant votre pare-feu. Par défaut, une nouvelle machine Linux acceptera toutes les connexions entrantes de n’importe quel port.

Cela peut poser un problème, car cela laisse votre serveur vulnérable à une attaque par scan de ports. Par exemple, un acteur malveillant peut scanner votre machine à la recherche de ports non sécurisés et utiliser cela pour trouver une exploitation appropriée.

Conseils pour sécuriser le serveur Ubuntu 14 Exemple de scan de ports

Une façon de résoudre cela est d’installer ufw, un client de pare-feu simple qui peut contrôler les ports et les adresses accessibles au monde extérieur.

Exécutez la commande suivante pour installer ufw sur Ubuntu :

sudo apt install ufw

Conseils pour sécuriser le serveur Ubuntu 15 Installation de ufw

Définissez les règles par défaut pour ufw. Ce sont les politiques que votre pare-feu suivra pour tout port que vous ne personnalisez pas. Il est bon de s’assurer que vous bloquez toutes les connexions entrantes :

sudo ufw default deny incoming  
sudo ufw default allow outgoing

Conseils pour sécuriser le serveur Ubuntu 16 Changer les règles par défaut

Configurez votre pare-feu pour les services que vous souhaitez exécuter sur votre machine. Par exemple, l’exécution des commandes suivantes vous permettra de vous connecter via SSH et d’héberger un serveur Web :

sudo ufw allow 22  
sudo ufw allow 80  
sudo ufw allow 443

Enfin, vous devez activer votre nouvelle configuration de pare-feu en exécutant sudo ufw enable. De plus, vous pouvez vérifier si votre pare-feu est en ligne en exécutant cette commande :

sudo ufw status

Conseils pour sécuriser le serveur Ubuntu 17 État actif de ufw

4. Créer un nouvel utilisateur pour chaque service

Par défaut, chaque fichier et programme dans un système Linux appartient à un utilisateur et à un groupe particuliers. Pour modifier le système, vous devez avoir les bonnes autorisations pour les bons dossiers.

Une façon d’augmenter la sécurité de votre serveur Linux est de créer un nouveau compte utilisateur pour chaque nouveau service. Cette approche vous permet de contenir les privilèges de chaque service dans leur propre compte utilisateur.

Conseils pour sécuriser le serveur Ubuntu 18 Dossier avec plusieurs propriétaires

Pour ce faire, exécutez les commandes suivantes :

sudo useradd -s/bin/bash-d/home/new-service -m-Gsudo new-service  
sudopasswd new-service
  • Le drapeau -s définit le shell système pour le nouveau compte utilisateur. Dans mon cas, mon nouveau compte utilise Bash comme shell.
  • Les drapeaux -d et -m définissent le répertoire utilisateur par défaut pour le nouveau compte.
  • Le drapeau -G, quant à lui, ajoute le nouveau compte à tout groupe secondaire que vous spécifiez. Par exemple, ajouter le nouveau compte au groupe sudo permettra d’exécuter des commandes superutilisateur.
  • La commande passwd vous permet de définir un nouveau mot de passe pour le nouveau compte utilisateur.

Une fois cela fait, vous pouvez utiliser votre nouveau compte utilisateur en vous déconnectant de votre compte actuel ou en exécutant su new-service.

Conseils pour sécuriser le serveur Ubuntu 19 Nouvel utilisateur en cours d'exécution

5. Renforcer le noyau de votre serveur

Le noyau est l’une des parties les plus importantes d’un système Linux et relie le matériel de votre machine à votre logiciel. Par exemple, compiler votre propre noyau Linux vous permet d’activer le support pour du matériel et des fonctionnalités exotiques.

Conseils pour sécuriser le serveur Ubuntu 20 Menu de configuration

En plus de cela, le noyau sert également de processus racine du système d’exploitation. Sécuriser le noyau est l’une des parties les plus essentielles de la sécurisation de votre serveur Linux.

L’une des manières les plus rapides de sécuriser votre noyau est via sysctl. Il s’agit d’un utilitaire intégré qui vous permet d’ajuster les options d’exécution du noyau Linux.

Conseils pour sécuriser le serveur Ubuntu 21 Page de manuel sysctl

Cependant, il est important de noter que sysctl ne couvrira pas l’ensemble du processus de durcissement du noyau, car la sécurisation du noyau dépendra largement de ce que vous en attendez.

Sachant cela, vous pouvez exécuter les commandes suivantes pour empêcher votre noyau de signaler des informations de diagnostic :

sudo sysctl kernel.kptr_restrict=2  
sudo sysctl kernel.dmesg_restrict=1  
sudo sysctl kernel.kexec_load_disabled=1

Conseils pour sécuriser le serveur Ubuntu 22 Réglages sysctl pour le noyau

Vous pouvez également exécuter les commandes suivantes pour indiquer à votre noyau de rejeter toutes les demandes de connexion fausses faites à votre serveur :

sudo sysctl net.ipv4.tcp_syncookies=1  
sudo sysctl net.ipv4.tcp_rfc1337=1

Conseils pour sécuriser le serveur Ubuntu 23 Réglages de protection contre les inondations sysctl

Ces commandes, d’autre part, forceront le noyau à valider chaque connexion entrante vers la machine :

sudo sysctl net.ipv4.conf.all.rp_filter=1  
sudo sysctl net.ipv4.conf.default.rp_filter=1

Conseils pour sécuriser le serveur Ubuntu 24 Réglages de filtrage du réseau sysctl

Enfin, l’ensemble de commandes suivantes empêchera toute connexion entrante de rediriger le trafic réseau vers une passerelle différente. Cela empêchera votre machine de tomber victime d’une attaque de type homme du milieu.

sudo sysctl net.ipv4.conf.all.accept_redirects=0  
sudo sysctl net.ipv4.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.secure_redirects=0  
sudo sysctl net.ipv4.conf.default.secure_redirects=0  
sudo sysctl net.ipv6.conf.all.accept_redirects=0  
sudo sysctl net.ipv6.conf.default.accept_redirects=0  
sudo sysctl net.ipv4.conf.all.send_redirects=0  
sudo sysctl net.ipv4.conf.default.send_redirects=0

Conseils pour sécuriser le serveur Ubuntu 25 Prévention des MITM via sysctl

Conseils : en plus des conseils ci-dessus, vous pouvez également utiliser ces outils open-source pour sécuriser votre serveur Linux.

Questions fréquentes

J’ai perdu ma machine locale. Est-il encore possible de me connecter à mon serveur Ubuntu via SSH ?

Pour la plupart, il ne devrait pas être possible de se connecter via SSH s’il utilise uniquement l’authentification par clé publique. Cependant, il peut encore être possible d’accéder au prompt SSH si vous n’avez pas désactivé la variable PasswordAuthentication.

En dehors de cela, vous pouvez accéder physiquement à la machine et mettre à jour “/etc/ssh/sshd_config” ou accéder à la console root depuis votre fournisseur VPS.

Mon serveur a à la fois iptables et ufw. Dois-je configurer les deux pour mon pare-feu ?

Non ! Les deux, iptables et ufw, sont des logiciels de pare-feu qui contrôlent les mêmes plages d’adresses et ports. Vous n’avez besoin de configurer qu’un seul d’entre eux pour avoir un pare-feu fonctionnel sur votre serveur Linux.

Est-il possible de retirer les privilèges de superutilisateur d’un utilisateur que j’ai créé ?

Oui ! Il est possible de retirer un utilisateur existant d’un groupe. Utilisez l’utilitaire usermod. Par exemple, exécuter usermod -G video new-service retirera l’utilisateur “new-service” du groupe “sudo” et l’ajoutera au groupe “video”.

Crédit image : Unsplash. Toutes les modifications et captures d’écran par Ramces Red.