LUKSの頭字語はLinux Unified Key Setupを表し、Linux Kernelで広く使用されているディスク暗号化の方法であり、cryptsetupパッケージで実装されています。
cryptsetupコマンドラインは、提供されたパスフレーズから導出される対称暗号化キーを使用して、ボリュームディスクを暗号化しています。ボリュームディスク、パーティション、および整形されたディスク(USBスティックの場合も)がファイルシステムヒエラルキにマウントされるたびにパスフレーズが提供され、aes-cbc-essiv:sha256暗号が使用されます。

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つ目のパーティション(/dev/sdd1 -プライマリ)はLUKS暗号化に使用されます。
- 2つ目のパーティション(/dev/sdd5 -拡張)は、LinuxとWindowsベースのシステムの両方でデータにアクセスするためにNTFS形式でフォーマットされます。
また、これらのパーティションはUbuntu 14.04の再起動後に自動的にマウントされます。
ステップ1:ディスクパーティションの作成
1. ハードディスクが物理的にマシンに追加された後、lsコマンドを使用してすべての/dev/devices(4番目のディスクは/dev/sdd)をリストします。
# ls /dev/sd*

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

何も書き込まれていないため、ディスクには有効なパーティションテーブルがまだ含まれていません。
3. 次のステップでは、cfdiskディスクユーティリティを使用してハードディスクを2つのパーティションにスライスします。
$ sudo cfdisk /dev/sdd
4. 次の画面では、cfdiskのインタラクティブモードが開きます。ハードディスク空き領域を選択し、左右キーを使用してNewオプションに移動します。

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

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

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

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

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

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

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

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

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

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



おめでとうございます!パーティションの作成は成功し、フォーマットして使用する準備が整いました。
15. もう一度 Partition Table を確認するには、fdisk コマンドを実行すると、詳細なパーティション テーブルの情報が表示されます。
$ sudo fdisk –l /dev/sdd

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

17. パーティションを使用できるようにするには、ファイルシステム上にマウントする必要があります。/opt マウント ポイントに 4 番目のハード ディスクの 2 つ目のパーティションをマウントするには、mount コマンドを使用します。
$ sudo mount /dev/sdd5 /opt
18. 次に、/etc/mtabファイルでパーティションが利用可能かどうかをcatコマンドを使用して確認します。
$ cat /etc/mtab

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回入力してください。

注: パーティションのサイズと<HDDの速度に応じて、ファイルシステムの作成には時間がかかる場合があります。
22. パーティションデバイスの状態も確認できます。
$ sudo cryptsetup luksDump /dev/sdd1

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

パスワードを削除するには、
$ sudo cryptsetup luksRemoveKey /dev/sdd1

24. この暗号化されたパーティションをアクティブにするには、/dev/mapperディレクトリに名前のエントリ(初期化される)をcryptsetupパッケージのヘルプで作成する必要があります。
この設定には、以下のコマンドライン構文が必要です。
$ sudo cryptsetup luksOpen /dev/LUKS_partiton device_name
「device_name」はお好きな記述名で構いません(私は自分の名前をcrypted_volumeとしました)。実際のコマンドは以下のようになります。
$ sudo cryptsetup luksOpen /dev/sdd1 crypted_volume

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

$ sudo cryptsetup –v status encrypt_volume

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

パーティションがマウントされ、データの書き込みが可能であることがわかります。
27. 利用不可能にするには、システムからアンマウントし、デバイスを閉じます。
$ sudo umount /mnt $ sudo cryptsetup luksClose crypted_volume

ステップ3: パーティションの自動マウント
固定ハードディスクを使用し、再起動後に両方のパーティションが自動的にシステムにマウントされる必要がある場合は、次の2つの手順に従う必要があります。
28. まず、/etc/crypttabファイルを編集し、次のデータを追加します。
$ sudo nano /etc/crypttab
- ターゲット名: デバイスの説明的な名前(上記ポイント22を参照; EXT4 LUKS)。
- ソースドライブ: LUKS用にフォーマットされたハードディスクのパーティション(上記ポイント21を参照; EXT4 LUKS)。
- キーファイル: Noneを選択
- オプション: luksを指定します。
最終行は以下のようになります。
encrypt_volume /dev/sdd1 none luks

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

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

31.前に作成したNTFSパーティションタイプを追加するには、fstabで新しい行で上記と同じ構文を使用します(ここではLinuxファイルの追記リダイレクションが使用されています)。
$ sudo su - # echo "/dev/sdd5 /opt ntfs defaults 0 0" >> /etc/fstab

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


両方のディスクパーティションがUbuntuファイルシステム階層に自動的にマウントされました。 fstabファイルから自動的に暗号化されたボリュームを物理的にリモートサーバーで使用する場合は、暗号化されたボリュームのパスワードを提供するために再起動シーケンスへのアクセスができない場合は使用しないでください。
同じ設定は、盗聴や盗難の場合に重要な、秘密的な、または機密性の高いデータを保護するためにUSBメモリ、フラッシュメモリ、外部ハードディスクなどのすべての種類のリムーバブルメディアに適用できます。
Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/