Aller au contenu

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 ed25519 si tu n'en as pas).
  • L'IP publique du VPS.

Étapes

  1. Première connexion et mise à jour du système
ssh root@<IP_DU_VPS>
apt update && apt upgrade -y
  1. Créer un utilisateur non-root avec sudo
adduser <utilisateur>
usermod -aG sudo <utilisateur>
  1. 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.

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

  1. 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
  1. Installer fail2ban (protection brute-force SSH)
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
  1. Activer les mises à jour de sécurité automatiques
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
  1. 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>/tcp avant 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