Debian est souvent la première réponse quand on pose la question "quelle distribution pour un serveur ?". Ce n'est pas un hasard : stable, légère, bien documentée, et soutenue par une communauté impressionnante depuis plus de 30 ans.

Ce tutoriel couvre l'installation et la configuration de base d'un serveur Debian 13 Trixie (branche stable au 9 août 2025). À la fin, votre machine sera opérationnelle, sécurisée et prête à accueillir les services de votre choix.

💡
Fiche Debian sur DistroWatch
Debian est la base de nombreuses distributions populaires (Ubuntu, Linux Mint, Raspberry Pi OS...). Si vous appréciez ce projet, vous pouvez leur faire un don ou les aider autrement.

Pourquoi Debian Stable sur un serveur ?

Debian Stable est la version "gelée" : les paquets n'évoluent plus sauf pour les correctifs de sécurité. Ce cycle de développement long se traduit concrètement par :

  • une stabilité et une fiabilité éprouvées sur la durée
  • une empreinte mémoire très faible (idéal sur du matériel modeste)
  • un support de nombreuses architectures : Intel/AMD 64 bits, ARM, RISC-V...
  • des mises à jour de sécurité soignées et testées
  • un noyau Linux Long Term Support
  • des mises à niveau entre versions stables fiables et documentées
⚠️
Sur serveur, n'utilisez que la branche Stable. Les branches Testing et Unstable (Sid) ne sont pas adaptées à un environnement de production.

Pré-requis

Matériel

Debian est remarquablement léger. La configuration minimale absolue tourne autour de 128 Mo de RAM et 2 Go de disque, mais en pratique on recommande au moins 512 Mo de RAM et 10 Go de disque pour tenir la charge.

⚠️
La configuration matérielle réelle dépend surtout des services que vous installerez. Référez-vous aux prérequis des logiciels concernés, pas uniquement à ceux de Debian.

Téléchargement de l'ISO

💡
Les étapes suivantes sont à réaliser depuis votre ordinateur habituel.

Rendez-vous sur la page Official CD/DVD images stable et téléchargez :

  • Le fichier debian-13.4.0-amd64-DVD-1.iso (remplacez amd64 par votre architecture si nécessaire, arm64 par exemple)
  • Le fichier SHA256SUMS correspondant
💡
amd64 correspond aux processeurs Intel et AMD 64 bits, le cas le plus courant. Pour un processeur ARM 64 bits, choisissez arm64.
⚠️
Pour le Raspberry Pi, le processus est différent, couvert dans le tutoriel Pi-Hole.

Vérification de l'intégrité du fichier

Avant de graver ou d'écrire l'ISO, vérifiez qu'il n'est pas corrompu. Depuis un terminal dans votre dossier Téléchargements :

cd ~/Téléchargements
sha256sum -c SHA256SUMS --ignore-missing

Résultat attendu :

debian-13.4.0-amd64-DVD-1.iso: Réussi
Si vous obtenez "Réussi", passez à l'étape suivante.
🚨
Si le message indique "Échec" ou "aucun fichier n'a été vérifié", vérifiez que l'ISO et SHA256SUMS sont dans le même dossier. Si la somme ne correspond pas, retéléchargez l'ISO.

Pour plus de détails sur les sommes de contrôle et la vérification de signatures, consultez le tutoriel dédié :

Vérifier l’intégrité d’un fichier
Comment vérifier qu’un fichier téléchargé est authentique et non altéré, avec les méthodes empreinte (hash) et signature numérique (GPG).

Création du média d'installation

Suivez le tutoriel dédié pour créer une clé USB bootable :

Rendre une clé USB bootable
Ce tutoriel vous montre l’installation et l’utilisation de deux outils vous permettant de rendre bootable une clé USB

Préparation du serveur

🚨
Si le serveur contient déjà des données, sauvegardez-les sur un support externe avant de commencer. L'installation écrase tout le contenu du disque.

