Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 216 minIntermédiaire

Installer pfSense sur Proxmox VE

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • préparer les ponts de l'hyperviseur, dont un pont sensible aux VLAN ;
  • créer la machine virtuelle de pfSense avec des cartes et un disque VirtIO ;
  • dérouler le Netgate Installer, la console et l'assistant de configuration ;
  • régler les options indispensables d'un pfSense virtualisé.

4 exercices corrigés

Installer pfSense sur Proxmox VE, c'est créer une machine virtuelle avec des cartes réseau VirtIO reliées à des ponts (bridges) de l'hyperviseur, une par réseau à raccorder, puis lancer l'installateur de Netgate et attribuer les interfaces WAN et LAN. Ce chapitre prépare les ponts de l'hôte, crée la machine virtuelle de pf1, déroule l'installation, la console et l'assistant de configuration, puis règle les deux options indispensables en virtuel.

Ce qu'il faut préparer

Chez Sorbier, l'hôte Proxmox VE 9.2 du siège, pve1, a trois ports réseau physiques :

Port de l'hôtePont ProxmoxRelié àRôle pour pfSense
eno1vmbr0, sensible aux VLANUn port trunk de SW-COEURTous les VLAN internes : POSTES, SERVEURS, ENTREPOT, VISITEURS, TELEPHONIE, ADMIN
eno2vmbr1La box de l'opérateurWAN, Internet
eno3vmbr2Le switch de la DMZDMZ

Un pont Linux (Linux bridge) est un switch virtuel à l'intérieur de l'hôte : les cartes réseau des machines virtuelles s'y branchent, et le port physique indiqué dans Bridge ports le relie au réseau réel. Un pont sensible aux VLAN (VLAN aware) transporte les trames étiquetées 802.1Q au lieu de les ignorer : c'est lui qui permet de faire arriver tous les VLAN sur une seule carte de la machine virtuelle.

La DMZ a son propre pont et son propre port : un problème sur le trunk interne ne touche pas la DMZ, et la séparation se lit sur le schéma. Dans une maquette à un seul hôte, vmbr2 peut n'avoir aucun port physique : les machines de la DMZ sont alors des machines virtuelles du même hôte, branchées sur ce pont isolé.

Créer les ponts sur l'hôte

Dans l'interface web de Proxmox VE (https://<adresse de l'hôte>:8006) : sélectionne le nœud pve1, puis System > Network > Create > Linux Bridge.

  1. Name : vmbr1 ; Bridge ports : eno2 ; aucune adresse IPv4 (l'hôte n'a rien à faire sur le WAN) ; Comment : « WAN pfSense ».
  2. Recommence pour vmbr2 sur eno3, commentaire « DMZ ».
  3. Ouvre vmbr0, créé à l'installation de Proxmox sur eno1, et coche VLAN aware.
  4. Clique sur Apply Configuration : Proxmox VE 9 applique les changements sans redémarrer, grâce à ifupdown2.

Le fichier /etc/network/interfaces de l'hôte contient alors, pour les trois ponts :

text
auto vmbr0
iface vmbr0 inet manual
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0
        bridge-vlan-aware yes
        bridge-vids 2-4094
#Trunk VLAN internes

auto vmbr1
iface vmbr1 inet manual
        bridge-ports eno2
        bridge-stp off
        bridge-fd 0
#WAN pfSense

auto vmbr2
iface vmbr2 inet manual
        bridge-ports eno3
        bridge-stp off
        bridge-fd 0
#DMZ

bridge-vids 2-4094 est la valeur par défaut : le pont accepte toutes les étiquettes de VLAN. L'hôte lui-même garde son adresse de gestion dans le VLAN 99, sur une interface vmbr0.99 ; le cours Virtualisation détaille le réseau de l'hyperviseur.

Créer la machine virtuelle

Télécharge l'image de l'installateur sur la boutique de Netgate (le Netgate Installer, gratuit, délivré par un passage en caisse à 0 €), décompresse-la si elle est compressée, puis téléverse-la dans un stockage de l'hôte : local > ISO Images > Upload. Clique ensuite sur Create VM et remplis les onglets :

