Installation et configuration de Debian 12

sur un serveur dédié ou un VPS

Par Mezalor le 16 août 2023

Introduction

Le but de ce document est de décrire de manière complète et détaillée l'installation et la configuration du système d'exploitation Debian (basé sur le noyau Linux) pour son utilisation sur un serveur.
Dans cet exemple de configuration, le serveur aura deux fonctions principales : celle d'un serveur web (Apache/PHP/MariaDB) permettant la diffusion d'un ou de plusieurs sites web et celle d'un serveur de stockage, totalement isolé de la partie web, qui pourra, par exemple, être utilisé pour la sauvegarde régulière de données personnelles d'un ou de plusieurs utilisateurs via SSH.
Une attention particulière sera consacrée à la sécurité. Ce document essayera au maximum de respecter les recommandations de sécurité relatives à un système GNU/Linux préconisées par l'ANSSI. On fera référence à ce document avec le sigle [ANSSI]. Les principes de bases appliqués ici seront le principe de moindre privilège dont l'objectif est de cloisonner au maximum les différentes fonctionnalités du serveur (si une des fonctionnalités venait à tomber à cause d'un bug ou d'un piratage, les autres seront préservées) et le principe de minimisation de la surface d'attaque en essayant d'avoir le système le plus léger possible notamment en supprimant ou désactivant toutes les fonctionnalités non utilisées (réduire la quantité de code en cours d'exécution permet de réduire le nombre de bug et de failles potentielles). Pour plus de détails sur ces principes généraux de sécurité voir [ANSSI p.8-9].

Choix techniques

Les logiciels utilisés seront :

  • Système d'exploitation : Debian 12
  • Serveur Web : Apache 2.4.57 / PHP 8.2 / MariaDB 1.22
  • SSL : Let's encrypt via uacme
  • Pare-feu : nftables
  • Partage et transfert de fichiers : SshFS

Ce document est valable aussi bien pour des serveurs dédiés que des VPS. Les hébergeurs français proposant des serveurs dédiés ou VPS sont par exemple OVH, Kimsufi, So You Start, Scaleway, PulseHeberg.

Dans ce document on répondra aux questions suivantes :

  • Comment installer un Debian très minimal avec debootstrap ? Réponse ici
  • Comment partitionner un disque en GPT avec gdisk ? Réponse ici
  • Comment faire un benchmark de son serveur ? Réponse ici
  • Comment durcir le noyau Linux ? Réponse ici
  • Comment utiliser la double authentification pour SSH ? Réponse ici
  • Comment faire du Port-knocking avec nftables ? Réponse ici
  • Comment chiffrer un disque avec cryptsetup ? Réponse ici
  • Comment générer et utiliser un certificat let's encrypt avec le chiffrement ECDSA ? Réponse ici
  • Quels sont les différents modes d'exécution de PHP sur un serveur Apache ? Réponse ici

Conventions

Dans toute la suite on supposera que l'adresse IP de notre serveur sera 10.11.12.13. Il faudra évidemment remplacer cette adresse par l'adresse de votre serveur. Nous faisons le choix de ne pas utiliser et de désactiver l'IPv6.
On suppose que le nom d'utilisateur de l'administrateur du serveur sera alice.

Compatibilité UEFI

Il faut tout d'abord déterminer si votre serveur est compatible ou non avec le standard UEFI.
La procédure d'installation changera un peu sur un système BIOS et UEFI.
Pour tester si votre système supporte UEFI il suffit d'installer et de lancer le programme efibootmgr.

apt install efibootmgr
efibootmgr

Si votre système supporte UEFI vous pouvez vous référer à l'installation compatible UEFI.
Sinon il faudra partir sur l'installation compatible BIOS.

Sources et licence

Ce document est sous licence Creative Commons CC BY-NC 4.0.
Les sources sont disponibles sur GitHub.