Aller au contenu
Proxmox VE sur un serveur dédié Scaleway Start-2-S-SATA [E01]: Installation sur Debian 13 Trixie
  1. Posts/

Proxmox VE sur un serveur dédié Scaleway Start-2-S-SATA [E01]: Installation sur Debian 13 Trixie

Fabien ALLAMANCHE
Auteur
Fabien ALLAMANCHE
Géomaticien @ Vienne Condrieu Agglomération
Sommaire
Proxmox on Scaleway - Cet article fait partie d'une série.
Partie 1: Cet article

Introduction
#

Suite à une formation Linux de 3 jours dispensée par Nicolas Kovacs alias Microlinux en ce début décembre 2025, j’ai eu l’occasion de manipuler des VPS Scaleway. Cette expérience m’a donné envie de tester l’installation d’un nœud Proxmox VE sur un serveur dédié Dedibox Start-2-S-SATA disposant d'1 To d’espace disque.

Dans quel but ?

Ma situation actuelle : j’héberge ce blog et quelques services Docker sur un VPS CX23 chez Hetzner. Pour sauvegarder les conteneurs LXC de mon homelab Proxmox, j’utilise Proxmox Backup Server (PBS) en interne connecté à un storagebox Hetzner d'1 To via un partage Samba. Cette solution s’est révélée peu stable et peu performante avec le recul.

Mon objectif : profiter du récent portage du support S3 pour les datastores Proxmox Backup Server (PBS) afin de déployer un conteneur LXC avec Garage S3 sur ce serveur Dedibox. Cela me permettra de connecter mon instance PBS locale à un stockage objet distant pour y stocker mes sauvegardes de manière plus fiable.

Du moins, je l’espère ! Au pire, ce sera un bon challenge et de l’apprentissage en bonus.

Installation de Debian 13 Trixie
#

Sur votre interface d’administration console.online.net, cliquez sur INSTALLER pour déclencher la procédure d’installation du serveur.

scaleway-install-step-00

1.Étape 01 - Type de distribution

scaleway-install-step-01

On peut voir qu’il est possible d’installer des distributions de type virtualisation. Cliquons sur le bouton DISTRIBUTIONS VIRTUALISATIONet allons voir ce qu’il nous est proposé !

2.Étape 02 - Choix du système d’exploitation

Par défaut, on nous propose d’installer une vieille version d’ESXi 6.7.

scaleway-install-step-02-01

Je vois également qu’il y a le logo de Proxmox en haut à gauche. Je clique dessus et tombe sur cette boîte de dialogue :

scaleway-install-step-02-02

On nous propose ici aussi 2 vieilles versions de PVE et PBS. Je vais rebrousser chemin voir s’il y a une Debian 13 Trixie à installer pour déployer une version actuelle de Proxmox VE en post-installation du système d’exploitation.

scaleway-install-step-01
Cliquons sur le bouton DISTRIBUTIONS SERVEURet allons voir également ce qu’il nous est proposé ici :

Bingo !

scaleway-install-step-02-03

Cliquons sur INSTALLER DEBIAN en ayant bien pris soin de sélectionner debian 13 64BITS.

3.Étape 03 - Partionnement

On arrive à l’étape de partitionnement de notre disque dur. Par défaut, voilà ce qui nous est proposé :

scaleway-install-step-03-01

On va ajuster ces paramètres et nous referons encore quelques ajustements en post-installation. Pour rappel, j’ai pris un serveur dédié Start-2-S-SATA avec un HDD d'1TO en sata. J’ai volontairement fait ce choix pour avoir un espace de stockage plus conséquent qu’avec leur offre Start-2-S-SSD ou Start-3-S-SSD avec des disques SSD de 120 ou 250GO.

Quid de la performance à terme ? (On verra à l’usage !)

Voici le patitionnement pour l’installation :

