Guide Complet de Sécurisation d'un VPS
Guide étape par étape pour sécuriser votre VPS. Couvre le durcissement SSH, les pare-feux, fail2ban, les mises à jour automatiques et les bonnes pratiques de sécurité essentielles pour protéger votre serveur.
Guide Complet de Sécurisation d’un VPS
Votre VPS est exposé à Internet 24h/24 et 7j/7. Sans une sécurité adéquate, ce n’est qu’une question de temps avant que quelqu’un ne le compromette. Ce guide couvre tout ce dont vous avez besoin pour verrouiller votre serveur.
Pourquoi C’est Important
Chaque minute, des bots automatisés analysent Internet à la recherche de serveurs vulnérables. Un VPS fraîchement créé peut recevoir des milliers de tentatives de connexion dans les heures suivant sa mise en ligne. Une sécurité appropriée n’est pas optionnelle — c’est la différence entre un serveur fiable et devenir une partie d’un botnet.
Ce qui est en jeu :
- Vos données et celles de vos utilisateurs
- Votre serveur utilisé pour du spam ou des attaques
- Des malwares de minage de cryptomonnaie qui épuisent vos ressources
- La perte totale de contrôle sur votre infrastructure
Prérequis
- Un VPS récent (nous recommandons Hostinger VPS pour ses fonctionnalités de sécurité et sa protection DDoS)
- Accès SSH à votre serveur
- Connaissances de base en ligne de commande
Étape 1 : Mettre à Jour Votre Système
Avant toute chose, mettez à jour tous les paquets :
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo dnf update -y
Activez les mises à jour de sécurité automatiques :
# Ubuntu/Debian
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
Étape 2 : Créer un Utilisateur Non-Root
N’utilisez jamais root pour les opérations quotidiennes :
# Create new user
adduser deploy
# Add to sudo group
usermod -aG sudo deploy
# Switch to new user
su - deploy
Étape 3 : Configurer la Sécurité SSH
Modifiez votre configuration SSH :
sudo nano /etc/ssh/sshd_config
Appliquez ces paramètres :
# Disable root login
PermitRootLogin no
# Disable password authentication (after setting up keys!)
PasswordAuthentication no
# Change default port (optional but recommended)
Port 2222
# Limit login attempts
MaxAuthTries 3
# Set login timeout
LoginGraceTime 60
# Disable empty passwords
PermitEmptyPasswords no
# Disable X11 forwarding if not needed
X11Forwarding no
Configurez l’authentification par clé SSH AVANT de désactiver les mots de passe :
# On your LOCAL machine, generate a key
ssh-keygen -t ed25519 -C "your-email@example.com"
# Copy to server
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@your-server-ip
Redémarrez SSH :
sudo systemctl restart sshd
Testez votre nouvelle connexion dans un terminal séparé avant de fermer votre session actuelle !
Étape 4 : Configurer le Pare-feu
Utilisez UFW (Uncomplicated Firewall) :
# Install UFW
sudo apt install ufw -y
# Set default policies
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH (use your custom port if changed)
sudo ufw allow 2222/tcp
# Allow HTTP/HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Enable firewall
sudo ufw enable
# Check status
sudo ufw status verbose
Étape 5 : Installer et Configurer Fail2Ban
Fail2Ban bloque automatiquement les adresses IP ayant trop de tentatives de connexion échouées :
sudo apt install fail2ban -y
Créez une configuration locale :
sudo nano /etc/fail2ban/jail.local
Ajoutez :
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = ufw
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 24h
Démarrez Fail2Ban :
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Check banned IPs
sudo fail2ban-client status sshd
Étape 6 : Désactiver les Services Inutilisés
Listez les services en cours d’exécution :
sudo systemctl list-units --type=service --state=running
Désactivez tout ce dont vous n’avez pas besoin :
sudo systemctl disable --now cups
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now bluetooth
Étape 7 : Mettre en Place la Détection d’Intrusion
Installez AIDE (Advanced Intrusion Detection Environment) :
sudo apt install aide -y
# Initialize database
sudo aideinit
# Move database
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# Check for changes (run periodically)
sudo aide --check
Étape 8 : Configurer les Paramètres de Sécurité du Noyau
Modifiez la configuration sysctl :
sudo nano /etc/sysctl.d/99-security.conf
Ajoutez :
# IP spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Disable source routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# SYN flood protection
net.ipv4.tcp_syncookies = 1
# Ignore ping broadcasts
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Log suspicious packets
net.ipv4.conf.all.log_martians = 1
Appliquez les changements :
sudo sysctl -p /etc/sysctl.d/99-security.conf
Étape 9 : Mettre en Place la Surveillance des Journaux
Configurez logwatch pour des rapports quotidiens :
sudo apt install logwatch -y
# Generate report
sudo logwatch --detail High --mailto your@email.com --service All --range today
Configurez une tâche cron quotidienne :
echo "0 0 * * * /usr/sbin/logwatch --output mail --mailto your@email.com --detail high" | sudo tee /etc/cron.d/logwatch
Étape 10 : Activer l’Authentification à Deux Facteurs (Optionnel)
Installez Google Authenticator :
sudo apt install libpam-google-authenticator -y
# Run setup as your user
google-authenticator
Répondez aux questions et sauvegardez vos codes de secours !
Modifiez la configuration PAM :
sudo nano /etc/pam.d/sshd
Ajoutez en haut :
auth required pam_google_authenticator.so
Modifiez la configuration SSH :
sudo nano /etc/ssh/sshd_config
Définissez :
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Redémarrez SSH :
sudo systemctl restart sshd
Bonnes Pratiques
- Mises à jour régulières - Planifiez des vérifications de mises à jour hebdomadaires
- Logiciels minimaux - N’installez que ce dont vous avez besoin
- Mots de passe forts - Utilisez un gestionnaire de mots de passe, minimum 16 caractères
- Principe du moindre privilège - Les utilisateurs n’obtiennent que l’accès dont ils ont besoin
- Audits réguliers - Examinez les journaux et les accès chaque semaine
- Sauvegarde avant les modifications - Ayez toujours un plan de retour en arrière
- Surveillance active - Configurez des alertes pour les activités suspectes
- Utilisez un VPN pour les accès sensibles - Envisagez WireGuard ou Tailscale pour l’accès administrateur
Erreurs Courantes à Éviter
❌ Désactiver l’authentification par mot de passe avant de configurer les clés SSH - Vous vous retrouverez bloqué dehors
❌ Ouvrir trop de ports dans le pare-feu - Chaque port ouvert est une surface d’attaque
❌ Utiliser root pour tout - Une seule erreur peut détruire votre système
❌ Ignorer les journaux - Les attaques montrent souvent des signes avant-coureurs avant de réussir
❌ Clés SSH faibles - Utilisez Ed25519 ou RSA 4096 bits minimum
❌ Même mot de passe partout - Si un service est compromis, tous le sont
❌ Oublier les règles de trafic sortant - Les malwares communiquent avec l’extérieur via des connexions sortantes
❌ Ne pas tester les modifications - Testez toujours l’accès SSH avant de fermer votre session
Liste de Contrôle de Sécurité
Utilisez cette liste pour chaque nouveau serveur :
- Système mis à jour
- Utilisateur non-root créé
- Clés SSH configurées
- Authentification par mot de passe désactivée
- Port SSH modifié (optionnel)
- Pare-feu activé
- Fail2Ban installé
- Services inutilisés désactivés
- Mises à jour automatiques activées
- Surveillance des journaux configurée
FAQ
À quelle fréquence dois-je mettre à jour mon serveur ?
Les mises à jour de sécurité doivent être appliquées dès que possible — idéalement de manière automatique. Pour les autres mises à jour, une fois par semaine est un bon rythme.
Est-il vraiment nécessaire de changer le port SSH ?
Ce n’est pas obligatoire, mais cela réduit considérablement les attaques automatisées dans vos journaux. Les bots analysent principalement le port 22. C’est de la sécurité par l’obscurité — pas un substitut à une vraie sécurité, mais un complément utile.
Que faire si je me retrouve bloqué ?
C’est pourquoi Hostinger VPS et des fournisseurs similaires proposent un accès console. Vous pouvez accéder à votre serveur via leur panneau de contrôle même si SSH est défaillant.
Devrais-je utiliser un VPN pour accéder à mon serveur ?
Pour les serveurs très sensibles, oui. WireGuard est léger et rapide, et Tailscale simplifie encore davantage la configuration. Pour la plupart des cas d’usage, un SSH correctement configuré avec authentification par clé et Fail2Ban est suffisant.
Comment savoir si mon serveur a été compromis ?
Les signes incluent : une utilisation inattendue du CPU, des processus inconnus, des fichiers modifiés (AIDE détectera cela), des tâches cron inconnues et un trafic réseau inexpliqué. Une surveillance régulière est essentielle.
La connexion root est-elle vraiment si dangereuse ?
Oui. Root dispose de pouvoirs illimités. Une faute de frappe ou une session compromise peut tout détruire. Utiliser sudo vous offre un filet de sécurité et une piste d’audit.
Prochaines étapes : Une fois votre serveur sécurisé, consultez notre guide de déploiement Docker Compose pour commencer à déployer des applications en toute sécurité.
Ready to get started?
Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.
Get Hostinger VPS — $4.99/mo// up to 75% off + free domain included
// related topics
// related guides
$1 VPS Hosting 2026: Cheapest VPS Servers Starting at $1/Month
Looking for $1 VPS hosting? Compare the cheapest VPS providers starting from $1-3/month. Real specs, no hidden fees, honest reviews of budget VPS options.
tutorialCaddy Reverse Proxy Guide 2026: Automatic HTTPS Made Easy
Set up Caddy as a reverse proxy with automatic HTTPS, zero-config SSL, and simple Caddyfile syntax. Complete VPS deployment guide.
tutorialCloudflare Tunnel VPS Guide 2026: Expose Services Without Opening Ports
Set up Cloudflare Tunnel on your VPS to expose web apps securely without opening ports or revealing your server IP. Complete guide with Docker and DNS config.
tutorialCoolify VPS Setup Guide 2026: Self-Hosted Vercel Alternative
Deploy Coolify on your VPS for a self-hosted Vercel/Netlify experience. Complete setup guide with Docker, SSL, and app deployments.
Andrius Putna
I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.
// last updated: February 6, 2026. Disclosure: This article may contain affiliate links.