Changes between Version 1 and Version 2 of LinuxDiskVolumeCrypto


Ignore:
Timestamp:
04/02/08 14:03:27 (11 years ago)
Author:
sgk
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LinuxDiskVolumeCrypto

    v1 v2  
    11= Linuxでファイルシステムの暗号化 = 
    22 
     3Linuxカーネル2.6.4以後での話。 
     4 
     5以下、めんどくさいので、Debianに限定。 
     6 
    37{{{ 
    4 # apt-get install cryptsetup 
    5 # cryptsetup luksFormat /dev/sdb3 
     8#!html 
     9<pre># <u>apt-get install cryptsetup</u> 
     10# <u>cryptsetup luksFormat <i>/dev/sdb3</i></u> 
    611 
    712WARNING! 
     
    914This will overwrite data on /dev/sdb3 irrevocably. 
    1015 
    11 Are you sure? (Type uppercase yes): YES 
    12 Enter LUKS passphrase:  
    13 Verify passphrase:  
     16Are you sure? (Type uppercase yes): <u>YES</u> 
     17Enter LUKS passphrase: <u>********</u>        <i>新しいパスワードを入力</i> 
     18Verify passphrase: <u>********</u>        <i>もう一度パスワードを入力</i> 
    1419Command successful. 
    15 # cryptsetup luksOpen /dev/sdb3 sdb3 
    16 # mkfs -t nilfs2 /dev/mapper/sdb3 
    17 # mount /dev/mapper/sdb3 /backup 
     20# <u>cryptsetup luksOpen /dev/<i>sdb3 </i> <i>disk1</i></u> 
     21Enter LUKS passphrase: <u>********</u>        <i>パスワードを入力</i> 
     22key slot 0 unlocked. 
     23Command successful. 
     24# <u>mkfs -t nilfs2 /dev/mapper/<i>disk1</i></u> 
     25# <u>mount /dev/mapper/<i>disk1 </i> <i>/backup</i></u></pre> 
    1826}}} 
     27 
     28暗号化した上で、[wiki:NILFS NILFS]にしてみた。 
     29 
     30以後、起動するたびにやることは、以下の通り。 
     31 
     32{{{ 
     33#!html 
     34<pre># <u>cryptsetup luksOpen /dev/<i>sdb3 disk1</i></u> 
     35# <u>mount /dev/mapper/<i>disk1 /backup</i></u></pre> 
     36}}} 
     37 
     38== 考察 == 
     39 
     40ディスクの暗号化自体は、[http://www.saout.de/misc/dm-crypt/ dm-crypt]の仕事です。 
     41 
     42[http://luks.endorphin.org/ LUKS]っていうのは、とてもおおざっぱな言い方をすれば、ディスク暗号化の鍵管理の方式。 
     43パーティション先頭の「パーティションヘッダ」の部分に鍵管理の情報を格納します。 
     44このことによって、ひとつのパーティションを複数のパスワードのいずれかで復号することができます。 
     45 
     46しかし、このせいでパーティション先頭の32ブロックほどが使われてしまいます。 
     47そのため、すでにデータの入っているパーティションを暗号化しようとして、 
     48 
     49{{{ 
     50# dd if=/dev/sdb3 of=/dev/mapper/disk1 bs=1M 
     51}}} 
     52 
     53こんなことをすると、パーティションの最後尾が入り切らなくて悲しい思いをします。 
     54リサイズのできるファイルシステムを使っている場合は、32ブロックだけ小さくしてから`dd`すればイケるでしょう。 
     55でも、案外時間がかかるので、`nohup`でバックグラウンドで動かすのをお忘れ無く。 
     56僕の古いマシン(Celeron 600MHz)の場合、5~6MB/sでした(100Gで5時間ってとこ)。 
     57 
     58遠隔地のサーバなので、起動時にパスワードを入力することができません。 
     59そのため、起動時に自動的にマウントするようにはしていません。 
     60 
     61luksCreateを行う前に、パーティション全体を乱数で埋めろって話もありますが、今回はさぼりました。 
     62高度な安全性を望む場合は、そうするべきです。バッドブロックのチェックもしておきましょう。 
     63 
     64== リンク == 
     65 
     66 * [http://www.debian-administration.org/articles/579 ルートファイルシステムを暗号化しておいてSSH経由でパスワードを入力する方法。] 
     67   initramfsにSSHサーバを仕込んでおくってことらしい。がんばるなあ。 
     68 * [http://japan.internet.com/linuxtutorial/20070713/1.html Debian以外の人はこちらも参考に。] 
     69 
     70''(2008/4/2 - sgk)''