scaleway-install-step-03-02
scaleway-install-step-03-03

  • Une partition /boot en Ext4 de 2GO. Cette partition contient :
    • Fichiers du noyau (par version) :
      • vmlinuz-* : Le noyau Linux compressé lui-même. C’est l’image binaire exécutable chargée en mémoire au démarrage.
      • initrd.img-* : L’initial ramdisk, un système de fichiers temporaire chargé en RAM contenant les modules et scripts nécessaires pour monter le vrai système de fichiers racine (drivers RAID, LVM, ZFS, etc.).
      • config-* : La configuration de compilation du noyau (toutes les options CONFIG_* utilisées lors du build). Utile pour vérifier si une fonctionnalité est activée.
      • System.map-* : Table des symboles du noyau, mappant les adresses mémoire aux noms de fonctions. Utilisé principalement pour le débogage (analyse de kernel panic, oops, etc.).
    • Répertoires :
      • grub/ : Configuration et modules du bootloader GRUB2 (grub.cfg, thèmes, modules).
      • pve/ : Spécifique à Proxmox, contient généralement des liens symboliques vers le noyau actif et des fichiers de configuration PVE.
      • lost+found/ : Répertoire standard des systèmes de fichiers ext*, utilisé par fsck pour récupérer des fragments de fichiers orphelins après une corruption.

    Les noyaux Linux prennent en charge de plus en plus de matériels, ce qui les rend de plus en plus volumineux. Selon le nombre de noyaux de secours conservés sur la machine, la partition /boot peut rapidement manquer d’espace. 2GO me semble suffisant et nous laisse serein quelque temps.

  • Une partition système / en Ext4 de 64GO (64*1024MO=65536),
  • Une partition swap de 2GO,
  • Une partition /data en Ext4 du reste de la place disponible sur le disque.

Dans l’idéal, j’aurais souhaité ce partionnement mais avec l’interface d’administration, on est limité à 4 partitions primaires :

scaleway-install-step-03-04

  • Une partition /boot en Ext4 de 2GO,
  • Une partition système / en Ext4 de 64GO (64*1024MO=65536),
  • Une partition /datastore (destiné à accueillir mes volumes disque des VMs/LXC Proxmox) en Ext4 de 128GO (128*1024MO=131072),
  • Une partition /data en Ext4 du reste de la place disponible sur le disque,
  • Une partition swap de 2GO.

Ce n’est pas possible de faire cela via l’interface d’administration, c’est pourquoi nous réaliserons cela en post-installation de Debian 13 Trixie et de Proxmox VE.

Pour récapituler, pour le moment, notre partitionnement sera le suivant :

scaleway-install-step-03-03

4.Étape 04 - Configuration système

scaleway-install-step-04

5.Étape 05 - Récapitulatif

scaleway-install-step-05

On est prêt !

Il ne reste plus qu’à cliquer sur sur le bouton EFFACER L'INTÉGRALITÉ DE MES DISQUES ET PROCÉDER À L'INSTALLATION.

L’installation est en cours, plus qu’à patienter !

scaleway-install-step-final

Post-installation Debian 13 Trixie
#

On va considérer dans la suite de cette série d’articles à venir que l’adresse IP de notre serveur Scaleway est la suivante : 198.51.100.100

Se connecter en SSH à la machine via son adresse IP : ssh gaston@198.51.100.100 ou via une clé SSH préalablement configurée en marge de l’installation de la distribution.

Repartionnement du disque dur
#

Le but de l’opération est d’arriver à un partitionnement de la machine comme je le souhaitais au départ mais qui n’a pas pu être réalisé à cause des restrictions présentes dans l’interface d’administration de Scaleway.

Voici le plan !

Passer de ce schéma de partitionnement :

Device Boot Size Id Type Point de montage
/dev/sda1 * 2G 83 Linux /boot
/dev/sda2 65.5G 83 Linux /
/dev/sda3 862.9G 83 Linux /data
/dev/sda4 1G 82 Linux swap [SWAP]

À celui-ci :

Device Boot Size Id Type Point de montage
/dev/sda1 * 2G 83 Linux /boot
/dev/sda2 65.5G 83 Linux /
/dev/sda3 863.9G 5 Extended -
/dev/sda5 128G 83 Linux /datastore
/dev/sda6 734G 83 Linux /data
/dev/sda7 1.9G 82 Linux swap [SWAP]

On va donc laisser tranquille les 2 partitions /boot (/dev/sda1) et / (/dev/sda2).

Pour ce simplifier la tâche, on va réaliser toutes les opérations de cette section en tant qu’utilisateur root

Au préalable, démonter la partition /dev/sda3 qui est montée dans le répertoire /data :

umount /data

Et désactiver le swap :

swapoff /dev/sda4

