Configurer et sécuriser un vServer Debian : guide pas à pas pour débutants (Partie 1 sur 3)
Série « Son propre serveur – de 0 à sécurisé » · 3 parties :
- Configurer & sécuriser un vServer Debian ← Vous êtes ici
- Installer & configurer Froxlor
- Bien configurer l'e-mail : SPF, DKIM & DMARC
Voici la Partie 1. Elle amène votre serveur fraîchement loué à un état de base sécurisé. Sur ce serveur, nous installerons en Partie 2 le panneau d'administration Froxlor et configurerons en Partie 3 l'envoi d'e-mails.

Sommaire
- Prérequis
- Étape 1 : Se connecter au serveur via SSH
- Étape 2 : Mettre à jour le système
- Étape 3 : Nom d'hôte, fuseau horaire et langue
- Étape 4 : Créer un utilisateur avec les droits sudo
- Étape 5 : Sécuriser SSH (désactiver le login root, login par clé)
- Étape 6 : Configurer le pare-feu (ufw)
- Étape 7 : Protection anti-brute-force avec Fail2ban
- Étape 8 : Mises à jour de sécurité automatiques
- Checklist : votre serveur est-il sécurisé ?
- Questions fréquentes (FAQ)
- Et ensuite ?
- Sources
Vous venez de louer un vServer (VPS) et vous vous demandez : « Et maintenant ? » C'est exactement là que nous commençons. Ce guide s'adresse aux débutants complets. Nous expliquons simplement ce que nous faisons et pourquoi – et vous pouvez copier-coller chaque commande. À la fin, vous aurez un serveur à jour, protégé contre les attaques les plus courantes.
Nous utilisons Debian 12 (Bookworm), l'un des systèmes serveurs les plus populaires et stables. Si vous utilisez Ubuntu, presque toutes les commandes sont identiques.
Important : Dans toutes les commandes, remplacez les espaces réservés par vos vraies valeurs –
SERVER-IPpar l'adresse IP de votre serveur (dans l'e-mail de confirmation de votre fournisseur) etnom-utilisateurpar un nom de votre choix.
Prérequis
- Un vServer/VPS loué avec Debian 12. Vous n'en avez pas encore ? Fournisseurs : par ex. IONOS, Hetzner ou webtropia.
- L'adresse IP et le mot de passe root de votre serveur (reçus par e-mail du fournisseur).
- Un terminal sur votre ordinateur : préinstallé sur macOS et Linux (« Terminal »), sur Windows utilisez PowerShell (préinstallé) ou PuTTY.
Rien de plus. C'est parti.
Étape 1 : Se connecter au serveur via SSH
« SSH » est une connexion distante chiffrée à votre serveur – vous tapez des commandes sur votre ordinateur, elles s'exécutent sur le serveur. Ouvrez votre terminal et connectez-vous en tant qu'utilisateur root :
ssh root@SERVER-IP
La première fois, on vous demande si vous faites confiance au serveur – tapez yes et appuyez sur Entrée. Saisissez ensuite le mot de passe root (la saisie est invisible, c'est normal). Une fois connecté, la ligne ressemble à ceci :
root@votre-serveur:~#
Félicitations – vous y êtes. (Une introduction détaillée à SSH se trouve dans le wiki Debian.)
Étape 2 : Mettre à jour le système
Un serveur fraîchement installé contient souvent des paquets obsolètes avec des failles connues. La toute première étape est donc toujours : tout mettre à jour. Cette commande télécharge la liste des mises à jour, les installe, supprime les paquets inutiles et nettoie :
apt update && apt full-upgrade -y && apt autoremove -y && apt clean
Cela peut prendre quelques minutes. Si un message indique qu'un redémarrage est nécessaire, redémarrez le serveur :
reboot
Après le redémarrage, la connexion est coupée un instant. Attendez ~30 secondes et reconnectez-vous avec ssh root@SERVER-IP.
Étape 3 : Nom d'hôte, fuseau horaire et langue
Pour que les journaux aient des horodatages corrects et que le serveur porte un nom propre, nous réglons trois petites choses.
Nom d'hôte (un nom pour votre serveur, par ex. web01) :
hostnamectl set-hostname web01
Régler le fuseau horaire (ici : Europe/Paris ; adaptez) :
timedatectl set-timezone Europe/Paris
Installer les paquets de langue (locales) et générer l'UTF-8 :
apt install -y locales
sed -i 's/# fr_FR.UTF-8/fr_FR.UTF-8/' /etc/locale.gen
locale-gen
Vérifiez le résultat :
timedatectl
Il doit y avoir « Time zone: Europe/Paris ».
Étape 4 : Créer un utilisateur avec les droits sudo
Travailler en permanence en root est dangereux – une faute de frappe peut endommager tout le système. Mieux : un utilisateur normal qui n'obtient les droits d'administrateur qu'en cas de besoin, via le mot précédent sudo.
Créez l'utilisateur (remplacez nom-utilisateur) et donnez un mot de passe fort lorsqu'il est demandé :
adduser nom-utilisateur
Les autres questions (nom, téléphone…) peuvent être passées avec Entrée. Donnez maintenant les droits sudo à l'utilisateur :
usermod -aG sudo nom-utilisateur
Testez-le avant de continuer. Ouvrez une deuxième fenêtre de terminal et connectez-vous avec le nouvel utilisateur :
ssh nom-utilisateur@SERVER-IP
Vérifiez que sudo fonctionne :
sudo whoami
Si root apparaît après la saisie du mot de passe, tout est correct. Laissez cette deuxième fenêtre ouverte – nous en avons besoin comme filet de sécurité à l'étape suivante.
Étape 5 : Sécuriser SSH (désactiver le login root, login par clé)
Nous allons maintenant rendre l'accès distant bien plus sûr. Deux mesures : la connexion par clé SSH au lieu d'un mot de passe et plus de connexion root directe.
Attention – risque de blocage : À cette étape, nous modifions l'accès SSH. Laissez absolument ouverte la fenêtre fonctionnelle de l'Étape 4. Ainsi, vous pourrez revenir si quelque chose tourne mal.
Astuce Windows – ai-je besoin de PuTTY et Pageant ? Pas forcément. Windows 10/11 inclut déjà OpenSSH, et les commandes suivantes (
ssh-keygen,ssh) fonctionnent directement dans PowerShell – comme sur macOS/Linux. Si vous préférez les outils PuTTY (ou avez un Windows plus ancien), procédez ainsi :
>
1. Générez une clé avec PuTTYgen : réglez « Type of key » sur EdDSA → Ed25519, cliquez sur Generate, bougez la souris. Enregistrez la clé privée en
.ppk; copiez la clé publique affichée (champ « Public key for pasting… ») dans le presse-papiers. 2. Placez la clé publique sur le serveur dans le fichier~/.ssh/authorized_keysde votre utilisateur (une ligne). 3. Chargez la clé privée dans Pageant (l'agent de clés PuTTY) – ainsi, pas besoin de la rechoisir à chaque connexion. 4. Connectez-vous avec PuTTY (hôte :nom-utilisateur@SERVER-IP).
>
PuTTYgen et Pageant sont inclus dans le paquet PuTTY : putty.org. Les deux voies sont équivalentes – ci-dessous, nous restons sur OpenSSH intégré, car il demande moins d'étapes.
5.1 Générer une clé sur votre ordinateur. Exécutez cette commande dans un terminal sur votre PC (pas sur le serveur) et confirmez les questions avec Entrée :
ssh-keygen -t ed25519 -C "mon-serveur"
5.2 Copier la clé publique vers le serveur (aussi depuis votre PC) :
ssh-copy-id nom-utilisateur@SERVER-IP
Sous Windows sans ssh-copy-id, utilisez plutôt :
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh nom-utilisateur@SERVER-IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
5.3 Test : Reconnectez-vous – aucun mot de passe ne devrait plus être demandé :
ssh nom-utilisateur@SERVER-IP
5.4 Désactiver la connexion par mot de passe et le login root. Sur le serveur, éditez la configuration SSH avec l'éditeur nano :
sudo nano /etc/ssh/sshd_config
Cherchez les lignes suivantes (ou ajoutez-les) et réglez-les exactement ainsi :
PermitRootLogin no
PasswordAuthentication no
Enregistrez Ctrl+O, Entrée, fermez Ctrl+X. Rechargez ensuite le service SSH :
sudo systemctl restart ssh
Important : Ne fermez pas encore votre fenêtre actuelle. Ouvrez-en une nouvelle et vérifiez que la connexion en nom-utilisateur fonctionne toujours – et que ssh root@SERVER-IP est désormais refusé. Ce n'est qu'alors que l'étape est réussie. Contexte dans le wiki Debian sur SSH.
Étape 6 : Configurer le pare-feu (ufw)
Un pare-feu bloque tous les ports réseau sauf les rares dont vous avez vraiment besoin. Nous utilisons ufw (« Uncomplicated Firewall ») – simple et adapté aux débutants.
Installer et définir les règles de base (bloquer tout entrant, autoriser le sortant) :
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
Autoriser l'accès SSH avant l'activation – sinon vous vous bloquez :
sudo ufw allow OpenSSH
Pour le futur serveur web (Froxlor en Partie 2), nous ouvrons aussi les ports web :
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Activez maintenant le pare-feu et vérifiez l'état :
sudo ufw enable
sudo ufw status verbose
Confirmez la question avec y. Dans la liste d'état, seuls SSH (22), 80 et 443 devraient apparaître comme autorisés. Détails sur ufw dans le Ubuntu Server Guide.
Étape 7 : Protection anti-brute-force avec Fail2ban
Les attaquants essaient des milliers de mots de passe de façon automatisée. Fail2ban détecte trop de tentatives échouées et bloque temporairement l'adresse IP attaquante. Installer et activer :
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
Nous créons une configuration propre pour que les mises à jour ne l'écrasent pas :
sudo nano /etc/fail2ban/jail.local
Collez le contenu suivant (bloque une IP après 5 tentatives échouées pendant 1 heure) :
[sshd]
enabled = true
maxretry = 5
bantime = 1h
findtime = 10m
Enregistrez (Ctrl+O, Entrée, Ctrl+X) et redémarrez le service :
sudo systemctl restart fail2ban
Vous pouvez consulter l'état à tout moment :
sudo fail2ban-client status sshd
Étape 8 : Mises à jour de sécurité automatiques
Des failles sont découvertes en permanence. Pour que votre serveur installe automatiquement les correctifs importants, nous configurons unattended-upgrades :
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Choisissez « Yes » dans la question. C'est tout – désormais, le serveur installe seul les mises à jour de sécurité. Plus d'infos dans le wiki Debian sur UnattendedUpgrades.
Checklist : votre serveur est-il sécurisé ?
Avant de continuer, parcourez rapidement :
- [ ] Système à jour (
apt update && apt full-upgrade) - [ ] Nom d'hôte, fuseau horaire et locale définis
- [ ] Utilisateur propre avec droits
sudofonctionnel - [ ] Connexion par clé SSH fonctionnelle, login par mot de passe désactivé
- [ ]
ssh root@SERVER-IPrefusé - [ ] Pare-feu (ufw) actif, seuls 22/80/443 ouverts
- [ ] Fail2ban en cours d'exécution
- [ ] Mises à jour de sécurité automatiques actives
Questions fréquentes (FAQ)
Je me suis bloqué – que faire ? Presque tous les fournisseurs proposent une fonction « VNC » ou « console » dans l'espace client, qui permet de se connecter directement sans SSH et d'annuler les réglages.
Faut-il utiliser des clés SSH ou un mot de passe suffit-il ? Les clés sont bien plus sûres et fortement recommandées. Si vous tenez à garder un mot de passe, laissez PasswordAuthentication sur yes – utilisez alors un mot de passe très long et surtout Fail2ban.
Cela fonctionne-t-il aussi sur Ubuntu ? Oui, de manière quasi identique. Seules de très anciennes versions peuvent avoir des noms de paquets différents.
Faut-il des connaissances Linux ? Non. Si vous copiez les commandes et remplacez les espaces réservés, vous y arriverez. Un peu de patience aide la première fois.
Et ensuite ?
Votre serveur est maintenant sécurisé. Dans la partie suivante, nous installons Froxlor, un panneau d'administration gratuit avec lequel vous gérez facilement domaines, sites web, certificats SSL et bases de données via une interface – sans console :
👉 Partie 2 : Installer & configurer Froxlor
Et en Partie 3 : Bien configurer l'e-mail : SPF, DKIM & DMARC, nous veillons à ce que vos e-mails soient remis en toute sécurité.
Au fait : si vous préférez faire développer un logiciel ou avez besoin de solutions serveur/web sur mesure, PepperTools vous aide volontiers.
Sources
- Debian 12 (Bookworm) – page officielle
- Wiki Debian : SSH
- Wiki Debian : UnattendedUpgrades
- Ubuntu Server Guide : Firewalls (ufw)
- Fail2ban (projet officiel)
État : juin 2026. Les commandes et noms de paquets peuvent changer avec les nouvelles versions – la documentation officielle fait foi.
Gerer les factures plus simplement
Easy Invoice regroupe devis, factures et gestion client dans le cloud.
Essayer Easy Invoice