Forum Linux.général Décrypter une partition luks au démarrage avec grub Archlinux

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
10
juin
2015

Bonjours a toute la communauté linux

-Je cherche à déchiffre une partition luks Scindé en LVM qui contient la Swap et le système !
on va l'appeler "sda1"

-Je voudrais que sda1 s'ouvre avec un fichier clé !
on va appelé cette clé " Cle-arch"

-je voudrais que cette clé soit dans une partition crypter luks !
on va appeler cette partition "sda2"

donc j'aimerais que Grub va cherché ce fichier clé qui ce trouve dans sda2 pour décrypter la partition sda1
dans : /default/grub

a cette ligne GRUB_CMDLINE_LINUX=""

je note :

"cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…..

si je déplace cette clé dans une partition on admet "sda3" formaté ext4 et qui n'est pas chiffré
il me la trouve et déchiffre le système

donc il faut que grub déchiffre la partition crypter sda2 pour qu'il puisse ensuite déchiffre le système sda1 avec la clé de chiffrement !

au début je pensé a un manque de module avec mkinitcpio
normalement le hook active les modules adéquates

peut être que je doit activé un module spécifique !

mais je pense que tout réside dans grub

j'ai essayer :
cryptkey=/dev/sda2:crypt-luks:Cle-arch
cryptkey=cryptdevice=/dev/sda2:ext4:Cle-arch

mais bon sa ne va pas il ne trouve pas la clé

je continue a cherché
mais je pense que je vais avoir besoins de la communauté du libre pour ce problème !

Lol