Utiliser l’utilitaire fdisk pour supprimer les partitions /dev/sda3 et celle du SWAP /dev/sda4 puis repartitionner le disque suivant le plan de partitionnement souhaité.

Voici le détail des commandes réalisées dans fdisk :

fdisk /dev/sda

d
4

d
3

n
e
3
[Entrée]
[Entrée]

n
[Entrée]
+128G

n
[Entrée]
+734G

n
[Entrée]
[Entrée]

t
7
82

p

Si on ne s’est pas trompé, on devrait avoir :

/dev/sda1   2G      Linux (boot)
/dev/sda2   65.5G   Linux (/)
/dev/sda3   862.9G  Extended
/dev/sda5   128G    Linux       → /datastore
/dev/sda6   734G    Linux       → /data
/dev/sda7   ~1G     Linux swap

Si c’est bon, on tape w à la suite des commandes déjà réalisées sous fdisk pour écrire les partitions :

w

Passons au formatage des partitions. Au préalable, exécutons un petit coup de partx pour forcer le noyau à relire la table de partitions du disque. En effet, quand on modifies les partitions avec fdisk, les changements sont écrits sur le disque, mais le noyau Linux garde en mémoire l’ancienne table de partitions.

Résultat : les nouveaux fichiers de périphériques (/dev/sda5, /dev/sda6, etc.) n’existent pas dans /dev/. Sans cette synchronisation, on obtient l’erreur mkfs.ext4: cannot open /dev/sda7: No such file or directory

partx -u /dev/sda

On peut maintenant formater les partitions :

mkfs.ext4 -L datastore /dev/sda5
mkfs.ext4 -L data /dev/sda6
mkswap -L swap /dev/sda7

Il est maintenant nécessaire de mettre à jour le fichier /etc/fstab avant de redémarrer la machine pour remplacer les anciennes entrées par les nouveaux UUID.

On va récupérer les UUID via l’outil blkid :

blkid
/dev/sda2: UUID="5a616376-1d47-4439-afce-73ac9ea44e31" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e4de55b2-02"
/dev/sda5: LABEL="datastore" UUID="6c4a2ba8-817a-46dd-9fa9-8d39be80ed35" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e4de55b2-05"
/dev/sda1: UUID="9467e591-1a96-45c0-bbe6-f2581007d0df" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e4de55b2-01"
/dev/sda6: LABEL="data" UUID="01437943-5929-41a5-8ad2-d404e520f035" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e4de55b2-06"
/dev/sda7: LABEL="swap" UUID="981ebe75-1335-4cd3-98d0-d3327ffcc0d5" TYPE="swap" PARTUUID="e4de55b2-07"
/dev/loop0: UUID="56488856-e14a-4f57-b165-e97260f86631" BLOCK_SIZE="4096" TYPE="ext4"
sudo vi /etc/fstab
UUID=5a616376-1d47-4439-afce-73ac9ea44e31 /               ext4    noatime,errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=9467e591-1a96-45c0-bbe6-f2581007d0df /boot           ext4    noatime         0       2
# DATASTORE
UUID=6c4a2ba8-817a-46dd-9fa9-8d39be80ed35 /datatore       ext4    noatime         0       2
# DATA
UUID=01437943-5929-41a5-8ad2-d404e520f035 /data           ext4    noatime         0       2
# SWAP
UUID=981ebe75-1335-4cd3-98d0-d3327ffcc0d5 none            swap    sw              0       0

Après avoir modifié le fichier /etc/fstab, il est nécessaire d’exécuter la commande systemctl daemon-reload.

Pourquoi ?

C’est lié à la façon dont systemd gère les points de montage. Systemd génère dynamiquement des unités .mount et .automount à partir du fichier /etc/fstab au démarrage du système. Ces unités sont créées par le générateur systemd-fstab-generator et stockées en mémoire. Quand on modifie /etc/fstab sur un système en cours d’exécution, systemd n’est pas automatiquement informé des changements — il travaille toujours avec les unités générées au boot.

Testons si tous les points de montage sont montés sur le système :

mount -a

Normalement, à ce stade, on peut redémarrer la machine pour s’assurer que tout est ok. Si le serveur ne redémarre pas, il sera nécesaire de passer par la console de récupération fournie par l’interface d’administration de Scaleway pour réparer le fichier /etc/fstab ou de réinstaller le système (Debian 13 Trixie) si vous avez cassé des choses via fdisk.

