Construction d'un laboratoire sécurisé : Déploiement de Kali Linux et pfSense
Aperçu du projet
La création d'un laboratoire de sécurité et de tests d'intrusion dédié est essentielle pour tout professionnel de la sécurité en devenir. Cet article documente le déploiement complet d'un environnement homelab sécurisé comprenant Kali Linux et pfSense, exécutés sur Proxmox VE.
Architecture du laboratoire
Proxmox Host
├── pfSense VM (Firewall/Router)
│ ├── WAN (vmbr0) → 192.168.11.253
│ └── LAN (vmbr1) → 192.168.1.1
├── Kali Linux VM (Penetration Testing)
│ └── Network: vmbr1 → 192.168.1.10
└── Ubuntu Server VM (Services)
└── Network: vmbr1 → 192.168.1.20
Installation de la VM Kali Linux
Spécifications de la VM
Configuration matérielle : - BIOS: SeaBIOS (suite à des problèmes de compatibilité OVMF) - Disque: 80 Go (Contrôleur unique VirtIO SCSI) - CPU: 4 cœurs - RAM: 8 Go - Réseau: VirtIO (connecté à vmbr1) - Ordre de démarrage: Disque en premier, CD-ROM en second
Pourquoi ces spécifications ?
Taille du disque (80 Go): - Installation de base de Kali : ~20 Go - Base de données d'outils et d'exploits : ~15 Go - Espace de travail et fichiers de projet : ~20 Go - Snapshots et mises à jour de la VM : ~25 Go
CPU (4 cœurs): - Scan et exploitation en parallèle - Cassage de mot de passe efficace - Performance fluide de l'interface graphique (GUI) - Support des outils multithreadés
RAM (8 Go): - Fonctionnement confortable de l'interface graphique - Plusieurs VM pour les scénarios de laboratoire - Développement d'exploits en mémoire - Outils basés sur navigateur (Burp Suite)
Création de la VM dans Proxmox
Étape 1 : Téléchargement de l'ISO de Kali Linux
# On Proxmox host
cd /var/lib/vz/template/iso
# Download latest Kali Linux
wget https://cdimage.kali.org/kali-2024.4/kali-linux-2024.4-installer-amd64.iso
# Verify checksum
wget https://cdimage.kali.org/kali-2024.4/SHA256SUMS
sha256sum -c SHA256SUMS 2>&1 | grep kali-linux-2024.4-installer-amd64.isoÉtape 2 : Créer la VM via l'interface utilisateur Proxmox
- Général :
- ID de la VM : 101 (ou votre préférence)
- Nom : kali-pentest
- Démarrer au boot : Non (démarrage manuel pour le travail de laboratoire)
- OS:
- ISO Image: kali-linux-2024.4-installer-amd64.iso
- Guest OS Type: Linux
- Version: 6.x - 2.6 Kernel
- Système :
- BIOS: SeaBIOS
- Machine : i440fx (ou q35 pour un meilleur support matériel)
- SCSI Controller: VirtIO SCSI Single
- Agent Qemu : ✓ (activer après l'installation de l'OS)
- Disques :
- Bus/Device: SCSI
- Storage: local-lvm
- Taille du disque : 80 Go
- Cache : Write back (pour de meilleures performances)
- Discard : ✓ (pour le thin provisioning)
- Émulation SSD : ✓ (si l'hôte utilise un SSD)
- CPU:
- Sockets: 1
- Cores: 4
- Type : host (ou kvm64 pour la compatibilité)
- Mémoire :
- Mémoire : 8192 Mo
- Minimum : 4096 Mo (ballooning)
- Réseau :
- Bridge: vmbr1 (réseau de laboratoire isolé)
- Modèle : VirtIO (paravirtualisé)
- Pare-feu : Désactivé (pfSense s'en chargera)
Étape 3 : Installer Kali Linux
- Démarrer la VM et ouvrir la console
- Démarrer à partir de l'installateur
- Sélectionner Installation graphique (Graphical Install)
- Langue, Emplacement, Clavier : Vos préférences
- Configuration du réseau :
- Configurer automatiquement via DHCP (pfSense fournira l'adresse)
- Hostname: kali-pentest
- Domain: lab.local
- Configuration de l'utilisateur :
- Nom complet : Testeur d'intrusion
- Username: pentest
- Mot de passe : Mot de passe fort requis
- Partitionnement :
- Méthode : Guidée - utiliser l'intégralité du disque
- Schéma : Tous les fichiers dans une seule partition
- Écrire les changements : Oui
- Sélection des logiciels :
- ✓ Bureau Kali par défaut (XFCE recommandé pour la performance)
- ✓ Top 10 des outils de sécurité
- ✓ Grande collection d'outils (si l'espace disque le permet)
- GRUB Bootloader:
- Install to: /dev/sda
- Continue
- Redémarrer et se connecter
Configuration post-installation
Mise à jour du système
# Full system update
sudo apt update
sudo apt full-upgrade -y
# Update Kali package list
sudo apt update
# Install additional tools
sudo apt install -y \
vim \
git \
curl \
wget \
tmux \
net-tools \
nmap \
wireshark \
metasploit-frameworkInstallation de l'Agent Invité Proxmox
# Install qemu-guest-agent
sudo apt install qemu-guest-agent -y
# Enable and start service
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
# In Proxmox UI: VM → Options → QEMU Guest Agent → EnableInstallation de la VM pfSense
Spécifications de la VM
Configuration matérielle : - BIOS: SeaBIOS - Disque: 20 Go (suffisant pour pfSense + paquets) - CPU: 2 cœurs (adéquat pour un petit laboratoire) - RAM: 4 Go (2 Go minimum, 4 Go confortable) - Interfaces réseau: - vtnet0 (WAN) → vmbr0 - vtnet1 (LAN) → vmbr1
Création du Bridge Virtuel (vmbr1)
Avant de créer la VM pfSense, assurez-vous que vmbr1 existe :
# On Proxmox host, edit network config
nano /etc/network/interfaces
# Add vmbr1 configuration:
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
# No IP address - this is for VMs only
# Apply changes
ifreload -a
# Verify
ip link show vmbr1Création de la VM pfSense
Télécharger l'ISO pfSense
# On Proxmox host
cd /var/lib/vz/template/iso
# Download pfSense (community edition)
wget https://nyifiles.netgate.com/mirror/downloads/pfSense-CE-2.7.2-RELEASE-amd64.iso.gz
# Extract
gunzip pfSense-CE-2.7.2-RELEASE-amd64.iso.gzCréer la VM via l'interface utilisateur Proxmox
- Général :
- VM ID: 100
- Nom : pfsense-firewall
- Démarrer au boot : Oui (infrastructure critique)
- OS:
- ISO Image: pfSense-CE-2.7.2-RELEASE-amd64.iso
- Type d'OS invité : Autre
- Système :
- BIOS: SeaBIOS
- SCSI Controller: VirtIO SCSI
- Disques :
- Bus/Device: SCSI
- Taille du disque : 20 Go
- Cache: Write back
- CPU:
- Cores: 2
- Mémoire :
- Mémoire : 4096 Mo
- Réseau :
- Première Interface (WAN):
- Bridge: vmbr0
- Model: VirtIO
- Après la création, ajouter la deuxième interface (LAN):
- Matériel → Ajouter → Périphérique Réseau
- Bridge: vmbr1
- Model: VirtIO
- Première Interface (WAN):
Installer pfSense
- Démarrer la VM et ouvrir la console
- Accepter l'avis de droit d'auteur
- Installer pfSense : Sélectionner Install
- Keymap: Auto (ZFS)
- Partitionnement : Stripe (disque unique)
- Select disk:
da0(20GB) - Confirm: Yes
- L'installation se termine
- Reboot
Configuration initiale de pfSense
Après le redémarrage, configurez les interfaces via la console :
Should VLANs be set up now? n
Enter the WAN interface name: vtnet0
Enter the LAN interface name: vtnet1
Proceed? y
Définir l'adresse IP LAN :
Set interface(s) IP address
Select interface: 2 (LAN)
Configure IPv4 address via DHCP? n
Enter new LAN IPv4 address: 192.168.1.1
Enter new LAN IPv4 subnet: 24
Configure IPv6? n
Enable DHCP server on LAN? y
Enter start IP: 192.168.1.10
Enter end IP: 192.168.1.250
Accéder à l'interface Web pfSense
Depuis la VM Kali ou une autre VM sur vmbr1 :
# Get DHCP lease from pfSense
sudo dhclient
# Verify IP
ip addr show
# Access pfSense GUI
https://192.168.1.1
# Default credentials:
# Username: admin
# Password: pfsenseConfiguration du réseau de laboratoire
Schéma réseau
Internet
↓
Router (192.168.11.1)
↓
Proxmox vmbr0 (192.168.11.254)
↓
pfSense WAN (192.168.11.253)
↓
pfSense LAN (192.168.1.1)
↓
vmbr1 (Internal Lab Network)
├── Kali Linux (192.168.1.10)
├── Ubuntu Server (192.168.1.20)
└── Target VMs (192.168.1.50-100)
Configurer le réseau Kali
# Edit network config
sudo nano /etc/network/interfaces
# Add static IP (optional, DHCP works too)
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
# Restart networking
sudo systemctl restart networking
# Or use network manager
sudo nmtuiCréation de Snapshots
Pourquoi un Snapshot ?
- Expérimentation sûre: Revenir en arrière après les tests
- Sauvegardes de configuration: Avant les changements majeurs
- Récupération rapide: Retour arrière en cas d'échec
Créer un Snapshot via l'interface utilisateur Proxmox
- Sélectionner la VM (Kali ou pfSense)
- Aller à l'onglet Snapshots
- Cliquer sur Prendre un Snapshot
- Nom :
post-install-cleanouworking-config - Description : “Installation fraîche, entièrement mise à jour”
- Inclure la RAM : Non (snapshot plus petit)
Créer un Snapshot via la CLI
# Snapshot Kali VM (ID 101)
qm snapshot 101 post-install --description "Clean Kali install after updates"
# Snapshot pfSense VM (ID 100)
qm snapshot 100 baseline-config --description "Working pfSense configuration"
# List snapshots
qm listsnapshot 101
# Rollback to snapshot
qm rollback 101 post-installTester le laboratoire
Vérifier la connectivité réseau
# From Kali VM:
# Test LAN gateway
ping 192.168.1.1
# Test WAN gateway (through pfSense)
ping 8.8.8.8
# Test DNS resolution
nslookup google.comTests d'intrusion de base
# Scan internal network
nmap -sn 192.168.1.0/24
# Scan pfSense
nmap -sV -p 1-1000 192.168.1.1
# Test vulnerability scanning
nikto -h https://192.168.1.1Conclusion
Ce déploiement de laboratoire sécurisé fournit :
- ✅ Environnement de test d'intrusion isolé
- ✅ Segmentation réseau appropriée avec pfSense
- ✅ Poste de travail Kali Linux entièrement fonctionnel
- ✅ Filet de sécurité basé sur les snapshots
- ✅ Architecture évolutive pour des VM supplémentaires
Ce laboratoire sert de base pour : - Test d'outils de sécurité - Développement d'exploits - Test d'intrusion réseau - Préparation aux certifications (OSCP, CEH, etc.)
Prochaines étapes : Déployer des VM vulnérables (Metasploitable, DVWA) et configurer pfSense avec IDS/IPS (Suricata/Snort).