Linux29 août 2026 7 vues

Sécuriser un VPS Linux : la checklist complète (2026)

Sécuriser un VPS Linux : la checklist complète (2026)

Checklist de sécurité : vue d'ensemble

Appliquer ces étapes dans l'ordre, chacune renforçant la suivante.

Action Priorité Temps estimé Guide détaillé
Mises à jour système Critique 5 min Section ci-dessous
Créer un utilisateur non-root Critique 5 min Section ci-dessous
Durcir SSH (clé + désactiver root/password) Critique 10 min Guide clé SSH
Configurer UFW (pare-feu) Critique 5 min Guide UFW
Installer Fail2ban Haute 10 min Guide Fail2ban
Activer HTTPS (Certbot) Haute 5 min Guide Certbot
Mettre en place les sauvegardes Haute 15 min Section ci-dessous
Surveillance de base Moyenne 5 min Section ci-dessous

1. Mises à jour système

Les paquets non mis à jour sont la première source de compromission. Appliquer les mises à jour dès la première connexion, puis automatiser.

Mise à jour initiale

sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y

Automatiser les mises à jour de sécurité

Le paquet unattended-upgrades applique automatiquement les mises à jour de sécurité sans intervention manuelle. Source : wiki.debian.org/UnattendedUpgrades

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

Répondre "Oui" à la question posée par le configurateur. Les mises à jour de sécurité s'appliquent alors chaque nuit automatiquement.

2. Créer un utilisateur non-root avec sudo

Se connecter et opérer en root permanent est une mauvaise pratique : une erreur de commande ou une compromission a un impact immédiat sur tout le système. Créer un utilisateur dédié avec droits sudo.

adduser nomutilisateur
usermod -aG sudo nomutilisateur

Vérifier que sudo fonctionne avant de fermer la session root :

su - nomutilisateur
sudo whoami

La commande doit retourner root. Une fois confirmé, utiliser cet utilisateur pour toutes les opérations suivantes.

Source : wiki.debian.org/sudo

3. Durcir SSH

SSH est le vecteur d'attaque le plus courant sur un VPS exposé. Trois mesures fondamentales : authentification par clé, désactivation du login root, désactivation de l'authentification par mot de passe.

Authentification par clé SSH

Générer et déployer une clé SSH depuis votre machine locale, puis vérifier la connexion avant de désactiver les mots de passe. La procédure complète est dans le guide dédié : Guide clé SSH OuiHeberg.

Désactiver le login root et l'authentification par mot de passe

Une fois la connexion par clé confirmée, modifier /etc/ssh/sshd_config :

sudo nano /etc/ssh/sshd_config

Modifier ou ajouter ces directives :

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Recharger SSH :

sudo systemctl reload ssh

Source : man.openbsd.org/sshd_config

Changer le port SSH (optionnel)

Changer le port SSH (par exemple de 22 à 2222) ne constitue pas une mesure de sécurité en soi : un scan de ports le détecte en quelques secondes. En revanche, cela réduit significativement le volume de tentatives automatisées dans les logs, ce qui facilite la surveillance. Si vous changez le port, ouvrir ce port dans UFW avant de recharger SSH, et ne pas fermer le port 22 avant d'avoir vérifié la connexion sur le nouveau port.

# Dans /etc/ssh/sshd_config
Port 2222

4. Configurer le pare-feu UFW

UFW (Uncomplicated Firewall) est l'interface recommandée pour gérer les règles iptables sur Debian et Ubuntu. Règle de base : bloquer tout le trafic entrant par défaut, n'ouvrir que les ports nécessaires.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable

Guide complet (règles par service, limitation de connexions, vérification) : Guide UFW OuiHeberg.

5. Installer Fail2ban

Fail2ban surveille les logs système et bannit automatiquement les adresses IP qui multiplient les tentatives de connexion échouées. Complémentaire à UFW : UFW filtre les ports, Fail2ban filtre les comportements.

sudo apt install -y fail2ban

Configuration recommandée, surveillance et débannissement dans le guide dédié : Guide Fail2ban OuiHeberg.

6. Activer HTTPS avec Certbot

Un certificat TLS est indispensable pour tout service web exposé. Certbot automatise l'obtention et le renouvellement des certificats Let's Encrypt pour Nginx et Apache.

sudo apt install -y snapd
sudo snap install certbot --classic
sudo certbot --nginx -d mondomaine.fr -d www.mondomaine.fr