Initialisation de la machine
#

Je pars du principe que vous avez un mimimum d’expérience dans l’administration d’un serveur sous Linux. Si ce n’est pas le cas, je vous invite à lire la série d’articles de Nicolas Kovacs aka Microlinux avec Débuter avec Linux . L’ensemble de la formation est axée sur des clones de RHEL (Red Hat Enteprise Linux), qui est un peu différent d’une distribution Debian sur laquelle est installé Proxmox VE, mais cela constitue un bon point d’entrée pour se former sur Linux.

En vrac, il va falloir :

  1. Mettre à jour le système,
  2. Changer le mot de passe de root et de l’utilisateur qui a été créé à l’installation, ici, gaston,
  3. Sécurisation du serveur SSH,
  4. Installation et configuration de fail2ban,
  5. Désactivation de l’IPv6 (si vous ne l’utilisez pas),
  6. Configuration de Bash pour root et gaston via le fichier .bashrc,
  7. Installation et configuration de Vim via le fichier .vimrc.

C’est déjà bien dans un premier temps !

Passons à l’installation de Proxmox VE.

Installation de Proxmox VE
#

Ici, rien de bien compliqué, on va suivre à la lettre la documentation de Proxmox VE qui décrit comment installer l’hyperviseur sur Debian 13 Trixie.

Étape 1 : Configuration du nom d’hôte (hostname)
#

Attention : Le nom d’hôte doit impérativement résoudre vers une adresse IP non-loopback accessible depuis d’autres machines. Proxmox VE ne fonctionnera pas correctement avec une résolution sur 127.0.0.1 ou 127.0.1.1.

Éditez le fichier /etc/hosts :

sudo vi /etc/hosts

Configurez-le ainsi (en adaptant l’IP publique et le nom d’hôte à votre configuration) :

127.0.0.1       localhost
198.51.100.100  pve.example.com pve

# IPv6
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
Astuce : Remplacez 198.51.100.100 par l’adresse IP publique de votre serveur Scaleway, et pve.example.com par le nom de domaine complet (FQDN) que vous souhaitez utiliser.

Vérifiez que la résolution fonctionne correctement :

hostname --ip-address

Résultat attendu : La commande doit retourner votre IP publique (198.51.100.100), pas 127.0.0.1 ou 127.0.1.1.

Étape 2 : Ajout du dépôt Proxmox VE
#

Créez le fichier de configuration du dépôt Proxmox VE :

sudo tee /etc/apt/sources.list.d/pve-install-repo.sources <<EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
Info : Nous utilisons ici le dépôt pve-no-subscription qui est gratuit et adapté aux tests et environnements non-critiques. Pour un environnement de production, Proxmox recommande d’utiliser le dépôt Enterprise (nécessite une souscription payante).

Téléchargez et installez la clé GPG du dépôt Proxmox :

sudo wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg \
  -O /usr/share/keyrings/proxmox-archive-keyring.gpg

Vérifiez l’intégrité de la clé téléchargée avec les checksums officiels :

# Vérification SHA-256
sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg

Résultat attendu :

136673be77aba35dcce385b28737689ad64fd785a797e57897589aed08db6e45
# Vérification MD5 (alternative)
md5sum /usr/share/keyrings/proxmox-archive-keyring.gpg

Résultat attendu :

77c8b1166d15ce8350102ab1bca2fcbf
Succès : Si les checksums correspondent, la clé GPG est authentique et vous pouvez continuer en toute sécurité.

Mettez à jour la liste des paquets et effectuez une mise à niveau complète du système :

sudo apt update && sudo apt full-upgrade -y
Astuce : L’option -y permet de confirmer automatiquement l’installation sans interaction utilisateur. Retirez-la si vous souhaitez examiner les modifications avant de les appliquer.

Étape 3 : Installation du noyau Proxmox
#

Proxmox VE nécessite un noyau Linux spécialement optimisé pour la virtualisation.

Installez-le avec :

sudo apt install proxmox-default-kernel -y

Une fois l’installation terminée, redémarrez le serveur pour démarrer sur le nouveau noyau :

