Sécuriser efficacement son VPS en plusieurs niveaux
Published on September 22, 2025 at 01:00 AM

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.
## 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 :
```bash
apt update && apt upgrade -y
```
À répéter régulièrement. Pour automatiser, vous pouvez installer :
```bash
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 :
```bash
passwd root
```
### Recommandation professionnelle
Évitez l’authentification par mot de passe quand c’est possible, et **utilisez des clés SSH** :
```bash
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 :
```bash
nano /etc/ssh/sshd_config
```
Remplacez :
```
#Port 22
```
par un port de votre choix (ex. 22022).
Puis redémarrez le service :
```bash
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 :
```bash
apt install fail2ban -y
```
Création d’une configuration personnalisée :
```bash
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 :
```bash
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)
```bash
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 :
```bash
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.


















