5 暗号化ブロック・デバイスの使用

Oracle Linuxをインストールする場合は、ブート・パーティションを除いてシステム・ボリュームに対して暗号化を構成するオプションがあります。ブート可能なパーティション自体を保護するには、BIOSに組み込まれているパスワード保護メカニズムの使用またはGRUBパスワードの設定を検討してください。

暗号化ブロック・デバイスについて

デバイス・マッパーは、dm-cryptデバイス・ドライバを介してブロック・デバイスの暗号化をサポートします。これらのデバイス上のデータには、適切な資格証明でしかブート時にアクセスできません。dm-cryptは、ディスク・パーティション、RAIDボリュームおよびLVM物理ボリュームをコンテンツに関係なく暗号化します。

暗号化ボリュームの作成

cryptsetupユーティリティは、デバイスにLinux Unified Key Setup (LUKS)暗号化を設定し、認証を管理します。

LUKSは、プラットフォームに依存しない標準のディスク上の形式を実装する暗号化仕様です。この標準により、異なるディストリビューションおよびプログラム間の相互運用性と互換性が確保されます。実装には、暗号化されたディスクの管理を簡素化するツールも含まれています。この機能を使用する場合は、ブート時にパスフレーズが必要です。正しいパスフレーズは、暗号化キーのロックを解除してボリュームの復号化を有効にします。

LUKSの詳細は、https://gitlab.com/cryptsetup/cryptsetup/blob/master/README.mdファイルを参照してください。

LUKSを使用してボリュームを暗号化するには、次の手順に従います。

  1. デバイスのLUKSパーティションを初期化し、初期キーを設定します。たとえば:

    sudo cryptsetup luksFormat /dev/sdd

    次の警告が表示されます。

    WARNING!
    ========
    This will overwrite data on /dev/sdd irrevocably.
    Are you sure? (Type uppercase yes): YES
    Enter LUKS passphrase: passphrase
    Verify passphrase: passphrase
  2. デバイスをオープンし、次のようにデバイス・マッピングを作成します。

    sudo cryptsetup luksOpen /dev/sdd cryptfs

    パスフレーズの入力を要求されます:

    Enter passphrase for /dev/sdd: passphrase

    暗号化されたボリュームは、/dev/mapper/cryptfsでアクセスできます。

  3. /etc/crypttabの暗号化ボリュームにエントリを作成します。たとえば:

    # <target name>  <source device>  <key file>  <options>
    cryptfs          /dev/sdd         none        luks

    このエントリにより、ブート時にオペレーティング・システムからパスフレーズの入力を求めるプロンプトが表示されます。

暗号化されたボリュームは、物理ストレージ・デバイスと同じ方法(LVM物理ボリューム、ファイル・システム、スワップ・パーティション、自動ストレージ管理(ASM)ディスク、RAWデバイスなど)で使用します。たとえば、暗号化ボリュームを自動的にマウントするには、/etc/fstabにエントリを作成して、物理デバイス(/dev/sdd)ではなく、マップされたデバイス(/dev/mapper/cryptfs)をマウントします。

暗号化ボリュームのステータスを検証するには:

sudo cryptsetup status cryptfs

次のような出力結果が表示されます。

/dev/mapper/cryptfs is active.
type: LUKS1
cipher:  aes-cbs-essiv:sha256
keysize: 256 bits
device:  /dev/xvdd1
offset:  4096 sectors
size:    6309386 sectors
mode:    read/write

デバイス・マッピングを削除するには:

  1. 暗号化ボリューム内の既存のファイル・システムをアンマウントします。

  2. マップされたデバイスを/dev/mapperから削除します。

    たとえば、暗号化ボリュームcryptfsの場合は、次のコマンドを使用します。

    sudo cryptsetup luksClose /dev/mapper/cryptfs

詳細は、cryptsetup(8)およびcrypttab(5)の各マニュアル・ページを参照してください。