Guide VPS

Sécurisation de vos VPS

Dernière mise à jour : 1er janvier 2026

1. Configurer l'accès SSH avec clé publique

Niveau : Essentiel

L'accès SSH par mot de passe est la principale cible des attaques par force brute. La première mesure est de passer à une authentification par clé publique/privée.

Étape 1 — Générer votre paire de clés sur votre machine locale :

ssh-keygen -t ed25519 -C "votre@email.com"
# Suivez les instructions et définissez une passphrase forte

Étape 2 — Copier la clé publique sur le VPS :

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@votre-ip-vps

Étape 3 — Désactiver l'authentification par mot de passe :

nano /etc/ssh/sshd_config

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
systemctl restart sshd

⚠️ Testez la connexion avec votre clé dans un nouveau terminal AVANT de fermer la session actuelle, pour éviter de vous retrouver bloqué.

2. Créer un utilisateur non-root

Niveau : Essentiel

Travailler en tant que root expose l'ensemble du système en cas de compromission. Créez un utilisateur dédié avec privilèges sudo.

# Créer un utilisateur
adduser admin_cloudstore

# Ajouter au groupe sudo
usermod -aG sudo admin_cloudstore

# Copier les clés SSH vers le nouveau compte
rsync --archive --chown=admin_cloudstore:admin_cloudstore ~/.ssh /home/admin_cloudstore

💡 Choisissez un nom d'utilisateur non générique (évitez "admin", "ubuntu", "user"). Un nom personnalisé rend l'attaque par énumération plus difficile.

3. Changer le port SSH

Niveau : Essentiel

Le port 22 est le premier ciblé par les bots. Le changer vers un port non standard réduit drastiquement le bruit dans vos logs.

nano /etc/ssh/sshd_config

# Changer la ligne Port :
Port 2222
# Choisissez un port entre 1024 et 65535

systemctl restart sshd

📌 N'oubliez pas d'ouvrir ce nouveau port dans votre pare-feu avant de redémarrer SSH, et de mettre à jour votre commande de connexion : ssh -p 2222 user@ip

4. Configurer le pare-feu UFW

Niveau : Essentiel

UFW (Uncomplicated Firewall) est la solution de pare-feu recommandée sous Ubuntu/Debian. Appliquez le principe du moindre privilège : bloquer tout par défaut, n'ouvrir que ce qui est nécessaire.

# Installer UFW si absent
apt install ufw -y

# Politique par défaut : tout bloquer en entrée
ufw default deny incoming
ufw default allow outgoing

# Autoriser SSH sur votre nouveau port
ufw allow 2222/tcp

# Autoriser HTTP/HTTPS si vous hébergez un site web
ufw allow 80/tcp
ufw allow 443/tcp

# Activer le pare-feu
ufw enable

# Vérifier le statut
ufw status verbose

💡 Si vous utilisez une IP fixe pour vous connecter, vous pouvez restreindre SSH à cette IP uniquement : ufw allow from VOTRE_IP to any port 2222

5. Installer Fail2Ban

Niveau : Essentiel

Fail2Ban surveille les logs système et bannit temporairement les IPs qui effectuent trop de tentatives d'authentification échouées.

apt install fail2ban -y

# Créer une configuration locale
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local

# Configurer ces paramètres dans [DEFAULT] :
bantime = 3600          # Durée du ban (1 heure)
findtime = 600          # Fenêtre d'observation (10 min)
maxretry = 5            # Tentatives avant ban

# Configurer la prison SSH :
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log

systemctl enable fail2ban && systemctl restart fail2ban
fail2ban-client status sshd

6. Maintenir le système à jour

Niveau : Essentiel

Les mises à jour de sécurité corrigent des vulnérabilités connues. Une politique de mise à jour rigoureuse est indispensable.

# Mettre à jour manuellement
apt update && apt upgrade -y && apt autoremove -y

# Activer les mises à jour de sécurité automatiques
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades

💡 Configurez les mises à jour automatiques uniquement pour les patchs de sécurité. Pour les mises à jour majeures (ex: nouvelle version de PHP, MySQL), planifiez une fenêtre de maintenance.