OngletChampValeurPourquoi
GeneralNamepf1Nom de la machine dans Proxmox
OSISO imageL'image du Netgate Installer
OSGuest OS TypeOtherpfSense est un FreeBSD, pas un Linux ni un Windows
SystemMachineq35Châssis moderne, conseillé
SystemBIOSSeaBIOS (ou OVMF (UEFI), voir plus bas)
DisksBus/DeviceVirtIO BlockPilote paravirtualisé, le plus rapide
DisksDisk size32 GiB8 Gio au minimum ; de la place pour les journaux, Suricata et pfBlockerNG
CPUCores24 si tu ajoutes Suricata
CPUTypehostLe processeur virtuel expose les instructions AES-NI du vrai processeur : VPN plus rapides
MemoryMemory4096 MiB1 Gio suffit pour démarrer, mais pfBlockerNG et Suricata en consomment beaucoup
MemoryBallooning DeviceDécochéLa mémoire d'un pare-feu ne doit pas être reprise par l'hôte
NetworkBridgevmbr1La première carte sera le WAN
NetworkModelVirtIO (paravirtualized)
NetworkFirewallDécochéLe pare-feu de Proxmox n'a rien à filtrer devant un pare-feu

Une fois la machine créée, ajoute les deux autres cartes : Hardware > Add > Network Device, pont vmbr0 sans étiquette de VLAN (VLAN Tag vide, pour recevoir toutes les étiquettes), puis pont vmbr2, toujours en VirtIO et sans le pare-feu de Proxmox. Dans Options, active Start at boot et donne à pf1 l'ordre de démarrage 1 (Start/Shutdown order) : le pare-feu doit démarrer avant les serveurs.

La même machine se crée en une commande, dans le shell de l'hôte :

bash
qm create 100 --name pf1 --ostype other --machine q35 \
  --cores 2 --cpu host --memory 4096 --balloon 0 \
  --virtio0 local-lvm:32 \
  --net0 virtio,bridge=vmbr1,firewall=0 \
  --net1 virtio,bridge=vmbr0,firewall=0 \
  --net2 virtio,bridge=vmbr2,firewall=0 \
  --cdrom local:iso/netgate-installer-amd64.iso \
  --boot 'order=virtio0;ide2' --onboot 1 --startup order=1

local-lvm:32 demande un disque neuf de 32 Gio sur le stockage local-lvm ; le nom de l'image ISO est celui sous lequel tu l'as téléversée. Côté pfSense, les cartes VirtIO s'appellent vtnet0, vtnet1 et vtnet2, dans l'ordre de net0, net1 et net2. Note les adresses MAC de chaque carte (onglet Hardware) : elles permettent de vérifier, dans l'installateur, quelle carte est laquelle.

Dérouler l'installation

