PROMO-20% avec le code QY3UJAEZ59 - Offre limitée !
Getting Started

Sécuriser votre VPS Linux

Guide complet pour renforcer la sécurité de votre VPS Linux. Fail2ban, authentification par clés SSH, et meilleures pratiques de sécurité.

📖8 min read
Intermédiaire
📅13/01/2025
🔄Mis à jour le 14/01/2026

Sécuriser votre VPS Linux

Maintenant que votre VPS est opérationnel, il est temps de renforcer sa sécurité. Ce guide vous accompagne pour protéger votre serveur contre les menaces courantes.


📋 Avant de commencer

✅ Avoir un VPS Linux fonctionnel ✅ Accès SSH avec un utilisateur non-root ✅ Droits sudo configurés ✅ Avoir complété le guide Premiers pas avec votre VPS Linux


1

Configurer l'authentification par clés SSH

L'authentification par clés SSH est beaucoup plus sécurisée que les mots de passe.

Sur votre ordinateur local - Windows (PowerShell)

Générer une paire de clés SSH
# Générer une paire de clés SSH
ssh-keygen -t ed25519 -C "votre-email@exemple.com"

# Appuyez sur Entrée pour accepter l'emplacement par défaut
# Définissez une passphrase (optionnel mais recommandé)

💡 Astuce : La clé ed25519 est plus sécurisée et plus rapide que RSA. Si votre système ne la supporte pas, utilisez ssh-keygen -t rsa -b 4096.

Copier la clé publique vers votre VPS
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh votrenom@VOTRE_IP_VPS "cat >> ~/.ssh/authorized_keys"

Sur votre ordinateur local - macOS / Linux

Générer et copier la clé
# Générer une paire de clés SSH
ssh-keygen -t ed25519 -C "votre-email@exemple.com"

# Copier la clé vers votre VPS
ssh-copy-id votrenom@VOTRE_IP_VPS

Tester l'authentification par clé

# Se connecter au VPS (ne devrait plus demander de mot de passe)
ssh votrenom@VOTRE_IP_VPS

✅ Si la connexion fonctionne sans mot de passe, votre clé SSH est correctement configurée !


2

Désactiver l'authentification par mot de passe

Une fois les clés SSH configurées, désactivez l'authentification par mot de passe.

⚠️ ATTENTION

Avant de désactiver l'authentification par mot de passe, vérifiez que vous pouvez vous connecter avec votre clé SSH ! Gardez une session SSH ouverte en backup.

Éditer la configuration SSH
# Éditer la configuration SSH
sudo nano /etc/ssh/sshd_config
Modifications à apporter
# Désactiver l'authentification par mot de passe
PasswordAuthentication no

# Désactiver l'authentification par challenge-response
ChallengeResponseAuthentication no

# Désactiver complètement la connexion root
PermitRootLogin no

# Autoriser uniquement votre utilisateur (optionnel)
AllowUsers votrenom
Redémarrer le service SSH
sudo systemctl restart sshd

3

Changer le port SSH par défaut

Changer le port SSH réduit les tentatives d'intrusion automatisées.

Modifier la configuration SSH
# Éditer la configuration SSH
sudo nano /etc/ssh/sshd_config
Changer le port
# Port par défaut : 22
Port 2222

💡 Astuce : Choisissez un port entre 1024 et 65535. Évitez les ports communs comme 2222, préférez quelque chose comme 49152.

Mettre à jour le pare-feu - UFW (Ubuntu/Debian)

# Autoriser le nouveau port
sudo ufw allow 2222/tcp

# Supprimer l'ancien port
sudo ufw delete allow 22/tcp

# Recharger UFW
sudo ufw reload

Mettre à jour le pare-feu - FirewallD (CentOS/Rocky)

# Ajouter le nouveau port
sudo firewall-cmd --permanent --add-port=2222/tcp

# Supprimer l'ancien port
sudo firewall-cmd --permanent --remove-service=ssh

# Recharger le firewall
sudo firewall-cmd --reload
Redémarrer SSH et se reconnecter
# Redémarrer SSH
sudo systemctl restart sshd

# Pour vous reconnecter avec le nouveau port
ssh -p 2222 votrenom@VOTRE_IP_VPS

4

Installer et configurer Fail2ban

Fail2ban protège votre serveur contre les attaques par force brute en bannissant temporairement les IP suspectes.

Installation

Sur Ubuntu / Debian
sudo apt update
sudo apt install fail2ban -y
Sur CentOS / Rocky Linux
sudo yum install epel-release -y
sudo yum install fail2ban -y

Configuration de Fail2ban

Créer le fichier de configuration
# Créer un fichier de configuration local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Configuration recommandée
[DEFAULT]
# Durée de bannissement (en secondes) - 1 heure
bantime = 3600

# Durée de la fenêtre de détection (10 minutes)
findtime = 600

# Nombre de tentatives avant bannissement
maxretry = 5

# Action à effectuer (bannir l'IP)
banaction = iptables-multiport

[sshd]
enabled = true
port = 2222
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 86400

Explication de la configuration :

  • bantime = 86400 → Bannir pendant 24 heures
  • findtime = 600 → Surveiller sur une fenêtre de 10 minutes
  • maxretry = 3 → Bannir après 3 tentatives échouées
  • port = 2222 → Si vous avez changé le port SSH
Démarrer Fail2ban
# Démarrer et activer Fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

# Vérifier le statut
sudo systemctl status fail2ban

