Durcissement d'un VPS OVH (Debian / Ubuntu)¶
Objectif : sécuriser un VPS fraîchement livré avant d'y déployer quoi que ce soit. Quand l'utiliser : à chaque nouveau VPS commandé chez OVH, avant toute installation applicative.
Prérequis¶
- Accès root au VPS (identifiants reçus par mail OVH).
- Une paire de clés SSH sur ta machine (
ssh-keygen -t ed25519si tu n'en as pas). - L'IP publique du VPS.
Étapes¶
- Première connexion et mise à jour du système
ssh root@<IP_DU_VPS>
apt update && apt upgrade -y
- Créer un utilisateur non-root avec sudo
adduser <utilisateur>
usermod -aG sudo <utilisateur>
- Copier ta clé SSH publique vers ce nouvel utilisateur
Depuis ta machine locale (nouveau terminal) :
ssh-copy-id <utilisateur>@<IP_DU_VPS>
Puis teste la connexion : ssh <utilisateur>@<IP_DU_VPS> — tu ne dois pas avoir à taper de mot de passe.
- Durcir la configuration SSH
Édite /etc/ssh/sshd_config (via sudo) et fixe :
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Puis recharge le service :
sudo systemctl restart ssh
⚠️ Garde ta session root ouverte tant que tu n'as pas confirmé que la connexion par clé avec le nouvel utilisateur fonctionne. Sinon tu risques de te verrouiller dehors.
- Activer le pare-feu UFW
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
- Installer fail2ban (protection brute-force SSH)
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
- Activer les mises à jour de sécurité automatiques
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
- Configurer hostname et fuseau horaire
sudo hostnamectl set-hostname <nom-du-serveur>
sudo timedatectl set-timezone Europe/Paris
Vérification¶
sudo ufw status verbose # règles actives, incoming denied par défaut
sudo systemctl status fail2ban # active (running)
ssh root@<IP_DU_VPS> # doit être REFUSÉ
ssh <utilisateur>@<IP_DU_VPS> # doit fonctionner par clé, sans mot de passe
Dépannage / Rollback¶
- Verrouillé dehors après avoir coupé le login root/password → utilise la console KVM/rescue depuis l'espace client OVH pour rouvrir l'accès et corriger
sshd_config. - fail2ban t'a banni ton IP → depuis la console OVH :
sudo fail2ban-client set sshd unbanip <ton_ip>.
Notes / pièges¶
- Fais toujours l'étape 3–4 (clé SSH qui marche) avant de désactiver le mot de passe.
- Si tu changes le port SSH, pense à
sudo ufw allow <port>/tcpavant de redémarrer sshd. - Ce runbook s'arrête au durcissement de base ; l'installation applicative (Docker, reverse proxy, etc.) fait l'objet d'un runbook séparé.
Dernière mise à jour : 2026-07-02