5 conseils simples pour sécuriser votre serveur Linux

Les serveurs Linux sont l’épine dorsale de l’Internet moderne. Aujourd’hui, presque tous les sites Web et services auxquels vous pouvez accéder via un navigateur Web fonctionnent sur une distribution Linux. Ici, nous vous montrons comment vous pouvez sécuriser votre serveur Linux.

Rappelles toi: ce didacticiel a été créé à l’aide d’un serveur Ubuntu, mais il devrait également fonctionner pour d’autres distributions Linux, y compris votre serveur Web local.

1. Supprimer l’accès SSH racine

L’un des moyens les plus rapides de sécuriser votre serveur Ubuntu consiste à sécuriser votre démon SSH en désactivant votre accès Root SSH. Par défaut, le serveur OpenSSH autorise toute connexion entrante à se connecter en tant qu’utilisateur root.

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

ssh root@insecure.server.ip.address

Cela peut être un problème, car cela laisse votre serveur ouvert et vulnérable à une attaque par force brute par 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 dans votre serveur Linux, modifiez le fichier de configuration SSH :

sudo nano /etc/ssh/sshd_config
Conseils pour sécuriser Ubuntu Server 07 Sshd Config par défaut

Trouvez la variable PermitRootLogin dans GNU Nano en appuyant sur Ctrl + w et dactylographie PermitRootLogin.

Conseils pour sécuriser Ubuntu Server 08 Permitrootlogin Variable

Modifiez la valeur PermitRootLogin de “oui” à “non”, puis enregistrez le fichier en appuyant sur Ctrl + oaprès 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 Ubuntu Server 09 Reload Ssh Server

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

Un autre moyen rapide de sécuriser votre serveur Linux consiste à créer une paire de clés publiques entre vos comptes d’utilisateurs locaux et SSH. Cette approche ignore le processus de connexion par mot de passe et vous authentifie automatiquement auprès de 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 :

Le programme keygen vous demandera quelques détails sur la clé que vous souhaitez générer. Vous pouvez laisser ces options par défaut en toute sécurité en appuyant sur Entrez trois fois.

Conseils pour sécuriser Ubuntu Server 10 Générer une clé Ssh

Exportez votre nouvelle paire de clés publiques vers votre serveur distant en utilisant le ssh-copy-id programme. Il s’agit d’un utilitaire simple qui prépare les machines locales et distantes pour l’authentification par clé publique via SSH.

ssh-copy-id ramces@my.server.ip.address
Conseils pour sécuriser le serveur Ubuntu Server 11 Ssh Copy Id Server

Connectez-vous à votre ordinateur distant en exécutant la commande suivante :

ssh ramces@my.server.ip.address

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

sudo nano /etc/ssh/sshd_config

Trouvez le PasswordAuthentication variable et changez sa valeur de “oui” à “non”.

Conseils pour sécuriser Ubuntu Server 13 Désactiver la vérification du mot de passe

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

sudo systemctl restart sshd

3. Renforcez 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 être un problème, car cela laisse votre serveur vulnérable à une attaque par analyse de port. Par exemple, un acteur malveillant pourrait analyser votre machine à la recherche de ports non sécurisés et l’utiliser pour trouver un exploit approprié.

Conseils pour sécuriser l'analyse des exemples de ports du serveur Ubuntu 14

Une façon de résoudre ce problème consiste à installer ufw, un simple client pare-feu capable de contrôler les ports et les adresses disponibles pour le monde extérieur.

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

Conseils pour sécuriser le serveur Ubuntu 15 Installation d'Ufw

Définir les règles par défaut pour ufw. Ce sont les règles que votre pare-feu suivra pour tous les ports que vous ne personnalisez pas. Bonne pratique pour vous assurer de bloquer toutes les connexions entrantes :

sudo ufw default deny incoming
sudo ufw default allow outgoing
Conseils pour sécuriser le serveur Ubuntu 16 Modifier 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 :

Conseils pour sécuriser le statut actif Ufw du serveur Ubuntu 17

4. Créer un nouvel utilisateur pour chaque service

Par défaut, chaque fichier et programme d’un système Linux appartient à un utilisateur et à un groupe spécifiques. Pour modifier le système, vous devez disposer des autorisations appropriées pour les dossiers appropriés.

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 des privilèges pour chaque service dans leur propre compte d’utilisateur.

