Ceci est une ancienne révision du document !
Table des matières
Serveur Clonezilla des Abeilles
Pourquoi un serveur iPXE - Clonezilla
Une vingtaine d'ordinateurs par semaine à configurer pour être distribuer par le Centre des Abeilles dans le cadre de son opération de solidarité débutée en 2009, avec une ou plusieurs clés usb Clonezilla pour déployer des images du système, ces manipulations deviennent fastidieuses surtout lorsqu'il faut mettre à jour ces différentes clés. Un serveur DRBL - Clonezilla est d'une utilisation complexe puisqu'il faut intervenir aussi bien sur le serveur que sur le poste client. Par contre Un serveur iPxe couplé à Clonezilla à l'avantage de laisser au poste client le choix de l'image système à cloner, par exemple Debian BIOS ou UEFI sans intervenir sur le serveur lui-même.
Pourquoi PXE et iPXE
Suivant que les postes clients sont en BIOS (Legacy) ou en UEFI ils vont boutés en PXE ou en iPXE
Extrait de IT-Connect
Le boot PXE (Preboot Execution Environment) repose sur deux protocoles importants : le protocole DHCP (Dynamic Host Configuration Protocol) pour fournir une configuration IP au client PXE, ainsi que l'adresse IP du serveur qui héberge les sources, ainsi que le protocole TFTP (Trivial File Transfer Protocol) pour accéder au serveur PXE et commencer à transférer l'image de démarrage via le réseau
- Le client PXE, à savoir l'ordinateur, démarre et envoie une requête DHCP sur le réseau pour obtenir une adresse IP.
- Le serveur DHCP répond à la demande en fournissant une adresse IP au client, ainsi que les informations nécessaires pour accéder au serveur PXE (adresse IP ou nom).
- Le client PXE peut accéder au réseau donc il envoie une demande de boot PXE sur le réseau, en utilisant le protocole TFTP pour accéder au serveur PXE.
- Le serveur PXE répond à la demande de l'ordinateur en fournissant les fichiers nécessaires pour le démarrage du système.
- Le client PXE télécharge ces fichiers à partir du serveur PXE (via le protocole TFTP) et les utilise pour démarrer sur l'image fournie.
Le boot iPXE est une méthode plus récente qui permet à un ordinateur de démarrer sur le réseau. Le protocole iPXE est une extension du protocole PXE qui offre des fonctionnalités supplémentaires telles que:
- le démarrage à partir d'un serveur web via HTTP
- le support des scripts et des menus de démarrage personnalisés
UEFI vs BIOS : détecter l’architecture via DHCP pour envoyer ipxe.efi en UEFI et undionly.kpxe en BIOS, sinon l’amorçage échoue
Passerelle : si vous voulez Internet pour les clients, activer ip_forward et éventuellement NAT
Objectif du serveur
- eth0 → accès Internet via le DHCP de votre réseau externe
- eth1 → réseau interne dédié au déploiement :
- Serveur DHCP interne
- Boot iPXE (DHCP + TFTP)
- Clonezilla pour cloner des postes
- Après clonage, les postes pourront accéder à Internet via la machine serveur (routage + NAT)
Installation
Utilisez un ordinateur comportant deux cartes réseau sous Debian 13 Gnome chiffré avec serveurs WEB et SSH installés
1. Vérification et configuration des interfaces réseau
Identifier les interfaces. Notez les noms exacts (ex: eth0, eth1 ou enp3s0, enp4s0)
ip link show
Si vous utilisez systemd-networkd sur :
/etc/systemd/network/10-external.network
ini [Match] Name=eth0 [Network] DHCP=yes
et sur
/etc/systemd/network/20-internal.network
ini [Match] Name=eth1 [Network] Address=192.168.50.1/24
Activez
sudo systemctl restart systemd-networkd
2. Installez les services nécessaires
Nous utiliserons dnsmasq, car il gère DHCP interne, TFTP et support PXE/iPXE
sudo apt update sudo apt install dnsmasq ipxe tftpd-hpa
3. Préparer le répertoire TFTP
sudo mkdir -p /srv/tftp sudo chmod -R 755 /srv/tftp
Copier les images iPXE :
sudo cp /usr/lib/ipxe/{undionly.kpxe,ipxe.efi} /srv/tftp/
4. Configurer dnsmasq (DHCP interne + TFTP)
Éditer :
/etc/dnsmasq.d/ipxe.conf
# Interface interne uniquement interface=eth1 bind-interfaces # DHCP range for client machines dhcp-range=192.168.50.10,192.168.50.200,12h # Gateway vers Internet à travers le serveur dhcp-option=3,192.168.50.1 dhcp-option=6,1.1.1.1,8.8.8.8 # TFTP server enable-tftp tftp-root=/srv/tftp # Fichiers de boot iPXE dhcp-boot=undionly.kpxe
Redémarrer
sudo systemctl restart dnsmasq
5. Mettre les fichiers Clonezilla sur le serveur Web
Les images Clonezilla doivent être servies par HTTP (plus rapide que TFTP).
Créer un dossier :
sudo mkdir -p /var/www/html/clonezilla/live
Télécharger Clonezilla zip
Extraire le fichier zip dans /home/lq/Téléchargements/clonezilla-live-x.x.x-xx-amd64 puis copier les fichiers :
cd /home/lq/Téléchargements/clonezilla-live-x.x.x-xx-amd64/live sudo cp filesystem.squashfs initrd.img vmlinuz /var/www/html/clonezilla/live/ .
6. Configurer le script iPXE
Créer le fichier
/srv/tftp/boot.ipxe
#!ipxe kernel http://192.168.50.1/clonezilla/live/vmlinuz boot=live union=overlay ip=dhcp components fetch=http://192.168.50.1/clonezilla/live/filesystem.squashfs noeject toram initrd http://192.168.50.1/clonezilla/live/initrd.img boot
Modifier dnsmasq pour que iPXE lance ce script :
Ajouter à
/etc/dnsmasq.d/ipxe.conf
dhcp-userclass=set:ipxe,iPXE dhcp-boot=tag:ipxe,boot.ipxe
Redémarrer :
sudo systemctl restart dnsmasq
7. Configurer le routage Internet pour les postes clonés
Activer l'IP forwarding :
Dans
/etc/sysctl.conf
net.ipv4.ip_forward = 1
Appliquer :
sudo sysctl -p
Configurer le NAT :
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Rendre permanent :
sudo apt install iptables-persistent sudo netfilter-persistent save
Les postes du réseau interne pourront maintenant accéder à Internet via le serveur.
8. Test du boot iPXE
- Brancher un poste sur le réseau interne (via eth1)
- Activer le boot PXE dans le BIOS
- Vérifier que :
- il obtient une IP → 192.168.50.x
- il télécharge `undionly.kpxe`
- iPXE charge `boot.ipxe`
- Clonezilla démarre
