| 1 | [[PageOutline]] |
| 2 | |
| 3 | = cryptsetup と dm-crypt でパーティションの暗号化 = |
| 4 | == 概要 == |
| 5 | 詳しい話は http://opentechpress.jp/kernel/04/06/09/1353250.shtml など |
| 6 | |
| 7 | * device-mapper を使ってパーティションを暗号化するので,マッパーデバイスを作成する際にパスワードを求められる |
| 8 | {{{ |
| 9 | # cryptsetup -y create <NAME> <DEVICE> |
| 10 | Enter passphrase: |
| 11 | Verify passphrase: |
| 12 | # mount -t <TYPE> <DEVICE> <MOUNTPOINT> |
| 13 | }}} |
| 14 | * ブートプロセス中,localmount が動く前にパスワードが求められるという,Apache の mod_ssl のようなことが起こる |
| 15 | |
| 16 | * swap や tmp なら /dev/urandom を鍵にしてしまえば良い (-d オプションで可能) |
| 17 | |
| 18 | * 暗号化アルゴリズム |
| 19 | * カーネルがサポートしていればどれでもいけるのかも |
| 20 | * AES や Blowfish (CBC Mode も可) を使うのが一般的 |
| 21 | |
| 22 | * パスワードハッシュ関数 |
| 23 | * カーネルがサポートしていればどれでもいけるのかも |
| 24 | * MD5,SHA-1,SHA-256,SHA-512 あたりが一般的 |
| 25 | |
| 26 | == 構築 == |
| 27 | * ほぼ http://gentoo-wiki.com/SECURITY_dmcrypt と同一内容 |
| 28 | |
| 29 | 1. カーネル構築 |
| 30 | {{{ |
| 31 | Device Drivers --> RAID and LVM Support --> |
| 32 | [*] Multiple devices driver support (RAID and LVM) |
| 33 | <*> Device mapper support |
| 34 | <*> Crypt target support |
| 35 | |
| 36 | Cryptographic Options --> |
| 37 | <*> AES cipher algorithims |
| 38 | }}} |
| 39 | 1. cryptsetup インストール |
| 40 | {{{ |
| 41 | # emerge sys-fs/cryptsetup |
| 42 | }}} |
| 43 | 1. 暗号化して利用するパーティションにマッパーデバイスをマッピング.パスワードを求められるが,初回は好きなパスワードを設定する |
| 44 | {{{ |
| 45 | # cryptsetup -y create <好きなデバイス名> /dev/hda4 |
| 46 | }}} |
| 47 | 1. マッパーデバイスを通してファイルシステムを作る.これを見て分かる通り,既存ファイルシステムは破壊される |
| 48 | {{{ |
| 49 | # mkreiserfs /dev/mapper/<さっきcreateしたデバイス名> |
| 50 | }}} |
| 51 | 1. マウントする.マウント時にはパスワードは求められない.あくまでマッパーデバイスを作るときにだけパスワードを求められることに注意 |
| 52 | {{{ |
| 53 | # mount /dev/mapper/<さっきcreateしたデバイス名> /mnt/point |
| 54 | }}} |
| 55 | |
| 56 | == 起動時のマウント == |
| 57 | Gentoo Linux の場合. |
| 58 | |
| 59 | 1. {{{/etc/conf.d/cryptfs}}} を編集 |
| 60 | {{{ |
| 61 | mount=<createしたデバイス名> |
| 62 | source='デバイスの実態 (例えば /dev/hda4)' |
| 63 | options='-y' |
| 64 | }}} |
| 65 | |
| 66 | あとは localmount あたりが何とかしてくれる. |
| 67 | ただし起動時にパスワード入力必須. |