vide en ligne depuis 02.10.1998

Ajouter un mot de passe à Grub2

Soyons clair, les distro Linux, du moment ou vous avez un accès physique à la machine ne sont pas protégées ! Les petits malins trouveront toujours un moyen de pénétrer dans le système de votre machine. Bien sur, il existe plusieurs solutions permettant de renforcer la protection de votre "précieux", toutes plus ou moins contraignantes, faciles à mettre en oeuvre et surtout toutes plus ou mois fiables !

La première qui vient à l'esprit est la mise en place d'un mot de passe au niveau du BIOS, enfin, plutôt deux car il faut non seulement protéger le démarrage de la machine et il faut aussi interdire toute modification du BIOS...

La deuxième solution est le chiffrement des partitions mais là ne layant jamais pratiquée, je laisse les spécialistes en parler...

La troisième et c'est celle que je vais détailler ici est de protéger le bootloader de la distro par un mot de passe. Le bootloader dont je vais parler c'est Grub2, vous pouvez vérifier la version installée sur votre distro en exécutant cette commande :

# grub-install -v

Vous devez impérativement posséder la version 1.99 au minimum ! Si tel n'est pas le cas, faite une mise à jour de Grub.

Comme j'aime bien que les choses se passent avec un minimum de pépins, nous allons commencer par faire un backup du fichier /etc/grub.d/00_header

Désormais, nous sommes parait en cas de fausse manip, nous allons éditer le fichier /etc/grub.d/00_header pour sécuriser tout ça en ajoutant les lignes suivantes à la fin du fichier :

set superusers="bidule"
password user le_mot_de_pass

Si plusieurs personnes utilisent l'ordinateur, nous allons de la même façon leur créer des comptes. Modifiez le fichier /etc/grub.d/00_header de la façon suivante :

set superusers="bidule"
password bidule le_mot_de_pass
password popol le_mot_de_pass
password toto le_mot_de_pass
password kiki le_mot_de_pass

Le problème est que le mot de passe est écrit en clair dans le fichier mais les développeurs de Grub2 ne sont pas des neuneus et ils ont intégré une fonction de cryptage !

Saisissez simplement ceci :

# grub-mkpasswd-pbkdf2 -c 1 -s 2
# Enter password: test
# Reenter password: test
# Your PBKDF2 is grub.pbkdf2.sha512.1.9C11.BCF..........FB831

faites un copier/coller du hash retourné par la commande dans le fichier /etc/grub.d/00_header et refaites cette action pour tous les utilisateurs que vous avez ajouté.

set superusers="bidule"
password_pbkdf2 bidule grub.pbkdf2.sha512.1.9C11.BCF..........FB831
password pbkdf2 popol grub.pbkdf2.sha512.2.9612.FCA..........CA951
password pbkdf2 toto grub.pbkdf2.sha512.1.661A.ACE..........FF96A
password pbkdf2 kiki grub.pbkdf2.sha512.2.4279.CCA..........CE528

Il ne vous reste plus qu'à mettre à jour le fichier de démarrage avec la commande :

# update-grub

Rebootez la machine pour vérifier...

A partir de cet instant, à chaque modification du fichier de config de Grub2, il vous sera demandé le nom et le mot de passe de l'administrateur, bidule dans mon exemple !

Resources: (anglais)

GNU GRUB Manual 2.02
Special environment variables
Booting with GRUB
Writing full configuration files directly
The map between BIOS drives and OS devices