Branchement réseau

Branchez un câble Ethernet entre votre box et le serveur avant de démarrer l'installation. Debian téléchargera ainsi les paquets les plus récents directement depuis les dépôts.

Configuration du BIOS

Vous devez accéder au BIOS pour autoriser le démarrage sur clé USB et, si nécessaire, désactiver le Secure Boot.

💡
Notre tutoriel dédié au BIOS vous guide étape par étape :
Configurer son BIOS
Indispensable si vous souhaitez vous libérer et installer autre chose que Windows…

En résumé, dans le BIOS :

  1. Naviguez dans le menu Boot et placez "USB" en priorité n°1
  2. Dans le menu Security, passez le Secure Boot à "Disabled"
  3. Sauvegardez et quittez
💡
La configuration du BIOS varie fortement selon les fabricants. Si vous bloquez sur cette étape, demandez de l'aide sur le forum.

Démarrage sur clé USB

Insérez la clé USB préparée, démarrez le serveur. L'écran de l'installateur Debian apparaît.

Sélectionnez Install avec les flèches clavier et validez avec Entrée.

debian-serveur-inst01.jpg
💡
Préférez l'option "Install" sur un serveur. "Graphical Install" peut poser des problèmes d'affichage selon le matériel.
🚨
Si cet écran n'apparaît pas, vérifiez la clé USB et la configuration du BIOS.

Installation de Debian

Langue et localisation

L'installateur vous demande d'abord la langue d'interface.

debian-serveur-inst02.jpg
⚠️
Choisissez English pour l'installation du serveur. Les commandes que vous taperez au quotidien et l'aide disponible sur Internet sont en anglais : autant que les messages systèmes le soient aussi, la correspondance facilite le débogage.

Sélectionnez ensuite votre pays (pour le fuseau horaire et les dépôts) :

  • Choisissez "Other"
  • Sélectionnez votre continent (ex. "Europe")
  • Sélectionnez votre pays (ex. "France")
debian-serveur-inst03.jpg

Pour la locale, sélectionnez "United States - en_US.UTF-8" : cela évite les problèmes d'encodage dans les sorties de commandes.

debian-serveur-inst06.jpg

Choisissez ensuite votre disposition de clavier (par exemple "French" si vous avez un clavier AZERTY).

debian-serveur-inst07.jpg

Nom d'hôte et domaine

Entrez un nom d'hôte pour votre serveur (le hostname).

debian-serveur-inst09.jpg
Évitez un nom qui révèle le système d'exploitation, les services hébergés ou votre identité. Choisissez plutôt une couleur, une planète, un monument... soyez créatif !

Si votre serveur est accessible publiquement et que vous avez un nom de domaine, entrez-le. Sinon, laissez ce champ vide ou mettez local.

debian-serveur-inst10.jpg

Comptes utilisateurs

L'installateur vous demande un mot de passe pour le compte root.

⚠️
Choisissez un mot de passe fort et stockez-le dans un gestionnaire de mots de passe. Consultez l'article sur les gestionnaires de mots de passe si besoin.
💡
Si vous laissez le mot de passe root vide, ce compte sera désactivé. Votre compte utilisateur sera automatiquement ajouté aux sudoers.
debian-serveur-inst11.jpg

Créez ensuite un compte utilisateur classique (nom complet, puis identifiant).

debian-serveur-inst13.jpg
⚠️
L'identifiant est figé après création. Choisissez un pseudonyme qui ne vous identifie pas explicitement sur le système.

Choisissez un mot de passe fort pour cet utilisateur, différent de celui de root.

Partitionnement du disque

Le partitionnement est un sujet qui dépend fortement de votre usage. Le Wiki d'Arch Linux en détaille très bien les différents cas.

Pour un serveur classique, nous recommandons "Guided - use entire disk and set up LVM" :