sudo systemctl reboot
Attention : Si votre serveur utilise UEFI Secure Boot, le démarrage échouera avec l’erreur bad shim signature. Dans ce cas, désactivez Secure Boot dans le BIOS/UEFI avant de redémarrer.

Après le redémarrage, reconnectez-vous en SSH et vérifiez que le noyau Proxmox est bien chargé :

uname -r

Résultat attendu : La version doit contenir pve, par exemple, au moment où ce guide est écrit, la version du noyau est la suivante :

6.17.2-2-pve

Étape 4 : Installation des paquets Proxmox VE
#

Installez les paquets principaux de Proxmox VE :

sudo apt install proxmox-ve postfix open-iscsi chrony -y

Détail des paquets installés :

Paquet Rôle
proxmox-ve Métapaquet principal de Proxmox Virtual Environment
postfix Serveur de messagerie pour les notifications système (alertes, sauvegardes, etc.)
open-iscsi Support iSCSI pour le stockage distant (SANs, NAS)
chrony Synchronisation NTP du serveur pour garantir l’exactitude temporelle

Pendant l’installation, postfix vous demandera de choisir une configuration :

Info : Configuration de Postfix :

  • Sélectionnez “Site Internet” si votre serveur peut envoyer des emails directement via SMTP
  • Sélectionnez “Satellite System” si vous utilisez un relais SMTP externe (recommandé pour Scaleway/Hetzner/OVH qui bloquent souvent le port 25 sortant)
  • Sélectionnez “Local only” si vous ne voulez pas envoyer d’emails vers l’extérieur (notifications uniquement locales)
  • Sélectionnez “Pas de configuration si vous ne voulez pas vous préoccuper de la configuration de postfix pour le moment.

Étape 5 : Suppression du noyau Debian standard
#

Maintenant que le noyau Proxmox est installé et fonctionnel, supprimez le noyau Debian standard pour éviter les conflits :

sudo apt remove linux-image-amd64 'linux-image-6.12*' -y

Mettez à jour la configuration du bootloader GRUB (si vous n’utilisez pas systemd-boot) :

sudo update-grub
Info : Si vous utilisez systemd-boot au lieu de GRUB, vous pouvez ignorer la commande update-grub.

Étape 6 : Suppression du paquet os-prober (recommandé)
#

Le paquet os-prober scanne automatiquement toutes les partitions du système pour créer des entrées de démarrage dual-boot dans GRUB. Cela peut poser problème dans un environnement de virtualisation où Proxmox gère de nombreux disques de VMs.

Supprimez-le pour éviter des ralentissements et comportements indésirables :

sudo apt remove os-prober -y
Attention : Ne supprimez os-prober que si vous n’avez pas de configuration dual-boot (Windows/Linux) sur ce serveur. Dans le cas contraire, conservez-le pour maintenir vos entrées GRUB.

Étape 7 : Accès à l’interface web Proxmox
#

Succès : Proxmox VE est maintenant installé ! L’interface web est accessible.

Ouvrez votre navigateur et accédez à l’interface d’administration Proxmox :

https://198.51.100.100:8006
Astuce : Remplacez 198.51.100.100 par l’adresse IP publique de votre serveur Scaleway.

Votre navigateur affichera probablement un avertissement de sécurité concernant le certificat SSL auto-signé. C’est normal, acceptez l’exception pour continuer.

Identifiants de connexion :

  • Utilisateur : root
  • Mot de passe : Le mot de passe root que vous avez défini lors de l’installation de Debian
  • Domaine d’authentification : Linux PAM standard authentication
Info : Proxmox supporte plusieurs méthodes d’authentification (PAM, LDAP, Active Directory). Par défaut, il utilise PAM qui correspond aux utilisateurs Linux locaux du système.

Étape 8 : Configuration du réseau (Linux Bridge avec NAT)
#

Architecture réseau : Dans un environnement serveur dédié avec une seule IP publique, nous allons mettre en place une architecture réseau basée sur NAT (Network Address Translation) pour permettre aux VMs et conteneurs LXC d’accéder à Internet tout en restant isolés dans un réseau privé.

Principe de fonctionnement
#

Voici comment fonctionne notre architecture réseau :

