OPNsense : pare-feu open source dans une VM 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. Sans segmentation réseau, une seule VM compromise expose toutes les autres. OPNsense est un pare-feu et routeur open source basé sur FreeBSD, fork de pfSense initié en janvier 2015 par Deciso B.V. Il se distingue par une interface web moderne, des mises à jour hebdomadaires, une API REST complète pour l'automatisation, et WireGuard intégré nativement au noyau depuis la version 24.1.
La version actuelle, OPNsense 26.7 "Xenial Xenops", publiée le 15 juillet 2026, repose sur FreeBSD 15.1. Elle intègre Suricata pour la détection d'intrusion inline, Kea DHCP avec délégation de préfixes IPv6, OpenVPN 2.7, et une interface de règles pare-feu entièrement migrée vers l'architecture MVC/API. OPNsense publie deux versions majeures par an (janvier et juillet) avec des correctifs de sécurité chaque semaine, sous licence BSD 2-Clause sans restrictions de fonctionnalités.
Ce guide couvre l'installation complète d'OPNsense dans une VM Proxmox sur un serveur dédié équipé d'une seule carte réseau : configuration des bridges virtuels WAN/LAN, création de la VM, installation du système, règles de pare-feu et NAT de base, et tunnel VPN WireGuard pour accéder aux VM sans exposer de ports sur Internet.
Prérequis
- Un serveur dédié avec Proxmox VE 8.x ou 9.x installé ;
- Un accès à l'interface web Proxmox (port 8006) ;
- L'image ISO d'OPNsense 26.7 (format dvd, architecture amd64) téléchargée depuis le site officiel opnsense.org ;
- Au moins 4 Go de RAM disponibles pour la VM OPNsense (8 Go si vous activez Suricata IDS/IPS) ;
- Au moins 32 Go d'espace disque sur le stockage Proxmox ;
- Un processeur 64 bits (amd64) avec les extensions de virtualisation (VT-x ou AMD-V) activées dans le BIOS.
Transférez l'ISO OPNsense dans le stockage Proxmox. Dans l'interface web, sélectionnez votre noeud, puis local (pve) > ISO Images > Upload.
Architecture réseau mono-NIC : deux bridges virtuels
Sur un serveur dédié avec une seule carte réseau physique, la segmentation WAN/LAN repose sur 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 sa propre interface de gestion ; - vmbr1 (LAN) : bridge interne sans port physique. Ce bridge connecte uniquement les VM entre elles, à travers OPNsense qui agit comme routeur et pare-feu. Aucun trafic ne sort directement vers Internet depuis vmbr1.
OPNsense reçoit deux interfaces réseau virtuelles, une sur chaque bridge. L'interface WAN (sur vmbr0) porte l'adresse IP publique. L'interface LAN (sur vmbr1) sert de passerelle par défaut pour toutes les VM de production. Ces VM n'ont qu'une seule interface sur vmbr1 et accèdent à Internet via OPNsense, qui filtre et route le trafic. Cette architecture reproduit le schéma classique d'un réseau physique avec un pare-feu dédié. Pour un serveur dédié correctement dimensionné, le surcoût CPU d'OPNsense en VM est négligeable pour des débits inférieurs à 10 Gbit/s.
Configurer les bridges dans Proxmox
Proxmox crée vmbr0 à l'installation avec l'interface physique en bridge port. Créez 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 (OPNsense gère l'adressage)
- Bridge ports : laissez vide (pas de port physique)
- Comment : LAN interne OPNsense
Cliquez sur Create, puis Apply Configuration. Pour créer le bridge en ligne de commande, éditez /etc/network/interfaces :
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
Puis redémarrez le service réseau :
systemctl restart networking
Vérifiez que les deux bridges sont actifs :
brctl show
La commande affiche vmbr0 avec votre interface physique et vmbr1 sans interface rattachée.
Créer la VM OPNsense dans Proxmox
Cliquez sur Create VM dans l'interface Proxmox et configurez chaque onglet :
Onglet General
- Name :
opnsense - Start at boot : cochez cette option (le pare-feu doit démarrer avant les autres VM)
Onglet OS
- ISO image : sélectionnez l'ISO OPNsense 26.7
- Type : Other
Onglet System
- Machine : q35
- BIOS : OVMF (UEFI) ou SeaBIOS
Onglet Disks
- Bus/Device : VirtIO Block
- Disk size : 32 Go (minimum recommandé pour les logs, paquets et IDS)
- Storage : stockage local ou ZFS
Onglet CPU
- Sockets : 1
- Cores : 2 (suffisant pour le routage et le filtrage ; passez à 4 coeurs si vous activez Suricata IDS/IPS)
- Type : host (transmet les instructions AES-NI du processeur physique au noyau FreeBSD, utile pour le chiffrement VPN)
Onglet Memory
- Memory : 4096 Mo (8192 Mo avec Suricata)
- Ballooning : décochez (FreeBSD ne gère pas correctement le ballooning KVM)
Onglet Network
- Bridge :
vmbr0(interface WAN) - Model : VirtIO (paravirtualized)
- Firewall : décochez (OPNsense gère son propre pare-feu)
Après la création, 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 (visibles dans l'onglet Hardware). Elles permettent d'identifier les interfaces WAN et LAN lors de l'assignation dans OPNsense.
Installer OPNsense dans la VM
Démarrez la VM et ouvrez la console. OPNsense démarre depuis l'ISO en mode live. Connectez-vous avec l'utilisateur installer et le mot de passe opnsense pour lancer l'installation :
- Sélectionnez la disposition du clavier ;
- Choisissez Install (UFS) ou Install (ZFS) comme méthode de partitionnement (UFS consomme moins de RAM, ZFS offre une meilleure fiabilité avec les snapshots) ;
- Sélectionnez le disque virtuel ;
- Confirmez et attendez la fin de l'installation ;
- Changez le mot de passe root quand l'installeur le propose ;
- Sélectionnez Complete Install pour redémarrer.
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, OPNsense 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 OPNsense avec celles notées dans Proxmox :
- OPNsense demande si vous souhaitez créer des LAGGs : répondez n ;
- OPNsense demande si vous souhaitez créer des VLANs : répondez n ;
- 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.
OPNsense attribue par défaut l'adresse 192.168.1.1/24 au LAN et active un serveur DHCP sur cette interface. L'interface WAN tente d'obtenir une adresse par DHCP. Si votre hébergeur attribue l'IP publique par DHCP, elle apparaît automatiquement. Sinon, configurez-la en statique depuis l'interface web.
Configuration initiale via l'interface web
Depuis une VM rattachée à vmbr1 (ou temporairement via la console Proxmox si aucune VM LAN n'est encore disponible), accédez à l'interface web OPNsense via https://192.168.1.1. Identifiants par défaut : root et le mot de passe défini à l'installation (ou opnsense si inchangé). L'assistant de configuration guide les réglages initiaux :
Paramètres généraux
- Hostname :
fw - Domain :
local - DNS Servers : résolveurs de votre hébergeur ou des résolveurs publics (1.1.1.1, 9.9.9.9)
Interface WAN
- Pour un serveur dédié avec IP statique : sélectionnez Static IPv4, renseignez l'adresse IP publique, le masque et 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 en housing).
Désactiver le hardware offloading (obligatoire avec VirtIO)
Avec des interfaces VirtIO dans Proxmox, le hardware checksum offload doit être désactivé. Sans cette étape, les paquets transitent avec des checksums invalides, ce qui provoque des pertes de paquets et des connexions instables. Naviguez vers Interfaces > Settings :
- Décochez Hardware CRC (hardware checksum offload) ;
- Décochez Hardware TSO (TCP segmentation offload) ;
- Décochez Hardware LRO (large receive offload) ;
- Cliquez sur Save et redémarrez OPNsense.
Configurer le DHCP sur le LAN
OPNsense active un serveur DHCP sur le LAN par défaut. Pour ajuster la plage d'adresses, naviguez vers Services > Kea DHCPv4 > onglet LAN :
- Range : de
192.168.1.100à192.168.1.254; - Cliquez sur Save.
Les VM connectées à vmbr1 obtiennent désormais une adresse IP, une passerelle et un DNS automatiquement. Pour les premiers réglages de sécurité du serveur hôte Proxmox, consultez notre guide dédié.
Règles de pare-feu et NAT de base
Par défaut, OPNsense bloque tout le trafic entrant sur le WAN et autorise tout le trafic sortant depuis le LAN. Pour exposer un service (serveur web, serveur de jeu) sur Internet, créez une règle de Destination NAT (port forwarding) et la règle de filtrage associée.
Destination NAT (port forwarding)
Naviguez vers Firewall > NAT > Destination NAT. Pour chaque service à exposer, ajoutez une règle :
- Interface : WAN
- Protocol : TCP ou UDP selon le service
- Destination port range : le port du service (par exemple 30120 pour FiveM, 25565 pour Minecraft)
- Redirect target IP : l'adresse IP LAN de la VM (par exemple
192.168.1.101) - Redirect target port : le même port
OPNsense peut créer automatiquement la règle de filtrage WAN associée si l'option Filter rule association est définie sur Add associated filter rule.
Règles WAN
Naviguez vers Firewall > Rules > WAN. Les règles associées au NAT apparaissent ici. Vous pouvez aussi ajouter des règles manuellement :
| 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 |
| Pass | UDP | 51820 | VPN WireGuard |
Vérifiez le NAT sortant dans Firewall > NAT > Outbound. Le mode Automatic outbound NAT rule generation convient dans la majorité des cas : les VM du LAN accèdent à Internet sans configuration supplémentaire.
VPN WireGuard intégré : accéder aux VM sans exposer de ports
OPNsense intègre WireGuard nativement dans le noyau FreeBSD depuis la version 24.1. Ce VPN léger et performant permet de se connecter au réseau LAN des VM depuis n'importe quel poste, sans ouvrir de ports d'administration (SSH, RDP, interface Proxmox) sur Internet. C'est l'approche recommandée pour administrer vos VM en toute sécurité.
Créer l'instance serveur
Naviguez vers VPN > WireGuard > Instances, puis cliquez sur + :
- Name :
wg0 - Listen port :
51820 - Tunnel address :
10.10.10.1/24(sous-réseau dédié au tunnel VPN) - Cliquez sur le bouton de génération de clés pour créer la paire de clés, puis Save
Ajouter un peer (poste d'administration)
Dans VPN > WireGuard > Peers, cliquez sur + :
- Name :
admin-laptop - Public key : la clé publique générée sur votre poste avec
wg genkey | tee private.key | wg pubkey - Allowed IPs :
10.10.10.2/32 - Instance : sélectionnez
wg0 - Cliquez sur Save
Activer WireGuard et créer les règles
Activez WireGuard dans VPN > WireGuard > General en cochant Enable WireGuard, puis cliquez sur Apply. Assignez ensuite l'interface wg0 dans Interfaces > Assignments pour créer des règles de filtrage spécifiques au tunnel. Ajoutez deux règles :
- Sur l'interface WAN : autoriser UDP port 51820 (entrée du tunnel) ;
- Sur l'interface WireGuard (wg0) : autoriser le trafic du réseau
10.10.10.0/24vers le LAN192.168.1.0/24.
Configuration du client
Sur votre poste, créez le fichier de configuration WireGuard :
[Interface]
PrivateKey = <votre-cle-privee>
Address = 10.10.10.2/24
DNS = 192.168.1.1
[Peer]
PublicKey = <cle-publique-opnsense>
Endpoint = <ip-publique-serveur>:51820
AllowedIPs = 192.168.1.0/24, 10.10.10.0/24
Une fois connecté, vous accédez directement aux VM via leurs adresses LAN (par exemple ssh 192.168.1.101) sans aucun port d'administration exposé sur Internet. Pour un déploiement WireGuard autonome sur un VPS sans OPNsense, consultez notre guide WireGuard Easy sur VPS Linux.
Fonctionnalités intégrées d'OPNsense
| Fonctionnalité | Disponibilité | Usage typique sur serveur dédié |
|---|---|---|
| Pare-feu stateful (pf) | Intégrée | Filtrage de tout le trafic entrant et sortant |
| NAT / Destination NAT | Intégrée | Exposer des services VM sur l'IP publique |
| VLANs (802.1Q) | Intégrée | Segmentation réseau entre services |
| VPN WireGuard | Intégrée (noyau) | Accès distant chiffré sans ports ouverts |
| VPN OpenVPN 2.7 | Intégrée | VPN site-à-site ou accès distant |
| VPN IPsec | Intégrée | Tunnel chiffré entre datacenters |
| DHCP (Kea) | Intégrée | Adressage automatique des VM |
| DNS (Unbound) | Intégrée | Résolution DNS interne et filtrage |
| IDS/IPS (Suricata) | Intégrée | Détection d'intrusion inline sur le trafic |
| Proxy cache (Squid) | Plugin | Cache et filtrage HTTP |
| HAProxy | Plugin | Répartition de charge entre VM |
| API REST | Intégrée | Automatisation des règles et de la configuration |
Pour déployer rapidement des services dans vos VM protégées par OPNsense, les Proxmox VE Helper Scripts automatisent l'installation de nombreux logiciels courants. Pour protéger votre infrastructure avec des sauvegardes et la haute disponibilité, consultez notre guide dédié.
Conclusion
OPNsense comme VM dans Proxmox transforme un serveur dédié en infrastructure réseau segmentée avec pare-feu stateful, NAT, VPN WireGuard intégré et détection d'intrusion. Par rapport à pfSense, OPNsense offre des mises à jour plus fréquentes, WireGuard nativement dans le noyau et une API REST complète, le tout sous licence BSD sans restrictions. Pour une comparaison avec pfSense, consultez notre guide installer pfSense dans Proxmox. Si vous débutez avec Proxmox, notre comparatif Proxmox vs OpenStack vous aidera à choisir votre plateforme. Pour sécuriser et mettre à jour Proxmox VE, consultez notre guide dédié.
FiveM
Minecraft
Rust
RedM
Hytale