LUKS:Linuxハードディスクデータ暗号化とLinuxでのNTFSサポート

LUKSの頭字語はLinux Unified Key Setupを表し、Linux Kernelで広く使用されているディスク暗号化の方法であり、cryptsetupパッケージで実装されています。

cryptsetupコマンドラインは、提供されたパスフレーズから導出される対称暗号化キーを使用して、ボリュームディスクを暗号化しています。ボリュームディスク、パーティション、および整形されたディスク(USBスティックの場合も)がファイルシステムヒエラルキにマウントされるたびにパスフレーズが提供され、aes-cbc-essiv:sha256暗号が使用されます。

Linux Hard Disk Encryption Using LUKS

LUKSはLinuxシステム上の全ブロックデバイス(ハードディスク、USBスティック、フラッシュディスク、パーティション、ボリュームグループなど)を暗号化できるため、外部ストレージメディア、ノートパソコンのハードディスク、Linuxスワップファイルを保護するために大いに推奨されており、ファイルレベルの暗号化には推奨されていません。

NTFS(New Technology File System)は、Microsoftによって開発されたプロプライエタリなファイルシステムです。

Ubuntu 14.04はLUKS暗号化とWindows向けのntfs-3gパッケージによるNTFSネイティブサポートを完全に提供しています。

このチュートリアルでの主張を証明するために、Ubuntu 14.04ボックスに(新しく追加されたHDDをシステムが/dev/sddと参照している)新しいハードディスク(4番目)を追加し、そのディスクを二つのパーティションに分割します。

  1. 1つ目のパーティション(/dev/sdd1 -プライマリ)はLUKS暗号化に使用されます。
  2. 2つ目のパーティション(/dev/sdd5 -拡張)は、LinuxとWindowsベースのシステムの両方でデータにアクセスするためにNTFS形式でフォーマットされます。

また、これらのパーティションはUbuntu 14.04の再起動後に自動的にマウントされます。

ステップ1:ディスクパーティションの作成

1. ハードディスクが物理的にマシンに追加された後、lsコマンドを使用してすべての/dev/devices(4番目のディスクは/dev/sdd)をリストします。

# ls /dev/sd*
List Partitions in Linux

2. 次に、fdiskコマンドで新しく追加されたHDDをチェックします。

$ sudo fdisk –l /dev/sdd
Check Linux Hard Disk

何も書き込まれていないため、ディスクには有効なパーティションテーブルがまだ含まれていません。

3. 次のステップでは、cfdiskディスクユーティリティを使用してハードディスクを2つのパーティションにスライスします。

$ sudo cfdisk /dev/sdd

4. 次の画面では、cfdiskのインタラクティブモードが開きます。ハードディスク空き領域を選択し、左右キーを使用してNewオプションに移動します。

cfdisk Interactive Mode

5. パーティションタイプをPrimaryとして選択してEnterを押します。

Select Your Partition Type

6. 希望のパーティションサイズをMBで書き留めます。

Write Down Partition Size

7. このパーティションをハードディスクの空き領域の先頭に作成します。

Create a Partition

8. 次に、パーティションタイプオプションに移動し、Enterを押します。

Partition Type

9. 次のプロンプトでは、すべてのファイルシステムの種類とその番号コード(Hex番号)が表示されます。このパーティションはLinux LUKSで暗号化されるため、83コードを選択し、再度Enterを押してパーティションを作成します。

Enter File System Type

10. パーティションが 1 つ作成され、cfdisk ユーティリティ プロンプトが先頭に戻ります。NTFS として使用する 2 つ目のパーティションを作成するには、残りの Free space を選択し、New オプションに移動して Enter キーを押します。

Create New Partition

11. 今回はパーティションを 拡張論理 タイプにします。Logical オプションに移動し、再度 Enter を押します。

Select Logical Partition Type

12. 再びパーティション サイズを入力します。新しいパーティションに空き領域をすべて使用するには、サイズをデフォルト値のままにして Enter キーを押します。

Enter Size of Partition

13. 再びパーティションのタイプ コードを選択します。NTFS ファイルシステムの場合は、86 ボリューム コードを選択します。

Select Partition Type

14. パーティションを確認したら、Write を選択し、対話型プロンプトの質問に yes と答えた後、Quit を選択して cfdisk ユーティリティを終了します。

Write Partition Table to Disk
Confirm Changes
Quit to leave cfdisk utility

おめでとうございます!パーティションの作成は成功し、フォーマットして使用する準備が整いました。

15. もう一度 Partition Table を確認するには、fdisk コマンドを実行すると、詳細なパーティション テーブルの情報が表示されます。

$ sudo fdisk –l /dev/sdd
Confirm Parition Table

ステップ 2: パーティション ファイルシステムの作成

NTFS ファイルシステム

16. 2 つ目のパーティションに NTFS ファイルシステムを作成するには、mkfs コマンドを実行します。

$ sudo mkfs.ntfs /dev/sdd5
Create NTFS Filesystem

17. パーティションを使用できるようにするには、ファイルシステム上にマウントする必要があります。/opt マウント ポイントに 4 番目のハード ディスクの 2 つ目のパーティションをマウントするには、mount コマンドを使用します。

