Debian : Password sur GRUB

Debian : Password sur GRUB

Bloquer les modifications des entrées Grub.

Lorsque vous démarrez sur une machine ayant comme système d’exploitation GNU/Linux, il y a de très fortes chances que le chargeur d’amorçage (bootloader) soit Grub. Si c’est le cas, il vous suffit d’appuyer sur la toucher e pour éditer les paramètres de lancement, et pouvoir réaliser toute une série d’actions.

Bien souvent, cela peut être utile pour obtenir un shell root et dépanner sa machine personnelle, mais en entreprise (sur desktops comme serveurs), on préférerait bloquer les modifications d’entrées Grub, pour éviter certaines mésaventures.

C’est ce que nous allons voir ici, comment protéger la modification d’entrées Grub sur une Debian, mais sans pour autant exiger un mot de passe pour démarre l’OS (ce sont deux choses bien distinctes).

Sans plus attendre, allons-y !

I) Créer les users et passwords correspondants

La première étape est donc de créer les couples user/passwords qui permettront de déverrouiller ces dites entrées. Bien-entendu, libre à vous d’en créer un seul, ou une dizaine, c’est au choix !

La première étape est donc de générer le hash pour nos différents passwords, ici je ne créerai qu’un utilisateur, mais le principe est le même, il suffit de le faire autant de fois que l’on a de users :

sudo grub-mkpasswd-pbkdf2

Cette commande va nous permettre d’obtenir un hash de notre password une fois encodé.

On modifie ensuite le fichier /etc/grub.d/40_custom, pour y définir le ou les utilisateurs avec le hash de leur mot de passe :

# Si vous désirez spécifier plusieurs users

set superusers="root utilisateur02 utilisateur03 utilisateur04"

# On rajout le hash correspondant ensuite à chaque user

password_pbkdf2 root grub.pbkdf2.sha512.10000~
password_pbkdf2 utilisateur02 grub.pbkdf2.sha512.10000~
password_pbkdf2 utilisateur03 grub.pbkdf2.sha512.10000~
password_pbkdf2 utilisateur04 grub.pbkdf2.sha512.10000~

Ici je n’ai mis que l’utilisateur root, mais libre à vous de mettre l’utilisateur système de votre choix !

On peut ensuite enregistrer le fichier. puis mettre à jour la configuration de grub via un classique update-grub.

Si vous redémarrez votre machine maintenant, vous verrez que le mot de passe est bien demandé (et avec un agencement de clavier en qwerty au passage !), mais pas seulement pour l’édition, aussi pour le simple boot… et ce n’est pas ce que l’on souhaite ici.

II) Empêcher les modifications, pas le démarrage de l’OS

Rien de très sorcier ici, il nous suffit d’éditer cette fois le fichier /etc/grub/10_linux et de rajouter le flag –unrestricted aux entrées désirées :

 echo "menuentry '$(echo "$title" | grub_quote)' --unrestricted ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {"$  else
      echo "menuentry '$(echo "$os" | grub_quote)' --unrestricted ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^$  fi

Ici, on modifie directement la commande echo “menuentry …” de sorte que lorsque votre kernel sera mis à jour, ces modifications resteront intactes. Bien-entendu, il est aussi possible de ne bloquer l’édition ou le boot que pour une entrée Grub bien particulière.

N’oubliez pas une fois cette modification effectuée de bien exécuter la commande update-grub à nouveau !

Et c’est tout ! Vous savez désormais comment protéger vos entrées Grub, voir même proposer un mot de passe supplémentaire pour le démarrage de votre OS !

Comme d’habitude, j’espère vous avoir appris quelques bricoles, et vous souhaite une bonne journée/soirée !

Laisser un commentaire

You May Have Missed