Le renouvellement automatique, les certificats wildcard et la résolution des erreurs courantes sont couverts dans le guide dédié : Guide Certbot OuiHeberg.

7. Sauvegardes

Une sauvegarde non testée n'est pas une sauvegarde. La règle 3-2-1 est le standard minimal : 3 copies des données, sur 2 supports différents, dont 1 hors site.

Sauvegarde de base avec tar

# Sauvegarde d'un répertoire applicatif
tar -czf /root/backup-$(date +%F).tar.gz /var/www/monsite

# Sauvegarde d'une base de données MariaDB/MySQL
mysqldump -u root nom_base > /root/backup-bdd-$(date +%F).sql

Automatiser avec cron

sudo crontab -e

Ajouter une ligne pour une sauvegarde quotidienne à 3h du matin :

0 3 * * * tar -czf /root/backup-$(date +\%F).tar.gz /var/www/monsite

Snapshots VPS

Les offres VPS OuiHeberg incluent des emplacements de sauvegarde et des snapshots configurables depuis le panneau de gestion. Un snapshot capture l'état complet du VPS (système + données) et permet une restauration rapide en cas d'incident majeur.

Tester la restauration

Planifier un test de restauration au moins une fois par trimestre. Une sauvegarde dont la restauration n'a jamais été vérifiée ne peut pas être considérée comme fiable.

8. Surveillance de base

La surveillance ne nécessite pas d'outil complexe pour commencer. Les logs système contiennent l'essentiel des signaux d'alerte.

Surveiller les tentatives de connexion SSH

# Dernières connexions réussies et échouées
sudo journalctl -u ssh --since "24 hours ago" | grep -E "Accepted|Failed"

# Équivalent via auth.log (Debian/Ubuntu)
sudo grep -E "Accepted|Failed" /var/log/auth.log | tail -50

Connexions réseau actives

# Ports en écoute et connexions établies
sudo ss -tlnp

Vérifier que seuls les ports attendus sont ouverts. Tout port inconnu mérite investigation.

Charge système

# Charge CPU, mémoire, processus
top
# ou, si installé :
htop

Signaux d'alerte à surveiller

  • Pic de CPU ou de mémoire inexpliqué
  • Processus inconnu consommant des ressources
  • Connexions sortantes vers des IP inconnues
  • Fichiers modifiés récemment dans /etc ou /usr/bin
# Fichiers modifiés dans les dernières 24h dans /etc
sudo find /etc -mtime -1 -type f

Questions fréquentes

Dans quel ordre appliquer ces mesures ?

Suivre l'ordre de la checklist en haut de ce guide. Les mises à jour système et la création d'un utilisateur non-root en premier, SSH durci en deuxième, UFW en troisième. Ne pas activer UFW avant d'avoir ouvert le port SSH : c'est l'erreur la plus courante qui verrouille l'accès au VPS.

Faut-il installer un antivirus sur un VPS Linux ?

Les antivirus traditionnels sont peu adaptés aux serveurs Linux. La surface d'attaque est mieux réduite par les mesures de ce guide (mises à jour, SSH durci, pare-feu, Fail2ban) que par un antivirus. ClamAV peut être utile si le VPS héberge des fichiers uploadés par des utilisateurs (formulaires, partage de fichiers), mais reste optionnel pour la majorité des cas.

Comment savoir si mon VPS a été compromis ?

Les signaux les plus courants : pic de CPU inexpliqué, processus inconnu dans top, connexions sortantes anormales dans ss -tlnp, entrées suspectes dans /var/log/auth.log, fichiers système modifiés récemment. En cas de doute sérieux, restaurer depuis un snapshot propre est plus sûr qu'une investigation incomplète.

Ces mesures suffisent-elles pour un VPS en production ?

Elles couvrent les vecteurs d'attaque les plus courants et constituent un socle solide. Pour des environnements à exigences élevées (données sensibles, conformité réglementaire), des mesures complémentaires s'ajoutent : audit de sécurité régulier, détection d'intrusion (AIDE, auditd), segmentation réseau, chiffrement des volumes. Ce guide couvre le niveau fondamental applicable à tout VPS exposé à Internet.

Ce VPS va accueillir un site actuellement hébergé ailleurs ? Sécurisez-le d'abord, puis suivez le guide de migration depuis un hébergement mutualisé.