Archeologie expérimentale, installer une debian 1.3
Divulgâchage : Sur les traces des géants : Pour suivre les traces d’Aleph One, nous installons un système de l’époque, une debian 1.3, dans une machine virtuelle VirtualBox 6.0. On considère que vous savez créer des VM et installer des systèmes habituels. On va donc se concentrer sur les subtilités.
L’autre jour, je me suis demandée comment configurer une machine pour mes étudiants afin qu’ils puissent suivre pas à pas l’article Smashing the Stack for Fun and Profit, sans se prendre la tête. Le but étant de comprendre la base des buffer overflows, toutes les protections existantes de nos jours sur nos OS modernes ne font que rajouter du bruit.
Une des solutions que j’ai envisagé était d’installer un vieil OS dans une machine virtuelle. Comme à l’époque, en 1996… J’aurais pu installer une Debian 1.1 Buzz ou une Slackware 3.1. J’ai préféré prendre la Debian 1.3 Bo, sortie peu de temps après (juin 1997), mais dont il est possible de trouver un iso sur internet.

Gestion des disques durs
debian 1.3 ne disposant pas de drivers pour les disques durs SATA (ils ont été inventés en 2003), il faut commencer par créer un disque dur IDE spécialement pour recevoir l’installation.
Dans la configuration de votre VM, menu Stockage. Cliquez droit sur Contrôleur: IDE. Cliquez sur Ajouter un disque dur.
Cliquez ensuite sur Créer un nouveau disque.
Comme nous avions choisi IDE lors du clic-droit, la suite ne change pas par rapport à la création d’un disque dur classique dans VirtualBox… Choisissez type de fichier VDI (par défaut), appuyez sur Suivant.
Nous choisissons de faire un disque dynamiquement alloué, pour que l’espace ne se remplisse qu’au fur et à mesure de l’utilisation du disque. Appuyez sur Suivant.
Maintenant, il faut choisir la taille du disque dur. debian, dans sa version 1.3, requiert 40MB de disque dur ! 😅 Vous pouvez vous amuser à réduire la taille, ou laisser celle par défaut, et appuyer sur Créer.
Vous avez à présent votre disque dur IDE. Si votre VM a déjà un disque dur SATA, faites un clic droit sur ce disque, et cliquez sur supprimer le périphérique.
Création d’une disquette
Parce que le gestionnaire de boot de l’époque, lilo
, est
tatillon sur la taille des cylindres du disque dur et que VirtualBox n’a
pas l’air de le gérer, on va utiliser, comme à l’époque, une disquette
de boot. Techniquement, nous allons créé ici le lecteur et sa disquette,
le côté boot sera fait à l’installation.
Dans les paramètres de votre machine, menu Stockage. Faites un clic droit dans la zone blanche, sous Contrôleur : SATA, et cliquez sur Ajouter un contrôleur de disquette. Un nouveau contrôleur apparait dans l’interface, nommé Contrôleur : Floppy.
Appuyez sur le petit + a côté du Contrôleur : Floppy.
On vous demandera alors si vous voulez choisir une disquette ou laisser le lecteur vide. Cliquez sur Choisir un disque.
Vous arriverez dans une interface de gestion de disques. Créer une nouvelle disquette en cliquant sur Créer.
Pour créer une disquette vierge, laisser le tout tel quelle et cliquez sur Create.
Maintenant qu’elle est créée, on va l’insérer dans le lecteur. Sélectionnez-la et cliquez sur choisir.
Fermez la configuration en cliquant sur OK.
Installation
Un iso de debian 1.3 est disponible sur archive.org. Téléchargez-le et booter dessus.

