Tuesday, November 17, 2009

UbuntuでのHOME directoryの暗号化(インストール後)

Mac OS Xには,FileValut機能によって,ホームフォルダを暗号化する機能がありますが,同様にThinkPad X60s上に導入したubuntuの/home/$USERも暗号化させたいもにです。そこで, Ubuntu's Encrypted Home Directory: A Canonical Approach to Data Privacy を参考にして,やってみました。ハマった点が2箇所あるので,手順を引用しながら説明します。

該当箇所は "Ubuntu 9.10 Live Migration to an Encrypted Home Directory" の箇所です。


rm -rf $HOME.old

を実行する前まではやりなおすことができるので,慎重に実行してください。こういう作業を行う際には紛失してもかまわないように,データのバックアップを実行して,外部に保存してください。

以下の作業はTTY端末で実行した方が安全です。gnomeセッションが残っていると,一部のファイル.gvfs/にアクセスする際に問題が発生します。Login画面の所でにCTRL-ALT-F1を同時押しして,TTY端末に落としましょう。

作業開始前,または途中作業がわからなくなって最初からやり直す場合に,$HOME/.Private,$HOME/Private, $HOME/.ecryptfs を削除しておきます。


% sudo rm -rf $HOME/.Private $HOME/Private $HOME/.ecryptfs

セットアップを開始します。

% encryptfs-setup-private
2010年5月8日訂正。h12o様より,ご指摘いただきました。「encryptfs-setup-private」ではなく「ecryptfs-setup-private」です。
% ecryptfs-setup-private

login passphrase,mount用pass phraseが聞かれますので,適切に入力します。

一度,log outしlog inしなおして,$HOME/Private がmountされていることを確認しておきます。


% exit
... log in again
% mount | grep "$USER.*ecryptfs*" <- ここで $HOME/Privateがmountされているかどうか確認できます。


これで,$HOME/Privateの中が暗号化されているわけです。これを何とか$HOMEを対象にしたいのが目的です。

encryptするHOMEの内容を$HOME/Privateにsyncしておきます。


% rsync -aP --exclude=.Private/ --exclude=Private --exclude=.ecryptfs $HOME/ $HOME/Private


sync しておいて,$HOME/Private を umount して,一旦 logout します。

% sync
% ecryptfs-umount-private
% exit

再login後,eCryptfsのconfiguration directoryを設定します。


% ecryptfs-umount-private
% cd /
% sudo mkdir -p /home/.ecryptfs/$USER
% sudo mv $HOME/.ecryptfs /home/.ecryptfs/$USER

ここから,新しいhome directoryを設定します。


% sudo mkdir -p -m 700 /home/$USER.new
% sudo chown $USER:$USER /home/$USER.new <- user/groupは適切な値にしておいてください。
% sudo mv $HOME/.Private /home/.ecryptfs/$USER
% sudo ln -s /home/.ecryptfs/$USER/.ecryptfs /home/$USER.new/.ecryptfs

一旦,$HOMEをbackupします,


% sudo mv $HOME $HOME.old

新しいHOME directoryに移行します。


% sudo mv /home/$USER.new $HOME
% echo $HOME > $HOME/.ecryptfs/Private.mnt
% sudo ln -s /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt $HOME/README.txt
% sudo chmod 500 $HOME

一旦,log outして再log in後,configuration direcotry (.ecryptfs) と .Private に対してsymbolic linkを貼ります。


% exit
... log in
% ln -s /home/.ecryptfs/$USER/.ecryptfs $HOME/.ecryptfs
% ln -s /home/.ecryptfs/$USER/.Private $HOME/.Private <- これがないとマウントできない。

最後に,元のHOMEを削除します。


% sudo rm -rf $HOME.old

これで,ThinkPad X60sを持ち歩いても大丈夫になったかなと思います。

2 comments:

Anonymous said...

「セットアップを開始します。」の次の
「encryptfs-setup-private」は「ecryptfs-setup-private」でしょうか?

abekatsu said...

h12o様,

ご指摘ありがとうございます。
ご指摘どおり,「ecryptfs-setup-private」が正しいです。お詫びして訂正いたします。

誠に有難うございました。