🧰 Installation de PacketFence

👋 Présentation rapide
PacketFence est un logiciel libre et gratuit de contrôle d'accès au réseau dit aussi NAC. De manière simple, il va permettre d'autoriser ou pas l'accès au réseau à des terminaux à travers une connexion filaire ou sans fil, en s'appuyant sur des noeuds intermédiaires (switch et AP).
🎯 Objectif
Cette documentation vise à mettre en place le NAC PacketFence afin d'authentifier les appareils se connectant au réseau de manière filaire ou sans fil et de les placer automatiquement dans un VLAN voulu.
Je débute sur PacketFence et la documentation officielle bien qu'étant riche n'est pas toujours très claire. Ma documentation est donc plus une approche expérimentale qu'un HOW-TO clé en main.
📑 Prérequis
Selon la documentation :
- Intel or AMD CPU 3 GHz, 4 CPU cores
- 16 GB of RAM
- 200 GB of disk space (RAID-1 recommended)
- 1 network card (2 recommended)
C'est vraiment le minimum. Si vous avez plus de ressources, n'hésitez pas à les utiliser.
J'avais commencé sur une maquette GNS3 mais j'ai rencontré quelques avec les switchs virtuel Cisco. Je suis donc reparti de zéro sur une maquette physique que j'ai déployée dans mon garage.
J'ai utilisé pour cela du matériel principalement issu de récup :
- Un Firewall avec OPNSense
- Un PC HP datant de 2015 :
- Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz
- RAM récupérée pour monter à 20 Go
- SSD 2 To
- 1 Port ethernet 1 Gb
- OS : Proxmox VE
- Un vieux switch CISCO manageable SF302-08P 8-Port 10/100 PoE
- Un vieux PC pour le serveur Windows 2019 (AD)
- Un AP wifi Ubiquiti AC Lite
- Un PC portable avec Windows 10 Pro
- Un raspberry Pi 3 permettant de simuler des appareils basiques comme une imprimante par exemple
Non obligatoire : créez également un compte mail packetfence@votredomaine.fr sur votre serveur mail. Cela sera utile pour configurer un serveur SMTP.
Schéma :

