Page suivante Page précédente Table des matières

12. Sécuriser le démarrage

Le gestionnaire d'amorçage est le programme qui va prendre la main dès le démarrage, en particulier avant que, sur architecture Intel IA-32, le processeur ne bascule en mode protégé. Le premier programme qui prend le contrôle du processeur peut faire très exactement ce qu'il veut et peut même dérouter certains services pour tromper l'OS qui va être lancé par la suite (les machines virtuelles type Plex86 ou autre VMWare(TM) ne font rien d'autre qu'enduire Windows avec de l'erreur ;).

C'est un premier souci qui devrait vous faire perdre ce sourire béat et agaçant.

Le deuxième souci est bien identifié : il est placé face à l'écran et au clavier, c'est-à-dire le terminal, et s'appelle : l'utilisateur. Cette espèce, dont la principale occupation semble être de vous gâcher la vie, ce "teen-user" en perpétuelle crise d'adolescence et qui veut vous faire payer votre refus catégorique de lui installer les polices Windings, peut lui aussi tenter de faire n'importe quoi, par exemple de lancer une copie de secours d'un unix et de modifier le fichier passwd, bref : de se rappeler à votre amabilité.

La première sécurité concerne le BIOS : interdire que l'amorçage puisse se faire autrement que par le gestionnaire que vous avez choisi. Si vous laissez n'importe qui avoir la latitude de démarrer n'importe quoi par disquette, ne venez pas vous plaindre après coup.

Supposons donc que vous avez mis un mot de passe au BIOS, et qu'il n'autorise plus que le démarrage sur un disque amorçable par le GRUB. Sauvé ? Pas exactement si vous en restez là car le GRUB, pour qui sait s'en servir, est capable d'amorcer par pratiquement tout. Il faut donc aussi que le GRUB ne donne accès à certaines fonctions qu'aux élus.

12.1 Mise en place du mot de passe

Il y a deux sortes d'utilisateurs pour le GRUB : ceux qui ont le mot de passe, et les autres. Quand il n'y a pas de mot de passe, tout le monde l'a par définition, donc il n'y a plus qu'une sorte d'utilisateur :-^

Le mot de passe peut servir à interdire certaines entrées du menu (si vous n'avez pas le mot de passe, vous ne pouvez pas lancer un OS non sûr), et verrouille dans tous les cas l'accès à la ligne de commande et à l'édition des menus.

Le mot de passe peut être écrit en clair dans le fichier menu.lst (ce qui permettra à n'importe qui de le connaître), ou y être inscrit sous forme de chaîne cryptée par MD5 (solution qui a notre préférence, allez savoir pourquoi !).

Exemple (dans le fichier menu) :


password --md5 $1$35bz./$WLs0y4oB5uvpA2ilYjOI/1

La chaîne md5 est obtenue en invoquant l'utilitaire `grub-md5-crypt' :


ksh$ grub-md5-crypt
Password:
$1$35bz./$WLs0y4oB5uvpA2ilYjOI/1

et il suffit de la recopier comme paramètre de la commande `password' dans le menu.

Une fois le mot de passe mis en place, vous pouvez également verrouiller certaines entrées du menu, qui ne pourront plus être invoquées par quelqu'un ne possédant pas le sésame ainsi :


title Le magicien de Wind'Oz
lock
root (hd1,1)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader +1

C'est l'instruction `lock' qui assure le verrouillage.

Ajoutons que, sous votre Unix, de positionner les droits sur le fichier qui sert de menu en lecture et écriture seulement pour root reste une bonne idée...


Page suivante Page précédente Table des matières