Démarre la machine et ouvre sa Console. Le Netgate Installer est un installateur en ligne : il configure d'abord le réseau, vérifie l'accès à Internet, puis télécharge le système. Les étapes :

  1. License : accepte les conditions d'utilisation.
  2. Welcome : choisis Install (les autres choix servent au dépannage : Rescue Shell, et Configuration Restore si une ancienne configuration est trouvée sur le disque).
  3. Select WAN Interface : vtnet0 (vérifie l'adresse MAC). Configure WAN Interface : Interface Mode Static IP chez Sorbier, avec 203.0.113.17/29 et la passerelle 203.0.113.22 ; en salle de TP, laisse DHCP.
  4. Select LAN Interface : vtnet1. Laisse provisoirement l'adresse proposée, 192.168.1.1/24 : tu la remplaceras juste après par l'adresse du VLAN ADMIN.
  5. Confirm Network Configuration : Continue. L'installateur doit maintenant joindre Internet.
  6. L'installateur vérifie auprès de Netgate si la machine a droit à pfSense Plus. Sans abonnement, choisis Install CE.
  7. File System : garde ZFS, le choix par défaut et recommandé : il supporte bien mieux les coupures de courant que UFS. (Les environnements de démarrage ZFS, une copie du système avant chaque mise à jour, sont réservés à pfSense Plus ; en CE virtualisé, l'instantané de la machine virtuelle joue ce rôle, voir le chapitre 14.) Schéma de partitions : GPT.
  8. Choisis le disque vtbd0, confirme, choisis la version (la plus récente de l'édition CE), laisse l'installation se faire, puis Reboot. Retire l'image ISO du lecteur virtuel (Hardware > CD/DVD Drive > Do not use any media) pour que la machine démarre sur son disque.

Le menu de la console

Après le redémarrage, la console affiche les interfaces et un menu numéroté. Il sert quand l'interface web est inaccessible, et à la toute première configuration.

N°OptionQuand t'en servir
1Assign InterfacesAttribuer les cartes et créer des VLAN depuis la console
2Set interface(s) IP addressChanger l'adresse d'une interface (par exemple quand l'accès web est perdu)
3Reset webConfigurator passwordMot de passe administrateur oublié (accès physique à la console nécessaire)
4Reset to factory defaultsRepartir de zéro
5 et 6Reboot system, Halt systemRedémarrer, arrêter proprement
7Ping hostTester la connectivité depuis le pare-feu
8ShellLigne de commande FreeBSD
11Restart webConfiguratorL'interface web ne répond plus
13Update from consoleMettre à jour sans l'interface web
14Enable Secure Shell (sshd)Activer SSH (à limiter ensuite au VLAN ADMIN)
15Restore recent configurationRevenir à une configuration précédente après une erreur

Chez Sorbier, l'administration se fait uniquement depuis le VLAN 99. On crée donc tout de suite ce VLAN sur vtnet1 et on en fait l'interface LAN :

  1. Option 1. À la question Should VLANs be set up now?, réponds y. Parent : vtnet1, étiquette (VLAN tag) : 99. Laisse vide pour terminer la saisie des VLAN.
  2. WAN : vtnet0. LAN : vtnet1.99. Interface optionnelle 1 : vtnet2 (la future DMZ). Confirme avec y.
  3. Option 2, interface LAN : adresse 192.168.10.222, masque 28, pas de passerelle (upstream gateway : aucune, c'est un réseau interne), pas d'IPv6 pour l'instant, pas de serveur DHCP (les machines du VLAN ADMIN ont des adresses fixes), et garde HTTPS pour l'interface web.

Depuis le poste d'administration (192.168.10.209/28, passerelle 192.168.10.222, branché sur un port du VLAN 99), ouvre https://192.168.10.222. Le navigateur prévient que le certificat est autosigné : c'est normal à ce stade, on le remplacera (chapitre 14).

L'assistant de configuration

À la première connexion (admin / pfsense, les identifiants par défaut), pfSense lance l'assistant (System > Setup Wizard) :

  1. General Information : Hostname pf1, Domain ad.sorbier.example. Laisse les serveurs DNS vides : pfSense résout lui-même les noms grâce à son résolveur Unbound (chapitre 8).
  2. Time Server Information : garde le serveur de temps proposé et choisis le fuseau Europe/Paris. Des journaux à la mauvaise heure ne valent rien dans une enquête.
  3. Configure WAN Interface : l'adresse est déjà réglée. Laisse cochées Block RFC1918 Private Networks et Block bogon networks : la première refuse sur le WAN les paquets dont l'adresse source est privée (forcément usurpée sur Internet), la seconde les plages qui ne devraient jamais circuler sur Internet (adresses non attribuées ou réservées).
  4. Configure LAN Interface : 192.168.10.222/28, déjà réglé.
  5. Set Admin WebGUI Password : un mot de passe long et unique, rangé dans le coffre-fort de mots de passe de l'équipe.
  6. Reload, puis Finish.

Deux réglages indispensables en machine virtuelle

Désactiver le déchargement des sommes de contrôle. Avec les cartes VirtIO, Netgate impose de cocher System > Advanced > Networking > Disable hardware checksum offload, puis de redémarrer (Diagnostics > Reboot). Sans cela, la carte virtuelle laisse au matériel le calcul des sommes de contrôle que personne ne fait vraiment : des paquets partent avec une somme fausse, et certains flux (souvent le DNS, le DHCP ou le VPN) échouent de façon aléatoire. C'est la panne la plus fréquente des pfSense virtualisés.

Choisir le serveur DHCP Kea. Dans le même onglet, la section DHCP Options propose le moteur du serveur DHCP (Server Backend) : Kea DHCP, le moteur actuel, ou ISC DHCP, l'ancien, qui n'est plus maintenu. Choisis Kea : c'est le seul à recevoir des correctifs, et il est nécessaire pour la haute disponibilité du DHCP (chapitre 13).

Vérifie enfin que tout répond :

  • Status > Dashboard : la version, le processeur (avec AES-NI), la mémoire, les interfaces actives ;
  • Diagnostics > Ping : 9.9.9.9 depuis le WAN, puis un nom (deb.debian.org) pour tester la résolution ;
  • System > Update : la branche Current Stable Version et l'état « à jour ».

Exercices

Exercice 1 sur 4 Le bon pont pour chaque carte Réussi À revoir

Un étudiant crée pf1 avec net0 sur vmbr0 (étiquette 99), net1 sur vmbr1 et net2 sur vmbr2. Il attribue vtnet0 au WAN et vtnet1 au LAN, comme dans le cours.

  1. Quelle carte reçoit en réalité le trafic d'Internet ?
  2. Que se passe-t-il pendant l'installation ?
  3. Pourquoi l'étiquette 99 sur net0 est-elle de toute façon un mauvais choix pour la carte des VLAN internes ?
Voir la réponseMasquer la réponse de l'exercice 1
  1. vtnet1, puisque c'est net1 qui est branchée sur vmbr1, le pont du WAN. Les noms vtnetN suivent l'ordre des cartes netN.
  2. L'installateur cherche Internet sur vtnet0, qui est en réalité dans le VLAN ADMIN : pas de passerelle vers Internet, la vérification auprès de Netgate échoue (Cannot verify the eligibility of this system) et l'installation ne peut pas continuer. D'où le conseil de vérifier les adresses MAC.
  3. Avec une étiquette, Proxmox ne fait passer vers la carte que le VLAN 99, sans étiquette : la carte ne verra jamais les autres VLAN. La carte qui porte les VLAN internes doit être branchée sur un pont sensible aux VLAN sans étiquette, pour recevoir toutes les trames étiquetées et laisser pfSense créer ses interfaces VLAN.

Tu avais trouvé ?

Exercice 2 sur 4 Dimensionner la machine virtuelle Réussi À revoir

Pour un pfSense qui doit faire tourner Suricata sur deux interfaces et pfBlockerNG, un collègue propose 1 vCPU, 1 Gio de mémoire avec ballooning, un disque IDE de 8 Gio et des cartes Intel E1000. Corrige chaque choix en une phrase.

Voir la réponseMasquer la réponse de l'exercice 2
  • Processeur : 2 à 4 cœurs, type host ; Suricata analyse chaque paquet et a besoin de puissance, et le type host donne AES-NI aux VPN.
  • Mémoire : au moins 4 Gio, sans ballooning ; Suricata et les listes de pfBlockerNG vivent en mémoire, et l'hôte ne doit pas pouvoir en reprendre.
  • Disque : VirtIO Block et au moins 32 Gio ; le bus VirtIO est bien plus rapide que l'IDE émulé, et les journaux, les règles de Suricata et les listes prennent de la place.
  • Cartes réseau : VirtIO (paravirtualized) ; les cartes E1000 sont émulées, donc lentes et gourmandes en processeur. Ne pas oublier ensuite de désactiver le déchargement des sommes de contrôle.

Tu avais trouvé ?

Exercice 3 sur 4 Le DNS qui marche une fois sur deux Réussi À revoir

Sur un pfSense tout juste installé dans Proxmox, les postes naviguent, mais la résolution DNS échoue de temps en temps et le VPN OpenVPN refuse de s'établir. Les règles sont correctes. Quelle est la cause la plus probable ? Où corriges-tu ?

Voir la réponseMasquer la réponse de l'exercice 3

Le déchargement matériel des sommes de contrôle n'a pas été désactivé : avec des cartes VirtIO, des paquets UDP (DNS, OpenVPN) partent avec une somme de contrôle invalide et sont rejetés par le destinataire. Correction : System > Advanced > Networking, cocher Disable hardware checksum offload, enregistrer, puis redémarrer le pare-feu.

Tu avais trouvé ?

Exercice 4 sur 4 Retrouver l'accès Réussi À revoir

Après une fausse manipulation dans Interfaces > LAN, l'interface LAN de pf1 a pris l'adresse 192.168.10.226/28 et plus personne n'accède à l'interface web. Comment rétablis-tu l'accès, sans perdre le reste de la configuration ?

Voir la réponseMasquer la réponse de l'exercice 4

Par la console de la machine virtuelle dans Proxmox (qui ne dépend pas du réseau) : option 2 Set interface(s) IP address, interface LAN, adresse 192.168.10.222, masque 28, sans passerelle ni DHCP. L'option 15 Restore recent configuration permet aussi de revenir à la configuration enregistrée juste avant l'erreur. Ni l'une ni l'autre ne touche aux règles ou aux VPN.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Interfaces et VLAN sur pfSenseRevoir le sommaire du cours