OPNsense : Déploiement d’une instance sur OVHcloud [Partie 1/2]

modifié le : 23 septembre 2022,
par Julien Louis
 

Dans cet article je vais décrire comment installer une instance sous OPNsense au sein d'OVHcloud.

Par défaut, il n'est pas possible de déployer une image OPNsense lors de la commande d'une instance sur OVHcloud.

En effet les distributions disponibles sont :

  • AlmaLinux
  • RockyLinux
  • CentOS
  • Debian
  • Fedora
  • Ubuntu

Pourtant, on peut très bien déployer un système complet OPNsense (FreeBSD) nativement sur une instance OVHcloud.

Un vRack sera déployé pour la partie LAN d'OPNsense.

Préparation de l'instance OVHcloud

Contexte

Voici un schéma simplifié du contexte de déploiement de l'OPNsense :

infra

  • 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.
  • Un vRack sera déployé pour relier d'autres instances futures derrière l'OPNsense. Par exemple pour héberger un cluster swarm.

Création d'un vRack

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 Public Cloud chez OVH.

  • Dans la catégorie Network, se rendre dans la partie Private Network.
  • Créer un réseau privé.
  • Définir un ID de VLAN (Recommandé)
  • Choisir le mode de distribution des adresses (Statique recommandé).

image-20220916163541456

  • Dans la partie Localisation, il est possible de définir à quelle région sera rattaché ce vRack. Pour cet article tout ce passera à Gravelines.
  • Définir un nom pour ce vRack (ClusterSwarm dans cet article).

Cela peut prendre un peu de temps à être déployé la 1ère fois. Patience...

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.

image-20220916164200412

Création de l'instance

Maintenant que le vRack est déployé, une nouvelle instance peut être créée.

  • Dans la partie Instances, créer une nouvelle instance.
  • Choisir un modèle (Instance D2-2 amplement suffisante).
  • Choisir une localistation (Gravelines par exemple).
  • 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.

image-20220920105548183

  • Ajouter sa clef SSH publique de type RSA ou ECDSA (Les clefs de type ED25519 ne sont pas pris en charge).
  • Définir un nom pour cette instance (hostname).
  • Sélectionner le réseau privé à attacher à cette instance (Le vRack préalablement créé doit être disponible).

image-20220920110707870

  • Sélectionner une période facturation (Mensuel ou horaire).
  • Créer l'instance.

Cette instance est maintenant disponible. Son adresse IP publique et son IP privée y sont indiquées.

image-20220920202939791

Installation OPNsense

Démarrage en mode rescue

Pour pouvoir installer OPNsense, il est nécessaire de démarrer en mode rescue l'instance préalablement créée.

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).

L'ISO d'OPNsense fait 1,3 Go

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.

De celle que j'ai testé, c'est la Debian 9 qui est la plus approprié pour la suite des manipulations.

  • Dans les détails de l'instance, redémarrer en mode rescue.
  • Sélectionner l'image Debian 9.

image-20220920114318303

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.

  • Se connecter en SSH à l'instance :
ssh -i ~/.ssh/ma_clef_privee debian@[IP_PUBLIC_INSTANCE]
  • Adapter selon l'emplacement et le nom de la privée.
  • [IP_PUBLIC_INSTANCE] = IP publique de l'instance OVHcloud.

Récupération de l'ISO d'OPNsense

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.

  • Vérifier l'espace disque disponible (Le rescue mode est chargé en RAM) :
df -h | grep -v ^tmpfs

L'espace restant disponible est de 1,9G. Cela sera suffisant pour récupéré l'ISO compressé et la décompresser :

Filesystem      Size  Used Avail Use% Mounted on
udev            968M     0  968M   0% /dev
/dev/sda1       3.0G  954M  1.9G  34% /
  • Télécharger la dernière ISO disponible d'OPNsense :
wget -P /tmp https://mirror.vraphim.com/opnsense/releases/22.7/OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2
  • Installer bzip2 (Si celui-ci n'est pas disponible) :
sudo apt update
sudo apt install bzip2
  • Extraire et supprimer l'archive :
cd /tmp
bzip2 -dk OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2
rm OPNsense-22.7-OpenSSL-dvd-amd64.iso.bz2

Mise en place QEMU/VNC

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.

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.

  • Se reconnecter à la session SSH de l'instance en rescue :
ssh -i ~/.ssh/ma_clef_privee debian@[IP_PUBLIC_INSTANCE] -L 5900:localhost:5900
  • Télécharger le package :
wget -qO- /tmp https://slash-root.fr/vkvm.tar.gz | tar xvz -C /tmp
  • Démarrer QEMU/VNC :
sudo /tmp/qemu-system-x86_64 -net nic -net user,hostfwd=tcp::80-:80,hostfwd=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

En mode rescue, /dev/sda correspond à la racine (volume monté en RAM), et /dev/sdb dorrespond au disque principal de votre instance (disponible mais non monté).

Démarrage de l'installation d'OPNsense

A partir de maintenant, il est maintenant possible de se connecter en VNC sur 127.0.0.1:5900.

2 possibilités sont offertes lors du démarrage :

  • Boot en mode live : Se connecter en root avec le mot de passe opnsense.
  • Lancement de l'installation : Se connecter en installer avec le mot de passe opnsense .

Le boot en mode live ne présente aucun intérêt dans ce cas de figure. Le compte installer est donc à utiliser pour déclencher l'installation de la solution.

  • Sélectionner le bon disque pour l'installation (ada1 25GB car instance d2-2) :

image-20220921164909736

  • vtnet0 = Interface publique
  • vtnet1 = IP vRack

Une fois l'installation terminée, dans les détails de l'instance sur le manager OVH, sortir du mode rescue :

image-20220921171239516

Après quelques instants votre instance démarrera normalement sur son disque principal avec le chargement d'OPNsense.

Configuration OPNsense

Pour procéder à la 1ère configuration de la solution OPNsense :

  • Se rendre dans les détails de l'instance.
  • Puis console VNC dans le 2nd onglet.

image-20220921172853667

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.