Linux環境でのディスク暗号化

Linuxオペレーティング・システムを使用している場合は、ディスク暗号化を構成してディスク全体(リムーバブル・メディアを含む)、パーティション、ソフトウェアRAIDのボリューム、論理ボリュームおよびNoSQLファイルを暗号化することで、データを保護できます。

dm-cryptは、カーネル暗号化APIを使用してLinuxカーネル内に透過的なディスク暗号化サブシステムを提供する、Linuxカーネルのデバイス・マッパー暗号化ターゲットです。

Cryptsetupは、dm-cryptと連動して暗号化されたデバイスを作成したり、管理したり、これらのデバイスにアクセスするためのコマンドライン・ツールです。最も一般的に使用される暗号化はLinux Unified Key Setup (LUKS)拡張機能のCryptsetupで、この機能では、使いやすくするために、dm-cryptに必要なすべての設定情報がディスク自体に格納され、パーティションおよびキー管理が抽象化されています。

このトピックでは、コマンドライン・インタフェースを使用して、通常ディスクをdm-crypt対応ディスクに変換する方法と、その逆を行う方法について説明します。

Linuxシステムに次のディスクがあるとします。df -hコマンドは、各ディスクの使用可能なディスク領域の量を表示します。

$df -h
/dev/nvme0n1 2.9T 76G 2.7T 3% /ons/nvme0n1
/dev/nvme1n1 2.9T 76G 2.7T 3% /ons/nvme1n1
...

データベースを格納するディスクとして/dev/nvme0n1を指定した場合は、このディスクを暗号化して、ディスク内のデータを保護する必要があります。

通常ディスクからdm-crypt対応ディスクへ:

次のコマンドを実行して、通常ディスクをdm-crypt対応ディスクに変換します。

  1. ディスク上のファイル・システムをアンマウントします。

    sudo umount -l /dev/nvme0n1 
  2. luksFormatで使用するキーを生成します。

    sudo dd if=/dev/urandom of=/home/opc/key0.key bs=1 count=4096
  3. LUKSパーティションを初期化し、初期キーを設定します。

    sudo /usr/sbin/cryptsetup -q -s 512 \
    luksFormat /dev/nvme0n1 /home/opc/key0.key
  4. ディスク/デバイスのLUKSパーティションを開き、マッピング名を設定します。

    sudo /usr/sbin/cryptsetup --allow-discards \
    luksOpen -d /home/opc/key0.key /dev/nvme0n1 dm-nvme0n1
  5. ディスクにext4ファイル・システムを作成します。

    sudo /sbin/mkfs.ext4 /dev/mapper/dm-nvme0n1
  6. ext4ファイル・システムのパラメータを設定します。

    sudo /usr/sbin/tune2fs -e remount-ro /dev/mapper/dm-nvme0n1
  7. 指定されたディレクトリにファイル・システムをマウントします。

    sudo mount /dev/mapper/dm-nvme0n1 /ons/nvme0n1

dm-crypt対応ディスクから通常ディスクへ:

暗号化されたディスクを通常の状態に変換する場合は、次のステップを実行します。

  1. ディスク上のファイル・システムをアンマウントします。

    sudo umount -l /ons/nvme0n1
  2. LUKSマッピングを削除します。

    sudo /usr/sbin/cryptsetup luksClose /dev/mapper/dm-nvme0n1
  3. ディスクにext4ファイル・システムを作成します。

    sudo /sbin/mkfs.ext4 /dev/nvme0n1 
  4. 指定されたディレクトリにファイル・システムをマウントします。

    sudo mount /dev/nvme0n1 /ons/nvme0n1

注意:

通常ディスクをdm-crypt対応ディスクに変換するか、dm-crypt対応ディスクを通常ディスクに変換する場合、そのデータを失わずにディスクを前の状態に戻すことはできません。これは、mkfs.ext4コマンドがディスクをフォーマットするためです。したがって、ディスクに格納されているすべてのデータが失われます。