4. Sécurité du VPS
La sécurisation d’un VPS est une étape fondamentale de son administration. Un serveur exposé à Internet est constamment scanné et testé par des robots automatisés. Une configuration incomplète peut entraîner compromission, élévation de privilèges, fuite de données ou interruption de service.
Cette section décrit les bonnes pratiques essentielles pour renforcer la sécurité d’un VPS sous Linux (Ubuntu/Debian).
1. Modifier le port SSH par défaut
Par défaut, le service SSH écoute sur le port 22, cible privilégiée des scans automatisés. Modifier ce port réduit le bruit des attaques opportunistes (sans remplacer une vraie politique de sécurité).
- Éditer la configuration SSH :
sudo nano /etc/ssh/sshd_config - Modifier la ligne :
Port 22→Port 2222(ou tout port > 1024 non utilisé) - Autoriser le nouveau port dans le firewall AVANT redémarrage :
- Éditer la configuration SSH :
sudo ufw allow 2222/tcp
- Redémarrer le service SSH :
sudo systemctl restart ssh
Important : Ouvrir une nouvelle session SSH pour tester le nouveau port avant de fermer la session active.
2. Désactiver la connexion root par mot de passe
L’accès root direct par mot de passe est fortement déconseillé.
- Éditer le fichier :
sudo nano /etc/ssh/sshd_config
- Modifier ou ajouter :
PermitRootLogin prohibit-password
- Redémarrer SSH :
sudo systemctl restart ssh
Option recommandée : créer un utilisateur administrateur avec privilèges sudo :
sudo adduser adminsudo usermod -aG sudo admin
Puis, une fois validé, désactiver totalement root :
PermitRootLogin no
3. Utiliser des clés SSH (authentification forte)
L’authentification par clé publique est nettement plus sécurisée qu’un mot de passe.
Génération d’une clé (poste local)
ssh-keygen -t ed25519 -C "admin@vps"
L’algorithme ed25519 est recommandé (rapide, moderne, sécurisé). Toujours définir une passphrase.
Copie de la clé publique
ssh-copy-id -p 2222 admin@adresse_IP_du_VPS
Désactiver totalement les mots de passe SSH
Dans /etc/ssh/sshd_config :
PasswordAuthentication noPubkeyAuthentication yes
Puis redémarrer :
sudo systemctl restart ssh
Ne jamais désactiver l’authentification par mot de passe avant d’avoir validé la connexion par clé.
4. Configurer un firewall (UFW)
Le firewall limite l’exposition des services réseau.
Configuration minimale recommandée :
- Autoriser le port SSH personnalisé :
sudo ufw allow 2222/tcp
- Autoriser HTTP/HTTPS si serveur web :
sudo ufw allow 80/tcpsudo ufw allow 443/tcp
- Activer UFW :
sudo ufw enable
- Vérifier la configuration :
sudo ufw status verbose
5. Installer Fail2Ban
Fail2Ban analyse les logs et bloque temporairement les IP après plusieurs tentatives échouées.
- Installation :
sudo apt update && sudo apt install fail2ban -y
- Créer une configuration locale :
sudo nano /etc/fail2ban/jail.local
- Configuration minimale pour SSH :
[sshd] enabled = true port = 2222 maxretry = 5 bantime = 3600
Redémarrer le service :
sudo systemctl restart fail2ban
6. Maintenance et surveillance
- Mettre à jour régulièrement :
sudo apt update && sudo apt upgrade -y
- Activer les mises à jour de sécurité automatiques :
sudo apt install unattended-upgrades
- Vérifier les ports ouverts :
sudo ss -tulpn
- Analyser les connexions SSH :
sudo journalctl -u ssh
- Désactiver les services inutiles.
- Restreindre les permissions critiques avec
chmodetchown.
7. Résumé des mesures essentielles
- ✔ Port SSH personnalisé
- ✔ Authentification par clé uniquement
- ✔ Root désactivé ou restreint
- ✔ Firewall actif
- ✔ Fail2Ban configuré
- ✔ Mises à jour régulières
Conclusion : La sécurité d’un VPS n’est pas un réglage unique mais un processus continu. Une surveillance régulière, des mises à jour fréquentes et une réduction de la surface d’attaque sont indispensables pour maintenir un niveau de sécurité élevé.