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.

1.Étape 01 - Type de distribution

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.

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 :

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.

DISTRIBUTIONS SERVEURet allons voir également ce qu’il nous est proposé ici :
Bingo !

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é :

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 :


- Une partition
/bootenExt4de 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 optionsCONFIG_*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 fichiersext*, utilisé parfsckpour 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
/bootpeut rapidement manquer d’espace. 2GO me semble suffisant et nous laisse serein quelque temps. - Fichiers du noyau (par version) :
- Une partition système
/enExt4de 64GO (64*1024MO=65536), - Une partition
swapde 2GO, - Une partition
/dataenExt4du 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 :

- Une partition
/bootenExt4de 2GO, - Une partition système
/enExt4de 64GO (64*1024MO=65536), - Une partition
/datastore(destiné à accueillir mes volumes disque des VMs/LXC Proxmox) enExt4de 128GO (128*1024MO=131072), - Une partition
/dataenExt4du reste de la place disponible sur le disque, - Une partition
swapde 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 Trixieet deProxmox VE.
Pour récapituler, pour le moment, notre partitionnement sera le suivant :

4.Étape 04 - Configuration système

5.Étape 05 - Récapitulatif

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 !

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/fstabou de réinstaller le système (Debian 13 Trixie) si vous avez cassé des choses viafdisk.
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 :
- Mettre à jour le système,
- Changer le mot de passe de
rootet de l’utilisateur qui a été créé à l’installation, ici,gaston, - Sécurisation du serveur
SSH, - Installation et configuration de
fail2ban, - Désactivation de l’IPv6 (si vous ne l’utilisez pas),
- Configuration de Bash pour
rootetgastonvia le fichier.bashrc, - 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) #
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
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
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
Mettez à jour la liste des paquets et effectuez une mise à niveau complète du système :
sudo apt update && sudo apt full-upgrade -y
-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
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
postfixpour 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
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
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 #
Ouvrez votre navigateur et accédez à l’interface d’administration Proxmox :
https://198.51.100.100:8006
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
Étape 8 : Configuration du réseau (Linux Bridge avec NAT) #
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é |
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
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 bootiface enp0s20 inet static: Configuration IP statique (non DHCP)address 198.51.100.100/24: Adresse IP publique fournie par Scalewaygateway 198.51.100.1: Passerelle par défaut vers Internet
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 icibridge-fd 0: Désactive le délai de transmission (forwarding delay), accélère la connectivité
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
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 :
- Une VM avec l’IP
192.0.2.10envoie une requête vers Internet - Le paquet traverse le bridge
vmbr0et arrive sur l’hôte Proxmox - iptables réécrit l’adresse source
192.0.2.10→198.51.100.100(IP publique) - Le paquet sort vers Internet avec l’IP publique
- La réponse revient à
198.51.100.100 - iptables retraduit automatiquement vers l’IP privée originale
192.0.2.10 - Le paquet retourne à la VM
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éseaufwbr+: 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
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.
Application de la configuration réseau #
Redémarrez le service réseau pour appliquer la configuration :
sudo systemctl restart networking
Ou redémarrez complètement le serveur :
sudo systemctl reboot
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
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
É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
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 :
pveversiondoit 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)
Troubleshooting courant #
Problème 1 : Échec du démarrage avec “bad shim signature” #
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 #
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” #
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.