Avant de commencer
- Avoir lu comprendre le pare-feu, dont ce tutoriel reprend le plan et la matrice des flux
- Un boîtier ou une machine virtuelle avec au moins deux cartes réseau, et un switch manageable (VLAN 802.1Q)
- La box de l'opérateur en mode bridge, ou sa DMZ pointant vers le pare-feu
En clair
OPNsense est un pare-feu libre et gratuit, basé sur FreeBSD, qui transforme un petit PC à plusieurs ports réseau en équipement de niveau professionnel. Ce tutoriel le paramètre pas à pas, comme on monterait un immeuble : les fondations (installation), les murs entre les appartements (VLAN), les adresses et l'annuaire (DHCP, DNS), puis le règlement intérieur (règles), la porte d'entrée publique (DMZ) et le badge des résidents en déplacement (VPN).
Version utilisée : OPNsense 26.7, sortie en juillet 2026 (26.7.7 au 20 octobre 2026). Les menus sont donnés en anglais, langue par défaut de l'interface ; ils se traduisent dans System › Settings › General › Language, mais les forums et la documentation sont en anglais.
1. Ce qu'il faut
| Élément | Recommandation |
|---|---|
| Matériel | Mini-PC à au moins 2 ports réseau (4 c'est mieux), cartes Intel de préférence (igc, igb, ix), 8 Go de RAM, SSD de 64 Go ou plus. Prévoyez 16 Go si vous activez la détection d'intrusion sur une connexion rapide. |
| Ou une VM | Sur Proxmox, deux cartes VirtIO, l'une reliée au pont côté box, l'autre à un pont VLAN aware côté switch (voir installer Proxmox VE). |
| Switch | Manageable, compatible VLAN 802.1Q |
| Image | Sur opnsense.org, image dvd (ISO) pour une VM, vga pour une clé USB. Vérifiez l'empreinte SHA-256 fournie. |
Le plan d'adressage, repris de la fiche sur les pare-feu :
| Zone | VLAN | Interface OPNsense | Adresse du pare-feu |
|---|---|---|---|
| WAN | — | igc0 |
adresse publique (box en bridge) |
| ADMIN | non tagué | igc1 |
10.10.10.1/24 |
| BUREAUX | 20 | vlan0.20 sur igc1 |
10.10.20.1/24 |
| SERVEURS | 30 | vlan0.30 sur igc1 |
10.10.30.1/24 |
| IOT | 40 | vlan0.40 sur igc1 |
10.10.40.1/24 |
| INVITES | 50 | vlan0.50 sur igc1 |
10.10.50.1/24 |
| DMZ | 60 | vlan0.60 sur igc1 |
10.10.60.1/24 |
Le réseau ADMIN passe non tagué sur igc1 : c'est le réseau LAN d'origine d'OPNsense, renommé. Côté switch, il correspond au VLAN natif 10 du port relié au pare-feu. Ainsi, on garde toujours l'accès à l'interface pendant la création des VLAN.
2. Installer
- Démarrez sur l'image. À l'invite de connexion, entrez l'utilisateur
installeret le mot de passeopnsense. - Choisissez la disposition du clavier (French), puis Install (ZFS) : ZFS est le choix recommandé, plus robuste face aux coupures de courant.
- Sélectionnez le disque, confirmez son effacement.
- Définissez le mot de passe root : long, unique, rangé dans votre gestionnaire de mots de passe.
- Retirez le support d'installation et redémarrez.
Au premier démarrage, la console propose un menu. Si les cartes n'ont pas été reconnues dans le bon ordre, choisissez 1) Assign interfaces, et indiquez igc0 pour le WAN (vers la box) et igc1 pour le LAN (vers le switch). Répondez N aux questions sur les LAGG et les VLAN : on créera les VLAN dans l'interface web.
Par défaut, le LAN répond en 192.168.1.1. Changez-le tout de suite avec 2) Set interface IP address : choisissez LAN, adresse 10.10.10.1, masque 24, pas de passerelle, et acceptez d'activer le serveur DHCP sur le LAN (plage 10.10.10.100 à 10.10.10.199) pour obtenir une adresse sur votre poste d'administration.
Branchez votre poste sur le réseau ADMIN et ouvrez https://10.10.10.1. Acceptez l'avertissement du certificat autosigné et connectez-vous en root.
3. L'assistant de démarrage
L'assistant se lance à la première connexion (sinon : System › Wizard).
| Écran | Réglage | Valeur conseillée |
|---|---|---|
| General | Hostname / Domain | fw01 / lan.exemple.fr |
| General | DNS servers | Laisser vide : Unbound interrogera directement les serveurs racine. Ou renseigner des résolveurs de votre choix. |
| Time server | Fuseau horaire | Europe/Paris |
| WAN | Type | DHCP pour la plupart des box en bridge ; PPPoE si votre opérateur l'exige (identifiants fournis par l'opérateur) |
| WAN | Block RFC1918 Private Networks | Coché… sauf si votre WAN reçoit une adresse privée de la box (double NAT) : décochez alors, sinon rien ne passera |
| WAN | Block bogon networks | Coché |
| LAN | Adresse | Déjà réglée : 10.10.10.1/24 |
| Root password | Déjà défini à l'installation ; laissez vide pour le conserver |
Ensuite :
- Renommez le LAN : Interfaces › [LAN], champ Description :
ADMIN. Enregistrez et appliquez. - Mettez à jour : System › Firmware › Status › Check for updates, puis installez et redémarrez si demandé.
4. Créer les VLAN
Déclarer les VLAN
Dans Interfaces › Devices › VLAN, cliquez sur + pour chaque VLAN : Parent igc1, VLAN tag 20, 30, 40, 50 puis 60, et une Description.
Affecter et adresser chaque VLAN
- Interfaces › Assignments : dans la liste « New interface », choisissez
vlan0.20, saisissez la descriptionBUREAUX, cliquez sur +, puis Save. Répétez pour chaque VLAN. - Ouvrez chaque nouvelle interface (menu Interfaces › [BUREAUX]…) et réglez-la comme ci-dessous, avec l'adresse du tableau de la section 1.
Régler le switch
| Port du switch | Mode | VLAN non tagué (natif) | VLAN tagués |
|---|---|---|---|
Vers OPNsense (igc1) |
Trunk | 10 (ADMIN) | 20, 30, 40, 50, 60 |
| Bornes Wi-Fi | Trunk | 10 (administration des bornes) | 20, 40, 50 (un SSID par VLAN) |
| Hyperviseur | Trunk | 10 | 30, 60 |
| Postes de bureau | Access | 20 | — |
| Caméras | Access | 40 | — |
| Interface d'administration du switch | — | VLAN 10 | — |
Voir comprendre les VLAN pour la différence entre ports tagués et non tagués.
5. DHCP et DNS
Depuis la version 26.1, Dnsmasq est le serveur DHCP par défaut des nouvelles installations, et Unbound reste le DNS.
DHCP avec Dnsmasq
- Services › Dnsmasq DNS & DHCP › General : cochez Enable, sélectionnez dans Interface les interfaces qui distribueront des adresses, cochez DHCP fqdn pour que les noms des appareils soient enregistrés, et réglez Listen port sur
53053pour laisser le port 53 à Unbound. - Services › Dnsmasq DNS & DHCP › DHCP ranges : une plage par interface.
- Réservations pour les appareils qui doivent garder la même adresse (imprimantes, caméras) : Services › Dnsmasq DNS & DHCP › Hosts, avec le nom, l'adresse IP et l'adresse MAC.
- Si vous avez un domaine Active Directory, les postes du VLAN BUREAUX doivent utiliser les contrôleurs de domaine comme DNS. Dans Services › Dnsmasq DNS & DHCP › DHCP options, ajoutez l'option dns-server [6] sur l'interface BUREAUX, avec la valeur
10.10.30.10,10.10.30.11. Voir créer un domaine Active Directory.
DNS avec Unbound
Services › Unbound DNS › General : cochez Enable, choisissez dans Network Interfaces toutes les interfaces internes (pas le WAN), et cochez Enable DNSSEC Support.
- Pour résoudre les noms des appareils enregistrés par Dnsmasq, ajoutez dans Services › Unbound DNS › Query Forwarding le domaine
lan.exemple.frvers le serveur127.0.0.1, port53053. - Pour chiffrer les requêtes vers Internet, déclarez des résolveurs dans Services › Unbound DNS › DNS over TLS.
- Les listes de blocage (publicité, logiciels malveillants) s'activent dans Services › Unbound DNS › Blocklist.
6. Les alias
Les alias donnent un nom à des groupes d'adresses ou de ports. Créez-les dans Firewall › Aliases avant d'écrire les règles.
| Alias | Type | Usage |
|---|---|---|
RESEAUX_PRIVES |
Network(s) | Utilisé inversé pour signifier « Internet seulement » |
SRV_AD |
Host(s) | Les contrôleurs de domaine |
SRV_FICHIERS |
Host(s) | Le serveur de fichiers |
PORTS_AD |
Port(s) | Les ports nécessaires à Active Directory (DNS, Kerberos, LDAP, SMB, RPC…) |
PORTS_WEB |
Port(s) | HTTP et HTTPS |
DMZ_WEB |
Host(s) | Le serveur web en DMZ, 10.10.60.10 |
7. Les règles, zone par zone
Comment OPNsense lit les règles
- Les règles s'écrivent sur l'interface par laquelle le trafic entre : pour filtrer ce que les postes ont le droit de faire, on écrit dans l'onglet BUREAUX.
- Elles sont évaluées de haut en bas, et la première qui correspond s'applique. Ce qui n'est autorisé par aucune règle est bloqué.
- This Firewall désigne toutes les adresses du pare-feu lui-même, y compris son adresse WAN.
- Depuis la version 26.7, la page Firewall › Rules est la nouvelle interface (MVC) : un sélecteur permet d'afficher les règles d'une interface. Après chaque modification, cliquez sur Apply.
BUREAUX
La règle 2 empêche les postes d'atteindre l'interface d'administration du pare-feu, y compris par son adresse WAN publique, que la règle 6 laisserait sinon passer.
La règle 6 est la plus importante à bien écrire : destination RESEAUX_PRIVES avec la case Invert cochée, c'est-à-dire « tout sauf les réseaux privés ».
Les autres zones
Même logique pour chaque interface. [zone] net désigne le réseau de l'interface, [zone] address l'adresse du pare-feu sur cette interface.
| Interface | # | Action | Source | Destination | Port | Rôle |
|---|---|---|---|---|---|---|
| ADMIN | 1 | Pass | ADMIN net | any | any | Les administrateurs vont partout |
| SERVEURS | 1 | Pass | SERVEURS net | This Firewall | 53, 123 | DNS et NTP |
| 2 | Block | SERVEURS net | This Firewall | any | ||
| 3 | Pass | SERVEURS net | ! RESEAUX_PRIVES | PORTS_WEB | Mises à jour | |
| IOT | 1 | Pass | IOT net | This Firewall | 53, 123 | DNS et NTP |
| 2 | Block | IOT net | This Firewall | any | ||
| 3 | Pass | IOT net | ! RESEAUX_PRIVES | PORTS_WEB | Services en ligne des objets ; à resserrer appareil par appareil | |
| INVITES | 1 | Pass | INVITES net | INVITES address | 53 | DNS |
| 2 | Block | INVITES net | This Firewall | any | ||
| 3 | Pass | INVITES net | ! RESEAUX_PRIVES | any | Internet seulement | |
| DMZ | 1 | Pass | DMZ net | DMZ address | 53, 123 | DNS et NTP |
| 2 | Block | DMZ net | This Firewall | any | ||
| 3 | Pass | DMZ net | ! RESEAUX_PRIVES | PORTS_WEB | Mises à jour | |
| WAN | 1 | Pass | any | DMZ_WEB | 443 | Site publié (section 8) |
| 2 | Pass | any | WAN address | UDP 51820 | VPN WireGuard (section 9) |
Tout le reste est bloqué par la règle implicite : SERVEURS, IOT, INVITES et DMZ ne peuvent ouvrir aucune connexion vers les autres réseaux internes.
Les règles DHCP sont automatiques
Les échanges DHCP entre les appareils et Dnsmasq sont autorisés automatiquement sur les interfaces sélectionnées dans Dnsmasq : inutile d'écrire des règles pour eux.
Diffusion et découverte d'appareils
Les téléviseurs, enceintes et imprimantes se découvrent par mDNS, qui ne traverse pas les VLAN. Pour « caster » depuis les BUREAUX vers l'IOT, installez le plugin os-mdns-repeater (System › Firmware › Plugins) et autorisez les ports nécessaires de BUREAUX vers les appareils concernés, jamais l'inverse.
8. Publier un serveur en DMZ
Depuis la version 26.1, la redirection de ports s'appelle Destination NAT (Firewall › NAT › Destination NAT), et elle ne crée plus de règle de pare-feu associée : il faut écrire la règle WAN soi-même.
- Créez la redirection : WAN, TCP, destination WAN address port 443, redirection vers DMZ_WEB port 443.
- Créez la règle sur l'interface WAN : Pass, TCP, source any, destination DMZ_WEB, port 443 (règle 1 du tableau WAN). La règle porte sur l'adresse après traduction, celle du serveur.
- Pour que les postes internes joignent le site par son nom public, ne comptez pas sur la réflexion NAT : ajoutez un Host override dans Services › Unbound DNS › Overrides qui donne directement
10.10.60.10pourwww.exemple.fr.
Si plusieurs sites partagent le port 443, publiez un proxy inverse en DMZ (Caddy, Traefik, Nginx Proxy Manager, ou le plugin HAProxy d'OPNsense) qui répartit selon le nom demandé.
9. Sécuriser le pare-feu lui-même
Limiter l'accès à l'interface
System › Settings › Administration :
- Listen Interfaces : ADMIN et l'interface WireGuard uniquement.
- HTTP Redirect décoché, Secure Shell désactivé (ou limité à ADMIN avec des clés).
- La règle anti-lockout autorise toujours l'accès à l'interface depuis le LAN d'origine. Ne la désactivez qu'après avoir vérifié que la règle ADMIN (« Pass ADMIN net → any ») fonctionne, depuis un autre onglet.
- Double authentification : System › Access › Servers, ajoutez un serveur de type Local + Timebased One Time Password, puis générez le secret TOTP de chaque compte dans System › Access › Users. Basculez l'authentification de l'interface sur ce serveur dans System › Settings › Administration. Voir la double authentification.
- Créez un compte nominatif (par exemple
spo) avec les droits d'administration, et réservezrootaux urgences.
VPN WireGuard pour les nomades
- VPN › WireGuard › Instances, + : nom
nomades, port51820, adresse de tunnel10.10.99.1/24. Enregistrez, rouvrez l'instance et générez la paire de clés avec la roue dentée.
- VPN › WireGuard › Peers, + : un pair par appareil (
pc-spoen10.10.99.2/32,tel-spoen10.10.99.3/32) avec la clé publique de l'appareil. Le Peer generator fait tout en une fois et produit un QR code pour le téléphone. - Ajoutez les pairs à l'instance, puis activez WireGuard dans VPN › WireGuard › General.
- Interfaces › Assignments : affectez
wg0sous le nomWG_NOMADES, activez-la, cochez Lock, sans adresse IP. - Règle WAN : Pass, UDP, destination WAN address, port 51820.
- Règles WG_NOMADES : par exemple Pass
WG_NOMADES net→SERVEURS net(ports utiles) et →ADMIN netpour les administrateurs.
Configuration du client (application WireGuard officielle) :
[Interface]
PrivateKey = <clé privée de l'appareil>
Address = 10.10.99.2/32
DNS = 10.10.99.1
[Peer]
PublicKey = <clé publique de l'instance nomades>
Endpoint = vpn.exemple.fr:51820
AllowedIPs = 10.10.0.0/16
PersistentKeepalive = 25
AllowedIPs = 10.10.0.0/16 n'envoie dans le tunnel que le trafic vers les réseaux de l'entreprise. Mettez 0.0.0.0/0 pour y faire passer tout le trafic, en ajoutant alors une règle de NAT sortant pour le réseau du tunnel. Voir aussi l'accès à distance.
Détection d'intrusion (facultatif)
Services › Intrusion Detection › Administration : activez le service, choisissez l'interface WAN, téléchargez les jeux de règles (onglet Download, par exemple ET open), et commencez en mode détection seule quelques semaines avant de passer en blocage (IPS mode). La détection consomme du processeur : surveillez la charge.
Sauvegarder et mettre à jour
- System › Configuration › Backups : téléchargez la configuration (fichier XML), chiffrée avec un mot de passe, après chaque modification importante. Le plugin os-git-backup l'envoie automatiquement vers un dépôt Git privé.
- System › Firmware : appliquez les mises à jour mineures dès leur sortie (plusieurs par mois), et attendez quelques jours pour les versions majeures (janvier et juillet), le temps des premiers correctifs.
- La console (option 13) Restore a backup) permet de restaurer une configuration sur une installation neuve en quelques minutes.
10. Tester
Ne supposez pas que les règles fonctionnent : vérifiez-les depuis chaque zone.
| Depuis | Test | Résultat attendu |
|---|---|---|
| BUREAUX | nslookup www.exemple.fr puis ouvrir un site web |
Fonctionne |
| BUREAUX | Ouvrir https://10.10.10.1 |
Échoue (délai dépassé) |
| BUREAUX | Test-NetConnection 10.10.30.20 -Port 445 |
TcpTestSucceeded : True |
| INVITES | ping 10.10.20.1 puis ping 10.10.30.10 |
Échoue |
| IOT | Joindre un poste des BUREAUX | Échoue |
| DMZ | curl -I https://www.debian.org |
Fonctionne |
| DMZ | nc -zv 10.10.30.10 445 |
Échoue |
| Internet (4G) | https://www.exemple.fr |
Le site de la DMZ répond |
| Internet (4G) | Scanner l'adresse publique (nmap -Pn depuis une machine extérieure) |
Seuls 443/TCP et 51820/UDP répondent |
Les blocages sont visibles en direct dans Firewall › Log Files › Live View, avec un filtre sur l'interface ou l'adresse.
11. En cas de problème
| Symptôme | Cause probable | Solution |
|---|---|---|
| Plus d'accès à l'interface web | Anti-blocage désactivé trop tôt, ou mauvaise règle ADMIN | Depuis la console : 8) Shell, puis pfctl -d désactive le filtrage le temps de corriger ; pfctl -e le réactive |
| Rien ne sort sur Internet | WAN avec adresse privée et « Block private networks » coché | Décocher l'option sur le WAN en cas de double NAT |
| Un VLAN n'obtient pas d'adresse | Port du switch mal tagué, ou interface absente de Dnsmasq | Vérifier le trunk et le VLAN natif ; sélectionner l'interface dans Dnsmasq |
| Les noms internes ne se résolvent pas | Unbound ne transmet pas le domaine local à Dnsmasq | Query Forwarding vers 127.0.0.1:53053 |
| La redirection de port ne répond pas | Règle WAN manquante (non créée automatiquement depuis 26.1) | Ajouter la règle Pass vers l'adresse du serveur |
| Le VPN se connecte mais rien ne passe | Pas de règle sur WG_NOMADES, ou AllowedIPs incomplet | Ajouter les règles ; vérifier AllowedIPs côté client |
12. Liste de contrôle
| Point | Fait ? |
|---|---|
| OPNsense installé en ZFS, à jour, mot de passe root rangé | ☐ |
LAN renommé ADMIN en 10.10.10.1/24, VLAN 20 à 60 créés, affectés et adressés |
☐ |
| Switch configuré : trunk vers le pare-feu, VLAN natif 10, ports access par zone | ☐ |
| Dnsmasq distribue les adresses, Unbound résout et transmet le domaine local | ☐ |
| Alias créés avant les règles | ☐ |
| Règles écrites zone par zone selon la matrice des flux, avec descriptions | ☐ |
| Accès au pare-feu bloqué depuis BUREAUX, SERVEURS, IOT, INVITES et DMZ | ☐ |
| Redirection Destination NAT et règle WAN pour le seul serveur publié | ☐ |
| Interface d'administration limitée à ADMIN et au VPN, double authentification active | ☐ |
| VPN WireGuard opérationnel avec un pair par appareil | ☐ |
| Configuration sauvegardée, chiffrée, hors du pare-feu | ☐ |
| Tests réalisés depuis chaque zone et depuis Internet | ☐ |