Vérifier Fail2ban

Statut de la protection SSH

sudo fail2ban-client status sshd

Voir toutes les jails actives

sudo fail2ban-client status

Commandes utiles Fail2ban :

CommandeDescription
sudo fail2ban-client status sshdStatut de la jail SSH
sudo fail2ban-client set sshd unbanip IPDébannir une IP
sudo fail2ban-client reloadRecharger la configuration
sudo tail -f /var/log/fail2ban.logVoir les logs en temps réel

5

Configurer un pare-feu avancé

Configurez votre pare-feu pour n'autoriser que les services nécessaires.

Configuration UFW (Ubuntu/Debian)

# Réinitialiser UFW (optionnel)
sudo ufw --force reset

# Politique par défaut : refuser tout le trafic entrant
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Autoriser SSH (avec le nouveau port)
sudo ufw allow 2222/tcp

# Autoriser HTTP et HTTPS (si vous avez un serveur web)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Limiter les connexions SSH (protection anti-bruteforce)
sudo ufw limit 2222/tcp

# Activer UFW
sudo ufw enable

# Vérifier le statut
sudo ufw status verbose

Configuration FirewallD (CentOS/Rocky)

# Définir la zone par défaut
sudo firewall-cmd --set-default-zone=public

# Autoriser SSH
sudo firewall-cmd --permanent --add-port=2222/tcp

# Autoriser HTTP/HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Limiter les connexions SSH
sudo firewall-cmd --permanent --add-rich-rule='rule service name=ssh limit value=3/m accept'

# Recharger
sudo firewall-cmd --reload

# Vérifier
sudo firewall-cmd --list-all

6

Surveiller les logs système

Surveillez régulièrement les logs pour détecter les activités suspectes.

Dernières tentatives de connexion échouées

sudo grep "Failed password" /var/log/auth.log | tail -20

Connexions SSH réussies

sudo grep "Accepted" /var/log/auth.log | tail -20

Surveiller les logs en temps réel

sudo tail -f /var/log/auth.log

💡 Astuce : Sur CentOS/Rocky, utilisez /var/log/secure au lieu de /var/log/auth.log.


7

Installer des outils d'audit de sécurité

Lynis - Audit de sécurité automatique

Installation et utilisation
# Installation sur Ubuntu/Debian
sudo apt install lynis -y

# Installation sur CentOS/Rocky
sudo yum install lynis -y

# Lancer un audit complet
sudo lynis audit system

RKHunter - Détection de rootkits

Installation et utilisation
# Installation sur Ubuntu/Debian
sudo apt install rkhunter -y

# Installation sur CentOS/Rocky
sudo yum install rkhunter -y

# Mettre à jour la base de données
sudo rkhunter --update

# Lancer une analyse
sudo rkhunter --check

8

Maintenir le système à jour

Sur Ubuntu/Debian
# Configurer les mises à jour automatiques de sécurité
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades

# Vérifier les mises à jour manuellement
sudo apt update && sudo apt upgrade -y

⚠️ Important

Les mises à jour de sécurité sont cruciales. Configurez les mises à jour automatiques et vérifiez régulièrement que votre système est à jour.


9

Configurer les sauvegardes automatiques

Ne négligez jamais les sauvegardes !

Créer le répertoire et le script
# Créer un répertoire pour les backups
mkdir -p ~/backups

# Créer le script de backup
sudo nano /usr/local/bin/backup.sh
Script de backup
#!/bin/bash

# Configuration
BACKUP_DIR="/home/votrenom/backups"
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_FILE="backup_$DATE.tar.gz"

# Créer l'archive
tar -czf "$BACKUP_DIR/$BACKUP_FILE" \
    /etc \
    /home/votrenom \
    --exclude=/home/votrenom/backups

# Garder seulement les 7 derniers backups
cd "$BACKUP_DIR"
ls -t | tail -n +8 | xargs -r rm

echo "Backup créé : $BACKUP_FILE"
Automatiser avec cron
# Rendre le script exécutable
sudo chmod +x /usr/local/bin/backup.sh

# Ajouter une tâche cron (backup quotidien à 3h du matin)
sudo crontab -e
Ligne à ajouter au crontab
0 3 * * * /usr/local/bin/backup.sh

10

Checklist de sécurité

Vérifiez que vous avez bien :

✅ Configuré l'authentification par clés SSH ✅ Désactivé l'authentification par mot de passe ✅ Désactivé la connexion root ✅ Changé le port SSH par défaut ✅ Installé et configuré Fail2ban ✅ Configuré correctement votre pare-feu ✅ Installé des outils d'audit (Lynis, RKHunter) ✅ Activé les mises à jour automatiques ✅ Configuré des sauvegardes régulières ✅ Surveillé les logs système


💬 Besoin d'aide ?

Si vous rencontrez des difficultés :


🔒 Félicitations !

Votre VPS est maintenant bien sécurisé. La sécurité est un processus continu : surveillez régulièrement vos logs et maintenez votre système à jour !

Tags

#vps#linux#sécurité#fail2ban#ssh
Une Question ? Discutons-en.
contact [at] atmosnode [dot] com
Live Chat
AtmosNode
© 2025 AtmosNode.com • N° d'entreprise : 899 139 182
Chargement...
Entreprise non assujettie à la TVA

🔒 Méthodes de paiement sécurisées (Crypto acceptée)

Visa
MasterCard
PayPal
Apple Pay
Google Pay