graph TB
    Internet[Internet] --> PubIF[enp0s20
198.51.100.100/24
Interface publique] PubIF --> PVE[Proxmox VE Host] PVE --> Bridge[vmbr0
192.0.2.1/24
Bridge NAT isolé] Bridge --> VM1[VM/LXC 1
192.0.2.10] Bridge --> VM2[VM/LXC 2
192.0.2.11] Bridge --> VM3[VM/LXC 3
192.0.2.12] style PubIF fill:#bbdefb,stroke:#1976d2,stroke-width:2px,color:#000 style Bridge fill:#fff3e0,stroke:#f57c00,stroke-width:2px,color:#000 style VM1 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000 style VM2 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000 style VM3 fill:#c8e6c9,stroke:#388e3c,stroke-width:2px,color:#000

Composants de l’architecture :

Composant Adresse Rôle
enp0s20 198.51.100.100/24 Interface physique connectée à Internet avec l’IP publique
vmbr0 192.0.2.1/24 Bridge virtuel isolé servant de passerelle pour le réseau privé
VMs/LXC 192.0.2.x/24 Machines virtuelles et conteneurs dans le réseau privé
Info : Le réseau 192.0.2.0/24 est un réseau de documentation (RFC 5737) utilisé ici à titre d’exemple. En production, vous pouvez utiliser n’importe quel sous-réseau privé (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).

Identification de l’interface réseau
#

Avant de configurer le réseau, identifiez le nom de votre interface réseau principale :

ip -br a

Exemple de sortie :

lo               UNKNOWN        127.0.0.1/8 ::1/128
enp0s20          UP             198.51.100.100/24
Astuce : Le nom de l’interface peut varier selon votre matériel : enp0s20, eno1, eth0, enp1s0, etc. Notez bien le nom de l’interface ayant votre IP publique.

Configuration du fichier /etc/network/interfaces
#

Éditez le fichier de configuration réseau :

sudo vi /etc/network/interfaces

Remplacez tout le contenu par la configuration suivante (adaptez enp0s20 au nom de votre interface) :

# Interface de loopback
auto lo
iface lo inet loopback

# Interface physique avec l'IP publique
auto enp0s20
iface enp0s20 inet static
  address 198.51.100.100/24
  gateway 198.51.100.1

# Bridge isolé pour le réseau privé
auto vmbr0
iface vmbr0 inet static
  address 192.0.2.1/24
  bridge-ports none
  bridge-stp off
  bridge-fd 0
  # Activer le routage IPv4
  post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
  # NAT pour la sortie Internet des VMs/LXC
  post-up   iptables -t nat -A POSTROUTING -s '192.0.2.0/24' -o enp0s20 -j MASQUERADE
  post-down iptables -t nat -D POSTROUTING -s '192.0.2.0/24' -o enp0s20 -j MASQUERADE
  # Gestion des zones conntrack pour le pare-feu Proxmox
  post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
  post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1

Explications détaillées de la configuration
#

1. Interface publique (enp0s20)
#
auto enp0s20
iface enp0s20 inet static
  address 198.51.100.100/24
  gateway 198.51.100.1
  • auto enp0s20 : Démarre automatiquement l’interface au boot
  • iface enp0s20 inet static : Configuration IP statique (non DHCP)
  • address 198.51.100.100/24 : Adresse IP publique fournie par Scaleway
  • gateway 198.51.100.1 : Passerelle par défaut vers Internet

Info : Adaptez l’adresse IP et la passerelle selon les informations fournies par votre hébergeur (Scaleway, OVH, Hetzner, etc.).

2. Bridge NAT isolé (vmbr0)
#
auto vmbr0
iface vmbr0 inet static
  address 192.0.2.1/24
  bridge-ports none
  bridge-stp off
  bridge-fd 0
  • address 192.0.2.1/24 : Adresse IP de la passerelle du réseau privé
  • bridge-ports none : Bridge isolé sans interface physique attachée (clé de l’architecture NAT)
  • bridge-stp off : Désactive le protocole STP (Spanning Tree Protocol), inutile ici
  • bridge-fd 0 : Désactive le délai de transmission (forwarding delay), accélère la connectivité

Astuce : bridge-ports none est la directive essentielle qui crée un bridge purement virtuel. Contrairement à un bridge classique attaché à une interface physique, celui-ci existe uniquement pour interconnecter les VMs/LXC entre elles et vers Internet via NAT.

