Guide Complet de Sécurisation d'un VPS
TUTORIAL 8 min read fordnox

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 :

Prérequis

É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

  1. Mises à jour régulières - Planifiez des vérifications de mises à jour hebdomadaires
  2. Logiciels minimaux - N’installez que ce dont vous avez besoin
  3. Mots de passe forts - Utilisez un gestionnaire de mots de passe, minimum 16 caractères
  4. Principe du moindre privilège - Les utilisateurs n’obtiennent que l’accès dont ils ont besoin
  5. Audits réguliers - Examinez les journaux et les accès chaque semaine
  6. Sauvegarde avant les modifications - Ayez toujours un plan de retour en arrière
  7. Surveillance active - Configurez des alertes pour les activités suspectes
  8. 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 :

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é.

~/vps-security-guide/get-started

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

sécurité VPS durcissement serveur sécurité SSH configuration pare-feu fail2ban protection VPS

// related guides

Andrius Putna

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.