NO IMAGE

CentOS7で暗号化ボリューム(HDD)作成とマウントする!

どうも、amaou (@nogwg)です。

最近CentOS7で暗号化したHDDをマウントする機会があったので、作業の記録をしておきます。

前提として、暗号化したいデバイスが/dev/sdbってことで進めていく。

 

事前準備

事前準備として、HDDのデータを乱数で埋めておくことをおすすめします。
上書きされていない範囲の情報は、復元ツールなどで復活させられてしまう場合があるので。

[bash]shred -n 1 -v /dev/sdb[/bash]

luksFormatで暗号化先のデバイスを指定

[shell]cryptsetup luksFormat /dev/sdb[/shell]

警告が出るので大文字でYESと入力し、続けてパスワードを設定します。

[shell]WARNING!
========
This will overwrite data on /dev/sdc1 irrevocably.

Are you sure? (Type uppercase yes): YES ← 大文字で入力
Enter LUKS passphrase:  ← パスワードを適当に入力
Verify passphrase:  ← パスワードの確認
[/shell]

デバイスマッパーを作成

ここでluksOpenすることで、/dev/mapper 以下に仮想ストレージとしてマッピングされた状態になります。
今回はcryptstorageという名前にしました。
コマンドを入力するとパスフレーズを聞かれるので、先ほど入力したパスワードを入力しましょう。

[shell]cryptsetup luksOpen /dev/sdb cryptstorage[/shell]

暗号化ストレージをフォーマットする

-tオプションでフォーマット形式を指定します。今回はext4。
さっきluksOpenで作った/dev/mapper/cryptstorageを指定。

[shell]mkfs -t ext4 /dev/mapper/cryptstorage[/shell]

あとはマウントするだけ
/dev/mapper/cryptstorage を /mnt/storage にマウントしました。

[shell]mount -t ext4 /dev/mapper/cryptstorage /mnt/storage[/shell]

利用方法

マウントする方法

基本的には作成手順の②と④のみで出来ます。

  1. デバイスマッパーの作成
[shell]cryptsetup luksOpen /dev/sdb cryptstorage[/shell]
  1. マウント
[shell]mount -t ext4 /dev/mapper/cryptstorage /mnt/storage[/shell]

マウント方法は通常時ととくに変わらないので、デバイスマッパー作るのを覚えるくらいです。

簡単ですね。

アンマウントする方法

暗号化ボリュームのアンマウントには2つの段階があります。

  1. 普通にumount
[shell]umount /mnt/storage[/shell]
  1. 作成したデバイスマッパーの削除
[shell]cryptsetup luksClose cryptstorage[/shell]

デバイスマッパーを作った時点でパスフレーズを入力するので、
これを削除しておかないと誰でもmount出来る状態になっています。
他の人に使われたくない場合は、デバイスマッパーも削除しておきましょう。

暗号化ボリュームを自動マッピングする方法

いちいちデバイスマッパー作成時にパスワードを入力するのは面倒ですよね。
暗号化ボリュームのマウントは自動化することも出来ます。

既にマウント済のデバイスを新しく設定する場合は一旦アンマウントしておいて下さい。

  1. キーファイルの作成
    まずはキーファイルを作成します。キーのパーミッションは400(か、600あたり)にしておきます。
[shell]dd if=/dev/random of=/etc/key/mydevice.key bs=1 count=1024
chmod 400 crypt.key
[/shell]
  1. 暗号化ボリュームにキーを追加
    完全にアンマウントされた暗号化ボリュームに luksAddKeyでキーを追加します。
    このときボリューム暗号化時に設定したパスフレーズを聞かれるので入力して下さい。
[shell]cryptsetup luksAddKey /dev/sdb /etc/key/mydevice.key[/shell]
  1. キーファイルを指定してデバイスマッパーを作成
    –key-fileオプションに先ほど作成したcrypt.keyを指定してluksOpenします。
[shell]cryptsetup –key-file /etc/key/mydevice.key luksOpen /dev/sdb cryptstorage[/shell]
  1. 暗号化ボリュームのUUIDを取得
    ここでは作成デバイスマッパーではなく、元々のデバイス(ここでは/dev/sdb)を指定します。
[shell]cryptsetup luksDump /dev/sdb[/shell]
  1. デバイスマッパーを自動作成する設定を追加
    /etc/crypttab がデバイスマッパーの自動作成をしてくれるので、以下のように追記します。
    XXXXXXXXXXX の部分には先ほど取得したUUIDと書き換えて下さい。
[shell]vi /etc/crypttab
cryptstorage UUID=XXXXXXXXXXX /etc/key/mydevice.key luks
[/shell]
  1. 自動マウントの設定
    自動マウント自体は、他と同じで/etc/fstabからやります。
[shell]vi /etc/fstab
/dev/mapper/cryptstorage /mnt/storage ext4 errors=remount-ro 0 1
[/shell]

以上。こんなものですかね、、
いじってて必要そうなものが出てきたら追記ていこう。