[[PageOutline]] = cryptsetup と dm-crypt でパーティションの暗号化 = == 概要 == 詳しい話は http://opentechpress.jp/kernel/04/06/09/1353250.shtml など * device-mapper を使ってパーティションを暗号化するので,マッパーデバイスを作成する際にパスワードを求められる {{{ # cryptsetup -y create Enter passphrase: Verify passphrase: # mount -t }}} * ブートプロセス中,localmount が動く前にパスワードが求められるという,Apache の mod_ssl のようなことが起こる * swap や tmp なら /dev/urandom を鍵にしてしまえば良い (-d オプションで可能) * 暗号化アルゴリズム * カーネルがサポートしていればどれでもいけるのかも * AES や Blowfish (CBC Mode も可) を使うのが一般的 * パスワードハッシュ関数 * カーネルがサポートしていればどれでもいけるのかも * MD5,SHA-1,SHA-256,SHA-512 あたりが一般的 == 構築 == * ほぼ http://gentoo-wiki.com/SECURITY_dmcrypt と同一内容 1. カーネル構築 {{{ Device Drivers --> RAID and LVM Support --> [*] Multiple devices driver support (RAID and LVM) <*> Device mapper support <*> Crypt target support Cryptographic Options --> <*> AES cipher algorithims }}} 1. cryptsetup インストール {{{ # emerge sys-fs/cryptsetup }}} 1. 暗号化して利用するパーティションにマッパーデバイスをマッピング.パスワードを求められるが,初回は好きなパスワードを設定する {{{ # cryptsetup -y create <好きなデバイス名> <デバイスの実態 (例えば /dev/hda4)> }}} 1. マッパーデバイスを通してファイルシステムを作る.これを見て分かる通り,既存ファイルシステムは破壊される {{{ # mkreiserfs /dev/mapper/<さっきcreateしたデバイス名> }}} 1. マウントする.マウント時にはパスワードは求められない.あくまでマッパーデバイスを作るときにだけパスワードを求められることに注意 {{{ # mount /dev/mapper/<さっきcreateしたデバイス名> /mnt/point }}} == 起動時のマウント == Gentoo Linux の場合. 1. {{{/etc/conf.d/cryptfs}}} を編集 {{{ mount= source='<デバイスの実態 (例えば /dev/hda4)>' options='-y' }}} あとは localmount あたりが何とかしてくれる. ただし起動時にパスワード入力必須.