<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Opnsense on slash-root.fr</title><link>https://slash-root.fr/tags/opnsense/</link><description>Recent content in Opnsense on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Wed, 22 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://slash-root.fr/tags/opnsense/index.xml" rel="self" type="application/rss+xml"/><item><title>OPNsense : Serveur WireGuard et client KDE en split tunnel</title><link>https://slash-root.fr/opnsense-serveur-wireguard-et-client-kde-en-split-tunnel/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://slash-root.fr/opnsense-serveur-wireguard-et-client-kde-en-split-tunnel/</guid><description>&lt;img src="https://slash-root.fr/opnsense-serveur-wireguard-et-client-kde-en-split-tunnel/cover.png" alt="Featured image of post OPNsense : Serveur WireGuard et client KDE en split tunnel" /&gt;&lt;p&gt;L&amp;rsquo;objectif est simple : pouvoir depuis mon laptop KDE joindre les machines du LAN derrière un OPNsense via WireGuard, sans pour autant envoyer tout mon trafic internet dans le tunnel. Autrement dit, un split tunnel propre : seul le réseau derrière le pare-feu passe par le VPN, le reste reste sur ma connexion classique.&lt;/p&gt;
&lt;p&gt;Depuis OPNsense 24.1, WireGuard est intégré au core. Plus besoin de jouer avec le plugin &lt;code&gt;os-wireguard&lt;/code&gt;, c&amp;rsquo;est déjà ça de gagné. La procédure reste assez directe, mais quelques points de routage sont à surveiller pour ne pas finir avec tout le trafic déporté sur le VPN.&lt;/p&gt;
&lt;p&gt;Voici le plan utilisé dans cet article :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;LAN derrière OPNsense&lt;/strong&gt; : &lt;code&gt;192.168.1.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Réseau du tunnel&lt;/strong&gt; : &lt;code&gt;10.10.10.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OPNsense (interface WireGuard, IP au sein du tunnel VPN)&lt;/strong&gt; : &lt;code&gt;10.10.10.1/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client KDE (IP au sein du tunnel VPN)&lt;/strong&gt; : &lt;code&gt;10.10.10.2/32&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Port UDP&lt;/strong&gt; : &lt;code&gt;51820&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; cet article traite uniquement l&amp;rsquo;&lt;strong&gt;IPv4&lt;/strong&gt;. L&amp;rsquo;&lt;strong&gt;IPv6&lt;/strong&gt; n&amp;rsquo;est pas abordé ici.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Let&amp;rsquo;s go !!!&lt;/p&gt;
&lt;h2 id="prérequis"&gt;&lt;a href="#pr%c3%a9requis" class="header-anchor"&gt;&lt;/a&gt;Prérequis
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;OPNsense accessible depuis Internet : IP publique sur son interface WAN, ou redirection du port UDP &lt;code&gt;51820&lt;/code&gt; depuis le routeur amont.&lt;/li&gt;
&lt;li&gt;Le client KDE dispose de &lt;code&gt;wireguard-tools&lt;/code&gt; et d&amp;rsquo;un NetworkManager gérant nativement WireGuard (à partir de la v1.16, ça marche out of the box sur la plupart des distros récentes).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="partie-1--opnsense-le-serveur-wireguard"&gt;&lt;a href="#partie-1--opnsense-le-serveur-wireguard" class="header-anchor"&gt;&lt;/a&gt;Partie 1 : OPNsense, le serveur WireGuard
&lt;/h2&gt;&lt;h3 id="création-de-linstance"&gt;&lt;a href="#cr%c3%a9ation-de-linstance" class="header-anchor"&gt;&lt;/a&gt;Création de l&amp;rsquo;instance
&lt;/h3&gt;&lt;p&gt;On commence par générer le serveur :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aller dans &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Instances&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Cliquer sur &lt;strong&gt;+&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Remplir comme suit :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Enabled : Coché
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Name : HomeWireGuard
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Public Key : Générer via la roue crantée
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Private Key : Générer en même temps
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Listen Port : 51820
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MTU : 1420 (1412 si PPPoE)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Tunnel Address : 10.10.10.1/24
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Peers : Laisser vide pour l&amp;#39;instant
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Disable Routes : Décoché
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le MTU de &lt;code&gt;1420&lt;/code&gt; tient compte de l&amp;rsquo;overhead d&amp;rsquo;encapsulation WireGuard (en-têtes IP/UDP/WireGuard, soit environ 60 à 80 octets). Ainsi, le paquet final reste sous les 1500 octets d&amp;rsquo;un lien Ethernet standard. En PPPoE, le MTU physique est souvent 1492, d&amp;rsquo;où la valeur &lt;code&gt;1412&lt;/code&gt;.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Note :&lt;/strong&gt; si on active le mode avancé, laissez le champ &lt;strong&gt;DNS Server&lt;/strong&gt; vide. Sinon WireGuard écrase la config DNS d&amp;rsquo;OPNsense et c&amp;rsquo;est la galère.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Sauvegarder, rouvrir l&amp;rsquo;instance et &lt;strong&gt;copier la clé publique&lt;/strong&gt; générée. Elle servira à configurer le client KDE.&lt;/p&gt;
&lt;h3 id="création-du-peer-client"&gt;&lt;a href="#cr%c3%a9ation-du-peer-client" class="header-anchor"&gt;&lt;/a&gt;Création du peer client
&lt;/h3&gt;&lt;p&gt;Il faut maintenant déclarer le client. Pour ça, il faut sa clé publique. On peut la générer directement sur le client KDE (voir partie 2) et la copier ici, ou utiliser le &lt;strong&gt;Peer Generator&lt;/strong&gt; intégré à OPNsense. Moi je préfère générer les clés sur le client pour ne pas stocker la privée ailleurs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aller dans &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Peers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Cliquer sur &lt;strong&gt;+&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Enabled : Coché
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Name : MonPC_KDE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Public Key : &amp;lt;clé publique du client KDE&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Allowed IPs : 10.10.10.2/32
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Keepalive : 25
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le &lt;code&gt;Keepalive&lt;/code&gt; à 25 secondes, c&amp;rsquo;est utile quand le client est derrière un NAT ou un pare-feu qui ferme les states trop vite.&lt;/p&gt;
&lt;p&gt;Sauvegarder, puis retourner dans &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Instances&lt;/strong&gt;, éditer &lt;code&gt;HomeWireGuard&lt;/code&gt; et sélectionner le peer &lt;code&gt;MonPC_KDE&lt;/code&gt;. &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="méthode-alternative--le-peer-generator"&gt;&lt;a href="#m%c3%a9thode-alternative--le-peer-generator" class="header-anchor"&gt;&lt;/a&gt;Méthode alternative : le Peer Generator
&lt;/h3&gt;&lt;p&gt;Si vous devez créer plusieurs clients, ou si vous voulez générer directement le fichier de config sans taper de clés à la main, OPNsense intègre un &lt;strong&gt;Peer Generator&lt;/strong&gt; sous &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Peer generator&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sélectionner l&amp;rsquo;instance &lt;code&gt;HomeWireGuard&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Remplir les champs :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Name : MonPC_KDE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Endpoint Address: &amp;lt;ip_publique_ou_domaine_opnsense&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Endpoint Port : 51820
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Allowed IPs : 10.10.10.2/32
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DNS : laisser vide, ou 10.10.10.1 si vous voulez utiliser le DNS d&amp;#39;OPNsense
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Cliquer sur &lt;strong&gt;Generate&lt;/strong&gt;. Le générateur crée :
&lt;ul&gt;
&lt;li&gt;la paire de clés du client&lt;/li&gt;
&lt;li&gt;le peer côté OPNsense (seule la clé publique est stockée)&lt;/li&gt;
&lt;li&gt;une config prête à copier/coller ou à scanner en QR code&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Attention :&lt;/strong&gt; la config générée met souvent &lt;code&gt;AllowedIPs = 0.0.0.0/0, ::/0&lt;/code&gt; côté client. Si vous voulez du split tunnel, il faut remplacer cette ligne par &lt;code&gt;AllowedIPs = 10.10.10.0/24, 192.168.1.0/24&lt;/code&gt; dans le fichier récupéré avant de l&amp;rsquo;importer dans NetworkManager. Sinon tout le trafic partira dans le tunnel.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Cliquer sur &lt;strong&gt;Store and generate next&lt;/strong&gt; pour valider le peer dans OPNsense, puis &lt;strong&gt;Apply&lt;/strong&gt; dans &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Peers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;La clé privée n&amp;rsquo;est pas conservée sur le firewall : copiez-la dans &lt;code&gt;/etc/wireguard/wg0.conf&lt;/code&gt; sur le client, ou scannez le QR code depuis un téléphone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C&amp;rsquo;est nettement plus rapide quand il y a plusieurs road warriors à déployer.&lt;/p&gt;
&lt;h3 id="activation-de-wireguard"&gt;&lt;a href="#activation-de-wireguard" class="header-anchor"&gt;&lt;/a&gt;Activation de WireGuard
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; General&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Cocher &lt;strong&gt;Enable&lt;/strong&gt;, puis &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Si besoin, redémarrer WireGuard en le décochant/re-cochant.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="assigner-une-interface-recommandé"&gt;&lt;a href="#assigner-une-interface-recommand%c3%a9" class="header-anchor"&gt;&lt;/a&gt;Assigner une interface (recommandé)
&lt;/h3&gt;&lt;p&gt;Ce n&amp;rsquo;est pas strictement obligatoire pour un split tunnel, mais ça simplifie les règles firewall et ça crée l&amp;rsquo;alias &lt;code&gt;HomeWireGuard net&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interfaces &amp;gt; Assignments&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Sélectionner le device &lt;code&gt;wg1&lt;/code&gt; (ou &lt;code&gt;wg0&lt;/code&gt; selon l&amp;rsquo;installation) et l&amp;rsquo;ajouter.&lt;/li&gt;
&lt;li&gt;Description : &lt;code&gt;HomeWireGuard&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Éditer l&amp;rsquo;interface :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Enable : Coché
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Description : HomeWireGuard
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;IPv4 Configuration Type : None
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;IPv6 Configuration Type : None
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Save&lt;/strong&gt; puis &lt;strong&gt;Apply changes&lt;/strong&gt;. Redémarrer WireGuard si l&amp;rsquo;interface ne remonte pas proprement.&lt;/p&gt;
&lt;h3 id="règles-firewall"&gt;&lt;a href="#r%c3%a8gles-firewall" class="header-anchor"&gt;&lt;/a&gt;Règles firewall
&lt;/h3&gt;&lt;h4 id="1-autoriser-les-connexions-entrantes-sur-le-wan"&gt;&lt;a href="#1-autoriser-les-connexions-entrantes-sur-le-wan" class="header-anchor"&gt;&lt;/a&gt;1. Autoriser les connexions entrantes sur le WAN
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Firewall &amp;gt; Rules &amp;gt; WAN&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ajouter une règle :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Action : Pass
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Quick : Coché
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Interface : WAN
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Direction : in
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Protocol : UDP
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Source : any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Destination : WAN address
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Destination port: 51820
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="2-autoriser-le-trafic-depuis-le-tunnel-vers-le-lan"&gt;&lt;a href="#2-autoriser-le-trafic-depuis-le-tunnel-vers-le-lan" class="header-anchor"&gt;&lt;/a&gt;2. Autoriser le trafic depuis le tunnel vers le LAN
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Firewall &amp;gt; Rules &amp;gt; HomeWireGuard&lt;/strong&gt; (ou &lt;code&gt;WireGuard&lt;/code&gt; si vous n&amp;rsquo;avez pas assigné d&amp;rsquo;interface).&lt;/li&gt;
&lt;li&gt;Ajouter une règle :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Action : Pass
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Quick : Coché
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Interface : HomeWireGuard
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Protocol : any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Source : HomeWireGuard net
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Destination : LAN net
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est cette règle qui autorise le client KDE à joindre les machines du LAN.&lt;/p&gt;
&lt;h3 id="normalisation-mss-optionnel-mais-fortement-recommandé"&gt;&lt;a href="#normalisation-mss-optionnel-mais-fortement-recommand%c3%a9" class="header-anchor"&gt;&lt;/a&gt;Normalisation MSS (optionnel mais fortement recommandé)
&lt;/h3&gt;&lt;p&gt;Le &lt;strong&gt;MSS&lt;/strong&gt; (Maximum Segment Size) est la taille maximale de la charge utile d&amp;rsquo;un segment TCP. Comme WireGuard encapsule les paquets (en-têtes UDP/IP/WireGuard), le MTU utile du tunnel est réduit. Les hôtes du LAN peuvent négocier un MSS basé sur l&amp;rsquo;interface locale (1500 octets), ce qui donnerait des paquets trop gros une fois encapsulés. Le &lt;strong&gt;MSS clamping&lt;/strong&gt; force la valeur négociée à &lt;code&gt;MTU_tunnel - 40&lt;/code&gt; pour IPv4, soit &lt;code&gt;1380&lt;/code&gt; avec un MTU de &lt;code&gt;1420&lt;/code&gt;. L&amp;rsquo;IPv6 n&amp;rsquo;est pas traité ici.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Firewall &amp;gt; Settings &amp;gt; Normalization&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Ajouter une règle sur l&amp;rsquo;interface &lt;strong&gt;WireGuard (Group)&lt;/strong&gt; :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Direction : Any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Protocol : any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Source : any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Destination : any
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Description : WireGuard MSS Clamping IPv4
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Max mss : 1380
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="nat-outbound"&gt;&lt;a href="#nat-outbound" class="header-anchor"&gt;&lt;/a&gt;NAT outbound
&lt;/h3&gt;&lt;p&gt;Pour un split tunnel pur, &lt;strong&gt;pas besoin de NAT outbound&lt;/strong&gt;. OPNsense sait router le trafic entre &lt;code&gt;HomeWireGuard&lt;/code&gt; et &lt;code&gt;LAN&lt;/code&gt; car les deux réseaux lui sont directement attachés. Si jamais OPNsense n&amp;rsquo;est pas la passerelle par défaut du LAN, alors il faudra activer le NAT outbound ou ajouter une route statique sur le routeur intermédiaire.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="partie-2--kde-le-client-wireguard"&gt;&lt;a href="#partie-2--kde-le-client-wireguard" class="header-anchor"&gt;&lt;/a&gt;Partie 2 : KDE, le client WireGuard
&lt;/h2&gt;&lt;h3 id="génération-des-clés"&gt;&lt;a href="#g%c3%a9n%c3%a9ration-des-cl%c3%a9s" class="header-anchor"&gt;&lt;/a&gt;Génération des clés
&lt;/h3&gt;&lt;p&gt;Sur le poste KDE :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wg genkey | tee private.key | wg pubkey &amp;gt; public.key
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;public.key&lt;/code&gt; : à copier dans le peer OPNsense (étape &amp;ldquo;Création du peer client&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;private.key&lt;/code&gt; : reste sur le client, ne jamais la balancer sur un chat.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fichier-de-configuration-wg0conf"&gt;&lt;a href="#fichier-de-configuration-wg0conf" class="header-anchor"&gt;&lt;/a&gt;Fichier de configuration &lt;code&gt;wg0.conf&lt;/code&gt;
&lt;/h3&gt;&lt;p&gt;Créer &lt;code&gt;/etc/wireguard/wg0.conf&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Interface]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PrivateKey&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;lt;contenu de private.key&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Address&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;10.10.10.2/32&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# DNS optionnel, par exemple si vous voulez utiliser le DNS d&amp;#39;OPNsense&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# DNS = 10.10.10.1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Peer]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PublicKey&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;lt;clé publique d&amp;#39;OPNsense&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;AllowedIPs&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;10.10.10.0/24, 192.168.1.0/24&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Endpoint&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;lt;ip_publique_ou_domaine_opnsense&amp;gt;:51820&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PersistentKeepalive&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;25&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Le point crucial du split tunnel&lt;/strong&gt; : &lt;code&gt;AllowedIPs&lt;/code&gt; ne contient &lt;strong&gt;pas&lt;/strong&gt; &lt;code&gt;0.0.0.0/0&lt;/code&gt;. Seuls les réseaux à atteindre derrière OPNsense (&lt;code&gt;192.168.1.0/24&lt;/code&gt;) et le tunnel (&lt;code&gt;10.10.10.0/24&lt;/code&gt;) y figurent. Ainsi, seul ce trafic est routé vers &lt;code&gt;wg0&lt;/code&gt; ; le reste (internet) reste sur l&amp;rsquo;interface classique.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="import-dans-networkmanager"&gt;&lt;a href="#import-dans-networkmanager" class="header-anchor"&gt;&lt;/a&gt;Import dans NetworkManager
&lt;/h3&gt;&lt;h4 id="en-ligne-de-commande-plus-fiable"&gt;&lt;a href="#en-ligne-de-commande-plus-fiable" class="header-anchor"&gt;&lt;/a&gt;En ligne de commande (plus fiable)
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nmcli connection import type wireguard file /etc/wireguard/wg0.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puis on s&amp;rsquo;assure que NetworkManager ne met pas cette connexion en passerelle par défaut :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nmcli connection modify wg0 ipv4.never-default yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="en-graphique-kde-plasma"&gt;&lt;a href="#en-graphique-kde-plasma" class="header-anchor"&gt;&lt;/a&gt;En graphique (KDE Plasma)
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Ouvrir &lt;strong&gt;Paramètres système &amp;gt; Connexions&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ajouter une connexion &amp;gt; WireGuard&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Onglet &lt;strong&gt;WireGuard&lt;/strong&gt; :
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Private key&lt;/strong&gt; : coller la clé privée.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peers&lt;/strong&gt; : ajouter le peer avec la clé publique d&amp;rsquo;OPNsense, l&amp;rsquo;endpoint, et &lt;code&gt;Allowed IPs = 10.10.10.0/24, 192.168.1.0/24&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Onglet &lt;strong&gt;IPv4&lt;/strong&gt; :
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Méthode&lt;/strong&gt; : &lt;code&gt;Manuel&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adresse&lt;/strong&gt; : &lt;code&gt;10.10.10.2/32&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Laisser la &lt;strong&gt;passerelle vide&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Cocher &lt;strong&gt;Utiliser cette connexion uniquement pour les ressources de ce réseau&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Sauvegarder et activer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si l&amp;rsquo;option WireGuard n&amp;rsquo;apparaît pas dans l&amp;rsquo;interface graphique, vérifier que &lt;code&gt;wireguard-tools&lt;/code&gt; est bien installé et que NetworkManager est assez récent.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="vérifications"&gt;&lt;a href="#v%c3%a9rifications" class="header-anchor"&gt;&lt;/a&gt;Vérifications
&lt;/h2&gt;&lt;p&gt;Sur le client KDE, une fois connecté :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip route show
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On doit voir quelque chose comme :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;default via 192.168.0.1 dev eth0 proto dhcp metric 100
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;10.10.10.0/24 dev wg0 proto static scope link
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;192.168.1.0/24 dev wg0 proto static scope link
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;L&amp;rsquo;important : la route &lt;code&gt;default&lt;/code&gt; pointe toujours vers l&amp;rsquo;interface locale. Les routes &lt;code&gt;10.10.10.0/24&lt;/code&gt; et &lt;code&gt;192.168.1.0/24&lt;/code&gt; pointent vers &lt;code&gt;wg0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tests basiques :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ping 10.10.10.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ping 192.168.1.x
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vérifier que l&amp;rsquo;IP publique vue depuis le navigateur n&amp;rsquo;a pas changé (le trafic internet ne passe pas par le VPN) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -4 ifconfig.me
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Côté OPNsense, on peut surveiller l&amp;rsquo;état dans &lt;strong&gt;VPN &amp;gt; WireGuard &amp;gt; Status&lt;/strong&gt;. On doit voir le peer &lt;code&gt;MonPC_KDE&lt;/code&gt; avec un handshake récent et du trafic RX/TX.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OPNsense&lt;/strong&gt; : instance &lt;code&gt;HomeWireGuard&lt;/code&gt; (&lt;code&gt;10.10.10.1/24&lt;/code&gt;), peer &lt;code&gt;MonPC_KDE&lt;/code&gt; (&lt;code&gt;10.10.10.2/32&lt;/code&gt;), firewall WAN UDP &lt;code&gt;51820&lt;/code&gt; + règle &lt;code&gt;HomeWireGuard net → LAN net&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Client KDE&lt;/strong&gt; : &lt;code&gt;AllowedIPs = 10.10.10.0/24, 192.168.1.0/24&lt;/code&gt;, &lt;code&gt;ipv4.never-default yes&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Résultat&lt;/strong&gt; : les machines du LAN derrière OPNsense sont accessibles, mais internet continue de sortir par la connexion locale. Pas de fuites, pas de ralentissements inutiles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et si un jour vous voulez forcer tout le trafic par le VPN, il suffit de remplacer &lt;code&gt;AllowedIPs&lt;/code&gt; par &lt;code&gt;0.0.0.0/0&lt;/code&gt; côté client et d&amp;rsquo;ajouter le NAT outbound sur OPNsense. Mais ce n&amp;rsquo;est pas le sujet d&amp;rsquo;aujourd&amp;rsquo;hui.&lt;/p&gt;</description></item><item><title>OPNsense : Configuration du NAT Reflection</title><link>https://slash-root.fr/opnsense-configuration-du-nat-reflection/</link><pubDate>Sat, 08 Feb 2025 16:23:40 +0100</pubDate><guid>https://slash-root.fr/opnsense-configuration-du-nat-reflection/</guid><description>&lt;img src="https://slash-root.fr/opnsense-configuration-du-nat-reflection/cover.jpg" alt="Featured image of post OPNsense : Configuration du NAT Reflection" /&gt;&lt;p&gt;Lors de la mise en place de services web ou d'applications sur son réseau local, on se retrouve souvent confronté à un problème courant : comment accéder à ces services depuis l'intérieur du réseau en utilisant la même adresse que les utilisateurs externes ? C'est là qu'intervient le NAT Reflection dans OPNsense, une fonctionnalité puissante mais parfois mal comprise.&lt;/p&gt;
&lt;p&gt;Dans cet article, nous allons voir comment configurer correctement les options du NAT Reflection pour permettre un accès transparent à vos services, que ce soit depuis l'extérieur ou l'intérieur de votre réseau.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="configuration-des-options-du-nat-reflection"&gt;&lt;a href="#configuration-des-options-du-nat-reflection" class="header-anchor"&gt;&lt;/a&gt;Configuration des options du NAT Reflection
&lt;/h2&gt;&lt;p&gt;Pour configurer le NAT Reflection dans OPNsense, suivez ces étapes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;code&gt;Firewall&lt;/code&gt; (1), &lt;code&gt;Settings&lt;/code&gt; (2), puis &lt;code&gt;Advanced&lt;/code&gt; (3)&lt;/li&gt;
&lt;li&gt;Faire défiler jusqu'à la section &lt;code&gt;Network Address Translation&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="01.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Deux options importantes sont à configurer :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Reflection for port forwards&lt;/code&gt; : Cette option permet aux clients du réseau local d'accéder aux services redirigés via l'adresse IP publique du pare-feu.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Automatic outbound NAT for Reflection&lt;/code&gt; : Cette option configure automatiquement les règles NAT sortantes nécessaires pour le NAT Reflection.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2 id="cas-dutilisation"&gt;&lt;a href="#cas-dutilisation" class="header-anchor"&gt;&lt;/a&gt;Cas d&amp;rsquo;utilisation
&lt;/h2&gt;&lt;p&gt;Le NAT Reflection est particulièrement utile dans plusieurs scénarios :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hébergement d'un serveur web accessible via un nom de domaine&lt;/li&gt;
&lt;li&gt;Services internes nécessitant une URL cohérente (interne/externe)&lt;/li&gt;
&lt;li&gt;Applications utilisant des redirections de ports&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Par exemple, si vous hébergez un site web &lt;code&gt;monsite.com&lt;/code&gt; qui pointe vers votre IP publique, le NAT Reflection permettra aux utilisateurs internes d'accéder au site via &lt;code&gt;monsite.com&lt;/code&gt; au lieu d'utiliser une adresse IP locale.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="points-dattention"&gt;&lt;a href="#points-dattention" class="header-anchor"&gt;&lt;/a&gt;Points d&amp;rsquo;attention
&lt;/h2&gt;&lt;p&gt;Quelques points importants à garder à l'esprit :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le NAT Reflection peut légèrement impacter les performances du pare-feu&lt;/li&gt;
&lt;li&gt;Activez ces options uniquement si nécessaire&lt;/li&gt;
&lt;li&gt;Vérifiez régulièrement les logs pour détecter d'éventuelles anomalies&lt;/li&gt;
&lt;li&gt;Utilisez des règles de pare-feu strictes pour contrôler l'accès&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2 id="application-des-changements"&gt;&lt;a href="#application-des-changements" class="header-anchor"&gt;&lt;/a&gt;Application des changements
&lt;/h2&gt;&lt;p&gt;Une fois les options configurées :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cliquer sur &lt;code&gt;Save&lt;/code&gt; en bas de la page&lt;/li&gt;
&lt;li&gt;Appliquer les changements en cliquant sur &lt;code&gt;Apply&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Tester l'accès à vos services depuis le réseau local&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Le NAT Reflection est une fonctionnalité essentielle d'OPNsense qui, une fois correctement configurée, permet une gestion transparente des services hébergés. Les deux options présentées ici simplifient grandement sa mise en œuvre tout en maintenant la sécurité du réseau.&lt;/p&gt;
&lt;p&gt;N'hésitez pas à activer ces options si vous avez besoin d'accéder à vos services hébergés via l'adresse IP publique depuis votre réseau local. Cependant, gardez toujours à l'esprit l'impact potentiel sur la sécurité et surveillez régulièrement votre configuration.&lt;/p&gt;</description></item><item><title>OPNsense : Block malicious IPs</title><link>https://slash-root.fr/opnsense-block-malicious-ips/</link><pubDate>Thu, 21 Mar 2024 10:08:02 +0100</pubDate><guid>https://slash-root.fr/opnsense-block-malicious-ips/</guid><description>&lt;img src="https://slash-root.fr/opnsense-block-malicious-ips/cover.jpg" alt="Featured image of post OPNsense : Block malicious IPs" /&gt;&lt;p&gt;Un jour, j'ai décidé d'ajouter des blocklists à mes instances Crowdsec. Tout fier, j'en informe mon copain BoB sur Discord. C'est à ce moment là, qu'il me répond : &amp;quot;Hey, rajoute cette liste comportant + de 200k IP !&amp;quot;&lt;/p&gt;
&lt;p&gt;Cette fameuse liste est disponible sur ce dépôt git : &lt;a href="https://github.com/duggytuxy/Intelligence_IPv4_Blocklist"&gt;https://github.com/duggytuxy/Intelligence_IPv4_Blocklist&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;En complément : Un clin dœil à Romain Marcoux pour ses travaux open source liés autour de la CTI : &lt;a href="https://github.com/romainmarcoux"&gt;https://github.com/romainmarcoux&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;La communauté BE.CYBER a même découpé cette liste pour bypass la limitation des équipements Fortinet. Pour ici, pas besoin de la découper puisque je vais présenter comment la mettre en place sur OPNsense et la mettre à jour automatiquement.&lt;/p&gt;
&lt;p&gt;Allez, c'est parti !&lt;/p&gt;
&lt;h2 id="mise-en-place-dun-alias"&gt;&lt;a href="#mise-en-place-dun-alias" class="header-anchor"&gt;&lt;/a&gt;Mise en place d&amp;rsquo;un alias
&lt;/h2&gt;&lt;p&gt;Pour la mise en place de la liste, il faudra créer un alias. C'est également grâce à cet alias qua liste se mettra à jour automatiquement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tout d'abord, se rendre dans &lt;code&gt;Firewall&lt;/code&gt; (1), &lt;code&gt;Aliases&lt;/code&gt; (2). Puis, ajouter un nouvel alias (3).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_01.png" alt="image-20240321091150291" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;5 champs à remplir :
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt; (1) : Le nom qui permettra d'utiliser cet alias dans les règles du firewall.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type&lt;/strong&gt; (2) : Sélectionner &lt;code&gt;URL Table (IPs)&lt;/code&gt;. Cela va permettre d'indiquer une fréquence de mise à jour.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refresh Frequency&lt;/strong&gt; (3) : Indiquer la fréquence de mise à jour de la liste. Ici, tous les jours.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Content&lt;/strong&gt; (4) : La fameuse liste au format raw.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Description&lt;/strong&gt; (5) : Le nom de ce champs parle de lui-même.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_02.png" alt="image-20240321091835085" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Lien de la liste : [Update 13/09/2025] &lt;a href="https://raw.githubusercontent.com/duggytuxy/Data-Shield_IPv4_Blocklist/refs/heads/main/prod_data-shield_ipv4_blocklist.txt"&gt;https://raw.githubusercontent.com/duggytuxy/Data-Shield_IPv4_Blocklist/refs/heads/main/prod_data-shield_ipv4_blocklist.txt&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Valider en cliquant sur &lt;code&gt;Save&lt;/code&gt;, puis &lt;code&gt;Apply&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La liste est mise en place avec &lt;strong&gt;8309&lt;/strong&gt; entrées à ce jour (1) à travers ce nouvel alias. De plus, on peut constater que le firewall d'OPNsense peut comporter jusqu'à 1 millions d'entrées par défaut (2).&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_07.png" alt="image-20240321091835066" /&gt;&lt;/p&gt;
&lt;h2 id="augmenter-le-nombre-dentrées"&gt;&lt;a href="#augmenter-le-nombre-dentr%c3%a9es" class="header-anchor"&gt;&lt;/a&gt;Augmenter le nombre d&amp;rsquo;entrées
&lt;/h2&gt;&lt;p&gt;Si cette limite d'un million d'entrées dans le système n'est pas suffisante, il est possible de l'augmenter.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;code&gt;Firewall&lt;/code&gt; (1), &lt;code&gt;Settings&lt;/code&gt; (2), &lt;code&gt;Advanced&lt;/code&gt; (3), et indiquer le nombre désiré (4).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_03.png" alt="image-20240321093750139" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Valider en cliquant sur &lt;code&gt;Save&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="configuration-des-règles-du-firewall"&gt;&lt;a href="#configuration-des-r%c3%a8gles-du-firewall" class="header-anchor"&gt;&lt;/a&gt;Configuration des règles du firewall
&lt;/h2&gt;&lt;p&gt;Pour bloquer ces IPs malicieuses en entrées comme en sorties du firewall, il est nécessaire de créer 2 nouvelles règles. Pour réaliser ça, les définir dans &lt;strong&gt;Floating&lt;/strong&gt; est intéressant. Ainsi ces règles vont s'appliquer sur toutes les interfaces en priorité.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;code&gt;Firewall&lt;/code&gt; (1), &lt;code&gt;Rules&lt;/code&gt; (2), &lt;code&gt;Floating&lt;/code&gt; (3). Puis ajouter une nouvelle règle (4).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_04.png" alt="image-20240321094221058" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;4 champs importants :
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Action&lt;/strong&gt; (1) : Par défaut, ce champs sera sur Pass. Le modifier pour &lt;code&gt;Block&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Direction&lt;/strong&gt; (2) : Peu importe la direction, on bloque ! Donc, &lt;code&gt;any&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Source&lt;/strong&gt; (3) : Sélectionner l'alias créé précédemment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Destination&lt;/strong&gt; (4) : Peu importe la destination ! Donc, &lt;code&gt;any&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_05.png" alt="image-20240321095026838" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Valider en cliquant sur &lt;code&gt;Save&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Créer une seconde règle identique à la première mais en inversant &lt;code&gt;Source&lt;/code&gt; et &lt;code&gt;Destination&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ne pas oublier de cliquer sur &lt;code&gt;Apply&lt;/code&gt; pour valider l'ajout de ces 2 règles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="opnsense_malicious_06.png" alt="image-20240321095749005" /&gt;&lt;/p&gt;
&lt;p&gt;Voilà, c'est mis en place !&lt;/p&gt;
&lt;p&gt;Bien évidemment, il est possible d'activer les logs sur ces 2 règles afin d'en mesurer l'impact et/ou pouvoir les remonter dans un SIEM par exemple.&lt;/p&gt;</description></item><item><title>OPNsense : Déploiement d’une instance sur OVHcloud [Partie 2/2]</title><link>https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-2-2/</link><pubDate>Fri, 18 Nov 2022 15:17:42 +0100</pubDate><guid>https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-2-2/</guid><description>&lt;img src="https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-2-2/cover.png" alt="Featured image of post OPNsense : Déploiement d’une instance sur OVHcloud [Partie 2/2]" /&gt;&lt;p&gt;Cet article fait suite à mon précédent &lt;a href="https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-1-2/" title="**OPNsense : Déploiement d&amp;#039;une instance sur OVHcloud [Partie 1/2]**"&gt;&lt;strong&gt;OPNsense : Déploiement d'une instance sur OVHcloud [Partie 1/2]&lt;/strong&gt;&lt;/a&gt; afin d'avoir un routeur opensource exploitable.&lt;/p&gt;
&lt;h2 id="configuration-ip"&gt;&lt;a href="#configuration-ip" class="header-anchor"&gt;&lt;/a&gt;Configuration IP
&lt;/h2&gt;&lt;h3 id="1er-démarrage"&gt;&lt;a href="#1er-d%c3%a9marrage" class="header-anchor"&gt;&lt;/a&gt;1er démarrage
&lt;/h3&gt;&lt;p&gt;Lors du 1er démarrage de l'instance OPNsense, un écran similaire à celui-ci est affiché :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111601.png" alt="image-20221116152115304" /&gt;&lt;/p&gt;
&lt;p&gt;L'adressage IP des différentes interfaces réseaux est à paramétrer.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Attention à la dénomination de LAN et de WAN. A ce stade, l'attribution du LAN et du WAN fait par l'installateur est incorrect. En réalite :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;vtnet0&lt;/code&gt; = Adresse IP publique soit le &lt;code&gt;WAN&lt;/code&gt; pour l'instance&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vtnet1&lt;/code&gt; = Adresse IP du vRack soit le &lt;code&gt;LAN&lt;/code&gt; pour l'instance&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3 id="se-connecter"&gt;&lt;a href="#se-connecter" class="header-anchor"&gt;&lt;/a&gt;Se connecter
&lt;/h3&gt;&lt;p&gt;Pour réaliser la configuration IP nécessaire, il faut tout d'abord se connecter dans la console.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Login : root&lt;/li&gt;
&lt;li&gt;Password : opnsense&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le menu d'administration de la console est maintenant disponible :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111602.png" alt="image-20221116153145030" /&gt;&lt;/p&gt;
&lt;h3 id="assignation-des-interfaces"&gt;&lt;a href="#assignation-des-interfaces" class="header-anchor"&gt;&lt;/a&gt;Assignation des interfaces
&lt;/h3&gt;&lt;p&gt;Comme évoqué précédemment, l'attribution des interfaces faites par l'installeur est erronée. Il faut donc refaire l'assignation des 2 interfaces.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faire le choix 1 : &lt;strong&gt;Assign interfaces&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Do you want to configure LAGGS now ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Do you want to configure VLANs now ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the WAN interface name : &lt;strong&gt;vtnet0&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the LAN interface name : &lt;strong&gt;vtnet1&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the Optional interface 1 name : &lt;strong&gt;Press Enter&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le récapitulatif suivant doit être affiché :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;The interfaces will be assigned as follows :
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WAN -&amp;gt; vtnet0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LAN -&amp;gt; vtnet1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Appliquer les modifications
&lt;ul&gt;
&lt;li&gt;Do you want to proceed ? : &lt;strong&gt;Y&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A présent, les interfaces sont correctement assignées. L'adresse IP publique est récupérée par le DHCP d'OVH sur l'interface WAN.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111603.png" alt="image-20221116161807533" /&gt;&lt;/p&gt;
&lt;h3 id="paramétrage-ip"&gt;&lt;a href="#param%c3%a9trage-ip" class="header-anchor"&gt;&lt;/a&gt;Paramétrage IP
&lt;/h3&gt;&lt;p&gt;Avant d'aller plus loin, il va falloir récupérer quelques informations sur l'instance :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'adresse IP publique et sa passerelle : Ces informations sont disponibles dans le tableau de bord de l'instance.&lt;/li&gt;
&lt;li&gt;L'adresse IP sur le vRack : Cette information est disponible dans la liste des instances (colonne IP privée).&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Attention au masque de sous-réseau :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;IP publique = Masque de sous-réseau en 32 bits&lt;/li&gt;
&lt;li&gt;IP privée vRack = Masque de sous-réseau en 16 bits&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Puis passer au paramétrage des adresses IP sur OPNsense dans la console VNC :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faire le choix 2 : &lt;strong&gt;Set interface IP address&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Available interfaces :
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; - LAN &lt;span style="color:#f92672"&gt;(&lt;/span&gt;vtnet1 - static, track6&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; - WAN &lt;span style="color:#f92672"&gt;(&lt;/span&gt;vtnet0 - dhcp, dhcp6&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Paramétrer d'abord l'interface WAN
&lt;ul&gt;
&lt;li&gt;Enter the number of the interface to configure : &lt;strong&gt;2&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Configure IPv4 address WAN interface via DHCP ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new WAN IPv4 address : &lt;strong&gt;Adresse IP publique&lt;/strong&gt; relevée précédement&lt;/li&gt;
&lt;li&gt;Enter the new WAN IPv4 subnet bit count : &lt;strong&gt;32&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new WAN IPv4 upstream gateway address : &lt;strong&gt;Adresse passerelle / gateway&lt;/strong&gt; relevé précédement&lt;/li&gt;
&lt;li&gt;Do you want to use the gateway as the IPv4 name server, too ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the IPv4 name server : &lt;strong&gt;213.186.33.99&lt;/strong&gt; (DNS OVH)&lt;/li&gt;
&lt;li&gt;Configure IPv6 address WAN interface via DHCP6 ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new WAN IPv6 address : &lt;strong&gt;Press Enter&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Do you want to change the web GUI protocol from HTTPS to HTTP ? : &lt;strong&gt;N&lt;/strong&gt; (Un certificat SSL Let's Encrypt sera appliqué plus bas)&lt;/li&gt;
&lt;li&gt;Do you want to generate a new self-signed web GUI certificate ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Restore web GUI access defaults ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'interface WAN est paramétrée.&lt;/p&gt;
&lt;p&gt;Maintenant, passer au paramétrage de l'interface LAN:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Refaire le choix 2 : &lt;strong&gt;Set interface IP address&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Enter the number of the interface to configure : &lt;strong&gt;1&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Configure IPv4 address LAN interface via DHCP ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new LAN IPv4 address : &lt;strong&gt;Adresse IP privée&lt;/strong&gt; du vRack relevée précédement&lt;/li&gt;
&lt;li&gt;Enter the new LAN IPv4 subnet bit count : &lt;strong&gt;16&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new LAN IPv4 upstream gateway address : &lt;strong&gt;Press Enter&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Configure IPv6 address LAN interface via DHCP6 ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the new LAN IPv6 address : &lt;strong&gt;Press Enter&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Do you want to enable the DHCP server on LAN ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Do you want to change the web GUI protocol from HTTPS to HTTP ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Do you want to generate a new self-signed web GUI certificate ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Restore web GUI access defaults ? : &lt;strong&gt;N&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'interface LAN est paramétrée.&lt;/p&gt;
&lt;h2 id="interface-web"&gt;&lt;a href="#interface-web" class="header-anchor"&gt;&lt;/a&gt;Interface web
&lt;/h2&gt;&lt;h3 id="1ère-connexion"&gt;&lt;a href="#1%c3%a8re-connexion" class="header-anchor"&gt;&lt;/a&gt;1ère connexion
&lt;/h3&gt;&lt;p&gt;Par défaut, pour se connecter à l'interface web d'administration de la solution OPNsense, il faut s'y connecter à travers l'interface LAN.&lt;/p&gt;
&lt;p&gt;Dans le cas présent, il n'y a pas d'autre machine présente sur ce contexte réseau. Il faut donc s'y connecter à travers l'interface WAN.&lt;/p&gt;
&lt;p&gt;Pour se faire, dans la console VNC de l'instance :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Faire le choix 8 : &lt;strong&gt;Shell&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Désactiver le pare-feu :&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pfctl -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Attention, à chaque rechargement de la configuration d'OPNsense, le pare-feu sera réactivé. Une règle autorisant l'administration à distance par le WAN sera définie plus bas.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il est maintenant possible de se connecter à l'interface web d'administration d'OPNsense à travers l'interface WAN.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre sur l'adresse &lt;a href="https://IP_PUBLIC"&gt;https://IP_PUBLIC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Accepter le certificat auto-signé&lt;/li&gt;
&lt;li&gt;Renseigner les credentials
&lt;ul&gt;
&lt;li&gt;Username : &lt;strong&gt;root&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Password : &lt;strong&gt;opnsense&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Un assistant de configuration est proposé lors de la 1ère connexion, celui-ci peut être by-passé en cliquant sur le logo OPNsense en haut à gauche.&lt;/p&gt;
&lt;h3 id="filtrage"&gt;&lt;a href="#filtrage" class="header-anchor"&gt;&lt;/a&gt;Filtrage
&lt;/h3&gt;&lt;p&gt;Pour accéder à la page d'administration d'OPNsense, le pare-feu a été désactivé pour effectuer la 1ère connexion.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rappel : A chaque rechargement de configuration, le pare-feu sera réactivé automatiquement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Idéalement, il faut définir une seule adresse IP (ou plusieurs) qui sera autorisée à y accéder.&lt;/p&gt;
&lt;p&gt;Tout d'abord, créer un alias afin de mieux identifier l'hôte qui sera autorisé à se connecter à l'interface web d'administration.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Firewall&lt;/strong&gt; (1), &lt;strong&gt;Aliases&lt;/strong&gt; (2)&lt;/li&gt;
&lt;li&gt;Ajouter un nouvel alias (3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111604.png" alt="image-20221117094409367" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Voici un exemple d'alias pour une adresse IP donnée. Bien penser à valider le &lt;code&gt;Content&lt;/code&gt; en appuyant sur &lt;strong&gt;Enter&lt;/strong&gt;, puis &lt;strong&gt;Save&lt;/strong&gt; en bas à droite :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111605.png" alt="image-20221117095214277" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ne pas valider tout de suite les modifications avec le bouton &lt;strong&gt;Apply&lt;/strong&gt; figurant en bas sur la page des &lt;strong&gt;Aliases&lt;/strong&gt;. Sinon, le pare-feu se réactivera et la connexion sera perdue. Si cela se produit, revenir dans la console VNC de l'instance et refaire la commande &lt;code&gt;pfcl -d&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ensuite, ajouter une règle sur l'interface WAN du pare-feu.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Firewall&lt;/strong&gt; (1), &lt;strong&gt;Rules&lt;/strong&gt; (2), &lt;strong&gt;WAN&lt;/strong&gt; (3)&lt;/li&gt;
&lt;li&gt;Ajouter une nouvelle règle (4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111606.png" alt="image-20221117095952062" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La partie &lt;strong&gt;Source&lt;/strong&gt; de la règle :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111607.png" alt="image-20221117100419056" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La partie &lt;strong&gt;Destination&lt;/strong&gt; de la règle :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111608.png" alt="image-20221117100630410" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enregistrer avec le bouton &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Valider toutes les modifications de configuration en cliquant sur &lt;strong&gt;Apply changes&lt;/strong&gt; en haut à droite de la page&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'alias créé ainsi que la règle ajoutée dans l'interface WAN du pare-feu vont être appliqué. Le pare-feu sera également réactivé automatiquement.&lt;/p&gt;
&lt;p&gt;Pour être sûr et certain que le pare-feu soit bien actif :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans la console VNC de l'instance et exécuter la commande :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pfctl -e
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le shell doit renvoyer :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pfctl: pf already enabled
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="mot-de-passe-root"&gt;&lt;a href="#mot-de-passe-root" class="header-anchor"&gt;&lt;/a&gt;Mot de passe root
&lt;/h3&gt;&lt;p&gt;Maintenant que l'accès externe à l'interface web d'administration est filtré, il est important de changer le mot de passe &lt;code&gt;root&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Lobby&lt;/strong&gt; (1), &lt;strong&gt;Password&lt;/strong&gt; (2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111609.png" alt="image-20221117102407840" /&gt;&lt;/p&gt;
&lt;p&gt;La modification de ce mot passe entraine également la modification du mot de passe dans la console VNC et/ou par SSH si cet accès est activé.&lt;/p&gt;
&lt;h3 id="hostname-timezone"&gt;&lt;a href="#hostname-timezone" class="header-anchor"&gt;&lt;/a&gt;Hostname, Timezone&amp;hellip;
&lt;/h3&gt;&lt;p&gt;Il peut être intéressant de modifier le nom d'hôte, le domaine, ou bien la timezone d'OPNsense.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Settings&lt;/strong&gt; (2), &lt;strong&gt;General&lt;/strong&gt; (3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111610.png" alt="image-20221117110546934" /&gt;&lt;/p&gt;
&lt;h2 id="sécurité"&gt;&lt;a href="#s%c3%a9curit%c3%a9" class="header-anchor"&gt;&lt;/a&gt;Sécurité
&lt;/h2&gt;&lt;p&gt;Sujet très vaste !&lt;/p&gt;
&lt;p&gt;Je vais m'attarder sur 2 points principaux :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La mise à jour d'OPNsense&lt;/li&gt;
&lt;li&gt;La mise en place d'un certificat SSL avec Let's Encrypt&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mise-à-jour"&gt;&lt;a href="#mise-%c3%a0-jour" class="header-anchor"&gt;&lt;/a&gt;Mise à jour
&lt;/h3&gt;&lt;p&gt;Il est important de mettre régulièrement à jour la solution.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Firmware&lt;/strong&gt; (2), &lt;strong&gt;Status&lt;/strong&gt; (3)&lt;/li&gt;
&lt;li&gt;Puis &lt;strong&gt;Check for updates&lt;/strong&gt; (4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111611.png" alt="image-20221117111519117" /&gt;&lt;/p&gt;
&lt;p&gt;Si des mises à jour sont disponibles, la liste des packages concernés sera affichée dans l'onglet &lt;strong&gt;Updates&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En bas de cette page, un bouton &lt;strong&gt;Update&lt;/strong&gt; sera disponible. Il sera également indiqué si un redémarrage d'OPNsense est requis.&lt;/p&gt;
&lt;h3 id="certificat-ssl-lets-encrypt"&gt;&lt;a href="#certificat-ssl-lets-encrypt" class="header-anchor"&gt;&lt;/a&gt;Certificat SSL Let&amp;rsquo;s Encrypt
&lt;/h3&gt;&lt;h4 id="installation-du-client"&gt;&lt;a href="#installation-du-client" class="header-anchor"&gt;&lt;/a&gt;Installation du client
&lt;/h4&gt;&lt;p&gt;La 1ère étape à réaliser est l'installation du client &lt;code&gt;acme&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Firmware&lt;/strong&gt; (2), &lt;strong&gt;Plugins&lt;/strong&gt; (3)&lt;/li&gt;
&lt;li&gt;Installer le client acme (4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111612.png" alt="image-20221117113041918" /&gt;&lt;/p&gt;
&lt;h4 id="activation-du-plugin"&gt;&lt;a href="#activation-du-plugin" class="header-anchor"&gt;&lt;/a&gt;Activation du plugin
&lt;/h4&gt;&lt;p&gt;Une fois ce plugin installé, forcer un rafraichissement de l'interface web (CTRL+SHiFT+R) pour avoir le service &lt;strong&gt;ACME Client&lt;/strong&gt; de disponible.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Services&lt;/strong&gt; (1), &lt;strong&gt;ACME Client&lt;/strong&gt; (2), &lt;strong&gt;Settings&lt;/strong&gt; (3)&lt;/li&gt;
&lt;li&gt;Activer le plugin (4)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111613.png" alt="image-20221117114033923" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Valider avec le bouton &lt;strong&gt;Apply&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Une tâche cron est générée afin de renouveler automatiquement le certificat. Celle-ci est définie dans l'onglet &lt;strong&gt;Update Schedule&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id="création-du-compte-lets-encrypt"&gt;&lt;a href="#cr%c3%a9ation-du-compte-lets-encrypt" class="header-anchor"&gt;&lt;/a&gt;Création du compte Let&amp;rsquo;s Encrypt
&lt;/h4&gt;&lt;p&gt;Ensuite, un compte doit être créé et enregistré pour la génération du certificat chez Let's Encrypt.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Accounts&lt;/strong&gt; (1)&lt;/li&gt;
&lt;li&gt;Créer un compte (2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111614.png" alt="image-20221117114800382" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compléter les champs requis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111615.png" alt="image-20221117115032672" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Valider avec le bouton &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enregistrer le compte&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111616.png" alt="image-20221117115229266" /&gt;&lt;/p&gt;
&lt;p&gt;Le status du compte passe en &lt;strong&gt;OK (registred)&lt;/strong&gt;.&lt;/p&gt;
&lt;h4 id="enregistrement-dns"&gt;&lt;a href="#enregistrement-dns" class="header-anchor"&gt;&lt;/a&gt;Enregistrement DNS
&lt;/h4&gt;&lt;p&gt;Avant de passer à la suite, il est impératif de créer un enregistrement de type A dans la zone DNS publique adéquate pointant vers l'adresse IP publique d'OPNsense.&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;opnsense-demo.example.com. IN A xxx.xxx.xxx.237
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;xxx.xxx.xxx.237 = IP publique de l'interface WAN d'OPNsense&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Bien vérifier que cet enregistrement a été répercuté sur les serveurs DNS de Google (Let's Encrypt s'appuie dessus).&lt;/p&gt;
&lt;p&gt;Dans votre terminal GNU/Linux :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dig opnsense-demo.example.com @8.8.8.8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il est également est possible de vérifier l'enregistrement à cette adresse : &lt;a href="https://dns.google"&gt;https://dns.google&lt;/a&gt;&lt;/p&gt;
&lt;h4 id="paramétrage-du-challenge"&gt;&lt;a href="#param%c3%a9trage-du-challenge" class="header-anchor"&gt;&lt;/a&gt;Paramétrage du challenge
&lt;/h4&gt;&lt;p&gt;Une fois cet enregistrement fait et vérifié, paramétrer un type de challenge :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Challenge Types&lt;/strong&gt; (1)&lt;/li&gt;
&lt;li&gt;Créer un nouveau type de challenge (2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111617.png" alt="image-20221117120932240" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choisir un challenge de type &lt;strong&gt;HTTP-01&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111618.png" alt="image-20221117131431018" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dans le champ &lt;strong&gt;IP Addresses&lt;/strong&gt; bien valider l'adresse IP publique de l'interface WAN en appuyant sur &lt;strong&gt;Enter&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Valider avec le bouton &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="automatisation"&gt;&lt;a href="#automatisation" class="header-anchor"&gt;&lt;/a&gt;Automatisation
&lt;/h4&gt;&lt;p&gt;Avant de passer à la génération du certificat, il est recommandé d'ajouter une tâche d'automatisation. Celle-ci sera effectuée à chaque fois que le certificat sera renouvelé.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Automations&lt;/strong&gt; (1)&lt;/li&gt;
&lt;li&gt;Créer une tâche d'automatisation (2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111620.png" alt="image-20221117132141537" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sélectionner la tâche de redémarrage de la Web UI d'OPNsense&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111621.png" alt="image-20221117132445945" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Cette partie d'automatisation est optionelle mais recommandée.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="génération-du-certificat"&gt;&lt;a href="#g%c3%a9n%c3%a9ration-du-certificat" class="header-anchor"&gt;&lt;/a&gt;Génération du certificat
&lt;/h4&gt;&lt;p&gt;Maintenant, un certificat peut être généré :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Certificates&lt;/strong&gt; (1)&lt;/li&gt;
&lt;li&gt;Créer un nouveau certificat (2)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111619.png" alt="image-20221117131804782" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans le champ &lt;strong&gt;Common Name&lt;/strong&gt;, bien renseigner l'URL d'accès qui permettra d'accéder à l'interface web d'administration d'OPNsense en correspondance avec l'enregistrement de type A faites dans la zone DNS au préalable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111622.png" alt="image-20221117133011468" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bien spécifier la tâche d'automatisation dans le champ &lt;strong&gt;Automations&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Valider avec le bouton &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Générer le certificat avec le bouton &lt;strong&gt;Issue/Renew All Certificates&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="vérification"&gt;&lt;a href="#v%c3%a9rification" class="header-anchor"&gt;&lt;/a&gt;Vérification
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;Vérifier l'ajout de l'autorité de certification :
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Trust&lt;/strong&gt; (2), &lt;strong&gt;Authorities&lt;/strong&gt; (3)&lt;/li&gt;
&lt;li&gt;L'authorité de certification Let's Encrypt doit être présente&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111623.png" alt="image-20221117134012138" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vérifier la présence du certificat préalablement généré :
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;Certificates&lt;/strong&gt; (1)&lt;/li&gt;
&lt;li&gt;Le certificat préalablement généré doit être présent&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111624.png" alt="image-20221117134232914" /&gt;&lt;/p&gt;
&lt;h4 id="application-du-certificat"&gt;&lt;a href="#application-du-certificat" class="header-anchor"&gt;&lt;/a&gt;Application du certificat
&lt;/h4&gt;&lt;p&gt;A ce stade, ce nouveau certificat Let's Encrypt peut être appliqué pour la connexion à l'interface d'administration d'OPNsense (en lieu et place du certificat auto-signé).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Settings&lt;/strong&gt; (2), &lt;strong&gt;Administration&lt;/strong&gt; (3)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="22111625.png" alt="image-20221117134906644" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Je recommande de modifier le port d'administration HTTPS et d'adapter la règle de filtrage (vu dans le chapitre &lt;strong&gt;Interface web / Filtrage&lt;/strong&gt; de cet article).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Valider avec le bouton &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et voilà !&lt;/p&gt;
&lt;p&gt;Il est désormais possible d'accéder de façon sécurisée à l'admimistration d'un OPNsense hébergé chez OVHcloud avec un certificat SSL reconnu.&lt;/p&gt;
&lt;p&gt;En suivant l'exemple donné ici, l'accès se fera sur l'URL : &lt;a href="https://opnsense-demo.example.com"&gt;https://opnsense-demo.example.com&lt;/a&gt; (Adresse fictive pour l'article !).&lt;/p&gt;</description></item><item><title>OPNsense : Déploiement d’une instance sur OVHcloud [Partie 1/2]</title><link>https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-1-2/</link><pubDate>Fri, 23 Sep 2022 08:00:46 +0200</pubDate><guid>https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-1-2/</guid><description>&lt;img src="https://slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-1-2/cover.png" alt="Featured image of post OPNsense : Déploiement d’une instance sur OVHcloud [Partie 1/2]" /&gt;&lt;p&gt;Dans cet article je vais décrire comment installer une instance sous OPNsense au sein d'OVHcloud.&lt;/p&gt;
&lt;p&gt;Par défaut, il n'est pas possible de déployer une image OPNsense lors de la commande d'une instance sur OVHcloud.&lt;/p&gt;
&lt;p&gt;En effet les distributions disponibles sont :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AlmaLinux&lt;/li&gt;
&lt;li&gt;RockyLinux&lt;/li&gt;
&lt;li&gt;CentOS&lt;/li&gt;
&lt;li&gt;Debian&lt;/li&gt;
&lt;li&gt;Fedora&lt;/li&gt;
&lt;li&gt;Ubuntu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pourtant, on peut très bien déployer un système complet OPNsense (FreeBSD) nativement sur une instance OVHcloud.&lt;/p&gt;
&lt;p&gt;Un vRack sera déployé pour la partie LAN d'OPNsense.&lt;/p&gt;
&lt;h2 id="préparation-de-linstance-ovhcloud"&gt;&lt;a href="#pr%c3%a9paration-de-linstance-ovhcloud" class="header-anchor"&gt;&lt;/a&gt;Préparation de l&amp;rsquo;instance OVHcloud
&lt;/h2&gt;&lt;h3 id="contexte"&gt;&lt;a href="#contexte" class="header-anchor"&gt;&lt;/a&gt;Contexte
&lt;/h3&gt;&lt;p&gt;Voici un schéma simplifié du contexte de déploiement de l'OPNsense :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="01-1.png" alt="infra" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'instance qui hébergera OPNsense utilisera l'offre Discovery à 4.99€ HT/mois avec 1 vCPU, 2 Go de RAM, et 25GB de disque SSD.&lt;/li&gt;
&lt;li&gt;Un vRack sera déployé pour relier d'autres instances futures derrière l'OPNsense. Par exemple pour héberger un cluster swarm.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="création-dun-vrack"&gt;&lt;a href="#cr%c3%a9ation-dun-vrack" class="header-anchor"&gt;&lt;/a&gt;Création d&amp;rsquo;un vRack
&lt;/h3&gt;&lt;p&gt;En tout premier, il faut créer le vRack auquel sera rataché la future instance OPNsense. Cette opération se réalise dans le panel d'administration (OVH Manager) de vos services &lt;code&gt;Public Cloud&lt;/code&gt; chez OVH.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans la catégorie &lt;code&gt;Network&lt;/code&gt;, se rendre dans la partie &lt;code&gt;Private Network&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Créer un réseau privé.&lt;/li&gt;
&lt;li&gt;Définir un ID de VLAN (Recommandé)&lt;/li&gt;
&lt;li&gt;Choisir le mode de distribution des adresses (Statique recommandé).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="02-1.png" alt="image-20220916163541456" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans la partie &lt;code&gt;Localisation&lt;/code&gt;, il est possible de définir à quelle région sera rattaché ce vRack. Pour cet article tout ce passera à Gravelines.&lt;/li&gt;
&lt;li&gt;Définir un nom pour ce vRack (ClusterSwarm dans cet article).&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Cela peut prendre un peu de temps à être déployé la 1ère fois. Patience...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois déployé et disponible, ce vRack apparait dans la liste des réseaux privés disponible avec la plage d'adresse attribuée.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="03-1.png" alt="image-20220916164200412" /&gt;&lt;/p&gt;
&lt;h3 id="création-de-linstance"&gt;&lt;a href="#cr%c3%a9ation-de-linstance" class="header-anchor"&gt;&lt;/a&gt;Création de l&amp;rsquo;instance
&lt;/h3&gt;&lt;p&gt;Maintenant que le vRack est déployé, une nouvelle instance peut être créée.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans la partie &lt;code&gt;Instances&lt;/code&gt;, créer une nouvelle instance.&lt;/li&gt;
&lt;li&gt;Choisir un modèle (Instance &lt;code&gt;D2-2&lt;/code&gt; amplement suffisante).&lt;/li&gt;
&lt;li&gt;Choisir une localistation (&lt;code&gt;Gravelines&lt;/code&gt; par exemple).&lt;/li&gt;
&lt;li&gt;Sélectionner une image. Ici, je suis parti sur une Debian 11 mais peut importe le choix car l'installation d'OPNsense se fera à travers une image rescue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04-1.png" alt="image-20220920105548183" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajouter sa clef SSH publique de type RSA ou ECDSA (Les clefs de type ED25519 ne sont pas pris en charge).&lt;/li&gt;
&lt;li&gt;Définir un nom pour cette instance (hostname).&lt;/li&gt;
&lt;li&gt;Sélectionner le réseau privé à attacher à cette instance (Le vRack préalablement créé doit être disponible).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="05.png" alt="image-20220920110707870" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sélectionner une période facturation (Mensuel ou horaire).&lt;/li&gt;
&lt;li&gt;Créer l'instance.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cette instance est maintenant disponible. Son adresse IP publique et son IP privée y sont indiquées.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="06.png" alt="image-20220920202939791" /&gt;&lt;/p&gt;
&lt;h2 id="installation-opnsense"&gt;&lt;a href="#installation-opnsense" class="header-anchor"&gt;&lt;/a&gt;Installation OPNsense
&lt;/h2&gt;&lt;h3 id="démarrage-en-mode-rescue"&gt;&lt;a href="#d%c3%a9marrage-en-mode-rescue" class="header-anchor"&gt;&lt;/a&gt;Démarrage en mode rescue
&lt;/h3&gt;&lt;p&gt;Pour pouvoir installer OPNsense, il est nécessaire de démarrer en mode rescue l'instance préalablement créée.&lt;/p&gt;
&lt;p&gt;En mode rescue, le disque principal sera disponible mais non monté. Le système rescue sera chargé en RAM (soit 2 Go avec une instance D2-2).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L'ISO d'OPNsense fait 1,3 Go&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il est donc impératif de sélectionner une image rescue qui prend très d'espace afin d'y loger également l'iso d'OPNsense.&lt;/p&gt;
&lt;p&gt;De celle que j'ai testé, c'est la &lt;code&gt;Debian 9&lt;/code&gt; qui est la plus approprié pour la suite des manipulations.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dans les détails de l'instance, redémarrer en mode rescue.&lt;/li&gt;
&lt;li&gt;Sélectionner l'image &lt;code&gt;Debian 9&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="07.png" alt="image-20220920114318303" /&gt;&lt;/p&gt;
&lt;p&gt;Une fois le redémarrage effectué en mode rescue en Debian 9, il est possible de s'y connecter avec la clef SSH qui a été définie lors de la création de l'instance.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se connecter en SSH à l'instance :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh -i ~/.ssh/ma_clef_privee debian@&lt;span style="color:#f92672"&gt;[&lt;/span&gt;IP_PUBLIC_INSTANCE&lt;span style="color:#f92672"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Adapter selon l'emplacement et le nom de la privée.&lt;/li&gt;
&lt;li&gt;[IP_PUBLIC_INSTANCE] = IP publique de l'instance OVHcloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3 id="récupération-de-liso-dopnsense"&gt;&lt;a href="#r%c3%a9cup%c3%a9ration-de-liso-dopnsense" class="header-anchor"&gt;&lt;/a&gt;Récupération de l&amp;rsquo;ISO d&amp;rsquo;OPNsense
&lt;/h3&gt;&lt;p&gt;Une fois connecté en SSH à l'instance en mode rescue Debian 9, il est important de controler qu'il y aura assez d'espace disque afin de récupérer et décompresser l'ISO d'OPNsense.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vérifier l'espace disque disponible (Le rescue mode est chargé en RAM) :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;df -h | grep -v ^tmpfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;L'espace restant disponible est de 1,9G. Cela sera suffisant pour récupéré l'ISO compressé et la décompresser :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Filesystem Size Used Avail Use% Mounted on
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;udev 968M &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; 968M 0% /dev
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/dev/sda1 3.0G 954M 1.9G 34% /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Télécharger la dernière ISO disponible d'OPNsense :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget -P /tmp https://mirror.vraphim.com/opnsense/releases/22.7/OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Installer &lt;code&gt;bzip2&lt;/code&gt; (Si celui-ci n'est pas disponible) :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install bzip2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Extraire et supprimer l'archive :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd /tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bzip2 -dk OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rm OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="mise-en-place-qemuvnc"&gt;&lt;a href="#mise-en-place-qemuvnc" class="header-anchor"&gt;&lt;/a&gt;Mise en place QEMU/VNC
&lt;/h3&gt;&lt;p&gt;Afin de pouvoir déclencher l'installation en mode console d'OPNsense à partir de l'ISO récupérée, VNC sera utilisé à travers QEMU. &lt;/p&gt;
&lt;p&gt;Afin de pouvoir prendre réaliser cela, il est nécessaire de relancer la connexion SSH à l'instance à l'aide d'un tunnel SSH afin de mapper le port distant 5900 vers un port local.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se reconnecter à la session SSH de l'instance en rescue :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh -i ~/.ssh/ma_clef_privee debian@&lt;span style="color:#f92672"&gt;[&lt;/span&gt;IP_PUBLIC_INSTANCE&lt;span style="color:#f92672"&gt;]&lt;/span&gt; -L 5900:localhost:5900
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Télécharger le package :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget -qO- /tmp /vkvm.tar.gz | tar xvz -C /tmp
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Démarrer QEMU/VNC :&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo /tmp/qemu-system-x86_64 -net nic -net user,hostfwd&lt;span style="color:#f92672"&gt;=&lt;/span&gt;tcp::80-:80,hostfwd&lt;span style="color:#f92672"&gt;=&lt;/span&gt;tcp::443-:443 -m 1024M -localtime -enable-kvm -hda /dev/sda -hdb /dev/sdb -vnc 127.0.0.1:0 -cdrom /tmp/OPNsense-22.7-OpenSSL-dvd-amd64.iso -boot d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;En mode rescue, &lt;code&gt;/dev/sda&lt;/code&gt; correspond à la racine (volume monté en RAM), et &lt;code&gt;/dev/sdb&lt;/code&gt; dorrespond au disque principal de votre instance (disponible mais non monté).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="démarrage-de-linstallation-dopnsense"&gt;&lt;a href="#d%c3%a9marrage-de-linstallation-dopnsense" class="header-anchor"&gt;&lt;/a&gt;Démarrage de l&amp;rsquo;installation d&amp;rsquo;OPNsense
&lt;/h3&gt;&lt;p&gt;A partir de maintenant, il est maintenant possible de se connecter en VNC sur &lt;code&gt;127.0.0.1:5900&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;2 possibilités sont offertes lors du démarrage :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Boot en mode live : Se connecter en &lt;code&gt;root&lt;/code&gt; avec le mot de passe &lt;code&gt;opnsense&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Lancement de l'installation : Se connecter en &lt;code&gt;installer&lt;/code&gt; avec le mot de passe &lt;code&gt;opnsense&lt;/code&gt; .&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Le boot en mode live ne présente aucun intérêt dans ce cas de figure. Le compte &lt;code&gt;installer&lt;/code&gt; est donc à utiliser pour déclencher l'installation de la solution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Sélectionner le bon disque pour l'installation (ada1 25GB car instance d2-2) :&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="08.png" alt="image-20220921164909736" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;vtnet0 = Interface publique&lt;/li&gt;
&lt;li&gt;vtnet1 = IP vRack&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une fois l'installation terminée, dans les détails de l'instance sur le manager OVH, sortir du mode rescue :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="09.png" alt="image-20220921171239516" /&gt;&lt;/p&gt;
&lt;p&gt;Après quelques instants votre instance démarrera normalement sur son disque principal avec le chargement d'OPNsense.&lt;/p&gt;
&lt;h3 id="configuration-opnsense"&gt;&lt;a href="#configuration-opnsense" class="header-anchor"&gt;&lt;/a&gt;Configuration OPNsense
&lt;/h3&gt;&lt;p&gt;Pour procéder à la 1ère configuration de la solution OPNsense :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Se rendre dans les détails de l'instance.&lt;/li&gt;
&lt;li&gt;Puis console VNC dans le 2nd onglet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="10-1.png" alt="image-20220921172853667" /&gt;&lt;/p&gt;
&lt;p&gt;Dans un prochain article, je traiterai de la configuration des interfaces avec une IP FailOver, la mise en place d'un certificat SSL avec Let's Encrypt.&lt;/p&gt;</description></item><item><title>OPNsense : Configuration d’un VPN SSL Road Warrior avec PKI</title><link>https://slash-root.fr/opnsense-configuration-dun-vpn-ssl-road-warrior-avec-pki/</link><pubDate>Tue, 12 Jul 2022 23:21:48 +0200</pubDate><guid>https://slash-root.fr/opnsense-configuration-dun-vpn-ssl-road-warrior-avec-pki/</guid><description>&lt;img src="https://slash-root.fr/opnsense-configuration-dun-vpn-ssl-road-warrior-avec-pki/cover.jpg" alt="Featured image of post OPNsense : Configuration d’un VPN SSL Road Warrior avec PKI" /&gt;&lt;p&gt;Le but de cette documentation va être de configurer un serveur VPN dit SSL Road Warrior sur OPNsense (Un PFsense en mieux et totalement opensource :P). Les clients VPN pourront accéder à des ressources sur le réseau LAN distant de façon sécurisé.&lt;/p&gt;
&lt;p&gt;Le serveur VPN sera OpenVPN et celui-ci sera configuré de façon à accepter les connexions sur le port HTTPS (TCP 443). De cette façon, l'accès pourra se faire de n'importe où car ce port n'est pas (ou très très très rarement) filtré sur une connexion standard à Internet.&lt;/p&gt;
&lt;p&gt;Une autorité de certification sera créé pour délivrer un certificat afin de sécuriser les échanges.&lt;/p&gt;
&lt;p&gt;Un exemple de configuration d'un client sous Windows 10 est traité à la fin.&lt;/p&gt;
&lt;p&gt;Let's go !!!&lt;/p&gt;
&lt;h2 id="contexte"&gt;&lt;a href="#contexte" class="header-anchor"&gt;&lt;/a&gt;Contexte
&lt;/h2&gt;&lt;p&gt;Voici la version utilisée d'OPNsense :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OPNsense 22.1.2_2-amd64&lt;/li&gt;
&lt;li&gt;FreeBSD 13.0-STABLE&lt;/li&gt;
&lt;li&gt;OpenSSL 1.1.1m 14 Dec 2021&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Au niveau des interfaces de paramétrées :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;LAN = 192.168.56.254/24&lt;/li&gt;
&lt;li&gt;WAN = IP_PUBLIC&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Aucune configuration particulière à été apportée après l'installation d'OPNsense à part l'adressage IP des interfaces WAN et LAN.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tout le paramétrage sera à réaliser à travers l'interface web d'administration d'OPNsense.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="pki"&gt;&lt;a href="#pki" class="header-anchor"&gt;&lt;/a&gt;PKI
&lt;/h2&gt;&lt;h3 id="création-de-lauthorité-de-certification"&gt;&lt;a href="#cr%c3%a9ation-de-lauthorit%c3%a9-de-certification" class="header-anchor"&gt;&lt;/a&gt;Création de l&amp;rsquo;authorité de certification
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Trust&lt;/strong&gt; (2), &lt;strong&gt;Authorities&lt;/strong&gt; (3), cliquer sur &lt;strong&gt;+&lt;/strong&gt; (4) pour ajouter une authorité de certification :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="01.png" alt="image-20220712200137330" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner &lt;strong&gt;Create an internal Certificate Authority&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="02.png" alt="image-20220712200934152" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Je ne vais pas traiter la partie algorithme ni de type ou de longueur de clef. Je laisse les paramètres par défaut mais dans un contexte de production, il sera important de modifier ces différents paramètres.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Entrer une &lt;strong&gt;Descriptive name&lt;/strong&gt; ainsi que le &lt;strong&gt;Common Name&lt;/strong&gt; et les informations désirées.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enregistrer la nouvelle authorité de certification :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="03.png" alt="image-20220712201557684" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="génération-du-certificat-serveur"&gt;&lt;a href="#g%c3%a9n%c3%a9ration-du-certificat-serveur" class="header-anchor"&gt;&lt;/a&gt;Génération du certificat serveur
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;Certificates&lt;/strong&gt; (1), cliquer sur &lt;strong&gt;+&lt;/strong&gt; (2) pour ajouter un nouveau certificat :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04.png" alt="image-20220712202909916" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner &lt;strong&gt;Create an internal Certificate&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04a.png" alt="image-20220712212614382" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Même remarque que précédement concernant la partie algorithme, clef...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Entrer une &lt;strong&gt;Descriptive name&lt;/strong&gt;. Sélectionner le bon &lt;strong&gt;Certificate authority&lt;/strong&gt; et le type &lt;strong&gt;Server Certificate&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les informations provenant de l'authorité de certification doivent être pré-remplies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Renseigner le &lt;strong&gt;Common Name&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04b.png" alt="image-20220712204003467" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enregistrer le nouveau certificat :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="04c.png" alt="image-20220712204333253" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="openvpn"&gt;&lt;a href="#openvpn" class="header-anchor"&gt;&lt;/a&gt;OpenVPN
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;VPN&lt;/strong&gt; (1), &lt;strong&gt;OpenVPN&lt;/strong&gt; (2), &lt;strong&gt;Servers&lt;/strong&gt; (3), cliquer sur l'icône du &lt;strong&gt;Wizard&lt;/strong&gt; (4) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="05.png" alt="image-20220712202051739" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;En passant par le wizard, il y aura la possibilité de créer automatiquement les 2 règles nécessaires pour autoriser le flux provenant des clients VPN.Sinon, il faudra les ajouter à la main, ça fonctionne très bien aussi.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Type de serveur d'authentification : &lt;strong&gt;Local User Access&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Authorité de certification : &lt;strong&gt;OPNsense-CA&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Certificat : &lt;strong&gt;OPNsense-VPN-Cert&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans la partie &lt;strong&gt;General OpenVPN Server Information&lt;/strong&gt;, renseigner les paramètres suivants :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="06.png" alt="image-20220712205028162" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les clients se connecteront sur l'interface &lt;strong&gt;WAN&lt;/strong&gt; d'OPNsense par le protocol &lt;strong&gt;TCP&lt;/strong&gt; sur le port &lt;strong&gt;443&lt;/strong&gt;. Par défaut OpenVPN écoute sur le port 1194 en UDP. Pour que la connexion soit possible depuis n'importe quel réseau Internet, il faut bien modifier ce paramètre. C'est quasiment indétectablement par les pare-feux pour faire la différence avec du flux HTTPS (du stateful inspection permet de faire la différence).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans la partie &lt;strong&gt;Tunnel Settings&lt;/strong&gt;, renseigner les paramètres suivants :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="07.png" alt="image-20220712205937919" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;IPv4 Tunnel Network&lt;/strong&gt;, entrer le réseau virtuel qui sera attribué aux clients VPN.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;IPv4 Local Network&lt;/strong&gt;, entrer le réseau LAN qui doit être accessible aux clients VPN.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Le reste des paramètres sont laissés par défaut. Ils pourront être définis si besoin mais ne seront pas traités dans cet article.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Passer à la prochaine étape en cliquant sur &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cocher &lt;strong&gt;Firewall Rule&lt;/strong&gt; et &lt;strong&gt;OpenVPN Rule&lt;/strong&gt; pour générer les 2 règles adéquats dans le pare-feu :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="08.png" alt="image-20220712210924817" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Valider en cliquant sur &lt;strong&gt;Next&lt;/strong&gt; puis &lt;strong&gt;Finish&lt;/strong&gt; pour terminer le paramétrage du serveur VPN.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="utilisateur"&gt;&lt;a href="#utilisateur" class="header-anchor"&gt;&lt;/a&gt;Utilisateur
&lt;/h2&gt;&lt;h3 id="création-dun-utilisateur"&gt;&lt;a href="#cr%c3%a9ation-dun-utilisateur" class="header-anchor"&gt;&lt;/a&gt;Création d&amp;rsquo;un utilisateur
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;System&lt;/strong&gt; (1), &lt;strong&gt;Access&lt;/strong&gt; (2), &lt;strong&gt;Users&lt;/strong&gt; (3), cliquer sur &lt;strong&gt;+&lt;/strong&gt; (4) pour ajouter un nouveau utilisateur :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="09.png" alt="image-20220712211520676" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Renseigner un &lt;strong&gt;Username&lt;/strong&gt; et un &lt;strong&gt;Password&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="10.png" alt="image-20220712211947305" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Plus bas, cocher &lt;strong&gt;Click to create a user certificate&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="11.png" alt="image-20220712212137535" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Terminer en cliquant sur &lt;strong&gt;Save&lt;/strong&gt;. Cela déclenche la génération d'un certificat.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="génération-du-certificat-utilisateur"&gt;&lt;a href="#g%c3%a9n%c3%a9ration-du-certificat-utilisateur" class="header-anchor"&gt;&lt;/a&gt;Génération du certificat utilisateur
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sélectionner &lt;strong&gt;Create an internal Certificate&lt;/strong&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="12.png" alt="image-20220712212728988" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Entrer une &lt;strong&gt;Descriptive name&lt;/strong&gt;. Sélectionner le bon &lt;strong&gt;Certificate authority&lt;/strong&gt; et le type &lt;strong&gt;Client Certificate&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Les informations provenant de l'authorité de certification doivent être pré-remplies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Renseigner le &lt;strong&gt;Common Name&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enregistrer le nouveau certificat.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le certificat est maintenant associé à l'utilisateur :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="13.png" alt="image-20220712213220067" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Terminer en cliquant sur &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="client-windows"&gt;&lt;a href="#client-windows" class="header-anchor"&gt;&lt;/a&gt;Client Windows
&lt;/h2&gt;&lt;h3 id="exportation-de-la-configuration-client"&gt;&lt;a href="#exportation-de-la-configuration-client" class="header-anchor"&gt;&lt;/a&gt;Exportation de la configuration client
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Dans &lt;strong&gt;VPN&lt;/strong&gt; (1), &lt;strong&gt;OpenVPN&lt;/strong&gt; (2), &lt;strong&gt;Client Export&lt;/strong&gt; (3), télécharger l'archive contenant la confirmation client d'OpenVPN avec le certificat utilisateur correspondant :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="14.png" alt="image-20220712222650837" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;En cochant &lt;strong&gt;Windows Certificate System Store&lt;/strong&gt;, un certificat &lt;code&gt;.crt&lt;/code&gt; est récupéré. Malgré le faites de l'inscrire (ou d'inscrire le CA) dans le magasin (des certificats de l'ordinateur) des autorités de certification racines de confiance, celui-ci ne sera pas approuvé.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Le contenu de l'archive récupérée contient les éléments suivant :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OPNsense_VPN_Server_batman_vpn-tls.key
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OPNsense_VPN_Server_batman_vpn.ovpn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;OPNsense_VPN_Server_batman_vpn.p12
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="installation-du-client"&gt;&lt;a href="#installation-du-client" class="header-anchor"&gt;&lt;/a&gt;Installation du client
&lt;/h3&gt;&lt;p&gt;Sur le poste client en Windows 10 :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Télécharger le client OpenVPN Community : &lt;a href="https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.7-I602-amd64.msi"&gt;https://swupdate.openvpn.org/community/releases/OpenVPN-2.5.7-I602-amd64.msi&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Installer le client OpenVPN (Attention, il faudra des droits d'administrateur sur le poste Windows).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un message d'avertissement indique qu'il n'y a aucun profil de connexion.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copier le contenu de l'archive préalablement exporter dans le répertoire &lt;code&gt;%USERPROFILE%\OpenVPN\config&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="15.png" alt="image-20220712225016759" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Se connecter :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="16.png" alt="image-20220712225229212" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Un message peut survenir indiquant que l'utilisateur Windows doit faire partie du groupe local de la machine &lt;code&gt;OpenVPN Administrators&lt;/code&gt; :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="17.png" alt="image-20220712225549618" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Si contexte de domaine, une GPO peut appliquer ce paramètre automatiquement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;S'identifier avec le compte utilisateur créé précédement dans OPNsense :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="18.png" alt="image-20220712225737892" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;La connexion VPN est établie :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="19.png" alt="image-20220712230430443" /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>