
Ubuntu日本語フォーラム
ログインしていません。
はじめまして、あびると申します。
現在、UbuntuのHDD暗号化の機能について設定手順や動作を確認するため作業しております。
HDDが暗号化された環境のOSが起動できなくなった場合を想定しLive CDで起動したUbuntuから暗号化されたHDD領域をマウントしてファイルを救出する方法を確認したいと考えています。
しかし、暗号化LVMの領域はマウントできたものの、ecryptfsを使って暗号化されている(と思われる).Priveteディレクトリ以下の領域について正しく復号化した状態でマウントする事ができず困っております。
もし、何らかのノウハウや関連する資料をご存知の方にアドバイスを頂ければ幸いに存じます。
■環境構築手順
まず、環境構築に際し実施したポイントは以下の通りです。
・Ubuntu9.10のAlternate CDを使ってインストールしました。
・インストール時に暗号化LVMを選択しディスク全体を暗号化しました。
・インストーラの指示に従いホームディレクトリの暗号化も実施しました。(ecryptfsを使用?)
■暗号化LVMの領域をマウント
次にLive CDから起動した環境で以下のような手順を実施し暗号化LVMの領域をマウントしました。
$ sudo apt-get install lvm2 cryptsetup $ sudo modprobe dm-crypt $ sudo cryptsetup luksOpen /dev/sda1 crypt1 <ここでインストール時に入力したパスフレーズを入力しました。> $ sudo vgscan --mknodes $ sudo vgchange -a y $ ls /dev/mapper $ sudo mkdir /media/vol $ sudo mount /dev/mapper/abintu-root /media/vol
↑ここまで実施して/media/vol以下に暗号化LVMの領域が参照できる事を確認しました。
なお、上記の手順は、フォーラムの以下のスレッドに投稿されていた内容を参考にしています。
https://forums.ubuntulinux.jp/viewtopic.php?id=1931
■暗号化されたホームディレクトリのマウント
次に暗号化されたホームディレクトリをマウントするために以下のコマンドを実施しました。
$ sudo mkdir /mnt/abiru $ sudo mount -t ecryptfs /media/vol/home/.ecryptfs/abiru/.Private/ /mnt/abiru/ Passphrase: <ecryptfs-unwrap-passphreaseコマンドで確認したものを入力> Select cipher: <デフォルトの[aes]を選択> Select key bytes: <デフォルトの[16]を選択> Enable plaintext passthrough (y/n) [n]:<デフォルトの[n]を選択> Enable filename encryption (y/n) [n]:<ここでは[y]を選択しました> Filename Encryption Key (FNEK) Signature [6923b882981142fc] :<デフォルトのままを選択>
※FNEKについては、以下のコマンドで確認しました。
cat /media/vol/home/.ecryptfs/abiru/.ecryptfs/Private.sig 6923b882981142fc 45d645af408d72cf
↑上記の1行めの値が一致しているのでFNEKは正しいものと判断しました。
上記の通り実行したところ、以下のようなメッセージが表示されました。
Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=6923b882981142fc ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=6923b882981142fc Mounted eCryptfs
「Mounted eCryptfs」という文字が最後に出たので、以下のコマンドで結果を確認しました。
$ ls /mnt/abiru
しかし、表示されるファイル名が暗号化されたままで、復号化されたファイル名を参照する事ができません。当フォーラムの情報やGoogleの検索結果などを参照しましたが、上記手順の問題点を発見できておりません。誠に恐れ入りますが、フォーラム参加者の皆様のお知恵を拝借できれば望外の幸いに存じます。
オフライン
暗号化フォルダのmountの前に
sudo ecryptfs-add-passphrase --fnek
を実行し、出力行の2行目のシグネチャをコピる
次に、暗号化フォルダのmount時に聞かれる
Filename Encryption Key (FNEK) Signature [XXXXXXXXXXXXXXXX] :
の箇所では、その控えたシグネチャを貼り付け入力する
という2つの手順が抜けていると思います。
http://www.kaijanmaki.net/blog/2009/10/26/recovering-files-from-ecryptfs-encrypted-home/
オフライン
STGSAGWANさん、アドバイスありがとうございます。さっそく、頂いた内容を元に作業を実施致します。
結果は、改めてこのトピックに記載させて頂きます。今しばらくお待ちください。
取り急ぎ、お礼まで。
オフライン
STGSAGWANさん、アドバイスありがとうございました。
以下にアドバイスを元にテストした結果をご報告致します。
■FNEKの確認
まず以下の通り、FNEKのシグネチャを確認しました。
$ sudo ecryptfs-add-passphrase --fnek Inserted auth tok with sig [ed4cd99bb48c95e7] into the user session keyring Inserted auth tok with sig [a3d38cb87ce1d2c2] into the user session keyring
■.Privateディレクトリをマウント
$ sudo mount -t ecryptfs /media/vol/home/.ecryptfs/abiru/.Private/ /mnt/abiru/ Passphrase: Select cipher: 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded) 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded) 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded) Selection [aes]: Select key bytes: 1) 16 2) 32 3) 24 Selection [16]: Enable plaintext passthrough (y/n) [n]: Enable filename encryption (y/n) [n]: y Filename Encryption Key (FNEK) Signature [ed4cd99bb48c95e7]: a3d38cb87ce1d2c2 Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=a3d38cb87ce1d2c2 ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=ed4cd99bb48c95e7 WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt], it looks like you have never mounted with this key before. This could mean that you have typed your passphrase wrong. Would you like to proceed with the mount (yes/no)? : yes Would you like to append sig [ed4cd99bb48c95e7] to [/root/.ecryptfs/sig-cache.txt] in order to avoid this warning in the future (yes/no)? : yes Successfully appended new sig to user sig cache file Error mounting eCryptfs: [-2] No such file or directory Check your system logs; visit <http://launchpad.net/ecryptfs>
■結果
上記の通り、「Error mounting eCryptfs: [-2] No such file or directory」というエラーが出てマウント自体に失敗してしまう状況です。
■当初の状況との相違点
ちなみに質問当初、プロンプト上に表示されるデフォルト(サジェスチョン?)のFNEKを使った場合、マウントはされるもののファイル名が暗号化されたままの状態でしたので状況にまったく変化が無いわけではありませんが、.Privateディレクトリを正しくマウントできていないという点については、依然として同様の状況が続いております。
■今後の対応
引き続き、当方でも解決方法を模索して行きます。
具体的には、chrootコマンドとecryptfs-mount-privateコマンドを併用した解決策を模索しようかと考えております。
■フォーラム参加者の皆様へのお願い
もし、このトピックをご覧の方で何かお気づきの点がある方はどのような内容でも構いませんので、アドバイス頂ければ幸いです。特にファイル名が暗号化された.Privateディレクトリを正しくマウントできた実績をお持ちの方や、このトピックと同様に暗号化された.Privateディレクトリのマウントで苦戦されている方のご意見を拝聴できましたら幸いです。
以上、御礼ならびに状況報告まで。
オフライン
Ubuntu日本語フォーラムの皆様
いつもお世話になっております。abiruです。
ようやく暗号化されたホームディレクトリの復号化手順を確認できましたので、ご報告させて頂きます。
■暗号化されたホームディレクトリのマウント方法
以下のようなコマンドで暗号化されたホームディレクトリをマウントします。
$ sudo mount -o bind /dev /media/vol/dev $ sudo mount -o bind /proc /media/vol/proc $ sudo mount -o bind /sys /media/vol/sys $ sudo mount -o bind /var /media/vol/var $ sudo mount -o bind /dev/shm /media/vol/dev/shm $ sudo chroot /media/vol # su - abiru $ ecryptfs-mount-private $ cd $ ls
上記コマンドでは、前項まででマウントされた暗号化LVMのHDDの領域をmount -o bindコマンドとchrootコマンドで仮想的なルートディレクトリとして認識させ、ecryptfs-mount-privateコマンドで復号化とマウント処理を実施しています。この一連の手順を実施することで暗号化されたホームディレクトリの内容が通常通り参照可能になりますので、救出したいファイルをFTPなどで別マシンに転送し救出します。
■実際のファイルの救出にあたって
暗号化されたホームディレクトリを参照するためにchrootしているので、ディスクの外にそのままファイルをコピーする事ができません。したがって実際のファイルの救出にはFTPなどネットワーク経由でファイルを他所へ転送する必要があります。
■要検討課題
ファイル救出時の方法については、FTPなどのネットワーク経由のみというのは面倒なので、もう少しスマートな方法を検討する余地があるかと思います。
以上、ご報告まで。
オフライン
私も昨夜 #4で触れられたchrootにヒントを得て、その方法を試してたところです。
システムがそっくりそのままHDDにあるのなら、そのchrootする方法が簡単ですね。勉強になりました。
なお、私が#2で書いたのは、ホームディレクトリの暗号化ではなく、ホームディレクトリ配下にある~/.Privateフォルダの暗号化のケースに少なくとも有効でした。(リンク先もそうなってますし。)
少々勘違いしてました。
オフライン
STGSAGWANさん、ご返答ありがとうございます。
STGSAGWAN による投稿:
システムがそっくりそのままHDDにあるのなら、そのchrootする方法が簡単ですね。勉強になりました。
私は英語の方のフォーラムや、その他のQ&Aサイトの英語をナナメ読みしていて、この方法を知りました。
この方法は簡単である反面、chrootコマンドを使ってしまっているので、マウントしたディレクトリから外部にデータを持ち出す事が難しくなるという欠点があります。
それにSTGSAGWANさんにご指摘を頂いて、はじめて気がついたのですが、たしかにこの方法dは、システムがそっくりそのままHDDに残存している状態でないと、この方法は使えませんよね。
つまり何らかの事故でOS環境自体が破損してしまったような状況では、この方法は使えないという事になってしまいます。これでは障害発生時のデータ救出方法としては不十分ですね。(冷汗
やはり、万全のデータ救出体制を用意するという意味では「mount -t ecryptfs」コマンドでホームディレクトリをマウントした方が良いと思いますので、妥協せず、もう少し解決方法を調べてみようと思います。
STGSAGWAN による投稿:
なお、私が#2で書いたのは、ホームディレクトリの暗号化ではなく、ホームディレクトリ配下にある~/.Privateフォルダの暗号化のケースに少なくとも有効でした。(リンク先もそうなってますし。) 少々勘違いしてました。
ホームディレクトリ全体を暗号化した場合と、ホームディレクトリ配下にある~/.Privateフォルダの暗号化のケースでは、パスの指定方法などは異なるとは考えていましたが、何か根本的に手順を見直す必要があるのかもしれませんね。
アドバイスありがとうございます。もう少し色々と試行錯誤してみます。その他何かお気づきの点があればコメント頂けると幸いです。
以上、取り急ぎ、お礼とご連絡まで。
オフライン
閑話雑記(というか愚痴):
現在、暗号化LVMの選択肢はAlternate CDかサーバ版のインストーラでしか出てきませんよね?
でも、最近であれば、可搬性の高いモバイル・ノートPCにUbuntuを入れて利用する人も増えているんじゃないでしょうか。
個人的には、サーバ機のストレージ装置が盗難に遭う可能性や紛失してしまう可能性よりも、外出時に持ち歩いているノートPCが盗難に遭う可能性や紛失してしまう可能性の方がずっと高いように思えます。
なので、デスクトップ版のインストーラにも暗号化LVMやホームディレクトリの暗号化の選択肢がデフォルトで用意されてもいいのでは無いかなあと感じた次第です。
まあ、本音を言うと、デスクトップ版のインストーラにも暗号化LVMやホームディレクトリの暗号化の選択肢がデフォルトで用意されていれば、もっと検証が楽だったのになあ。という愚痴なんですけどね。(冷汗
ついでに、もうひとつ勝手な願望を言わせて頂ければ、Nautilusに実装されている右クリックでディスクをマウントする機能に暗号化LVMや暗号化されたホームディレクトリに対応したメニューや機能が用意されていれば、もっと素晴らしいのにとも思います。
やはり、HDDの暗号化とかって、そんなに一般のユーザさんの間では需要の無い機能なんですかねー。
あ、すいません。愚痴が長くなっちゃいました。
頑張って暗号化されたホームディレクトリを復号化する検証作業を進めます。(汗・汗
オフライン
abiru による投稿:
デスクトップ版のインストーラにも暗号化LVMやホームディレクトリの暗号化の選択肢がデフォルトで用意されてもいいのでは無いかなあと感じた次第です。
http://brainstorm.ubuntu.com/idea/22860/ に 投票するとよいでしょう。
Google検索の結果
abiru による投稿:
Nautilusに実装されている右クリックでディスクをマウントする機能に暗号化LVMや暗号化されたホームディレクトリに対応したメニューや機能が用意されていれば、もっと素晴らしいのにとも思います。
後者の要望は、
http://brainstorm.ubuntu.com/idea/21571/ に 投票するとよいでしょう。
Google検索の結果
オフライン
あ、すみません。愚痴にまで返信いただいて・・・。ありがとうございます。
オフライン
Ubuntu日本語フォーラムの皆様
おつかれ様です。未だ復号化の手順が確認できずに苦戦中のあびるでございます。
STGSAGWANさんから頂いたアドバイスの中の以下の点に着目してみました。
STGSAGWAN による投稿:
私が#2で書いたのは、ホームディレクトリの暗号化ではなく、ホームディレクトリ配下にある~/.Privateフォルダの暗号化のケースに少なくとも有効でした。
STGSAGWANさんのケースは、ホームディレクトリ全体をecryptfsで暗号化した環境ではなく、ホームディレクトリ以下のPriveteというディレクトリだけを対象として暗号化しているとのことで、その環境では、暗号化/復号化が正常に動作するとのことでした。そこで、問題の切り分けのために暗号化LVMとホームディレクトリ全体の暗号化をやめて、ひとまず、STGSAGWANさんのケースと同じ事を実施して正常に復号化できるかを試してみる事にしました。
■Privateディレクトリの作成
まず、ecryptfs-setup-privateを実行してPrivateディレクトリを作成しました。
abiru2@abintu:~$ ecryptfs-setup-private Enter your login passphrase: <ユーザログインパスワードを入力> Enter your mount passphrase [leave blank to generate one]:<マウントパスフレーズを入力> Enter your mount passphrase (again):<マウントパスフレーズを再入力> ************************************************************************ YOU SHOULD RECORD YOUR MOUNT PASSPHRASE AND STORE IT IN A SAFE LOCATION. ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase THIS WILL BE REQUIRED IF YOU NEED TO RECOVER YOUR DATA AT A LATER TIME. ************************************************************************ Done configuring. Testing mount/write/umount/read... Testing succeeded. Logout, and log back in to begin using your encrypted directory.
■動作確認用のファイルを作成
上記実行後、一旦ログアウトして再度ログインをし直し、Privateディレクトリを利用可能な状態にしました。
再ログイン後、動作確認用のファイルを作成しました。
abiru2@abintu:~$ cd ~/Private/ abiru2@abintu:~/Private$ touch このファイルが読めるかな.txt abiru2@abintu:~/Private$ echo このファイルが読めるかな > このファイルが読めるかな.txt abiru2@abintu:~/Private$ cat このファイルが読めるかな.txt このファイルが読めるかな
■現状のマウント状態を確認
abiru2@abintu:~/Private$ df ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 73742752 2778036 67218764 4% / udev 1276912 264 1276648 1% /dev none 1276912 2052 1274860 1% /dev/shm none 1276912 84 1276828 1% /var/run none 1276912 0 1276912 0% /var/lock none 1276912 0 1276912 0% /lib/init/rw none 73742752 2778036 67218764 4% /var/lib/ureadahead/debugfs /home/abiru2/.Private 73742752 2778036 67218764 4% /home/abiru2/Private
■Privateディレクトリをアンマウント
abiru2@abintu:~/Private$ cd abiru2@abintu:~$ sudo umount /home/abiru2/Private/ [sudo] password for abiru2:
アンマウント後の状態を確認
abiru2@abintu:~$ df ファイルシステム 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 73742752 2778048 67218752 4% / udev 1276912 264 1276648 1% /dev none 1276912 2052 1274860 1% /dev/shm none 1276912 84 1276828 1% /var/run none 1276912 0 1276912 0% /var/lock none 1276912 0 1276912 0% /lib/init/rw none 73742752 2778048 67218752 4% /var/lib/ureadahead/debugfs
■FNEKを確認
以下のコマンドを実行しファイル名の暗号化用のパスフレーズを確認します。
abiru2@abintu:~$ sudo ecryptfs-add-passphrase --fnek Passphrase: Inserted auth tok with sig [af12e67fbb2b51d5] into the user session keyring Inserted auth tok with sig [1a36e52c0c082b13] into the user session keyring
なお、上記コマンドで入力を求められたパスフレーズの箇所については、ecryptfs-setup-privateコマンドを実行した際、設定を求められたマウントパスフレーズを入力しました。
■再マウントに挑戦
以下のようなコマンドを実行し再マウントできるか確認しました。
abiru2@abintu:~$ sudo mount -t ecryptfs /home/abiru2/.Private /home/abiru2/Private
結果は以下の通りでした。
abiru2@abintu:~$ sudo mount -t ecryptfs /home/abiru2/.Private /home/abiru2/Private Passphrase: Select cipher: 1) aes: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 2) blowfish: blocksize = 16; min keysize = 16; max keysize = 56 (not loaded) 3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24 (not loaded) 4) twofish: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 5) cast6: blocksize = 16; min keysize = 16; max keysize = 32 (not loaded) 6) cast5: blocksize = 8; min keysize = 5; max keysize = 16 (not loaded) Selection [aes]: <デフォルトのままEnter> Select key bytes: 1) 16 2) 32 3) 24 Selection [16]: <デフォルトのままEnter> Enable plaintext passthrough (y/n) [n]: <デフォルトのままEnter> Enable filename encryption (y/n) [n]: y Filename Encryption Key (FNEK) Signature [55186c3f3033b91c]: 1a36e52c0c082b13 Attempting to mount with the following options: ecryptfs_unlink_sigs ecryptfs_fnek_sig=1a36e52c0c082b13 ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=55186c3f3033b91c WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt], it looks like you have never mounted with this key before. This could mean that you have typed your passphrase wrong. ←★<<エラーが表示されている事が疑問です!!!!>> Would you like to proceed with the mount (yes/no)? : yes Would you like to append sig [55186c3f3033b91c] to [/root/.ecryptfs/sig-cache.txt] in order to avoid this warning in the future (yes/no)? : yes Successfully appended new sig to user sig cache file Mounted eCryptfs
■結果確認
以下の通り、ファイル名の復号化もファイルの内容の復号化も正常にできている事を確認
abiru2@abintu:~$ ls ~/Private/ このファイルが読めるかな.txt abiru2@abintu:~$ cat /home/abiru2/Private/このファイルが読めるかな.txt このファイルが読めるかな
■今後の対応
これでホームディレクトリ配下にある~/.Privateフォルダの暗号化のケースについては復号化の手順が確認できましたので、今後はホームディレクトリ全体が暗号化された場合の検証を実施して原因を切り分けたいと思います。
■閑話雑記
あっれぇ~??さっきabiruという既存のアカウントでテストした時は復号化できなかったのに、この投稿を作成するために新しいユーザ(abiru2)を新規作成して1ステップずつ手順を確認しながらテストしたら正常に動作したぞ。。(汗
それは、なんでたーっ!!!!
テンションが低(以下、略
オフライン
sudo ecryptfs-recover-private
参考
https://translate.google.co.jp/translate?hl=ja&sl=en&u=http://www.howtogeek.com/116297/how-to-recover-an-encrypted-home-directory-on-ubuntu/&prev=search
オフライン