Dernière mise à jour : avril 2026

Securiser le VPS

Contexte

Un VPS neuf est expose a Internet avec un acces root par mot de passe. C'est une cible facile. Cette section blinde le serveur AVANT d'installer quoi que ce soit. Chaque commande est a executer dans l'ordre.

Etape 1 : Premiere connexion en root

Depuis votre poste local :

$ ssh root@VOTRE_IP_VPS

Acceptez l'empreinte SSH si c'est la premiere connexion.

Etape 2 : Mettre a jour le systeme

# apt update && apt upgrade -y
# apt install -y curl wget git ufw fail2ban unattended-upgrades

Etape 3 : Creer un utilisateur non-root

Ne travaillez JAMAIS en root au quotidien. Creez un utilisateur dedie :

# adduser deploy

Repondez aux questions (mot de passe fort, le reste peut etre vide).

Donnez-lui les droits sudo :

# usermod -aG sudo deploy

Etape 4 : Configurer l'authentification par cle SSH

Sur votre machine LOCALE (pas le VPS), generez une cle si vous n'en avez pas :

$ ssh-keygen -t ed25519 -C "votre-email@example.com"

Copiez la cle publique sur le VPS :

$ ssh-copy-id deploy@VOTRE_IP_VPS

Testez la connexion sans mot de passe :

$ ssh deploy@VOTRE_IP_VPS

Si ca marche, passez a l'etape suivante. Si non, ne desactivez PAS le mot de passe.

Etape 5 : Desactiver l'authentification par mot de passe

IMPORTANT : Ne faites cette etape QUE si la connexion par cle SSH fonctionne. Sinon vous serez bloque hors du serveur.

Editez la configuration SSH :

$ sudo nano /etc/ssh/sshd_config

Modifiez (ou ajoutez) ces lignes :

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Redemarrez SSH :

$ sudo systemctl restart sshd

Gardez votre session actuelle ouverte et testez dans un NOUVEAU terminal :

$ ssh deploy@VOTRE_IP_VPS

Etape 6 : Configurer le pare-feu UFW

Politique par defaut : tout bloquer en entree, tout autoriser en sortie.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Autoriser SSH (sinon vous perdez l'acces) :

$ sudo ufw allow ssh

Activer le pare-feu :

$ sudo ufw enable

Verifier l'etat :

$ sudo ufw status verbose

Resultat attendu :

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere

IMPORTANT : N'ouvrez PAS d'autres ports. Tous les services (Vault, PostgreSQL, OpenClaw) seront accessibles uniquement via Tailscale, pas via l'IP publique.

Etape 7 : Configurer fail2ban

fail2ban bloque les IP qui tentent trop de connexions SSH :

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

Trouvez la section [sshd] et assurez-vous qu'elle contient :

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600

Redemarrez fail2ban :

$ sudo systemctl restart fail2ban
$ sudo systemctl enable fail2ban

Etape 8 : Mises a jour automatiques de securite

$ sudo dpkg-reconfigure -plow unattended-upgrades

Selectionnez "Yes" pour activer les mises a jour automatiques.

Verifiez la configuration :

$ cat /etc/apt/apt.conf.d/20auto-upgrades

Resultat attendu :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Etape 9 : Configurer le fuseau horaire

$ sudo timedatectl set-timezone Europe/Paris
$ timedatectl

Erreurs courantes

  • Se bloquer hors du serveur : Toujours tester la connexion SSH par cle AVANT de desactiver le mot de passe. Gardez une session ouverte pendant les changements SSH.
  • Oublier d'autoriser SSH dans UFW avant de l'activer : Vous perdez l'acces. La plupart des fournisseurs offrent une console VNC de secours.
  • Ne pas installer fail2ban : Les bots scannent en permanence. Sans fail2ban, vous verrez des milliers de tentatives de connexion par jour.

Verification

$ sudo ufw status
$ sudo systemctl status fail2ban
$ sudo systemctl status sshd
$ cat /etc/ssh/sshd_config | grep -E "PermitRoot|PasswordAuth"

Resultats attendus : - UFW actif, seul le port 22 ouvert - fail2ban actif - sshd actif - PermitRootLogin no, PasswordAuthentication no

Temps estime

20 minutes.

Bravo, vous avez terminé cette section !
Vous avez couvert : Contexte, Etape 1 : Premiere connexion en root, Etape 2 : Mettre a jour le systeme, Etape 3 : Creer un utilisateur non-root et 9 autres. Continuer →

Commentaires et discussions


← Prerequis materiel et logiciel Reseau prive Tailscale →