Aller au contenu

🧰 Installation de PacketFence

Logo 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 :

Schéma réseau

🖧 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 :

/etc/network/interfaces
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 :

Configuration VM PacketFence

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 :

Installation de 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" :

Install PF

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

Install PF

Etape 2

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

Install PF

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

Install PF

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

Install PF

Etape 3

Install PF

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"

Install PF

Choisissez "Register with your email"

Install PF
Install PF
Install PF
Install PF

Copiez l'API key

Install PF

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

Install PF
Install PF

Etape 4

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

Install PF

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 :

Install PF

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

Tableau de bord de PacketFence

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