3. Activation du routage IPv4
#
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
  • Active le forwarding de paquets entre les interfaces réseau
  • Indispensable pour le NAT : permet au serveur Proxmox de router les paquets des VMs/LXC vers Internet
  • Sans cette directive, les VMs/LXC ne pourraient pas communiquer avec l’extérieur

Attention : Sans ip_forward=1, le NAT ne fonctionnera pas et vos VMs/LXC n’auront aucun accès Internet.

4. Règle NAT (MASQUERADE)
#
post-up   iptables -t nat -A POSTROUTING -s '192.0.2.0/24' -o enp0s20 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '192.0.2.0/24' -o enp0s20 -j MASQUERADE

Décomposition de la règle iptables :

Paramètre Signification
-t nat Table NAT (Network Address Translation)
-A POSTROUTING Ajoute une règle en sortie (après routage)
-s '192.0.2.0/24' Source : tout le réseau privé des VMs/LXC
-o enp0s20 Interface de sortie (vers Internet)
-j MASQUERADE Action : masquer l’IP privée derrière l’IP publique

Fonctionnement du MASQUERADE :

  1. Une VM avec l’IP 192.0.2.10 envoie une requête vers Internet
  2. Le paquet traverse le bridge vmbr0 et arrive sur l’hôte Proxmox
  3. iptables réécrit l’adresse source 192.0.2.10198.51.100.100 (IP publique)
  4. Le paquet sort vers Internet avec l’IP publique
  5. La réponse revient à 198.51.100.100
  6. iptables retraduit automatiquement vers l’IP privée originale 192.0.2.10
  7. Le paquet retourne à la VM

Info : MASQUERADE est préférable à SNAT (Source NAT) dans ce contexte car il s’adapte automatiquement si l’IP publique change (utile avec DHCP ou réattribution IP).

5. Zones conntrack pour le pare-feu Proxmox
#
post-up   iptables -t raw -I PREROUTING -i fwbr+ -j CT --zone 1
post-down iptables -t raw -D PREROUTING -i fwbr+ -j CT --zone 1

Rôle de cette règle :

  • conntrack (Connection Tracking) : Module du noyau Linux qui suit l’état des connexions réseau
  • fwbr+ : Interfaces de bridge créées automatiquement par le pare-feu Proxmox pour chaque VM/LXC
  • --zone 1 : Assigne une zone de tracking distincte pour isoler les connexions du pare-feu
Architecture Proxmox Firewall : Proxmox crée automatiquement des bridges intermédiaires (fwbrXXX) pour appliquer les règles de pare-feu par VM/LXC. Cette règle garantit que le suivi de connexion (conntrack) fonctionne correctement avec le pare-feu Proxmox activé.

Sans cette règle : Le pare-feu Proxmox peut mal interpréter l’état des connexions et bloquer des paquets légitimes.

Astuce : Si vous n’utilisez pas le pare-feu intégré de Proxmox, cette règle n’est pas strictement nécessaire. Cependant, nous la conservons pour une compatibilité future.

Application de la configuration réseau
#

Attention : L’application de la configuration réseau va interrompre brièvement votre connexion SSH. Assurez-vous d’avoir un accès à la console de récupération Scaleway en cas de problème.

Redémarrez le service réseau pour appliquer la configuration :

sudo systemctl restart networking

Ou redémarrez complètement le serveur :

sudo systemctl reboot
Astuce : Privilégiez le redémarrage complet du serveur pour garantir que toutes les règles iptables et le forwarding IPv4 sont correctement appliqués.

Vérification de la configuration réseau
#

Après reconnexion SSH, vérifiez que la configuration est bien appliquée :

1. Vérifier les interfaces réseau
#
ip addr show

Résultat attendu :

2: enp0s20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 198.51.100.100/24 brd 198.51.100.255 scope global enp0s20

3: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 192.0.2.1/24 brd 192.0.2.255 scope global vmbr0
2. Vérifier le routage IPv4
#
cat /proc/sys/net/ipv4/ip_forward

Résultat attendu : 1 (activé)

3. Vérifier les règles NAT
#
sudo iptables -t nat -L POSTROUTING -n -v

Résultat attendu :

Chain POSTROUTING (policy ACCEPT)
target     prot opt source         destination
MASQUERADE  all  --  192.0.2.0/24   0.0.0.0/0
4. Vérifier les zones conntrack
#
sudo iptables -t raw -L PREROUTING -n -v

