Je souhaitais installer pfsense comme système de VPN pour accéder par réseau privé à quelques serveurs chez OVH.
Pour cela, j’ai d’abord configurer un réseau privé (vrack) auquel j’ai connecté les services compatibles. Puis j’ai décidé d’un numéro de VLAN.
Dans cet article, nous allons voir comment installer pfsense sur le Public Cloud, attention à bien remplacer les paramètres adéquats.
Une vidéo est disponible pour le déroulement de ce tutoriel.
1. Télécharger l'image ISO pfsense
2. Choisir une région openstack pour accueillir pfsense
Je vais héberger pfsense dans la région GRA3, je vais ajouter ce paramètre par la suite.
Je charge mon environnement python openstack sans charger de force la région. Un autre tutoriel explique comment préparer un environnement python openstack.
3. Uploader l'image ISO sur openstack
Il existe d’anciens outils openstack. Leur documentation est confuse, mal référencée,… Mais voici comment faire.
Il est difficile de trouver ces exemples sur Internet qui ne montrent jamais la bonne méthode ou qui esquivent les cas que personne n’expliquent, c’est la raison du tutoriel.
L’upload prend un peu de temps selon sa connexion internet.
openstack image --os-region-name=GRA3 create --container-format bare --disk-format iso --file pfSense-CE-2.7.0-RELEASE-amd64.iso pfSenseCE270
4. Initialiser une instance temporaire avec cette image
L’image ISO est à booter temporairement le temps de pré-installer un volume qui servira ensuite de volume racine pour l’instance définitive.
Note : nous n’avons pas besoin pour l’instant de réseau privé. On utilise le réseau public « Ext-Net ».
openstack server --os-region-name GRA3 create --image pfSenseCE270 --net Ext-Net --flavor d2-2 pfs-1
Nous surveillons par moment l’avancée du lancement :
openstack server --os-region-name GRA3 list
+-------------------+-----------+--------+----------------+----------------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+-------------------+-----------+--------+----------------+----------------+--------+
| db7be04a-b2bd-xxx | pfs-1 | BUILD | | pfSenseCE270 | d2-2 |
+-------------------+-----------+--------+----------------+----------------+--------+
Au bout d’un moment, le statut change :
+-------------------+-----------+--------+----------------+----------------+--------+
| ID | Name | Status | Networks | Image | Flavor |
+-------------------+-----------+--------+----------------+----------------+--------+
| db7be04a-b2bd-xxx | pfs-1 | ACTIVE | | pfSenseCE270 | d2-2 |
+-------------------+-----------+--------+----------------+----------------+--------+
5. Ajouter le volume qui deviendra un modèle de disque de boot par la suite
Il faut créer un volume de même taille que celui de l’instance finale. J’ai eu un doute si en choisissant la taille exacte, ça allait passer ou pas (réponse à la fin).
- La taille est 25 = 25 Gio
- Mon instance s’appelle pfs-1
openstack volume --os-region-name GRA3 create --size 25 pfsTmp
openstack server --os-region-name GRA3 add volume pfs-1 pfsTmp
6. Connexion à la console
Rendez-vous sur le manager OVH pour vous connecter à la console de l’instance.
7. Pré-Installation via la console
Malheureusement, le branchement du second volume m’a mis le bazar sur la console, il faut valider par entrée.
Je me suis posé la question à propos des 8Go de RAM, ce n’est pas un problème a priori.
Attention à ne pas faire reboot, choisissez le shell, puis faites un halt et attendez bien l’arrêt.
8. Effacer l'instance temporaire
openstack server --os-region-name GRA3 delete pfs-1
9. Convertir le volume en image d'installation
openstack image --os-region-name GRA3 create --volume pfsTmp pfSenseInstall
On peut surveille le statut, je vous laisse trouver la bonne commande :
+--------------------+-----------------------------------------------+--------+
| ID | Name | Status |
+--------------------+-----------------------------------------------+--------+
| 99dc3c87-6a8a-xxxx | pfSenseInstall | queued |
+--------------------+-----------------------------------------------+--------+
+--------------------+-----------------------------------------------+--------+
| ID | Name | Status |
+--------------------+-----------------------------------------------+--------+
| 99dc3c87-6a8a-xxxx | pfSenseInstall | saving |
+--------------------+-----------------------------------------------+--------+
+--------------------+-----------------------------------------------+--------+
| ID | Name | Status |
+--------------------+-----------------------------------------------+--------+
| 99dc3c87-6a8a-xxxx | pfSenseInstall | active |
+--------------------+-----------------------------------------------+--------+
10. Lancer une nouvelle instance
Comme je le disais, il faut un réseau privé, je vous laisser chercher comment faire, ça ‘a pris un peu de temps pour comprendre (si vous voulez plus d’astuces, inscrivez-vous dans mes contacts en page d’accueil). Le mien s’appelle LIBVLAN3. Pensez à changer les paramètres avec les vôtres.
openstack server --os-region-name GRA3 create --image pfSenseInstall --net Ext-Net --net LIBVLAN3 --flavor d2-2 pfs-1
11. Accéder de nouveau à la console pour configurer les adresses IPs
Sur la console, la première question (pas facile à lire) est :
- Should VLANs be set up now ?
- Réponse : n
Les VLANs sont gérés par openstack, inutile de le faire ici.
Ensuite, déterminez quelle interface est le WLAN et laquelle est le LAN :
openstack port --os-region-name GRA3 list --server pfs-1
Openstack a déjà affecté probablement une adresse IP privée mais on va le changer après. En attendant, on veut déterminer quelle adresse MAC correspond à quelle interface : vtnet0 ou vtnet1
+-------------------+------+-------------------+------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+-------------------+------+-------------------+------------------------------------------+--------+
| 5d5d3557-43ad-xxx | | fa:16:3e:03:b8:21 | ip_address='10.3.0.146', subnet_id='xxxx'| ACTIVE |
| eb7dc701-064e-xxx | | fa:16:3e:d6:f3:0c | ip_address='2001:xxxx', subnet_id='xxxx' | ACTIVE |
| | | | ip_address='x.x.x.x', subnet_id='xxxx' | |
+-------------------+------+-------------------+------------------------------------------+--------+
Le WAN est donc, dans mon cas fa:16:3e:d6:f3:0c et le LAN est l’autre.
Il faut maintenant assigner les adresses IPs en décidant d’une IP fixe (j’ai choisi ici 10.3.0.1) :
L’installation est « finie ».
12. Attribuer l'IP fixe à l'instance
openstack port --os-region-name GRA3 set --fixed-ip ip-address=10.3.0.1 5d5d3557-xxx
13. Comment accéder à l'interface web pour configurer pfsense ?
Le configurator n’est pas prévu pour écouter sur l’interface WAN.
Je vous déconseille de tenter de le modifier.
Vous devez utiliser une autre instance temporaire et l’avoir sous la main prête à démarrer en cas de besoin.
Ensuite, vous lancez un tunnel SSH depuis votre PC jusque cette instance temporaire.
Alors l’URL http://127.0.0.1:8080 sera redirigée sur le réseau privé, sur la bonne IP.
Je vous laisse chercher. Pour me suivre et connaître ces autres astuces, inscrivez-vous sur mon formulaire ici.