<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ovhcloud on slash-root.fr</title><link>https://beta.slash-root.fr/tags/ovhcloud/</link><description>Recent content in Ovhcloud on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Thu, 22 Sep 2022 22:04:10 +0200</lastBuildDate><atom:link href="https://beta.slash-root.fr/tags/ovhcloud/index.xml" rel="self" type="application/rss+xml"/><item><title>OPNsense : Déploiement d’une instance sur OVHcloud [Partie 1/2]</title><link>https://beta.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://beta.slash-root.fr/opnsense-deploiement-dune-instance-sur-ovhcloud-partie-1-2/</guid><description>&lt;img src="https://beta.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></channel></rss>