debian-serveur-inst17.jpg
💡
LVM (Logical Volume Manager) vous permettra de redimensionner les partitions plus facilement à l'avenir, sans réinstaller.

L'installateur crée automatiquement trois partitions :
- /boot : fichiers d'amorçage (noyau Linux...)
- SWAP : espace d'échange mémoire
- / : racine du système de fichiers

Sélectionnez votre disque principal (généralement sda) :

debian-serveur-inst18.jpg

Choisissez "All files in one partition (recommended for new users)" :

debian-serveur-inst19.jpg

Validez avec "Yes" pour appliquer les changements.

🚨
À partir de cet écran, toutes les données du disque seront effacées. C'est votre dernière chance de vérifier que vous êtes sur le bon disque.
debian-serveur-inst20.jpg

Laissez la valeur par défaut et continuez. Confirmez avec "Yes" pour appliquer :

debian-serveur-inst22.jpg

L'installation du système de base démarre.

Miroir et dépôts

Choisissez "No" pour ne pas analyser d'autre média :

debian-serveur-inst24.jpg

Sélectionnez un miroir proche géographiquement (ex. "France") pour de meilleures vitesses de téléchargement :

debian-serveur-inst25.jpg

Vous pouvez laisser le champ proxy vide dans la plupart des cas.

apt installe et met à jour le système.

Sélection des logiciels

Participez ou non aux statistiques Debian (popcon) selon vos préférences de vie privée. Pour une installation minimale, désélectionnez tout sauf SSH Server avec la barre Espace :

debian-serveur-inst30.jpg

GRUB et redémarrage

Choisissez "Yes" pour installer GRUB, puis sélectionnez votre disque principal (sda) :

debian-serveur-inst32.jpg
L'installation est terminée. Éjectez la clé USB avant de cliquer "Continue".

Votre serveur redémarre. L'écran du chargeur GRUB s'affiche brièvement avant que Debian démarre automatiquement.


Configuration initiale

⚠️
Si vous n'êtes pas encore à l'aise avec la ligne de commande, essayez de vous familiariser d'abord quelque peu au terminal et aux lignes de commande, il y a pléthore de vidéo et d'articles pour vous aider.

Première connexion console

Sur l'écran de connexion, saisissez root puis votre mot de passe.

💡
La saisie du mot de passe n'affiche rien à l'écran : c'est normal, c'est voulu pour la sécurité.
debian-serveur-inst36.jpg
Vous êtes connecté sur votre serveur fraîchement installé. Bravo !

Adresse IP du serveur

Votre box a attribué une adresse IP automatiquement (DHCP). Pour la connaître :

ip addr

Résultat typique :

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
    inet 192.168.1.134/24 brd 192.168.1.255 scope global noprefixroute eth0

Notez l'adresse IP (ici 192.168.1.134) et l'adresse MAC affichée après link/ether : vous en aurez besoin pour la réservation DHCP.

💡
Le bloc lo (loopback, 127.0.0.1) est interne à la machine, ignorez-le.
💡
Le nom de l'interface réseau peut être eth0, enp0s3, enp3s0... selon votre matériel. Sur certains serveurs, c'est ens3 ou enp1s0. Adaptez les commandes en conséquence.

Réservation d'une IP fixe

Sur serveur, une adresse IP fixe est indispensable : les clients et services s'y connectent, et une IP changeante imposerait de reconfigurer tout le réseau.

Deux approches possibles :

Méthode Avantages Inconvénients
Réservation DHCP (sur la box) Simple, pas de connaissance réseau requise Dépend de la box
IP statique dans /etc/network/interfaces Indépendante de la box Nécessite de connaître IP, masque, passerelle

Nous recommandons la réservation DHCP pour commencer.

Depuis votre PC, connectez-vous à l'interface de votre box :

  • FreeBox : http://mafreebox.freebox.fr
  • Orange LiveBox : http://192.168.1.1
  • SFR Box : http://192.168.1.1
  • Bouygues Box : http://192.168.1.1