Conseils pour sécuriser les dossiers Ubuntu Server 18 avec plusieurs propriétaires

Pour ce faire, exécutez les commandes suivantes :

sudo useradd -s /bin/bash -d /home/new-service -m -G sudo new-service
sudo passwd new-service
  • La -s L’indicateur définit le shell système pour le nouveau compte d’utilisateur. Dans mon cas, mon nouveau compte utilise Bash pour son shell.
  • Les deux -d et -m Les drapeaux définissent le répertoire utilisateur par défaut pour le nouveau compte.
  • La -G flag, d’autre part, ajoute le nouveau compte à tout groupe secondaire que vous spécifiez. Par exemple, l’ajout d’un nouveau compte au groupe sudo lui permettra d’exécuter des commandes de superutilisateur.
  • La passwd La commande vous permet de définir un nouveau mot de passe pour un 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 Ubuntu Server 19 nouvel utilisateur en cours d'exécution

5. Renforcez le noyau de votre serveur

Le noyau est l’une des parties les plus importantes d’un système Linux et est le ciment qui relie le matériel de votre machine à votre logiciel. Par exemple, la compilation de votre propre noyau Linux vous permet d’activer la prise en charge de matériel et de fonctionnalités exotiques.

Conseils pour sécuriser le serveur Ubuntu 20 Créer un Menuconfig

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

L’un des moyens les plus rapides de sécuriser votre noyau consiste à sysctl. Il s’agit d’un utilitaire intégré qui vous permet de modifier les options d’exécution du noyau Linux.

Conseils pour sécuriser Ubuntu Server 21 Sysctl Man Page

Cependant, il est important de rappeler que sysctl ne couvrira pas l’intégralité du processus de renforcement du noyau, car la sécurisation du noyau dépend davantage de ce dont vous avez besoin.

Sachant cela, vous pouvez exécuter les commandes suivantes pour empêcher votre noyau de rapporter 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 ajustements du noyau Sysctl

Vous pouvez également exécuter les commandes suivantes pour indiquer à votre noyau de supprimer toute fausse demande de connexion adressée à votre serveur :

sudo sysctl net.ipv4.tcp_syncookies=1
sudo sysctl net.ipv4.tcp_rfc1337=1
Conseils pour sécuriser le serveur Ubuntu 23 Sysctl Net Flood Tweak

Ces commandes, en revanche, 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 les connexions du filtre Net Ubuntu Server 24 Sysctl

Enfin, l’ensemble de commandes suivant bloquera toutes les connexions entrantes pour rediriger le trafic réseau vers une autre passerelle. Cela empêchera votre machine de tomber dans une attaque de l’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 Sysctl Net Mitm

Des astuces: outre les conseils ci-dessus, vous pouvez également utiliser ces outils open source pour sécuriser votre serveur Linux.

Questions fréquemment posées

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

Dans la plupart des cas, il ne faut pas se connecter via SSH s’il utilise uniquement l’authentification par clé publique. Cependant, l’invite SSH est toujours accessible si vous n’avez pas désactivé le PasswordAuthentication variables.

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

Mon serveur a à la fois iptables et ufw. Dois-je configurer la même chose pour mon pare-feu ?

Non! Iptables et ufw sont des logiciels de pare-feu qui contrôlent à la fois les plages d’adresses et de ports. Il vous suffit de configurer l’un d’entre eux pour avoir un pare-feu fonctionnel sur votre serveur Linux.

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

Oui! Il est possible de supprimer un utilisateur existant d’un groupe. Utilisez le usermod équipement. Par exemple, courir usermod -G video new-service supprimez l’utilisateur “nouveau service” du groupe “sudo” et ajoutez-le au groupe “vidéo”.

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

Ramsès Rouge
Ramsès Rouge

Ramces est un écrivain technologique qui a vécu autour des ordinateurs toute sa vie. Lecteur vorace et étudiant en anthropologie, c’est un personnage excentrique qui écrit des articles sur Linux et n’importe quoi *nix.

Abonnez-vous à notre newsletter!

Nos derniers tutoriels livrés directement dans votre boîte de réception

Leave a Reply

Your email address will not be published. Required fields are marked *