Aller au contenu principal

Déployer un firewall opensource OPNsense

Prérequis​

Avant de commencer, il vous faut un compte Cloud Temple actif et les droits qui vont avec :

  • avoir souscrit à l'offre Cloud Temple ;
  • disposer des droits sur le module Compute.

Une fois ces éléments réunis, le déploiement ne prend que quelques minutes.

Ce qu'est OPNsense​

OPNsense est un pare-feu et routeur open source bâti sur FreeBSD. C'est un fork de pfSense né en 2014. Ses points forts :

  • une interface web claire et moderne ;
  • des mises à jour deux fois par semaine ;
  • une architecture modulaire avec un système de plugins ;
  • le support natif d'OpenVPN, WireGuard et IPsec.

Toute l'administration se fait depuis un navigateur. Une fois le réseau en place, on n'a donc plus jamais besoin d'un accès console.

Le principe du déploiement​

On monte deux machines virtuelles :

  • le firewall lui-même, déployé depuis le template OPNsense ;
  • une VM de management avec interface graphique, placée dans le même réseau que l'interface LAN du firewall. C'est depuis cette VM qu'on réalise la configuration initiale du firewall.

Le firewall a deux interfaces : LAN (côté réseau interne) et WAN (côté Internet).
Nous allons configurer l'interface LAN pour accéder à l'interface web du firewall pour pouvoir par la suite réaliser la configuration de l'accès Internet.

Étape 1 — Récupérer les paramètres réseau dans Shiva

Dans l'interface shiva de cloud temple vous aurez besoin de récupérer les elements suivants pour configurer la session BGP qui donne accès à internet

  • Préfixe public : votre bloc d'IP publiques (onglet « IP publiques »)
  • Préfixe d'interconnexion : le sous-réseau point-à-point qui porte la liaison BGP (onglet « IP d'interco »)
  • Adresse de passerelle partagée (onglet « IP d'interco »)
  • Local AS : le numéro d'AS de votre organisation
  • AS partenaire : le numéro d'AS de Cloud Temple
  • Keepalive timer : l'intervalle qui maintient la session BGP vivante
  • Hold-time timer : le délai avant que la session soit déclarée morte
  • Adresses des route servers : les serveurs avec qui on échange les routes

Gardez cette liste sous les yeux, on y reviendra à l'étape WAN.

Paramètres BGP dans Shiva IP publiques IP d'interco

Étape 2 — Déployer les deux VM

Depuis Shiva :

  1. déployez le firewall à partir du template OPNsense ;
  2. déployez la VM de management avec interface graphique, ici nous utilisons l'image Ubuntu 26.04 LTS disponible sur la Marketplace.

L'interface WAN de votre firewall doit être configurée dans votre vlan Internet avec une IP prise dans le préfixe d'interconnexion fourni par Shiva.

Étape 3 — Configurer le LAN et joindre l'interface web

Sur l'interface LAN du firewall, mettez une IP de votre réseau interne, avec son masque de sous-réseau et sa passerelle.

Paramètres LAN

Placez ensuite la VM de management dans ce même réseau.
Pour la démonstration nous utilisons Ubuntu 22.04, avec une IP du même sous-réseau attribuée via Netplan.

Ouvrez un navigateur sur la VM de management et entrez l'IP LAN du firewall.

Vous devriez maintenant pouvoir accéder à l'interface d'administration d'Opensense.

Login firewall

Identifiants par défaut Username : root Password : opnsense

Changez le mot de passe tout de suite

Avant d'aller plus loin, remplacez le mot de passe root par défaut.

Étape 4 — Configuration de l'interface WAN

Tout se passe désormais dans l'interface web.

4.1 — La passerelle​

Renseignez d'abord la passerelle WAN avec l'adresse de passerelle partagée notée à l'étape 1.

Gateway WAN

4.2 — L'interface WAN​

Configurez sur l'interface WAN une IP prise dans le préfixe d'interconnexion, et associez l'interface à la passerelle que vous venez de créer.

Interface WAN

Étape 5 — Monter la session BGP

5.1 — Activer le routage​

Allez dans Routing > General et cochez Enable.

Routing General Routing BGP

Renseignez ensuite les informations de connexion vers les route servers :

  • les IP des route servers ;
  • le numéro d'AS partenaire.
Pourquoi le multi-hop ?

Cochez la case multi-hop. Les route servers sont à plus d'un saut, or une session eBGP a un TTL de 1 par défaut : sans multi-hop, les paquets n'atteindraient jamais les serveurs.

PEER1 PEER2

5.2 — Routes statiques vers les route servers​

Dans Routing > Static, ajoutez les routes pour joindre ces serveurs (chacune en /32).

Activer les routes statiques Route RS1 Route RS2

5.3 — Redistribution des routes​

Autorisez la redistribution des routes statiques et connectées pour annoncer votre préfixe publique.

Redistribution des routes statiques Redistribution des routes connectées

5.4 — Vérifier la session​

Direction Routing > Diagnostic > BGP.
Si les paramètres son bons, le BGP State affiche established.

Peer 1 established Peer 2 established

Étape 6 — Annoncer le préfixe public

Toujours dans Routing > Static, créez une route qui pointe vers la loopback du firewall, cela crée une route « blackhole ».

Cette route permet d'annoncer votre préfixe publique aux routes servers.

Préfixe public / route blackhole

Étape 7 — Configurer le NAT

Pour finir, quelques règles NAT à saisir manuellement.
L'ordre compte : les règles « ne pas NATer » doivent passer avant les règles d'accès Internet, sinon le NAT s'applique au trafic BGP et la session tombe.

Ne pas faire de NAT avec les peers BGP (celle-ci en tout premier) :

Donner accès à Internet à votre réseau LAN :

Donner accès à Internet au firewall lui-même, pour ses mises à jour :

NAT Rules

Il ne reste plus qu'à tester la connectivité vers Internet depuis la machine de management :

ping

Conclusion

Le firewall OPNsense est déployé, les sessions BGP sont établies et votre préfixe public est annoncé.

Si besoin, la documentation officielle d'OPNsense.

https://docs.opnsense.org/index.html