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

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

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

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.

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

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”.

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é.

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 :

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

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 :

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.

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
.

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.

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.

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

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

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

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

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.
Abonnez-vous à notre newsletter!
Nos derniers tutoriels livrés directement dans votre boîte de réception