Dans la section DHCP (souvent "Baux DHCP" ou "Réservation DHCP"), associez l'adresse MAC de votre serveur à l'IP fixe souhaitée (ex. 192.168.1.101).

⚠️
192.168.1.101 et l'adresse MAC sont des exemples. Entrez les valeurs de votre propre réseau.

Sauvegardez, puis depuis le serveur, forcez le renouvellement de l'IP.

Sur Debian 13, si votre réseau est géré par ifupdown (cas typique d'une install serveur minimale) :

ifdown eth0 && ifup eth0
💡
Remplacez eth0 par le nom de votre interface réseau.

Depuis votre PC, vérifiez que le serveur répond sur la nouvelle IP :

ping 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=1 ms

Stoppez avec Ctrl+C.

Votre serveur est désormais accessible à l'adresse IP réservée.

Première connexion SSH

SSH est l'outil incontournable pour administrer un serveur à distance de façon sécurisée.

💡
Le service SSH a été installé lors de l'installation minimale. S'il manque, installez-le avec : apt install -y openssh-server

Depuis votre PC, connectez-vous en SSH sur le serveur (terminal, Ctrl+Alt+T) :

ssh root@192.168.1.101

À la première connexion, ce message s'affiche :

The authenticity of host '192.168.1.101 (192.168.1.101)' can't be established.
ED25519 key fingerprint is SHA256:m65eoXR7/NGxhE169ey8YjE3pwYAR3O4vs0bc3Keyh5.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Tapez yes pour valider. La clé du serveur est enregistrée dans ~/.ssh/known_hosts sur votre PC.

Entrez votre mot de passe root. Vous êtes connecté.


Logiciels utiles

L'installation minimale est... vraiment minimale. Voici les outils que nous ajoutons systématiquement sur un serveur :

apt install -y bash-completion plocate wget nano htop
Paquet Usage
bash-completion Autocomplétion des commandes avec Tab
plocate Recherche rapide de fichiers (remplace mlocate sur Debian 12+)
wget Téléchargement de fichiers depuis le terminal
nano Éditeur de texte simple (alternative à vi)
htop Moniteur de performance interactif
💡
plocate remplace mlocate à partir de Debian 12. Le nom de la commande reste locate.

Indexez les fichiers pour que locate fonctionne :

updatedb

Exemple : chercher le fichier de version de Debian :

locate debian_version
/etc/debian_version
💡
Pour que l'autocomplétion bash fonctionne, déconnectez-vous et reconnectez-vous après l'installation.

Personnalisation du shell

Le shell par défaut est austère. Ajoutons couleurs et alias pour gagner en confort.

Éditez le fichier .bashrc de root :

nano /root/.bashrc

Dé-commentez les lignes suivantes (retirez le # en début de ligne) :

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

Ajoutez cette ligne pour coloriser le prompt :

PS1='\[\e[01;31m\]\u\[\e[m\]@\[\e[01;33m\]\h\[\e[m\]: \[\e[01;33m\]\w\[\e[m\]\$ '

Sauvegardez avec Ctrl+X, confirmez avec Y, puis Entrée.

Rechargez le shell :

exec bash
Les alias rm, mv et cp demanderont maintenant une confirmation avant d'agir. Pratique pour éviter les suppressions accidentelles.
💡
Cette configuration ne s'applique qu'au compte root. Pour l'appliquer à votre compte utilisateur, répétez les mêmes modifications dans /home/votre-utilisateur/.bashrc.

Mises à jour

Mise à jour manuelle

Mettez à jour la liste des paquets disponibles :

apt update

Installez les mises à jour :

apt upgrade

apt liste les paquets à mettre à jour, la taille à télécharger, et demande confirmation. Tapez Y puis Entrée (ou juste Entrée si Y est en majuscule, c'est la valeur par défaut).

Mises à jour automatiques de sécurité

Soyons honnêtes : peu de gens se connectent régulièrement sur leur serveur pour mettre à jour manuellement.

⚠️
Les mises à jour de sécurité doivent être appliquées régulièrement. C'est l'une des mesures de protection les plus importantes.

Installez unattended-upgrades :

apt install -y unattended-upgrades

Éditez la configuration :

nano /etc/apt/apt.conf.d/50unattended-upgrades

Décommentez les lignes suivantes :

Unattended-Upgrade::Mail "root";
Unattended-Upgrade::MailOnlyOnError "true";
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "05:00";
Acquire::http::Dl-Limit "500";

Ces lignes activent : notification par email en cas d'erreur, suppression des dépendances inutiles, redémarrage automatique à 5h du matin si nécessaire, et limitation de la bande passante à 500 kbps.

Créez et éditez le fichier d'activation :

nano /etc/apt/apt.conf.d/20auto-upgrades

Contenu à ajouter :

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";
Les mises à jour de sécurité s'installent désormais automatiquement chaque nuit. Les autres mises à jour restent à faire manuellement de temps en temps.
💡
Pensez à exécuter périodiquement apt autoremove pour nettoyer les paquets inutilisés, et à surveiller le cycle de vie Debian pour planifier les mises à niveau de version.

Installation de sudo

💡
Si vous avez laissé le mot de passe root vide lors de l'installation, sudo est déjà installé et votre compte utilisateur est déjà configuré. Passez à la section suivante.

À partir de maintenant, nous allons travailler avec notre compte utilisateur plutôt qu'avec root.

Installez sudo :

apt install -y sudo

Ajoutez votre compte utilisateur (remplacez john par le vôtre) dans le groupe sudoers :

usermod -aG sudo john

Fermez la session root :

exit

Reconnectez-vous avec votre compte utilisateur.


Sécurisation SSH

Le service SSH est votre porte d'entrée sur le serveur. Il convient de le sécuriser sérieusement.

Nous allons : - interdire la connexion directe avec root via SSH - interdire l'authentification par mot de passe (en faveur des clés) - interdire la redirection X11 (inutile sur serveur)

Vous pourrez toujours passer en root après connexion avec votre compte utilisateur via sudo su -.

Génération de la paire de clés SSH

Depuis votre PC, générez une paire de clés. Nous recommandons l'algorithme Ed25519, plus moderne et tout aussi sûr que RSA 4096 :

ssh-keygen -f ~/.ssh/serveur -t ed25519

L'installateur vous propose d'ajouter une passphrase (mot de passe protégeant la clé privée). C'est recommandé.

Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/votre-pseudo/.ssh/serveur
Your public key has been saved in /home/votre-pseudo/.ssh/serveur.pub

Deux fichiers sont créés : - serveur : la clé privée, à ne jamais communiquer - serveur.pub : la clé publique, à copier sur le serveur

⚠️
Stockez la clé privée et sa passphrase dans un coffre-fort chiffré comme KeePassXC. Pour les concepts de cryptographie asymétrique, consultez l'article sur le chiffrement.

Copie de la clé publique sur le serveur

Depuis votre PC, copiez la clé publique sur le serveur (le mot de passe de votre compte utilisateur vous sera demandé) :

ssh-copy-id -i ~/.ssh/serveur.pub john@192.168.1.101

La clé est maintenant dans /home/john/.ssh/authorized_keys sur le serveur.

⚠️
Si vous n'avez accès au serveur qu'en SSH, gardez cette session ouverte jusqu'à avoir validé que la nouvelle configuration fonctionne.

Configuration du démon SSH

Connectez-vous en SSH avec votre compte utilisateur, puis éditez la configuration SSHd :

sudo nano /etc/ssh/sshd_config

Ajustez ou ajoutez ces lignes :

PermitRootLogin no
PasswordAuthentication no
X11Forwarding no

Sauvegardez avec Ctrl+X, puis rechargez SSH :

sudo systemctl reload sshd

Testez depuis votre PC dans une nouvelle fenêtre de terminal :

ssh -i ~/.ssh/serveur john@192.168.1.101
Si la connexion s'établit sans mot de passe (ou avec la passphrase de la clé seulement), SSH est correctement configuré.
🚨
Si vous n'arrivez plus à vous connecter, revenez sur la session SSH encore ouverte pour diagnostiquer et corriger le problème.

Pare-feu avec UFW

UFW (Uncomplicated FireWall) est un outil qui simplifie la gestion du pare-feu.

Installez-le :

sudo apt install ufw

Configurez les règles par défaut :

sudo ufw default deny incoming
sudo ufw default allow outgoing

Autorisez SSH (port 22) :

sudo ufw allow ssh
⚠️
À l'avenir, chaque nouveau service installé devra faire l'objet d'une règle UFW. Par exemple, un serveur web nécessite sudo ufw allow 80/tcp et sudo ufw allow 443/tcp.

Vérifiez les règles avant d'activer :

sudo ufw status verbose
Status: inactive
Default: deny (incoming), allow (outgoing)
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)

Activez le pare-feu :

sudo ufw enable
Depuis votre PC, testez une nouvelle connexion SSH pour confirmer que le pare-feu ne bloque pas l'accès.

Sécurisation du BIOS

Maintenant que le serveur est opérationnel, retournez dans le BIOS pour :

  • désactiver le démarrage sur clé USB, CD/DVD et réseau
  • activer un mot de passe BIOS fort (attention au clavier QWERTY souvent utilisé en BIOS)
  • stocker ce mot de passe dans KeePassXC

Bonnes pratiques d'administration

Sauvegardes

Les sauvegardes sont votre filet de sécurité. Elles doivent être :

  • régulières (quotidiennes pour les données importantes)
  • chiffrées
  • stockées sur une machine différente du serveur (externalisation)
  • testées en restauration périodiquement

Les éléments à sauvegarder en priorité :
- /etc/ : fichiers de configuration
- /var/www/ : données de vos sites web
- /srv/ : données partagées sur le réseau
- /home/ : dossiers utilisateurs
- /root/ : dossier de root

Pour les bases de données (MySQL, MariaDB, PostgreSQL), utilisez toujours un export propre plutôt que les fichiers bruts :

🚨
Pour MySQL/MariaDB, utilisez mysqldump ou automysqlbackup. Ne sauvegardez jamais directement /var/lib/mysql/ : vous ne pourrez pas restaurer des données cohérentes depuis des fichiers bruts.

Mots de passe

  • Utilisez des mots de passe forts et différents pour chaque compte
  • Pour SSH, préférez les clés avec passphrase
  • Stockez tout dans un gestionnaire de mots de passe

Consultez l'article sur les gestionnaires de mots de passe pour plus de détails :

Les gestionnaires de mots de passe
Cet article traite des gestionnaires de mots de passe recommandés dans notre environnement numérique.

Documentation personnelle

Notez au fur et à mesure les étapes de configuration de votre serveur. Ça paraît fastidieux, mais c'est invaluable le jour où vous devez tout réinstaller ou déboguer six mois plus tard.

🚨
Ne stockez jamais de mot de passe dans vos documentations.

Administration quotidienne

  • Administrez depuis un PC sous GNU/Linux via SSH avec des clés
  • Évitez d'administrer depuis Windows ou macOS, plus exposés aux malwares
  • Cockpit peut sembler pratique pour les débutants, mais il augmente la surface d'attaque et ne vous aide pas à comprendre votre système

Et maintenant ?

Votre serveur Debian 13 Trixie est installé, mis à jour, sécurisé et prêt. Bravo !

Il ne fait encore rien de particulier. La suite dépend des services que vous souhaitez y héberger.

Pour aller plus loin dans la sécurisation, consultez le tutoriel Serveur Hardening :