Au démarrage, debian vous souhaite la bienvenue. Appuyez sur la touche Entrée.
En 1997, tout le monde ne disposait pas forcement d’un écran couleur. Celui-ci était d’ailleurs cathodique… Et c’était pris en compte par l’installeur ! Il vous propose donc de choisir entre couleur et noir et blanc avant de continuer. Appuyez sur C car vous avez surement un écran couleur, puis sur Entrée.
Et vous arrivez au (pré) vingt-et-unième siècle… Vérifiez que vous êtes bien sur Next et appuyez sur Entrée.
Appuyez sur Entrée.
Vous arrivez dans l‘installeur. Appuyez sur Entrée pour configurer votre clavier.
Nous sommes en France, nous utilisons un clavier français. Il faut descendre avec les flèches jusqu’à la ligne fr-latin1 et appuyer sur Entrée.
Retour à l’écran de l’installeur. La prochaine étape est le partitionnement du disque. Appuyez sur Entrée.
Le disque dur que vous avez précédemment créé est sélectionné, puisque c’est le seul disque dur du système. Il s’agit de /dev/hda. Appuyez sur Entrée.
Les exigences minimales du système préconisent l’utilisation de 4Mo de RAM, avec 40Mo de disque dur, 300Mo si l’on compte installer l’intégralité des paquets disponibles. Je suppose que c’est largement bon pour vous 😜.
Nous allons donc suivre ces recommandations, en créant une partition Linux de 500Mo, et une SWAP de 8Mo.
Le logiciel de partitionnement
cfdisk
est tout récent. La version 0.8 n’a que 5 ans. 22 ans après, on s’en sert encore.
Celui-ci vous permet de partitionner le disque dur. Déplacez avec les flèches directionnel le curseur sur [New] et appuyez sur Entrée.
On commence par créer une partition primaire [Primary]. Pour cela, il suffit d’appuyer sur Entrée.
Entrez 500 (à l’époque, c’était évidement des Mo) et appuyez sur Entrée.
Mettre la partition en début de l’espace disponible, pour cela, le curseur doit se trouver sur [Beginning], et appuyez sur Entrée.
Pour créer la SWAP, on va procéder de la même manière que précédemment. On se place sur l’espace libre en utilisant les flèches, puis on sélectionne [New], et on appuie sur Entrée.
Toujours partition Primaire, en sélectionnant [Primary] et en appuyant sur Entrée.
On met la taille : 8 (toujours des Mo 😉), et on appuie sur Entrée.
Et on demande que la partition soit placée à la suite de l’autre, au début de la partie libre, en sélectionnant [Beginning]. Appuyez sur Entrée.
Cette partition est différente de la partition précédente, il s’agit d’une SWAP. Il faut donc déplacer le curseur sur Type et appuyer sur Entrée afin de définir son type.
Pour renseignez Linux Swap, renseignez 82, et appuyez sur Entrée.
Maintenant que les deux partitions sont faites, décalez le curseur sur [Write], et appuyez sur Entrée afin de valider la création de la partition.
On vous informe que vous êtes sur le point de réécrire la table des partitions et que cela peut effacer des données sur le disque dur. Comme notre disque est vierge, aucun soucis. Tapez yes et appuyez sur Entrée.
Votre table de partition est désormais écrite, vous pouvez quitter
cfdisk
, pour cela, déplacez le curseur sur
Quit et appuyez sur Entrée.
Maintenant que vos partitions sont faites, il s’agit de définir le système de fichier et les points de montages. Appuyez sur Entrée.
Le système de fichier de l’époque est ext2 (ext3 arrivera en 2001). Sélectionnez votre partition /dev/hda1, et appuyez sur Entrée.
L’installeur propose de parcourir le disque à la recherche de secteurs défectueux (les badblocks). On va le laisser faire, vu la taille de la partition, ça ne sera pas long. Sélectionnez Yes et appuyez sur Entrée.
Le système vous prévient alors que formater la partition en
ext2
va effacer les données présentes dessus. Laissez sur
Yes et appuyez sur Entrée.
Il va falloir attendre un petit moment… Vous allez ensuite configurer le point de montage racine. Comme vous n’avez qu’une seule partition, vous n’avez rien à choisir. Appuyez sur Entrée.
Nous allons ensuite initialiser la SWAP.
Cela se passe de la même manière que précédemment ; sélection de /dev/hda2, recherche de badblocks, avertissement d’effacement de données.
Maintenant que votre système de fichiers est en place, l’installation du noyau peut commencer. Appuyez sur Entrée.
Vous devez sélectionner le périphérique contenant les fichiers. Sélectionnez cdrom et appuyez sur Entrée.
Il faut ensuite choisir périphérique correspondant au cdrom. Contrairement à ce que VirtualBox vous affiche ; second disque du premier contrôleur, on est en fait sur le premier disque du second contrôleur. On choisit /dev/hdc on appuie sur Entrée.
On vous demande ensuite d’insérer le cdrom, ce qui est déjà fait, appuyez sur Entrée.
Ensuite, il faut choisir le répertoire contenant les fichiers permettant d’installer le noyau et ses modules. On garde ce qui est sélectionné par défaut, default et on appuie sur Entrée.
L’installation du noyau et des modules faites, il faut ensuite sélectionner les drivers. Appuyez sur Entrée.
Nous n’installerons rien, après tout, nous ne voulons que faire un buffer overflow. Sélectionnez Exit et appuyez sur Entrée.
Nous allons maintenant installer le système de base. Sélectionnez Install the Base System et appuyez sur Entrée.
Sélectionnez le cdrom et appuyez sur Entrée.
Sélectionné le périphérique correspondant à votre cd-rom, /dev/hdc et appuyez sur Entrée.
L’installeur vous demande d’insérer le disque, ce qui est déjà fait. Appuyez sur Entrée.
Il vous demande ensuite où se situe le fichier base1_3.tgz. Il se situe dans le répertoire default. Appuyez sur Entrée.
Nous allons ensuite configurer la localisation. Sélectionnez Configure the Base System et appuyez sur Entrée.
Il faut définir le fuseau horaire. Nous sommes en France, donc tapez Europe et appuyez sur Entrée.
Tapez ensuite Paris et appuyez sur Entrée.
Le système vous demandera si l’horloge interne est GMT ou locale, et donc s’il doit appliquer un delta pour connaître l’heure. Tapez n et appuyez sur Entrée.
Enfin, la dernière étape est de rendre le tout bootable.
Comme on vous l’avait annoncé, Lilo
, le gestionnaire de
boot de l’époque est très capricieux… Nous n’allons donc pas l’installer
sur le disque dur, mais créer une disquette de boot qui nous permettra
de démarrer, et qui sera beaucoup plus simple.
Sélectionnez de Make a Boot Floppy et appuyez sur Entrée.
On vous demandera d’insérer la disquette, ce qui est déjà fait. Appuyez sur Entrée.
Attendez que la disquette soit faite.
Pour finir, il faut rebooter le système, en sélectionnant Reboot The System et en appuyant sur Entrée.
Un message vous indique que vous devez avoir un média bootable pour pouvoir démarrer le système. Appuyez sur Entrée.
Premier boot
Afin de démarrez sur la disquette, lors du démarrage, appuyez sur f12 pour configurer l’amorçage.
Appuyez sur f pour sélectionner la disquette.
Après quelques secondes de démarrage, le système vous demandera un nouveau mot de passe root.
Puis le nom du nouvel utilisateur.
Ainsi que son mot de passe.
Enfin, toutes les informations relatives à cet utilisateur.
Le système vous demandera ensuite s’il faut sécuriser les mots de passe via shadow.
À l’époque, la tradition est encore forte de tout stocker dans
/etc/passwd
. Or, ce fichier est lisible par pas mal de programme, dont le serveur web, d’où les attaques par directory traversal pour aller lire ce fichier (encore aujourd’hui, les auditeurs cherchent à l’afficher).Pour protéger les mots de passes, l’idée révolutionnaire est alors de les stocker dans un autre fichier,
/etc/shadow
, qui, lui, n’est pas lisible par tout le monde. C’est toujours le cas aujourd’hui.
Appuyez sur Entrée.
Ensuite, le système vous préviendra qu’il installera
dselect
, un logiciel permettant de choisir des paquets
debian
à installer sur le système (apt
n’arrivera qu’en 1998). Appuyez sur Entrée.
Je vous laisse parcourir les paquets afin de déterminer lesquels vous avez besoin. Dans mon cas, j’ai juste sélectionné [Q]uit et appuyé sur entrée.
Et, après tant d’efforts, vous pouvez (enfin) vous connecter sur votre système tout beau et (presque) tout neuf !
Et Après ?
Bon, c’est vrai que ce n’est pas très utile d’avoir un vieil OS. Ni très pratique d’ailleurs.
Comme vous pourrez le voir, votre linux est quasi vide. N’hésitez pas
à utiliser dselect
pour ajouter ce qu’il vous manque
(emacs et vim existent déjà, eux). Par contre, il
faudra, à chaque fois, lui rappeler d’utiliser le cdrom comme source de
paquet (à moins d’avoir un dépôt FTP
d’époque…).