$ sudo mount /dev/sdd5 /opt

18. 次に、/etc/mtabファイルでパーティションが利用可能かどうかをcatコマンドを使用して確認します。

$ cat /etc/mtab
Check Partition Availability

19. パーティションをアンマウントするには、次のコマンドを使用します。

$ sudo umount /opt
EXT4 LUKS

20. システムにcryptsetupパッケージがインストールされていることを確認してください。

$ sudo apt-get install cryptsetup		[On Debian Based Systems]

# yum install cryptsetup				[On RedHat Based Systems]

21. 今、以下のコマンドを発行して、第4のハードディスクの最初のパーティションをext4ファイルシステムでフォーマットします。

$ sudo luksformat  -t ext4  /dev/sdd1

Are you sure?」の質問に大文字でYESと回答し、望むパスフレーズを3回入力してください。

Format Partition

: パーティションのサイズと<HDDの速度に応じて、ファイルシステムの作成には時間がかかる場合があります。

22. パーティションデバイスの状態も確認できます。

$ sudo cryptsetup luksDump  /dev/sdd1
Verify Partition Status

23. LUKSは最大で8つのパスワードをサポートします。パスワードを追加するには、次のコマンドを使用します。

$ sudo cryptsetup luksAddKey /dev/sdd1
Add a Password

パスワードを削除するには、

$ sudo cryptsetup luksRemoveKey /dev/sdd1
Remove a Password

24. この暗号化されたパーティションをアクティブにするには、/dev/mapperディレクトリに名前のエントリ(初期化される)をcryptsetupパッケージのヘルプで作成する必要があります。

この設定には、以下のコマンドライン構文が必要です。

$ sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

device_name」はお好きな記述名で構いません(私は自分の名前をcrypted_volumeとしました)。実際のコマンドは以下のようになります。

$ sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume
Active Encrypted Partition

25. その後、デバイスが/dev/mapperにリストされているか、ディレクトリ、シンボリックリンク、およびデバイスの状態を確認します。

$ ls /dev/mapper
$ ls –all /dev/mapper/encrypt_volume
Verify Encrypted Partition
$ sudo cryptsetup –v status encrypt_volume
Encrypted Partition Status

26. パーティションデバイスを一般に利用可能にするために、マウントポイントにマウントします。mountコマンドを使用します。

$ sudo mount  /dev/mapper/crypted_volume  /mnt
Mount Encrypted Partition

パーティションがマウントされ、データの書き込みが可能であることがわかります。

27. 利用不可能にするには、システムからアンマウントし、デバイスを閉じます。

$ sudo umount  /mnt
$ sudo cryptsetup luksClose crypted_volume
Umount Encrypted Partition

ステップ3: パーティションの自動マウント

固定ハードディスクを使用し、再起動後に両方のパーティションが自動的にシステムにマウントされる必要がある場合は、次の2つの手順に従う必要があります。

28. まず、/etc/crypttabファイルを編集し、次のデータを追加します。

$ sudo nano /etc/crypttab
  1. ターゲット名: デバイスの説明的な名前(上記ポイント22を参照; EXT4 LUKS)。
  2. ソースドライブ: LUKS用にフォーマットされたハードディスクのパーティション(上記ポイント21を参照; EXT4 LUKS)。
  3. キーファイル: Noneを選択
  4. オプション: luksを指定します。

最終行は以下のようになります。

encrypt_volume               /dev/sdd1          none       luks
Mount Partition Automatically

29. その後、/etc/fstabを編集し、デバイス名、マウントポイント、ファイルシステムの種類、およびその他のオプションを指定します。

$ sudo nano /etc/fstab

最後の行には以下の構文を使用します。

/dev/mapper/device_name (or UUID)	/mount_point     filesystem_type     options    dump   pass

そして、特定の内容を追加します。

/dev/mapper/encrypt_volume      /mnt    ext4    defaults,errors=remount-ro     0     0
Add Partition Entry in Fstab

30. デバイスのUUIDを取得するには、次のコマンドを使用します。

$ sudo blkid
Get Device UUID

31.前に作成したNTFSパーティションタイプを追加するには、fstabで新しい行で上記と同じ構文を使用します(ここではLinuxファイルの追記リダイレクションが使用されています)。

$ sudo su -
# echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab
Add NTFS Partition in fstab

32.変更を確認するには、マシンを再起動し、「ネットワークデバイスの設定を開始」というブートメッセージの後にEnterキーを押してデバイスのパスフレーズを入力します。

Reboot Machine
Verify Partition is Mounted Automatically

両方のディスクパーティションがUbuntuファイルシステム階層に自動的にマウントされました。 fstabファイルから自動的に暗号化されたボリュームを物理的にリモートサーバーで使用する場合は、暗号化されたボリュームのパスワードを提供するために再起動シーケンスへのアクセスができない場合は使用しないでください。

同じ設定は、盗聴や盗難の場合に重要な、秘密的な、または機密性の高いデータを保護するためにUSBメモリ、フラッシュメモリ、外部ハードディスクなどのすべての種類のリムーバブルメディアに適用できます。

Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/