MES TUTOS
VEILLE
Chargement de la veille...
SÉCURITÉ

Le Guide Ultime : Sécuriser un VPS Linux (Hardening)

Un serveur connecté à Internet sans protection est compromis en moyenne en moins de 15 minutes. Ce guide ne se contente pas des bases : nous allons transformer votre Debian/Ubuntu en forteresse numérique en appliquant les bonnes pratiques de l'industrie (Hardening).

1. La Règle d'Or : Bannir Root

Se connecter en root est la première vulnérabilité exploitée. Nous allons créer un utilisateur administrateur dédié.

# Création de l'utilisateur (remplacez 'leo' par votre pseudo)
adduser leo

# Installation de sudo si nécessaire
apt update && apt install sudo -y

# Ajout de l'utilisateur au groupe sudo (Admin)
usermod -aG sudo leo

Maintenant, déconnectez-vous et reconnectez-vous avec ce nouvel utilisateur. Nous ne toucherons plus jamais au compte root directement.


2. Blindage du service SSH

Le SSH est la porte d'entrée principale. Nous allons la changer de place et changer la serrure.

A. Clés SSH (Authentification sans mot de passe)

Sur votre ordinateur local (pas le serveur), générez une paire de clés si ce n'est pas déjà fait :

ssh-keygen -t ed25519 -C "mon-email@exemple.com"

Envoyez la clé publique vers le serveur :

ssh-copy-id -i ~/.ssh/id_ed25519.pub leo@VOTRE_IP

B. Configuration du Daemon SSH

Modifions le fichier de configuration du serveur :

sudo nano /etc/ssh/sshd_config

Modifiez ou ajoutez les lignes suivantes pour désactiver les mots de passe et changer le port :

# 1. Changer le port standard (Sécurité par l'obscurité)
Port 2255 

# 2. Interdire totalement la connexion en Root
PermitRootLogin no

# 3. Interdire l'authentification par mot de passe (Clés uniquement)
PasswordAuthentication no
ChallengeResponseAuthentication no

# 4. Limiter l'accès aux utilisateurs précis
AllowUsers leo
⚠️ Attention : Ne fermez pas votre terminal tout de suite ! Ouvrez un deuxième terminal et testez la connexion : ssh -p 2255 leo@VOTRE_IP. Si ça marche, vous pouvez redémarrer le service : sudo service ssh restart.

3. Pare-feu strict avec UFW

UFW (Uncomplicated Firewall) est une interface simplifiée pour iptables. La stratégie est simple : on ferme tout, et on ouvre au cas par cas.

# Installation
sudo apt install ufw -y

# 1. Politique par défaut : On refuse tout ce qui entre
sudo ufw default deny incoming

# 2. On laisse sortir le trafic (mises à jour, curl...)
sudo ufw default allow outgoing

# 3. IMPORTANT : Ouvrir le nouveau port SSH
sudo ufw allow 2255/tcp

# 4. Ouvrir les ports Web (si serveur web)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Activation
sudo ufw enable

4. Protection active avec Fail2Ban

Fail2Ban analyse les logs (journaux) en temps réel. Si une IP fait trop d'erreurs (mauvais mot de passe, scan d'URL...), elle est bannie via le pare-feu.

sudo apt install fail2ban -y

Créez une configuration locale pour protéger SSH (ne touchez pas au fichier jail.conf direct) :

sudo nano /etc/fail2ban/jail.local

Collez ceci :

[sshd]
enabled = true
port    = 2255
logpath = %(sshd_log)s
backend = %(sshd_backend)s
maxretry = 3
bantime = 3600 # Bannissement pendant 1h

Redémarrez le service : sudo systemctl restart fail2ban.


5. Protection du Kernel (Sysctl)

C'est ici que l'on reconnaît un serveur bien configuré. Nous allons modifier les paramètres du noyau Linux pour empêcher certaines attaques réseaux (IP Spoofing, MITM...).

sudo nano /etc/sysctl.conf

Décommentez ou ajoutez ces lignes :

# Ignorer les ping (ICMP Echo Request) - Optionnel mais furtif
net.ipv4.icmp_echo_ignore_all = 1

# Protection contre l'IP Spoofing
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignorer les redirections ICMP (Empêche les attaques MITM)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

# Loguer les paquets suspects (Martians)
net.ipv4.conf.all.log_martians = 1

Appliquez les changements immédiatement : sudo sysctl -p.


6. Mises à jour automatiques

La faille de sécurité la plus dangereuse est souvent un paquet non mis à jour. Automatisons les correctifs de sécurité.

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Répondez "Oui" à la création automatique du fichier de configuration. Votre serveur installera désormais les correctifs de sécurité critiques tout seul chaque nuit.

Conclusion

Votre serveur est maintenant bien plus sécurisé que 99% des machines par défaut. Pour aller plus loin, je vous conseille d'installer un outil d'audit comme Lynis ou de mettre en place une authentification double facteur (2FA) sur le SSH.

← Retour à la bibliothèque