pfSense comme pare-feu virtualisé dans Proxmox
Sur un serveur dédié, la virtualisation avec Proxmox VE permet de faire cohabiter plusieurs machines virtuelles et conteneurs LXC sur le même matériel. Mais quand toutes ces VM partagent le même réseau physique sans segmentation, une seule VM compromise expose les autres. pfSense, déployé comme VM dans Proxmox, joue le rôle de pare-feu et routeur central : il filtre le trafic entre les VM, segmente le réseau en VLANs et peut établir des tunnels VPN site-à-site entre vos infrastructures.
pfSense est un système d'exploitation firewall open source basé sur FreeBSD. La version Community Edition (CE) 2.9.0, publiée le 20 août 2026, repose sur FreeBSD 16.0 et inclut plus de 150 correctifs et améliorations. L'interface web intégrée permet de gérer les règles de filtrage, le NAT, le DHCP, le DNS, les VLANs et les tunnels VPN sans ligne de commande.
Ce guide s'adresse aux administrateurs de serveurs en housing ou en location dédiée qui veulent segmenter leur réseau sur un serveur physique équipé d'une seule carte réseau (mono-NIC). La configuration repose sur deux bridges virtuels dans Proxmox : un pour le WAN (connecté à la carte physique), un pour le LAN interne (sans port physique, uniquement pour les VM).
Prérequis
- Un serveur dédié avec Proxmox VE 9.x installé (ce guide utilise Proxmox VE 9.2) ;
- Un accès à l'interface web Proxmox (port 8006) ;
- L'image ISO de pfSense CE 2.9.0 téléchargée depuis le site officiel Netgate ;
- Au moins 2 Go de RAM disponibles pour la VM pfSense (4 Go si vous prévoyez d'activer Suricata ou Snort) ;
- Au moins 16 Go d'espace disque disponibles sur le stockage Proxmox ;
- Un processeur 64 bits compatible amd64 avec les extensions de virtualisation (VT-x/AMD-V) activées dans le BIOS.
Commencez par transférer l'ISO pfSense dans le stockage local de Proxmox. Dans l'interface web, sélectionnez votre noeud, puis local (pve) > ISO Images > Upload. Sélectionnez le fichier ISO et attendez la fin du transfert.
Architecture réseau mono-NIC : deux bridges virtuels
Sur un serveur dédié avec une seule carte réseau physique, la segmentation WAN/LAN passe par deux bridges virtuels Linux dans Proxmox :
- vmbr0 (WAN) : bridge connecté à l'interface physique du serveur (par exemple
enp3s0). C'est par ce bridge que le serveur accède à Internet. Proxmox utilise déjà ce bridge pour son interface de gestion ; - vmbr1 (LAN) : bridge interne sans port physique. Ce bridge connecte uniquement les VM entre elles, à travers la VM pfSense qui agit comme passerelle. Aucun trafic ne sort directement vers Internet depuis vmbr1.
Le principe : pfSense reçoit deux interfaces réseau virtuelles, une sur chaque bridge. L'interface WAN (sur vmbr0) obtient l'adresse IP publique. L'interface LAN (sur vmbr1) sert de passerelle pour toutes les autres VM. Ces VM de production n'ont qu'une seule interface, connectée à vmbr1 : elles accèdent à Internet via pfSense, qui filtre et route le trafic.
Cette architecture reproduit le schéma classique d'un réseau physique avec un firewall dédié, mais entièrement en logiciel. Pour un serveur dédié correctement dimensionné, le surcoût CPU de pfSense en VM est négligeable pour des débits inférieurs à 10 Gbit/s.
Configurer les bridges dans Proxmox
Par défaut, Proxmox crée vmbr0 à l'installation avec l'interface physique en bridge port. Vous devez créer vmbr1 pour le LAN interne.
Dans l'interface web Proxmox, sélectionnez votre noeud > System > Network > Create > Linux Bridge :
- Name :
vmbr1 - IPv4/CIDR : laissez vide (pfSense gérera l'adressage)
- Bridge ports : laissez vide (pas de port physique)
- Comment : LAN interne pfSense
Cliquez sur Create, puis Apply Configuration. Vous pouvez aussi créer le bridge directement dans le fichier /etc/network/interfaces :
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
Redémarrez le service réseau ou le serveur pour activer le nouveau bridge :
systemctl restart networking
Vérifiez que les deux bridges sont actifs :
brctl show
La commande doit afficher vmbr0 avec votre interface physique et vmbr1 sans interface rattachée.
Créer la VM pfSense dans Proxmox
Cliquez sur Create VM dans l'interface Proxmox et configurez chaque onglet :
Onglet General
- Name :
pfsense - Start at boot : cochez cette option pour que pfSense démarre automatiquement avec le serveur
Onglet OS
- ISO image : sélectionnez l'ISO pfSense CE 2.9.0
- Type : Other
Onglet System
- Machine : q35
- BIOS : OVMF (UEFI) pour un boot UEFI, ou SeaBIOS pour un boot legacy
- Graphic card : SPICE (réduit la consommation CPU quand la console est inactive)
Onglet Disks
- Bus/Device : VirtIO Block
- Disk size : 16 Go (8 Go minimum, 16 Go recommandé pour les logs et les packages)
- Storage : votre stockage local ou ZFS
Onglet CPU
- Sockets : 1
- Cores : 2 (suffisant pour le routage et le filtrage sous 1 Gbit/s)
- Type : host (transmet les instructions AES-NI du processeur physique, nécessaire pour les performances VPN)
Onglet Memory
- Memory : 2048 Mo (augmentez à 4096 Mo si vous prévoyez d'installer des packages IDS comme Suricata)
Onglet Network
- Bridge :
vmbr0(ce sera l'interface WAN) - Model : VirtIO (paravirtualized)
- Firewall : décochez (pfSense gère son propre pare-feu)
Après la création de la VM, ajoutez une seconde carte réseau. Sélectionnez la VM > Hardware > Add > Network Device :
- Bridge :
vmbr1(interface LAN) - Model : VirtIO (paravirtualized)
- Firewall : décochez
Notez les adresses MAC attribuées par Proxmox à chaque carte réseau (visibles dans l'onglet Hardware). Elles vous permettront d'identifier l'interface WAN et LAN lors de l'assignation dans pfSense.
Installer pfSense CE dans la VM
Démarrez la VM et ouvrez la console. L'installeur pfSense démarre depuis l'ISO :
- Acceptez le contrat de licence ;
- Sélectionnez Install pfSense ;
- Choisissez la disposition du clavier ;
- Sélectionnez Auto (ZFS) ou Auto (UFS) comme méthode de partitionnement (ZFS est recommandé pour la fiabilité, UFS consomme moins de RAM) ;
- Sélectionnez le disque virtuel (
vtbd0ouda0selon le contrôleur) ; - Confirmez et attendez la fin de l'installation ;
- Sélectionnez Reboot.
Avant le redémarrage, détachez l'ISO dans Proxmox : sélectionnez la VM > Hardware > CD/DVD Drive > Do not use any media.
Assigner les interfaces WAN et LAN
Au premier boot après l'installation, pfSense affiche un menu de configuration en console. Les interfaces VirtIO apparaissent comme vtnet0 et vtnet1. Identifiez-les en comparant les adresses MAC affichées par pfSense avec celles notées dans Proxmox :
- pfSense demande si vous souhaitez configurer des VLANs : tapez n pour l'instant (les VLANs se configurent ensuite via l'interface web) ;
- Pour l'interface WAN, entrez le nom de l'interface connectée à vmbr0 (par exemple
vtnet0) ; - Pour l'interface LAN, entrez l'interface connectée à vmbr1 (par exemple
vtnet1) ; - Confirmez l'assignation avec y.
pfSense attribue automatiquement une adresse IP au LAN (par défaut 192.168.1.1/24). L'interface WAN tente d'obtenir une adresse par DHCP. Si votre hébergeur attribue l'IP publique par DHCP, elle apparaît immédiatement. Sinon, vous la configurerez en statique depuis l'interface web.
Désactiver le hardware checksum offload
Cette étape est obligatoire avec les interfaces VirtIO dans Proxmox. Sans cette désactivation, les paquets transitant par pfSense arrivent avec des checksums invalides, ce qui provoque des pertes de paquets et des connexions instables. La documentation officielle Netgate précise que le checksum offload doit être désactivé quand pfSense tourne comme VM avec des interfaces VirtIO.
Depuis la console pfSense (menu 8 pour le shell), exécutez :
pfctl -d
Cette commande désactive temporairement le filtrage pour permettre l'accès à l'interface web depuis une VM sur vmbr1. Connectez-vous à l'interface web pfSense via https://192.168.1.1 depuis une VM rattachée à vmbr1 (identifiants par défaut : admin / pfsense). Puis naviguez vers System > Advanced > onglet Networking :
- Cochez Disable hardware checksum offload ;
- Cochez Disable hardware TCP segmentation offload ;
- Cochez Disable hardware large receive offload ;
- Cliquez sur Save.
Redémarrez pfSense pour appliquer les changements. Après le redémarrage, le filtrage est réactivé automatiquement.
Configurer pfSense via l'interface web
Au premier accès à l'interface web, l'assistant de configuration vous guide à travers les réglages essentiels :
Paramètres généraux
- Hostname :
fw(ou le nom de votre choix) - Domain :
local - DNS Servers : renseignez les serveurs DNS de votre hébergeur ou des résolveurs publics (1.1.1.1, 9.9.9.9)
Interface WAN
- Si votre serveur dédié reçoit son IP par DHCP, conservez le type DHCP ;
- Pour une IP statique : sélectionnez Static IPv4, renseignez l'adresse IP publique, le masque, la passerelle fournis par votre hébergeur ;
- Décochez Block RFC1918 Private Networks si votre WAN utilise un adressage privé en amont (cas de certains réseaux housing).
Interface LAN
- LAN IP Address :
192.168.1.1(ou un autre sous-réseau de votre choix) - Subnet Mask : 24 bits (
255.255.255.0)
DHCP sur le LAN
Activez le serveur DHCP sur l'interface LAN pour attribuer automatiquement des adresses IP aux VM connectées à vmbr1. Naviguez vers Services > DHCP Server > LAN :
- Cochez Enable DHCP server on LAN interface ;
- Range : de
192.168.1.100à192.168.1.254; - DNS Servers :
192.168.1.1(pfSense agit aussi comme résolveur DNS).
Vos VM sur vmbr1 obtiennent maintenant une adresse IP, une passerelle et un DNS automatiquement. Pour les premiers réglages de sécurité complémentaires sur le serveur hôte Proxmox, consultez notre guide dédié.
Règles de pare-feu de base
Par défaut, pfSense bloque tout le trafic entrant sur l'interface WAN et autorise tout le trafic sortant depuis le LAN. C'est un bon point de départ, mais vous devez affiner les règles selon vos besoins.
Règles WAN
Naviguez vers Firewall > Rules > WAN. Ajoutez des règles pour chaque service accessible depuis Internet :
| Action | Protocole | Port destination | Description |
|---|---|---|---|
| Pass | TCP | 22 | SSH vers VM admin |
| Pass | TCP | 80, 443 | HTTP/HTTPS vers serveur web |
| Pass | UDP | 30120 | Serveur de jeu (FiveM par exemple) |
| Pass | UDP | 500, 4500 | VPN IPsec |
Chaque règle WAN qui autorise un port doit être accompagnée d'une règle NAT (port forwarding) pour rediriger le trafic vers la VM correspondante sur le LAN. Naviguez vers Firewall > NAT > Port Forward :
- Interface : WAN
- Protocol : TCP ou UDP selon le service
- Destination port range : le port du service
- Redirect target IP : l'adresse IP LAN de la VM (par exemple
192.168.1.101) - Redirect target port : le même port (ou un port différent si vous changez le mapping)
pfSense crée automatiquement la règle de filtrage WAN associée quand vous activez l'option Filter rule association: Add associated filter rule.
Règles LAN
Par défaut, la règle LAN autorise tout le trafic sortant (any/any). Vous pouvez la restreindre pour limiter les protocoles et ports autorisés en sortie. Par exemple, pour n'autoriser que le web et le DNS :
- Autorisez TCP 80, 443 (HTTP/HTTPS) vers any ;
- Autorisez UDP 53 et TCP 53 (DNS) vers any ;
- Bloquez le reste.
Segmenter le réseau avec des VLANs
Les VLANs permettent de créer des réseaux logiques isolés sur le même bridge physique. C'est la méthode recommandée quand vous hébergez des services de natures différentes sur le même serveur : serveurs de jeu, bases de données, services web, administration.
Pour activer le support VLAN sur vmbr1, modifiez la configuration réseau de Proxmox. Éditez /etc/network/interfaces :
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
Redémarrez le service réseau :
systemctl restart networking
Dans Proxmox, assignez un VLAN tag à chaque VM. Sélectionnez la VM > Hardware > carte réseau > Edit > renseignez le champ VLAN Tag (par exemple 10 pour les serveurs de jeu, 20 pour les services web, 30 pour l'administration).
Dans pfSense, créez les interfaces VLAN correspondantes. Naviguez vers Interfaces > Assignments > VLANs > Add :
- Parent Interface : vtnet1 (l'interface LAN)
- VLAN Tag : 10
- Description : VLAN_JEUX
Répétez pour chaque VLAN. Ensuite, assignez chaque VLAN comme interface dans Interfaces > Assignments > Add. Configurez l'adresse IP de chaque interface VLAN (par exemple 10.10.10.1/24 pour le VLAN 10) et activez un serveur DHCP sur chacune.
Créez des règles de filtrage inter-VLAN pour contrôler quel trafic passe d'un réseau à l'autre. Par défaut, pfSense bloque tout trafic entre les VLANs, ce qui est le comportement souhaité pour l'isolation. N'ouvrez que ce qui est strictement nécessaire.
Cette segmentation est particulièrement utile pour les clients housing qui hébergent plusieurs services sur le même châssis. Consultez notre guide sur les sauvegardes et la haute disponibilité pour protéger cette infrastructure.
VPN site-à-site avec IPsec
pfSense intègre un serveur VPN IPsec pour établir des tunnels chiffrés entre deux sites. C'est le cas d'usage classique quand vous disposez de plusieurs serveurs dédiés dans des datacenters différents et que vous voulez interconnecter leurs réseaux privés.
La configuration IPsec s'effectue dans VPN > IPsec > Tunnels > Add P1 (Phase 1) :
Phase 1 (IKE)
- Remote Gateway : l'adresse IP publique du pfSense distant
- Authentication Method : Mutual PSK (clé partagée) pour un déploiement rapide, ou Mutual RSA pour la production
- Encryption Algorithm : AES-256-GCM (nécessite AES-NI, d'où le CPU type "host" dans Proxmox)
- Hash Algorithm : SHA-256
- DH Group : 14 (2048 bits) minimum, 20 (NIST P-384) pour la sécurité renforcée
- Lifetime : 28800 secondes (8 heures, valeur par défaut)
Phase 2 (ESP)
Cliquez sur Show Phase 2 Entries > Add P2 :
- Local Network : le sous-réseau LAN local (par exemple
192.168.1.0/24) - Remote Network : le sous-réseau LAN distant (par exemple
192.168.2.0/24) - Encryption Algorithm : AES-256-GCM
- PFS key group : 14
N'oubliez pas d'ajouter une règle de pare-feu sur l'interface IPsec pour autoriser le trafic entre les deux sous-réseaux. Naviguez vers Firewall > Rules > IPsec et créez une règle Pass de source 192.168.2.0/24 vers destination 192.168.1.0/24 (et inversement sur le pfSense distant).
Pour un VPN d'accès distant (roadwarrior) basé sur OpenVPN plutôt qu'IPsec, consultez notre guide configurer OpenVPN sur un VPS.
Connecter les VM de production au LAN pfSense
Toute VM que vous créez dans Proxmox et que vous souhaitez protéger par pfSense doit avoir sa carte réseau connectée à vmbr1 (et non vmbr0). Dans les paramètres réseau de la VM :
- Bridge :
vmbr1 - VLAN Tag : le numéro du VLAN si vous utilisez la segmentation (sinon, laissez vide)
- Model : VirtIO
La VM obtient son adresse IP, sa passerelle (l'IP LAN de pfSense) et son DNS par DHCP. Vérifiez la connectivité depuis la VM :
ip addr show
ping -c 3 192.168.1.1
ping -c 3 1.1.1.1
Si la VM atteint pfSense mais pas Internet, vérifiez que le NAT sortant (outbound NAT) est activé dans pfSense : Firewall > NAT > Outbound. Le mode Automatic outbound NAT rule generation convient dans la majorité des cas.
Pour déployer rapidement des services dans vos VM, les Proxmox VE Helper Scripts automatisent l'installation de nombreux logiciels courants.
pfSense : fonctionnalités intégrées
| Fonctionnalité | Incluse dans pfSense CE | Usage typique sur serveur dédié |
|---|---|---|
| Pare-feu stateful (pf) | Oui | Filtrage de tout le trafic entrant et sortant |
| NAT / Port forwarding | Oui | Exposer des services VM sur l'IP publique |
| VLANs (802.1Q) | Oui | Segmentation réseau entre services |
| VPN IPsec | Oui | Tunnel chiffré entre datacenters |
| VPN OpenVPN | Oui | Accès distant pour les administrateurs |
| VPN WireGuard | Oui (depuis 2.7.0) | VPN léger et performant |
| DHCP / DNS (Unbound) | Oui | Adressage automatique et résolution DNS interne |
| IDS/IPS (Suricata, Snort) | Via packages | Détection d'intrusion sur le trafic réseau |
| HAProxy / Load Balancer | Via packages | Répartition de charge entre VM |
| Monitoring (Grafana, ntopng) | Via packages | Visualisation du trafic et alertes |
Conclusion
pfSense comme VM dans Proxmox transforme un serveur dédié mono-NIC en infrastructure réseau segmentée : bridges virtuels pour séparer WAN et LAN, VLANs pour isoler les services, pare-feu stateful pour filtrer le trafic, VPN IPsec pour connecter plusieurs sites. La configuration présentée ici couvre le cas courant d'un serveur en housing ou en location, avec une seule carte réseau physique.
Pour aller plus loin, comparez Proxmox avec d'autres plateformes de virtualisation dans notre guide Proxmox vs OpenStack.
FiveM
Minecraft
Rust
RedM
Hytale