Table des matières
Guide de Sécurisation d'un VPS Linux
Lorsque vous commandez un VPS, celui-ci est généralement livré avec une distribution Linux préinstallée. Cependant, aucun mécanisme de sécurité avancé n'est mis en place par défaut. La responsabilité de sécuriser votre serveur vous incombe donc directement. Ignorer cette étape revient à laisser votre VPS exposé aux attaques automatisées qui balayent en permanence l'ensemble de l'espace IP mondial.
Sommaire
1. Pourquoi la sécurisation est-elle indispensable ?
2. Niveau 1 – Mettre à jour le système
3. Niveau 2 – Utiliser un mot de passe fort (ou mieux : des clés SSH)
4. Niveau 3 – Modifier le port SSH
5. Niveau 4 – Installer Fail2Ban
6. Niveau 5 – Activer un pare-feu
7. Niveau 6 – Créer un utilisateur non-root
8. Niveau 7 – Sauvegardes et surveillance
9. Conclusion
Pourquoi la sécurisation est-elle indispensable ?
Il existe des réseaux de machines malveillantes (bots) dont la seule fonction est de scanner et attaquer les serveurs vulnérables. Les principales attaques sont :
- Scans de ports : recherche des services exposés (SSH, HTTP, FTP…).
- Tentatives de connexion root : ciblage prioritaire du port SSH (22 par défaut).
- Brute-force / dictionnaire : test automatique de milliards de combinaisons de mots de passe.
⚠️ Sans sécurisation, votre VPS peut être compromis en quelques heures, voire quelques minutes après sa mise en ligne.
Niveau 1 – Mettre à jour le système
Un système non mis à jour est une cible facile, car les failles connues sont publiques. Les éditeurs publient régulièrement des correctifs de sécurité : vous devez les appliquer rapidement.
Commandes essentielles :
apt update && apt upgrade -y
À répéter régulièrement. Pour automatiser, vous pouvez installer :
apt install unattended-upgrades
Cela permet l'installation automatique des mises à jour critiques de sécurité.
Niveau 2 – Utiliser un mot de passe fort (ou mieux : des clés SSH)
Un mot de passe faible ou prévisible sera découvert en quelques secondes par une attaque brute force.
Bonnes pratiques pour les mots de passe
- Longueur minimale : 12 à 16 caractères.
- Complexité : mélange de majuscules, minuscules, chiffres et caractères spéciaux.
- Éviter absolument : noms, dates de naissance, mots du dictionnaire.
- Ne jamais réutiliser le même mot de passe sur plusieurs services.
Exemple correct :
py$XoTTUdBYY@!9f
Pour changer le mot de passe root :
passwd root
Recommandation professionnelle
Évitez l'authentification par mot de passe quand c'est possible, et utilisez des clés SSH :
ssh-keygen -t ed25519
Puis ajoutez votre clé publique dans :
~/.ssh/authorized_keys
Ensuite, désactivez l'accès par mot de passe dans /etc/ssh/sshd_config :
PasswordAuthentication no
Niveau 3 – Modifier le port SSH
Changer le port SSH par défaut (22) complique la tâche des robots de scan.
Éditer le fichier :
nano /etc/ssh/sshd_config
Remplacez :
#Port 22par un port de votre choix (ex. 22022).
Puis redémarrez le service :
systemctl restart ssh
⚠️ Avant de fermer votre session, ouvrez une seconde connexion pour tester le nouveau port.
Niveau 4 – Installer Fail2Ban
Fail2Ban surveille vos logs et bloque automatiquement les adresses IP effectuant trop de tentatives infructueuses.
Installation :
apt install fail2ban -y
Création d'une configuration personnalisée :
cd /etc/fail2ban/jail.d/
nano custom.conf
Exemple de configuration :
[DEFAULT]
ignoreip = 127.0.0.1
findtime = 3600
bantime = 86400
maxretry = 3
[sshd]
enabled = true
port = 22022 # votre port SSH
logpath = /var/log/auth.log
Puis redémarrez :
systemctl restart fail2ban
Niveau 5 – Activer un pare-feu
Un VPS doit exposer uniquement les services nécessaires. Tout le reste doit être bloqué par défaut.
Avec UFW (simple)
apt install ufw -y
ufw default deny incoming
ufw default allow outgoing
ufw allow 22022/tcp # SSH
ufw allow 80,443/tcp # HTTP/HTTPS
ufw enable
Avec iptables/nftables (avancé)
Utile pour des règles plus complexes (DoS, filtrage par IP, etc.).
Niveau 6 – Créer un utilisateur non-root
L'utilisateur root ne devrait jamais être utilisé directement. Créez un utilisateur normal avec droits sudo :
adduser monuser
usermod -aG sudo monuser
Puis désactivez la connexion root SSH :
PermitRootLogin no
Niveau 7 – Sauvegardes et surveillance
Un serveur bien sécurisé ne doit pas seulement être protégé contre les intrusions, mais aussi être préparé à une récupération rapide.
- Sauvegardes régulières : bases de données, fichiers critiques, configurations.
- Monitoring : surveiller la charge CPU, RAM, espace disque et journaux (via Prometheus, Grafana, ou un service externe).
- Détection d'intrusion : outils comme rkhunter, chkrootkit, ou Lynis.
Conclusion
Sécuriser son VPS n'est pas une option mais une obligation. Un VPS non protégé est tôt ou tard compromis.
Résumé des étapes minimales :
1. ✅ Maintenir le système à jour.
2. ✅ Utiliser des mots de passe forts (ou mieux, clés SSH).
3. ✅ Changer le port SSH et désactiver root.
4. ✅ Installer Fail2Ban.
5. ✅ Mettre en place un pare-feu.
6. ✅ Créer un utilisateur non-root.
7. ✅ Planifier des sauvegardes et surveiller le système.
En appliquant ces bonnes pratiques, vous augmentez considérablement la résilience de votre VPS face aux attaques.