🖧 Configuration réseau de la maquette
Voici la configuration réseau de départ.
Domaine : labo.lan
VLAN et adressage réseau
ID | Nom | Réseau | Passerelle/DHCP | DNS |
---|---|---|---|---|
10 | Administration | 192.168.10.0/24 | OPNSense | AD |
20 | LAN | 192.168.20.0/24 | OPNSense | AD |
30 | AD | 192.168.30.0/24 | OPNSense | AD |
40 | Guests | 192.168.40.0/24 | OPNSense | OPNSense |
Adressage IP des hôtes
Hôte | Interface | IP | Commentaire |
---|---|---|---|
opnslab | WAN | DHCP | |
Administration | 192.168.10.1 | VLAN TAG 10 sur igb1 | |
LAN | 192.168.20.1 | VLAN TAG 20 sur igb1 | |
AD | 192.168.30.1 | VLAN TAG 30 sur igb1 | |
Guests | 192.168.40.1 | VLAN TAG 40 sur igb1 | |
sw01 | VLAN 10 | 192.168.10.2 | |
ad2019 | 192.168.30.10 | ||
pve01 | vmbr0.10 | 192.168.10.254 | VLAN TAG 10 sur vmbr0 |
packetfence | Management | 192.168.10.253 | VLAN TAG 10 au niveau du périph réseau net0 de la VM |
unifi-controller | eth0 | 192.168.10.252 | VLAN TAG 10 au niveau du périph réseau eth0 du CT |
AP AC Lite | 192.168.10.3 | ||
cltwin01 | Ethernet/Wifi | DHCP |
Connexion réseau
Hôte | Port si plss | SW | Port | VLAN TYPE |
---|---|---|---|---|
pve01 | sw01 | P1 | TAG 10 | |
ad2019 | sw01 | P2 | UNTAG 30 | |
AP AC Lite | sw01 | P3 | UNTAG 10 / TAG 20,40 | |
opnslab | igb1 | sw01 | P8 | TAG 10,20,30,40 |
Clients | sw01 | P4-7 | UNTAG 1 (VLAN par défaut) |
La maquette étant séparée de mon réseau, j'ai créé des règles NAT sur OPNSense afin d'accéder depuis l'extérieur aux interfaces des hôtes (SSH, HTTPS, RDP...).
🧰 Installation de PacketFence
Création de la VM
PacketFence tourne dans une VM sur Proxmox VE. Il faut déjà avoir configuré l'hyperviseur pour prendre en compte les VLAN :
auto lo
iface lo inet loopback
iface enp2s0 inet manual
auto vmbr0
iface vmbr0 inet static
bridge-ports enp2s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr0.10
iface vmbr0.10 inet static
address 192.168.10.254/24
gateway 192.168.10.1
source /etc/network/interfaces.d/*
Configuration de la VM :

Installation
J'avais testé la version ZEN mais le système était alors installé en anglais sans possibilité de choisir la langue. J'ai donc installé Debian 12 puis installé PacketFence dessus.
Après avoir installé Debian 12 et configuré le réseau, on installe PacketFence :
systemctl stop apparmor
systemctl disable apparmor
apt install linux-headers-$(uname -r)
apt install gnupg sudo curl
curl -fsSL https://inverse.ca/downloads/GPG_PUBLIC_KEY | gpg --dearmor -o /etc/apt/keyrings/packetfence.gpg
echo "deb [signed-by=/etc/apt/keyrings/packetfence.gpg] http://inverse.ca/downloads/PacketFence/debian/14.1 bookworm bookworm" > /etc/apt/sources.list.d/packetfence.list
apt update
apt-get install packetfence
Prenez un café et à la fin de l'installation, ne redémarrez surtout pas votre VM et connectez-vous à l'interface web de PacketFence (ici https://192.168.10.253:1443 ) pour finaliser l'installation.
Etape 1
Cliquez sur "Détecter l'interface de management" :

Si OK, vous pouvez alors cliquer sur le bouton "Etape suivante" :

Etape 2
Laissez tel quel la configuration de la base de données et configurez les paramètres généraux :

Configurez les paramètres SMTP et testez-les. Cela nous sera utile plus tard.

Renseignez le mot de passe du compte admin et validez en cliquant sur "Etape suivante" :

Etape 3

Cette étape mérite que l'on s'y arrête un peu dessus. À quoi sert la fonctionnalité Fingerbank ?
Fingerbank est un outil de profilage des appareils. Cela permet à un administrateur de déclencher des événements de sécurité ou des actions automatiques en fonction de différents types d'appareils, des appareils parents, des empreintes DHCP, des identifiants de fournisseurs DHCP, des fabricants de cartes réseau (MAC vendors) et des agents utilisateurs des navigateurs.
Deux modes de fonctionnement :
- Mode local : il fonctionne sans connexion à la base en ligne de Fingerbank.
- Mode connecté (non activé par défaut) : il se connecte à Internet pour partager et recevoir des données plus précises, et ainsi mieux reconnaître les nouveaux appareils.
Dans notre cas, nous allons utiliser le mode connecté. Cliquez sur le lien "registration page", cela ouvre la page web https://api.fingerbank.org/users/register, puis cliquez sur "Login or Signup"

Choisissez "Register with your email"




Copiez l'API key

Collez la clé dans Clef d'API et cliquez sur Verifier :


Etape 4
Conservez les mots de passe dans un endroit sûr (Vaultwarden par exemple)

Finalisez l'installation en cliquant sur Démarrer PacketFence. Suivant vos ressources, cela peut prendre plus ou moins beaucoup de temps. À la fin, vous devez être redirigé vers la mire de connexion de PacketFence :

Authentifiez-vous avec le compte admin créé précédemment et vous arriverez alors sur le tableau de bord.

👉 La suite ...
Maintenant que PacketFence est installé, nous allons mettre en place une première authentification basique s'appuyant sur l'adresse MAC d'un appareil.