Création des CDs d'installation
Cette méthode a été utilisée pour les CD d'installation des machines suivantes:
- Serveur sécurisé
- Serveur non sécurisé
- Honeypot sécurisé
- Honeypot non sécurisé
- IDS sécurisé
- IDS non sécurisé
Note: Ces 6 configuration sont toutes basées sur
la distribution Debian.
But
Le but était d'avoir une installation la plus automatisée possible, ne
nécessitant pas ou peu d'intervention humaine. Le principe était de partir
d'une image de la machine de départ, et de créer un CD-ROM bootable
permettant de recréer la machine à partir de cette image.
Fonctionnement
La base de départ a été un LiveCD destiné à l'origine à l'installation de
la distribution
Gentoo. Ce CD bootable contient un système Linux minimal,
suffisant pour nos besoins durant l'installation.
On peut monter l'image ISO d'un tel CD sur un péripherique loopback, et
à partir de la l'éditer pour y rajouter les différents éléments nécessaires.
La structure de l'image de base est la suivante :
twillight livecd # ls -l
total 3
drwxr-xr-x 3 root root 96 Feb 28 02:26 docs
drwxr-xr-x 2 root root 432 Apr 4 12:50 isolinux
dr-xr-xr-x 2 root root 48 Mar 1 07:42 rr_moved
drwxr-xr-x 17 root root 408 Feb 29 01:34 zisofs
Le répertoire isolinux contient les éléments nécessaires au bootloader (le
kernel et son initrd, le bootloader en lui-même...). Le répertoire zisofs
contient la racine du systeme de fichiers une fois le CD démarré.
Normalement, le boot se termine sur un shell root. Nous avons modifié les
scripts de demarrage de façon à ce que le démarrage se continue par
l'exécution d'un script spécifique.
Ce script effectue les tâches suivantes :
- Détection de la taille du disque (pour déterminer la taille des
partitions)
- Suppression des anciennes partitions
- Création des nouvelles partitions
- Décompression des images des différents répertoires
- Installation du bootloader (lilo)
- Reboot du système
Note: La taille des partitions à créer est déterminée en soustrayant à la
taille totale du disque dur la taille nécessaire pour la partition swap.
Une image de machine est composee d'un certains nombres d'archives
compressees representant les principaux repertoires :
twillight livecd # ls /home/root/tar-gz/adm-secure/ -l
total 191428
-rw-r--r-- 1 widan users 1104815 Apr 4 11:13 bin-secure.tar.gz
-rw-r--r-- 1 widan users 2566219 Apr 4 11:13 boot-secure.tar.gz
-rw-r--r-- 1 widan users 58982 Apr 4 11:13 dev-secure.tar.gz
-rw-r--r-- 1 widan users 423243 Apr 4 11:13 etc-secure.tar.gz
-rw-r--r-- 1 widan users 1607 Apr 4 11:13 home-secure.tar.gz
-rw-r--r-- 1 widan users 6682356 Apr 4 11:13 lib-secure.tar.gz
-rw-r--r-- 1 widan users 40274 Apr 4 11:13 root-secure.tar.gz
-rw-r--r-- 1 widan users 1094458 Apr 4 11:13 sbin-secure.tar.gz
-rw-r--r-- 1 widan users 129990073 Apr 4 11:22 usr-secure.tar.gz
-rw-r--r-- 1 widan users 54040529 Apr 4 11:26 var-secure.tar.gz
Ces archives se placent dans un nouveau repertoire
/ifiles.
Une fois l'image modifiée, il est possible de recréer l'image ISO bootable
avec la commande :
# mkisofs -J -R -l -o ../gentoo.iso -b isolinux/isolinux.bin \
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
-boot-info-table -z .
Le CD-ROM obtenu est bootable. Ces CD-ROMs ont été testés sous l'émulateur VmWare (pour verifier qu'ils etaient capables d'effectuer
l'installation correctement, et verifier les fonctionnalites minimales du
systeme), avant d'etre testés sur des machines réelles.
Ces CD-ROMs permettent d'effectuer une installation en quelques minutes.
Note: grâce à ce procédé, nous pouvons installer ces machines en moins de
trois minutes sans interaction de l'utilisateur.