Sécuriser un VPS Debian

secure-server

La sécurisation d'un serveur VPS est cruciale pour en protéger les données et maintenir ses performances. Les étapes clés incluent la mise à jour régulière de la distribution, la configuration d'un pare-feu, l'utilisation de clés SSH pour l'authentification, ainsi que la gestion rigoureuse des droits d'accès. Installer un système de détection d'intrusion et effectuer des sauvegardes régulières sont également essentiels pour surveiller les activités suspectes et prévenir la perte de données. Ces mesures, combinées à une sensibilisation continue aux meilleures pratiques de sécurité, offrent une protection solide contre les menaces cyber.

Dans cet article, quelles sont les mesures à prendre pour sécuriser un serveur Debian, mais c'est aussi transposable à d'autres distributions.

Mise à jour du système

Commencez toujours par mettre à jour votre système pour vous assurer que les derniers correctifs de sécurité ont été appliqués. Le principal vecteur d'attaque étant la recherche de vulnérabilités, il est essentiel d'avoir un système à jour.

Nous allons donc commencer par une mise à jour manuelle avant de mettre en place une mise à jour automatique par la suite.

sudo apt update && sudo apt upgrade

Configuration de la mise à jour automatique

La mise à jour automatique permet de maintenir la distribution à jour sans intervention manuelle, garantissant ainsi une sécurité optimale. Ce processus peut être configuré à l'aide de l'outil unattended-upgrades, qui est spécifiquement conçu pour installer automatiquement les mises à jour de sécurité et, si désiré, les mises à jour régulières des paquets.

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Sécuriser le serveur SSH

Pour renforcer la sécurité sur un serveur ssh, il faut éditer le fichier /etc/ssh/sshd_config et changer les paramètres suivants :

  • Changer le port SSH : Évitez d'utiliser le port par défaut (22) pour SSH. Changez la ligne Port 22 en un autre numéro de port.
  • Désactiver l'accès root : Par défaut l'accès distant par l'utilisateur root est autorisé, ce qui est très dangereux.
    Il faut donc explicitement indiquer PermitRootLogin no dans le fichier de configuration.
  • Utiliser l'authentification par clé : L'authentification par clé est beaucoup plus sécurisée que les mots de passe.
    Générez une paire de clés sur votre machine locale et copiez la clé publique sur votre serveur avec la commande ssh-copy-id.
    Il faudra ensuite s'assurer que le fichier de configuration contient PubkeyAuthentication yes. Normalement c'est le cas.
  • Restreindre l'accès : Il est souvent inutile de laisser l'accès ssh à tous les utilisateurs.
    Vous pouvez donc ajouter une clause AllowUsers pour autoriser l'accès aux seuls noms d'utilisateurs cités.
  • Ignorer les IPV6 : Si votre cas d'usage le permet, vous pouvez aussi forcer le serveur à n'écouter que les IPV4 avec le paramètre ListenAddress 0.0.0.0.

Le fichier de configuration devra donc contenir les paramètres suivants :

Port <numéro-de-port>
ListenAddress 0.0.0.0
PermitRootLogin no
PubkeyAuthentication yes
AllowUsers <liste-utilisateurs>
PasswordAuthentication no

Configuration du pare-feu

Un pare-feu est une composante indispensable de la stratégie de sécurité d'un serveur, agissant comme une première ligne de défense contre les menaces extérieures. Il filtre le trafic entrant et sortant selon des règles définies. Il agit comme un gardien, décidant des données qui peuvent entrer ou sortir du serveur, selon une politique de sécurité que vous devez définir.

Pour installer le pare feu, il faut lancer la commande suivante :

sudo apt install ufw

Ensuite, dans un premier temps, on doit configurer le pare-feu pour accepter par défaut toutes les connexions sortantes, mais interdire toute connexion entrante. Bien entendu, nous n'allons pas activer le pare-feu en l'état au risque ne ne plus pouvoir nous connecter en ssh par exemple.

sudo ufw default allow outgoing
sudo ufw default deny incoming

On autorise maintenant le port ssh que nous avons attribué.

sudo ufw allow <port-ssh>

Après avoir vérifier que l'on ne s'est pas trompé de port ssh, on peut activer le pare-feu :

sudo ufw enable

Protection contre les attaques

Fail2Ban et CrowdSec sont deux solutions de sécurité qui visent à protéger les serveurs contre les cyberattaques, mais elles diffèrent dans leur approche et leur technologie. Fail2Ban est un outil plus ancien, principalement utilisé pour analyser les fichiers journaux des serveurs afin de détecter des comportements malveillants, comme les tentatives répétées de connexion échouée, et bannir les adresses IP associées à ces comportements via des règles de pare-feu. Il est généralement limité à la machine sur laquelle il est installé et nécessite une configuration manuelle pour chaque type de service surveillé. CrowdSec, en revanche, est une solution plus récente et basée sur la communauté. Il offre des fonctionnalités similaires à celles de Fail2Ban, mais utilise également une intelligence collective pour partager les informations sur les menaces détectées entre les utilisateurs du système. Cela permet à CrowdSec de fournir une réponse plus dynamique et adaptative aux menaces émergentes, s'appuyant sur un réseau d'informations pour améliorer la sécurité à l'échelle globale.

Installation de Crowdsec

L'installation de CrowdSec fait l'objet d'un article séparé à paraître. En attendant, vous pouvez vous référer à sa documentation.

 

Aucun commentaire

No module Published on Offcanvas position