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