Résultat attendu :

Chain PREROUTING (policy ACCEPT)
target     prot opt source         destination
CT         all  --  0.0.0.0/0      0.0.0.0/0     zone 1
Succès : Si toutes les vérifications sont correctes, votre configuration réseau NAT est opérationnelle !

Schéma de flux réseau complet
#

Voici comment circulent les paquets dans cette architecture :

sequenceDiagram
    participant Internet
    participant enp0s20 as Interface publique
enp0s20
198.51.100.100 participant PVE as Proxmox VE Host
iptables NAT participant vmbr0 as Bridge vmbr0
192.0.2.1 participant VM as VM/LXC
192.0.2.10 VM->>vmbr0: Requête HTTP vers Internet
SRC: 192.0.2.10 vmbr0->>PVE: Transfert vers l'hôte PVE->>PVE: iptables MASQUERADE
192.0.2.10 → 198.51.100.100 PVE->>enp0s20: Paquet réécrit enp0s20->>Internet: SRC: 198.51.100.100 Internet-->>enp0s20: Réponse HTTP enp0s20-->>PVE: Réception PVE->>PVE: iptables dé-MASQUERADE
198.51.100.100 → 192.0.2.10 PVE-->>vmbr0: Paquet retraduit vmbr0-->>VM: DST: 192.0.2.10
Info : Dans un prochain article, nous verrons comment configurer les VMs et conteneurs LXC pour utiliser ce réseau NAT, ainsi que comment mettre en place des règles de pare-feu et du port forwarding pour exposer des services publics.

Étape 9 : Gestion de la souscription Proxmox (optionnel)
#

Si vous avez installé le dépôt pve-no-subscription, Proxmox affichera un message d’avertissement à chaque connexion vous rappelant que vous n’avez pas de souscription.

Pour supprimer ce message (optionnel, mais recommandé pour éviter la pollution visuelle) :

sudo rm /etc/apt/sources.list.d/pve-enterprise.list
Info : Si vous décidez d’acheter une souscription Proxmox VE pour accéder au dépôt Enterprise (mises à jour stables et support officiel), vous pourrez télécharger votre clé de souscription via le portail client Proxmox et l’uploader dans l’interface web (DatacenterSubscription).

Vérification de l’installation
#

Pour vérifier que Proxmox VE fonctionne correctement, exécutez les commandes suivantes :

# Vérifier la version de Proxmox VE
pveversion

# Vérifier l'état des services Proxmox
systemctl status pve-cluster pvedaemon pveproxy pvestatd

Résultat attendu :

  • pveversion doit afficher une version 9.1.2 : pve-manager/9.1.2/9d436f37a0ac4172 (running kernel: 6.17.2-2-pve)
  • Tous les services doivent être active (running)
Succès : Si tous les services sont actifs, votre installation Proxmox VE est opérationnelle !

Troubleshooting courant
#

Problème 1 : Échec du démarrage avec “bad shim signature”
#

Erreur : Le serveur ne démarre pas et affiche un message d’erreur lié à la signature shim.

Cause : UEFI Secure Boot est activé et bloque le noyau Proxmox non signé.

Solution : Désactivez Secure Boot dans le BIOS/UEFI du serveur.


Problème 2 : Échecs de résolution DNS
#

Erreur : Les VMs et conteneurs LXC ne peuvent pas résoudre les noms de domaine.

Cause : Proxmox VE gère directement la configuration DNS. Des paquets comme resolvconf peuvent interférer.

Solution : Supprimez les paquets de gestion DNS conflictuels :

sudo apt remove resolvconf -y

Problème 3 : Avertissement “ipcc_send_rec[1] failed”
#

Erreur : Des messages d’erreur ipcc_send_rec[1] failed apparaissent dans les logs.

Cause : Configuration incorrecte du fichier /etc/hosts (voir Étape 1).

Solution : Vérifiez que le nom d’hôte résout bien vers l’IP publique :

hostname --ip-address

Si la commande retourne 127.0.0.1 ou 127.0.1.1, corrigez /etc/hosts comme expliqué à l’Étape 1.

Proxmox on Scaleway - Cet article fait partie d'une série.
Partie 1: Cet article

Articles connexes