Aller au contenu

Durcissement d'un VPS OVH (Debian / Ubuntu / CentOS)

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. Doc officielle OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/virtual-private-servers/secure-your-vps

ℹ️ Guide général basé sur Ubuntu / Debian / CentOS. Certaines commandes sont à adapter à ta distribution. OVH ne gère pas la sécurité de la machine : l'administration et le durcissement au quotidien sont ta responsabilité.

Prérequis

  • Un VPS dans ton compte OVHcloud.
  • Un accès administrateur (sudo) au serveur via SSH.
  • 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. Mettre à jour le système

Point essentiel : la majorité des mises à jour de paquets sont des correctifs de sécurité. À refaire régulièrement.

sudo apt update      # met à jour la liste des paquets
sudo apt upgrade     # applique les mises à jour

2. Créer un utilisateur non-root avec sudo

Les tâches qui ne nécessitent pas les privilèges root doivent passer par un utilisateur standard.

sudo adduser <utilisateur>
sudo usermod -aG sudo <utilisateur>     # (groupe "wheel" sur CentOS)

3. Créer et utiliser une clé SSH

L'authentification par clé est la méthode la plus efficace pour sécuriser l'accès : elle repose sur une paire de clés cryptographiques et réduit fortement le risque de brute-force. À configurer dès la première connexion.

Depuis ta machine locale :

ssh-copy-id <utilisateur>@<IP_DU_VPS>

Teste ensuite ssh <utilisateur>@<IP_DU_VPS> — la connexion doit se faire sans mot de passe.

Guide OVH clés SSH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/creating-ssh-keys-dedicated/

4. Durcir la configuration SSH

⚠️ Avant toute modification, vérifie que la connexion par clé fonctionne, sinon risque de te verrouiller dehors. Garde une session ouverte en secours pendant les tests.

a) Désactiver root et le mot de passe — édite /etc/ssh/sshd_config :

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

b) Changer le port d'écoute SSH (le port 22 par défaut est la cible n°1 des bots). Dans le même fichier, dé-commente et change la ligne Port — choisis un numéro entre 49152 et 65535 non déjà utilisé (sudo cat /etc/services pour vérifier) :

Port 49152

⚠️ Ouvre le nouveau port dans le pare-feu AVANT de redémarrer SSH (voir étape 5), sinon tu perds l'accès.

Redémarre le service :

sudo systemctl restart sshd

Cas particulier Ubuntu 24.04+ : le port SSH est géré via ssh.socket, pas sshd_config. Édite plutôt :

sudo nano /lib/systemd/system/ssh.socket
[Socket]
ListenStream=49152
Accept=no

Puis :

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

Connexion avec le nouveau port (à répéter à chaque ssh/scp) :

ssh <utilisateur>@<IP_DU_VPS> -p 49152

5. Configurer le pare-feu

Deux approches — utilise l'une des deux selon ta préférence. Sur un VPS OVH, aucun pare-feu n'a de règle active par défaut (iptables -L le confirme).

Option A — UFW (simple, recommandé si tu débutes) :

sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 49152/tcp     # ton port SSH (ou "OpenSSH" si port par défaut)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Option B — iptables (bas niveau, plus granulaire) :

iptables est fourni de base mais sans règle active. Crée tes règles selon ton usage (au minimum : autoriser ton port SSH, HTTP/HTTPS, drop le reste), puis rends-les persistantes (iptables-persistent).

Guide OVH iptables : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/firewall-iptables/

⚠️ Quelle que soit l'option, autorise ton nouveau port SSH avant de redémarrer sshd.

6. Installer et configurer Fail2ban

Bloque automatiquement les IP qui tentent de forcer l'accès (brute-force, DoS).

sudo apt install fail2ban -y

Crée un fichier de config local (ne jamais éditer jail.conf directement) :

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Les paramètres [DEFAULT] sont globaux ; chaque service (JAIL) reste désactivé tant qu'on n'ajoute pas enabled = true. Exemple pour protéger SSH :

[sshd]
enabled = true
port = 49152          # ton port SSH (ou "ssh" si port par défaut)
filter = sshd
maxretry = 3
findtime = 5m
bantime  = 30m

Ici : 3 échecs en 5 min → bannissement de 30 min. Active fail2ban uniquement pour les services réellement exposés. Puis :

sudo systemctl restart fail2ban

7. Activer les mises à jour de sécurité automatiques

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades

8. Configurer le Network Firewall OVHcloud (optionnel mais recommandé)

Pare-feu situé au point d'entrée de l'infrastructure OVH : il bloque les connexions avant même qu'elles n'atteignent le VPS. À activer/configurer depuis l'espace client OVH.

Guide OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/network-firewall/

9. Hostname et fuseau horaire

sudo hostnamectl set-hostname <nom-du-serveur>
sudo timedatectl set-timezone Europe/Paris

10. Sauvegarder système et données

La sécurité ne se limite pas à bloquer les attaques. Mets en place au moins une sauvegarde via les options OVH : - Snapshot : instantané manuel de l'état du VPS. - Sauvegarde automatique : sauvegardes régulières (hors disques additionnels).

Vérification

sudo ufw status verbose               # (Option A) règles actives, incoming denied
sudo iptables -L                      # (Option B) règles présentes
sudo systemctl status fail2ban        # active (running)
sudo fail2ban-client status sshd      # jail SSH active
ssh root@<IP_DU_VPS>                  # doit être REFUSÉ
ssh <utilisateur>@<IP_DU_VPS> -p 49152  # doit fonctionner par clé, sans mot de passe

Dépannage / Rollback

  • Verrouillé dehors (SSH root/password coupé, mauvais port, IP bannie) → utilise le mode rescue OVH depuis l'espace client pour rouvrir l'accès et annuler les modifs.
  • fail2ban t'a banni ton IP → sudo fail2ban-client set sshd unbanip <ton_ip>.
  • Le nouveau port ne répond pas → règle de pare-feu manquante pour ce port, ou (Ubuntu 24.04+) modif faite dans sshd_config au lieu de ssh.socket.

Notes / pièges

  • Toujours valider la clé SSH (étapes 3–4a) avant de désactiver le mot de passe.
  • Ouvrir le nouveau port dans le pare-feu avant de redémarrer sshd.
  • fail2ban : éditer jail.local, jamais jail.conf (écrasé aux mises à jour).
  • Ce runbook couvre le durcissement de base ; l'installation applicative (Docker, reverse proxy…) fait l'objet d'un runbook séparé.

Ressources

  • Guide officiel OVH — Sécuriser un VPS : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/virtual-private-servers/secure-your-vps
  • Débuter avec un VPS OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/virtual-private-servers/getting-started-vps/
  • Clés SSH OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/creating-ssh-keys-dedicated/
  • Pare-feu iptables OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/firewall-iptables/
  • Network Firewall OVH : https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/network-firewall/

Dernière mise à jour : 2026-07-02