J'ai un serveur Debian Wheezy qui fonctionne depuis un certain temps avec un lecteur chiffré. Le mot de passe du lecteur chiffré ( /dev/sda5
) a été perdu lorsque mon fichier de mot de passe chiffré a été corrompu.
J'aimerais pouvoir redémarrer ce serveur, mais cela nécessitera bien sûr ce mot de passe. Étant donné que le lecteur est clairement dans un état déchiffré, existe-t-il un moyen de changer le mot de passe sans connaître l'ancien?
cryptsetup luksChangeKey /dev/sda5
nécessite le mot de passe du volume.
Je pourrais bien sûr rsync
tout éteindre et reconstruire, mais j'aimerais éviter cela. J'ai regardé à travers la mémoire ( #cat /dev/mem | less
), mais je n'ai pas pu le trouver (ce qui est une très bonne chose!).
Réponses:
Oui, vous pouvez le faire en accédant à la clé principale pendant que le volume est déchiffré.
Le rapide et sale pour ajouter une nouvelle phrase secrète:
device
etvolume_name
doit être réglé de manière appropriée.volume_name
est le nom du volume déchiffré, celui que vous voyez dans/dev/mapper
.Explication:
Les volumes LUKS chiffrent leurs données avec une clé principale. Chaque phrase secrète que vous ajoutez stocke simplement une copie de cette clé principale chiffrée avec cette phrase secrète. Donc, si vous avez la clé principale, vous devez simplement l'utiliser dans un nouvel emplacement de clé.
Permet de déchirer la commande ci-dessus.
Cela vide un tas d'informations sur le volume activement décrypté. La sortie ressemble à ceci:
Le champ # 5 est la clé principale.
Je ne vais pas montrer la sortie de cela car ce sont des données binaires, mais ce que cela fait, c'est saisir la clé principale du volume, puis la convertir en données binaires brutes qui seront nécessaires plus tard.
Cela indique à cryptsetup d'ajouter une nouvelle clé au volume. Normalement, cette action nécessite une clé existante, mais nous utilisons
--master-key-file
pour lui dire que nous voulons utiliser la clé principale à la place.La
<(...)
substitution et la redirection de la commande is shell. Il exécute essentiellement tout ce qui se trouve à l'intérieur, envoie la sortie à un tuyau, puis remplace le<(...)
par un chemin vers ce tuyau.Donc, toute la commande est juste une ligne pour condenser plusieurs opérations.
la source
linear
, ce n'est pas un volume LUKS ouvert (valeur incorrectevolume_name
dans la commande fournie). Un volume LUKS ouvert auracrypt
dans le 3ème champ. Danscryptsetup luksOpen /dev/foo bar
, lavolume_name
valeur seraitbar
./dev/mapper
nomméluks-.....
. C'est le volume que vous devez utiliser, pas le volume logique mappé LVM.dmsetup table
a changé. Au moins pour moi, la clé principale est indiquée dans la colonne$6
.