Merci d'avance a tous les amis

  • # ton probleme vient du chiffrement de la partition qui contient la clé.

    Posté par  . Évalué à 5.

    et tu n'as pas le choix.

    tu as bien vu par toi meme que cela fonctionne si tu poses la clef sur un peripherique qui n'est pas chiffré.

    le but d'avoir une partition chiffré, c'est justement qu'il te demande une verificaiton au demarrage (avoir la clé, taper le mot de passe)
    si c'est pour stocker la clef sur le meme support, cela ne presente plus aucun interet.

    neanmoins si c'est ce que tu veux il faut probablement regarder pour booter en 2 temps.
    1er boot : noyau minimaliste, demande la clé ou le mot de passe de la partition chiffrée qui contient la vraie clé
    2e boot : le noyau normal, avec acces à la vraie clef qui va alors debloquer la vraie partition

    • [^] # Re: ton probleme vient du chiffrement de la partition qui contient la clé.

      Posté par  . Évalué à 4. Dernière modification le 11 juin 2015 à 14:09.

      Ça me rappelle l'image humoristique où il y est écrit :

      En cas d'incendie, cassez la vitre avec le marteau.

      Or le marteau se trouve derrière la vitre.

      • [^] # Re: ton probleme vient du chiffrement de la partition qui contient la clé.

        Posté par  . Évalué à 1.

        enfaîte j'explique avec sda1 et sda2 bref…

        j'explique sur le même support mais en vérité je ne vais pas le faire sur le même support

        mais sur une clé USB ou le boot est sépare

        en l'occurrence

        sda1 ( swap ) et ( / ) scindé LVM
        sda2 ( /home ) qui ce déchiffre avec sdb2 ( cr )

        sdb1 ( /boot)
        sdb2 ( cr )

        actuellement je déchiffre tout avec une passe phrase du système avec le grub
        et déchiffre ( cr ) avec crypttab

        donc au démarrage je tape deux mot de passe

        j'aimerais juste qu'il me demande un mot de passe
        et que sa déchiffre le système et ensuite que crypttab prend en compte le reste a déchiffre avec les cle dans ( cr )
        donc j'ai besoins que grub me déchiffre juste sdb2 ( cr )

        • [^] # Re: ton probleme vient du chiffrement de la partition qui contient la clé.

          Posté par  . Évalué à 2.

          Ton idée, au final, c'est que sans la clef USB (sdb) la machine ne boote plus, c'est ca ?

          parceque sinon, faut juste taper le mot de passe de la partition systeme, plutot que d'empiler les clefs qui ne servent à rien.

          car là tout de suite, ca ressemble au mec, qui empile les coffres et les clefs.
          La clef de la maison se trouve dans la voiture qui est fermée, et se trouve dans le garage,
          la clef de la voiture se trouve à la banque
          la clef du garage se trouve chez mamie.

          Bonjour, je voudrais rentrer dans ma maison, mais mamie n'est pas là,
          et la banque est fermée… :p

  • # Et si ??

    Posté par  . Évalué à 1.

    Et si je trouve la solution tu fait quoi ?

    tu m'offre un café ;-)

    • [^] # Re: Et si ??

      Posté par  . Évalué à 1.

      Il t'offre la clé stockée sur un partition en clair qui sert à déchiffrer la partition où se trouve la clé pour déchiffrer la partition système…. :D

  • # je cherche

    Posté par  . Évalué à 1.

    Bon alors …

    j'ai essayer par exemple de décrypter la partition avant !

    "cryptdevice=/dev/sda2:Cle-arch cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…..

    sa fonctionne pas !

    je me demande si il faut pas que je j’écris :

    "cryptdevice=/dev/sda2:Cle-arch :allow-discards cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…..


    enfaîte il me dit d'essayer de faire :

    on admet sda2 crypté s’appelle "cr" et qui contient "cle-arch"
    sda3 est en clair avec "cleu"
    sda1 est le système qui est déchiffre avec cle-arch dans sda2 car sda3 avec cleu a déchiffré sda2

    donc :

    "cryptdevice=/dev/sda2:cr cryptkey=/dev/sda3:ext4:Cleu cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…..

    je vais testé … mais bon je pense pas vraiment que sa va passé …


    déjà je vais retenté la méthode

    "cryptdevice=/dev/sda2:Cle-arch :allow-discards cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…..

    mais en activé les module dm-mod et dm-crypt dans mkinitcpio

    ….


    juste une autre question pour trouvé la clé

    cryptkey=/dev/sda2:ext4:Cle-arch

    sa serait pas plutôt

    cryptkey=/dev/sda2:ext4:/dev/mapper/cr/Cle-arch

    car quand la partition est crypter et que nous décryptons on retrouve le dev avec mapper pour la monté
    exemple :

    mount dev/mapper/cr /…


    je teste tout sa est je vous dit ce qu'il est est ;-)

    • [^] # Re: je cherche

      Posté par  . Évalué à 1.

      Bon alors il y a aucune des méthodes qui ne fonctionne !!!

      avez vous une idées ? _^

      • [^] # Re: je cherche

        Posté par  . Évalué à 2.

        tu te parles tout seul, ca fait peur.

        il me semble que l'ordre des options au boot n'a que peu d'importance

        donc

        cryptdevice=/dev/sda2:Cle-arch cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…

        ou ca :

        cryptdevice=/dev/sda2:Cle-arch :allow-discards cryptdevice=/dev/sda1:root cryptkey=/dev/sda2:ext4:Cle-arch :allow-discards resume=/dev/map…

        c'est pareil

        du coup, je penses qu'il faut que tu decrypte /dev/sdb à partir de grub
        puis que tu lances un script dans ton initrd pour dechiffrer /dev/sda, pour enfin faire le pivot-root necessaire au lancement final. (NB : je ne sais pas si l'option Pivot-root existe encore)

        • [^] # Re: je cherche

          Posté par  . Évalué à 1.

          voila j'aimerais savoir dans initrd soit mkinitcpio dans arch

          qu'elle module( script ) activé pour pouvoir faire cette manip

          car si tu préfère il me demande pas de mot de passe pour décrypter sda2
          enfaîte j'aimerais que sda2 soit monté par grub qu'il me demande le mot de passe de sda2 et que ensuite il monte sda1 avec la clé de déchiffrement dans sda1

          dans mkinitcpio il n'y a pas d'option pivot-root

          je veux juste que ma clé USB démarre le système avec une clé de déchiffrement mais que cette partition ou il y a ce déchiffrement soit crypter !

          … je suis parano !!! _^ je sais je sais … lol

          • [^] # Re: je cherche

            Posté par  . Évalué à 2. Dernière modification le 11 juin 2015 à 20:41.

            pivot-root n'a rien à voir avec mkinitcpio,

            c'est une commande qui permet de changer de "root" (le / de ton systeme.

            du coup tu dois pouvoir faire un script à mettre dans ton initrd, qui va :
            - decrypter la partition sdb2
            - monter /dev/sdb2
            - prendre la cle-sda1
            - dechiffré sda1
            - monté sda1
            - faire le pivot-root vers le dossier de montage de sda1

            avec le mode d'emploi de pivot-root, ca peut aider
            http://linux.die.net/man/8/pivot_root

            • [^] # Re: je cherche

              Posté par  . Évalué à 1. Dernière modification le 15 juin 2015 à 17:49.

              Bonjour a tous

              donc j'ai suivie ce que NeoX ma dit
              au passage merci à lui

              maintenant j'ai un autre problème

              j'ai compris comment qu'il faut que je doit faire un pivot_root

              A savoir que j'ai modifier fstab pour qu'il tourne sur la SWAP le home ou le système générale doit être lancer

              donc tout est prés il me faut juste que je change le </> de partition
              je voudrais que Groupesysteme-lvsysteme remplace Groupetest-lvsysteme
              en temps que système root /

              pour info je vous montre a quoi ressemble les partition monté avec tab

              lsblk
              
              sda      disk
                sda1     part                         /boot
                sda2     part    
                   Crypt    Crypt                     /boot/Crypt
              
              sdb      disk
                sdb1     part
                   test      Crypt
                      Groupetest-lvmemoire     lvm
                      Groupetest-lvsysteme     lvm     /
              
              sdc      disk
                sdc1     part
                   Systeme   crypt
                      Groupesysteme-lvram      lvm     [SWAP]
                      Groupesysteme-lvsysteme  lvm     /new_root
                sdc2     part
                   home      Crypt
                      Groupehome-lvhome        lvm     /home
              

              alors j'ai essayer

              mount /dev/mapper/Groupesysteme-lvsysteme /new_root
              mkdir /new_root
              cd /new_root
              mkdir /old-root
              pivot_root . old-root

              sa ne vas pas !!!
              et pour sur car il y a rien dans old-root … lol

              enfaite d'apres moi il faut faire

              chroot /new_root
              exec chroot . sh
              ( donc la je passe en sh )
              umount /dev/mapper/Groupetest-lvsysteme

              j'ai essayer aussi
              pivot_root . new_root
              pivot_chroot . new_root

              sa ne vas pas je ne trouve pas !!!

              Le truc et qu'il ne peux rien faire quand je chroot
              je peux même pas faire lsblk donc encore moins démonté une partition

              il fraudais que je fasse le pivot …

              ….mais alors la je vous le dit franchement je suis perdu :-(
              avant de faire un script qui ce lance automatiquement au démarrage de
              la clé USB
              j'aimerais savoir ce que j'écris … mais la je vous avou … je suis dans le brouillard

              Un petit coup de connaissance pour m’aider a comprendre comment faire le pivot
              de Groupetest-lvsysteme à Groupesysteme-lvsysteme

              Merci a tous

              Saturne.Fr

              • [^] # Re: je cherche

                Posté par  . Évalué à 3.

                tu as mis quoi dans les LVM xxx-systeme ?
                dans le premier j'iamgine qu'il y a ton root actuel, celui de ton OS,
                mais pas dans lgroupetest-lvsysteme ?

                s'il est vide, c'est normal qu'il ne se passe rien, le chroot echoue probablement.

                et puis, si le concept est bon, je penses que tu peux faire ton root initial directement dans le initrd (initramfs, script personnalisé)
                puis celui-ci va venir chercher le groupesysteme-lvsysteme puis faire le pivotroot dessus.

                • [^] # Re: je cherche

                  Posté par  . Évalué à 1.

                  Salut merci de m'aider NeoX

                  Alors j'ai bien un système de fichier dans

                  Groupetest-lvsysteme monté en "/"

                  et aussi dans

                  Groupesysteme-lvsysteme monté en /new_root

                  j'ai testé

                  $ pivot_root /new_root /new_root/oldroot
                  réponse machine :

                  pivot_root: failed to change root from `/new_root' to `/new_root/oldroot' : no such file or directory
                  ____________

                  $ pivot_root / /new_root
                  réponse machine :

                  pivot_root: failed to change root from `/' to `/new_root : invalid argument
                  ____________

                  $ pivot_root /new_root/oldroot /new_root
                  réponse machine :

                  pivot_root : failed to change root from `/new_root/oldroot' to `/new-root' : invalid argument
                  ____________

                  $ switch_root /new_root /new_root/oldroot
                  réponse machine :

                  switch_root: failed to mount moving /dev to /new_root/dev: invalid arguement
                  switch_root:forcing umount of /dev
                  switch_root : failed to mount moving /proc to /new_root/proc: invalid arguement
                  switch_root:forcing umount of /proc
                  switch_root : failed to mount moving /sys to /new_root/sys: invalid arguement
                  switch_root:forcing umount of /sys
                  switch_root : failed to mount moving /run to /new_root/run: invalid arguement
                  switch_root:forcing umount of /run
                  switch_root : failed to mount moving /new_root to /: invalid arguement
                  switch_root: failed. Sorry.
                  __________

                  $ switch_root /new_root/oldroot /new_root
                  réponse machine :

                  switch_root: failed to mount moving /new_root/oldroot to /: invalid arguments

                  • [^] # Re: je cherche

                    Posté par  . Évalué à 1.

                    Alors dans les deux lvm xxx-systeme
                    j'ai fait une installation du noyaux de arch-linux
                    avec :

                    $ pacstrap /mnt base base-devel

                    il y a pour Groupetest-lvsysteme

                    bin; dev; home; lib; los+found; opt; root; sbin; sys; usr; new_root; boot; etc; lib64; mnt; proc; run; srv; tmp; var

                    et pour Groupesyst-lvsysteme

                    bin; dev; home; lib; los+found; opt; root; sbin; sys; usr; oldroot; boot; etc; lib64; mnt; proc; run; srv; tmp; var

                    ….

                    voila donc je ne comprend pas pourquoi je ne pas pas faire le pivot

                    a tu une solution ?

                    • [^] # Re: je cherche

                      Posté par  . Évalué à 1.

                      quand je fait

                      $ cd /new_root
                      $ exec chroot . bin/sh
                      je passe en sh-43

                      de la j'essaye les mêmes manipulations mais rien y fait j'ai les mêmes erreurs

                      • [^] # Re: je cherche

                        Posté par  . Évalué à 2.

                        d'apres le manuel de pivot_root man pivot_root

                        mkdir /mnt/newroot
                        mount lenouveauroot /mnt/newroot
                        mkdir /mnt/newroot/old_root
                        cd /mnt/newroot
                        pivot_root . old_root
                        exec chroot . sh -c 'umount /old_root; exec /sbin/init' <dev/console >dev/console 2>&1

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.