7. Gérer les services actifs

Niveau : Intermédiaire

Chaque service actif est une porte d'entrée potentielle. Désactivez tout ce qui n'est pas strictement nécessaire.

# Lister les services actifs
systemctl list-units --type=service --state=active

# Désactiver un service inutile (exemple)
systemctl disable bluetooth.service
systemctl stop bluetooth.service

# Vérifier les ports ouverts
ss -tuln
  • Désactivez les services de bureau (cups, avahi-daemon) sur les VPS headless.
  • N'installez que les logiciels strictement nécessaires.
  • Utilisez ss -tuln régulièrement pour auditer les ports ouverts.

8. Mettre en place une stratégie de sauvegarde

Niveau : Intermédiaire

Les ransomwares et les erreurs humaines peuvent mettre fin à votre service en quelques secondes. Des sauvegardes régulières sont non négociables.

  • Activez les snapshots automatiques depuis votre espace client CLOUDSTORE.AFRICA
  • Configurez une sauvegarde hors-site sur un second VPS ou un stockage objet
  • Testez la restauration de vos sauvegardes régulièrement (au moins une fois par trimestre)
  • Appliquez la règle 3-2-1 : 3 copies, 2 supports différents, 1 hors site
  • Chiffrez vos sauvegardes si elles contiennent des données sensibles
# Sauvegarde MySQL avec compression
mysqldump --all-databases | gzip > /backup/mysql_$(date +%Y%m%d).sql.gz

# Rsync vers un stockage distant
rsync -avz --delete /var/www/ backup_user@backup-server:/backups/www/

9. Surveiller votre VPS

Niveau : Intermédiaire

La surveillance proactive permet de détecter les intrusions, les surcharges de ressources et les comportements anormaux.

# Installer Netdata pour le monitoring temps réel
bash <(curl -Ss https://my-netdata.io/kickstart.sh)

# Installer logwatch pour les rapports logs quotidiens
apt install logwatch -y
logwatch --output mail --mailto votre@email.com --detail high
  • Surveillez l'utilisation CPU, RAM et disque.
  • Configurez des alertes sur des seuils critiques (CPU > 90%, disque > 80%).
  • Consultez régulièrement /var/log/auth.log et /var/log/syslog.
  • Utilisez le monitoring intégré de votre espace client CLOUDSTORE.AFRICA.

10. Sécuriser vos applications web

Niveau : Avancé

Si votre VPS héberge des applications web, appliquez ces mesures complémentaires :

  • Installez un certificat SSL/TLS (Let's Encrypt gratuit ou SSL commercial via CLOUDSTORE.AFRICA)
  • Configurez la redirection HTTP vers HTTPS
  • Activez les en-têtes de sécurité HTTP (HSTS, X-Frame-Options, CSP, X-Content-Type-Options)
  • Mettez à jour régulièrement WordPress, Joomla, et autres CMS
  • Installez un WAF (Web Application Firewall) comme ModSecurity avec Nginx/Apache
  • Désactivez l'affichage des erreurs PHP en production (display_errors = Off)
  • Utilisez des mots de passe forts pour les bases de données et ne les exposez pas publiquement

11. Checklist de sécurisation rapide

Vérifiez que vous avez bien effectué chacune de ces étapes :

  • ✅ Authentification SSH par clé publique (désactiver le mot de passe)
  • ✅ Compte utilisateur non-root pour l'administration
  • ✅ Port SSH changé (non 22)
  • ✅ Pare-feu UFW activé avec règles minimales
  • ✅ Fail2Ban installé et configuré
  • ✅ Système mis à jour (mises à jour automatiques de sécurité)
  • ✅ Services inutiles désactivés
  • ✅ Sauvegardes automatiques activées et testées
  • ✅ Monitoring en place
  • ✅ Certificat SSL installé pour les services web

Besoin d'aide pour sécuriser votre VPS ?

Notre équipe d'experts peut auditer et configurer votre serveur pour vous. Contactez-nous pour un devis personnalisé.