#1 Le 21/08/2024, à 15:12
- amanda
SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour à tous,
Je tente d'activer le SecureBoot (UEFI) et j'aurais besoin de clarifications concernant l'étape "Définir les variables d'information du noyau linux", car j'appréhende de commettre une erreur. Il est indiqué VERSION="$(uname -r)". Je suppose que je ne dois pas simplement copier et coller cette commande telle quelle, n'est-ce pas? Je devrais la remplacer par la version de sortie du noyau (par exemple VERSION="$6.1....."), c'est bien cela?
Merci.
Dernière modification par amanda (Le 02/09/2024, à 13:12)
Hors ligne
#2 Le 21/08/2024, à 15:23
- nany
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Non non, tout est correct. $(uname -r) écrit la version active du noyau.
Hors ligne
#3 Le 21/08/2024, à 15:23
- jplemoine
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
En fait, il faut juste copier-coller les instructions dans un terminal
VERSION="$(uname -r)"
--> Met dans la variable VERSION le contenu de l'execution de uname -r
Sur mon ordi, ça va donner la même chose que si j'avais tapé.
VERSION="5.15.0-118-generic"
Pareil pour la ligne suivante :
SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
Met dans SHORT_VERSION le contenu de l'execution de uname -r mais tu ne prends que les 2 premières parties si le séparateur est .
5.15.0-118-generic --> 5 15 0-118-generic
--> on aura donc
SHORT_VERSION = "5.15"
Si tu veux voir le contenu des dites variables
echo $VERSION
echo $SHORT_VERSION
---
Si tu veux des explications sur une commande, il suffit de faire :
man <commande>
où <commande> est la commande dont tu veux les explication.
man --> manual --> manuel.
Par exemple:
man uname
Dernière modification par jplemoine (Le 21/08/2024, à 15:25)
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#4 Le 21/08/2024, à 17:55
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
D'accord, merci pour ces précisions.
Cependant, je rencontre un autre petit problème à l'étape suivante "Utiliser la clé dans le noyau Linux":
sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Error reading file /boot/vmlinuz-: No such file or directory
Pourtant, ce fichier existe bien dans le répertoire boot. J'en ai même deux exemplaires: vmlinuz-6.1.0-22-amd64 et vmlinuz-6.1.0-23-amd64.
Dernière modification par amanda (Le 21/08/2024, à 17:56)
Hors ligne
#5 Le 21/08/2024, à 18:06
- ylag
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Sauf erreur de ma part, il semble que la variable VERSION était vide lorsque tu a passé la commande du message #4 ?
Vérifie son contenu de cette façon :
echo $VERSION
... avant de lancer la commande ?
On me corrigera si j'ai tort, mais il me semble que la variable doit être définie dans le même shell que celui dans lequel la commande est exécutée ...
Sinon, oublie peut-être l'étape de création de cette variable et entre explicitement le resultat de uname -r dans ta commande à la place ?
A+
Dernière modification par ylag (Le 21/08/2024, à 18:11)
Hors ligne
#6 Le 21/08/2024, à 18:20
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Le retour de la commande
echo $VERSION
est vide.
Dernière modification par amanda (Le 21/08/2024, à 18:21)
Hors ligne
#7 Le 21/08/2024, à 18:26
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
On me corrigera si j'ai tort, mais il me semble que la variable doit être définie dans le même shell que celui dans lequel la commande est exécutée ...
J'ai un peu de mal à comprendre. Je dois lancer la commande du message # 4 dans le même shell que celles de mon message#1?
Donc:
$ VERSION="$(uname -r)"
$ SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
$ MODULES_DIR=/lib/modules/$VERSION
$ KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION
$ sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Dernière modification par amanda (Le 21/08/2024, à 18:27)
Hors ligne
#8 Le 21/08/2024, à 18:34
- nany
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Voui, mais sans les dollars en début de ligne. Ces symboles sont présents dans le tuto pour signifier que la commande est à exécuter en tant qu’utilisateur normal. Et les croisillons signifient que la commande doit être exécutée en tant que root.
Hors ligne
#9 Le 21/08/2024, à 20:11
- jplemoine
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
On me corrigera si j'ai tort, mais il me semble que la variable doit être définie dans le même shell que celui dans lequel la commande est exécutée ...
Sauf que tu as raison... Donc, on ne peut pas te corriger
Sur mon poste :
util@machine:~$ VERSION="$(uname -r)"
util@machine:~$ ls -ld /boot/vmlinuz-$VERSION
-rw------- 1 root root 11701352 juil. 5 11:17 /boot/vmlinuz-5.15.0-118-generic
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#10 Le 21/08/2024, à 21:43
- ylag
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonsoir,
La syntaxe suivante devrait le faire pour passer la commande du message #4 de façon ponctuelle, pour une seule fois, sans avoir à déclarer de variable :
sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$(uname -r)" --output "/boot/vmlinuz-$(uname -r).tmp"
... sans garantie, je ne peux tester chez-moi.
A+
Hors ligne
#11 Le 22/08/2024, à 11:17
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Merci pour votre aide.
J'avance mais je suis encore bloquée .
$ VERSION="$(uname -r)"
$ SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
$ MODULES_DIR=/lib/modules/$VERSION
$ KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION
$ sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Can't load key from file 'MOK.priv'
40C738CF6B7F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(MOK.priv, r)
40C738CF6B7F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
Hors ligne
#12 Le 22/08/2024, à 12:26
- ylag
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
il ne faut pas ajouter de $ au début des lignes de commande.
Tu devrais faire :
VERSION="$(uname -r)"
SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
MODULES_DIR=/lib/modules/$VERSION
KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION
... une fois les variables créées, passer la commande dans la même fenêtre de terminal :
sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Si ça ne fonctionne pas de cette façon, c'est qu'il pourrait y avoir un souci avec la commande elle-même, et il faudra l'intervention de plus compétent(e)s que moi pour y voir plus clair.
A+
Hors ligne
#13 Le 22/08/2024, à 13:14
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
il ne faut pas ajouter de $ au début des lignes de commande.
Oui oui je sais, je ne les avais pas mis.
Hors ligne
#14 Le 22/08/2024, à 17:01
- ylag
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Bonjour,
Merci pour votre aide.
J'avance mais je suis encore bloquée .
$ VERSION="$(uname -r)" $ SHORT_VERSION="$(uname -r | cut -d . -f 1-2)" $ MODULES_DIR=/lib/modules/$VERSION $ KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION $ sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp" Can't load key from file 'MOK.priv' 40C738CF6B7F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(MOK.priv, r) 40C738CF6B7F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
Cette fois, la commande s'est bien lancée mais a généré des erreurs qu'il faudrait pouvoir interpréter.
Vite fait, je ne trouve rien de probant à ce sujet, désolé ...
A+
Dernière modification par ylag (Le 22/08/2024, à 17:02)
Hors ligne
#15 Le 23/08/2024, à 19:05
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonsoir,
Pas de souci, merci beaucoup d'avoir pris le temps d'essayer de m'aider.
Hors ligne
#16 Le 23/08/2024, à 19:24
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Je penses que cela est dû au fait que je n'étais pas en root lorsque j'ai fait l'étape de création de la clé:
mkdir -p /var/lib/shim-signed/mok/
cd /var/lib/shim-signed/mok/
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/"
penssl x509 -inform der -in MOK.der -out MOK.pem
Malgré cela, la clé a tout de même été créée
ls /var/lib/shim-signed/mok/
MOK.der MOK.priv
sudo dmesg | grep cert
[ 7.258262] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 7.258579] cfg80211: Loaded X.509 cert 'benh@debian.org: 577e021cb980e0e820821ba7b54b4961b8b4fadf'
[ 7.258890] cfg80211: Loaded X.509 cert 'romain.perier@gmail.com: 3abbc6ec146e09d1b6016ab9d6cf71dd233f0328'
[ 7.259154] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 7.259436] cfg80211: Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
Puis-je recréer la clé en tant que root sans causer de problèmes ?
Dernière modification par amanda (Le 23/08/2024, à 19:26)
Hors ligne
#17 Le 23/08/2024, à 19:33
- jplemoine
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Dans la doc, il y a écrit : "Si vous voyez ici la clé (qui consiste à un ensemble de fichiers nommés MOK.der, MOK.pem et MOK.priv) alors vous ne devriez pas avoir besoin de régénérer de clé."
Donc, je pense qu'il faut passer à l'étape d'après : "Enregistrement de la clé".
S'il y a un #, il faut que tu sois connecté(e) en root (sudo -i pour basculer en root; exit pour revenir à l’utilisateur classique)
S'il y a un $, il faut que tu sois connecté(e) avec l’utilisateur classique
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#18 Le 23/08/2024, à 19:42
- nany
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Et,
$ sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp" Can't load key from file 'MOK.priv' 40C738CF6B7F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(MOK.priv, r) 40C738CF6B7F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
« No such file or directory » signifie qu’il ne trouve pas le fichier MOK.priv.
Je pense que les auteurs du tuto considèrent qu’on le suit de bout en bout et que l’on est encore dans le répertoire /var/lib/shim-signed/mok/ lorsqu’on exécute la commande.
Il faudrait donc, soit retourner dans le répertoire :
cd /var/lib/shim-signed/mok/
puis exécuter la commande, soit indiquer le chemin complet dans la commande :
sbsign --key /var/lib/shim-signed/mok/MOK.priv --cert /var/lib/shim-signed/mok/MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
[edit]
Et vu que l’output est dans /boot/ je pense que la commande devrait être exécutée en tant que root.
[/edit]
Dernière modification par nany (Le 23/08/2024, à 19:58)
Hors ligne
#19 Le 23/08/2024, à 21:27
- ylag
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonsoir,
Vu au message #16 :
ls /var/lib/shim-signed/mok/
MOK.der MOK.priv
Il semble manquer un fichier nommé MOK.pem ?
A+
Hors ligne
#20 Le 23/08/2024, à 23:03
- jplemoine
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
@ylag : bien vu !!!
@amanda : il faut que tu fasses TRES attention.
S'il y a un message d'erreur, tu ne continues pas.
Dans l'historique, il y a :
penssl x509 -inform der -in MOK.der -out MOK.pem
Je ne sais pas si c'est un problème de copier-coller ou si tu as vraiment entré cette ligne mais il maque un premier o
C'est
openssl x509 -inform der -in MOK.der -out MOK.pem
Ca va prendre le fichier MOK.der créé à la ligne précédente et faire un fichier MOK.pem.
NB : il y a un # : Donc, tu passes en root (
sudo -i
) et tu te mets dans le bon répertoire (cd /var/lib/shim-signed/mok/)
puis tu lances la ligne ci-dessus.
ls -ld /var/lib/shim-signed/mok/
doit te renvoyer 3 fichiers : MOK.der MOK.priv et MOK.pem
Dernière modification par jplemoine (Le 24/08/2024, à 00:47)
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#21 Le 23/08/2024, à 23:28
- Watael
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Non non, tout est correct. $(uname -r) écrit la version active du noyau.
pour être précis, uname -r est exécuté dans un Remplacement de commande (qui n'écrit rien (sur le terminal )) assigné à la variable VERSION*
---
* les noms de variables tout en majuscules sont, par convention, réservés aux variables d'environnement (HOME, PWD,...)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#22 Le 24/08/2024, à 11:39
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Alors voilà, j'ai essayé plusieurs choses:
@nany
cd /var/lib/shim-signed/mok/
sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Error reading file /boot/vmlinuz-: No such file or directory
/var/lib/shim-signed/mok$ VERSION="$(uname -r)"
/var/lib/shim-signed/mok$ SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
/var/lib/shim-signed/mok$ MODULES_DIR=/lib/modules/$VERSION
/var/lib/shim-signed/mok$ KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION
/var/lib/shim-signed/mok$ sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Can't load key from file 'MOK.priv'
40671207F07F0000:error:8000000D:system library:BIO_new_file:Permission denied:../crypto/bio/bss_file.c:67:calling fopen(MOK.priv, r)
40671207F07F0000:error:10080002:BIO routines:BIO_new_file:system lib:../crypto/bio/bss_file.c:77:
Tu es sûre que je dois me mettre en root? J'hésite...
@jplemoine
C'est une faute lors du copier-coller.
J'ai recréé la clé en root:
sudo -i
cd /var/lib/shim-signed/mok/
/var/lib/shim-signed/mok# ls -ld /var/lib/shim-signed/mok/
drwxr-xr-x 2 root root 4096 11 aoû 12:12 /var/lib/shim-signed/mok/
/var/lib/shim-signed/mok# ls /var/lib/shim-signed/mok/
MOK.der MOK.priv
/var/lib/shim-signed/mok# openssl x509 -inform der -in MOK.der -out MOK.pem
Ensuite, j'ai relancé la commande:
ls /var/lib/shim-signed/mok/
MOK.der MOK.pem MOK.priv
Ici, on voit bien la clé MOK.pem
Ensuite, j'ai refait l'étape "Utiliser la clé dans le noyau linux" et j'ai toujours la même erreur:
VERSION="$(uname -r)"
SHORT_VERSION="$(uname -r | cut -d . -f 1-2)"
MODULES_DIR=/lib/modules/$VERSION
KBUILD_DIR=/usr/lib/linux-kbuild-$SHORT_VERSION
sbsign --key MOK.priv --cert MOK.pem "/boot/vmlinuz-$VERSION" --output "/boot/vmlinuz-$VERSION.tmp"
Can't load key from file 'MOK.priv'
40A7882CC17F0000:error:80000002:system library:BIO_new_file:No such file or directory:../crypto/bio/bss_file.c:67:calling fopen(MOK.priv, r)
40A7882CC17F0000:error:10000080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:75:
Je devrais peut-être relancer cette commande en root?
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -days 36500 -subj "/CN=My Name/"
Hors ligne
#23 Le 24/08/2024, à 11:47
- nany
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Bonjour,
Tu es sûre que je dois me mettre en root? J'hésite...
Oui car la commande indique cette fois « Permission denied ».
Hors ligne
#24 Le 24/08/2024, à 12:32
- jplemoine
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
Perso, je ferais un répertoire backup : j'y mettrais tous les fichiers MOK...
Puis je recommencerais toute la procédure en faisant très attention.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#25 Le 24/08/2024, à 14:46
- amanda
Re : SecureBoot -Définir les variables d'information du noyau linux[Résolu]
OK. Je vais tout refaire et mettre en root.
Afin de prévenir toute future erreur, pourriez-vous m'expliquer la procédure pour sauvegarder les fichiers MOK ? De plus, comment puis-je annuler et effacer toutes les modifications que je viens d'effectuer ?
Hors ligne