ウェブサイト検索

LUKS: LinuxにおけるNTFSを使用したハードディスクデータ暗号化


LUKSという略語はLinux Unified Key Setupを意味し、これはLinux Kernelによって使用される広範なディスク暗号化の方法であり、cryptsetupパッケージを使用して実装されています。

cryptsetup コマンドラインは、ボリュームディスクをオンザフライで暗号化します。これは、ファイルシステム階層にボリュームディスク、パーティション、および完全なディスク(USB スティックさえも)がマウントされるたびに提供されるパスフレーズから派生した対称暗号化キーを使用し、aes-cbc-essiv:sha256 暗号方式を使用します。

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

NTFS(新技術ファイルシステム)は、マイクロソフトによって開発された独自のファイルシステムです。

Ubuntu 24.04はLUKS暗号化の完全なサポートを提供し、ntfs-3gパッケージの助けを借りてWindowsに対してもNTFSのネイティブサポートを提供します。

このチュートリアルで私の主張を証明するために、Ubuntu 24.04 ボックスに新しいハードディスクを追加しました(新しく追加されたHDDのシステム参照は /dev/vdb であり、2つのパーティションに分割されます)。

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

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

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

1. ハードディスクが物理的にマシンに追加されたら、lsコマンドを使用してすべての/devデバイスを一覧表示します(新しいディスクは/dev/vdbになります)または、fdiskコマンドで新しく追加したHDDを確認してください。

ls /dev/vd*
sudo fdisk -l /dev/vdb

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

2. 次のステップでは、cfdisk ディスクユーティリティを使用して、2つのパーティション結果のためにハードディスクをスライスします。これは、ディスクのパーティションのためのテキストベースのインターフェースを提供します。

sudo cfdisk /dev/vdb

このディスクでcfdiskを初めて使用する場合、パーティションテーブルの種類を選択する必要があるかもしれません(例えば、古いシステム用のMBRや新しいシステム用のGPT)。

3. 次の画面ではcfdiskがインタラクティブモードで開きます。ハードディスク上の「未使用領域」を選択し、左/右の矢印キーを使用して「新規」オプションに移動します。

4. 促された場合は、パーティションタイプ(プライマリまたは拡張)を選択し、最初のパーティションを作成するためのサイズ(MBまたはGB単位)を設定してください。

5. 最初のパーティションが作成されたら、再び「未使用領域」を選択し、「新規」を選んで2つ目のパーティションを作成します。

6. 促された場合は、パーティションタイプ(プライマリまたは拡張)を選択し、セカンドパーティションを作成するためのパーティションのサイズ(MBまたはGB)を設定してください。

7. パーティションを確認して検証した後、「書き込み」を選択して、パーティションを確定し保存します。

8. cfdisk ユーティリティを終了するには「Quit」を選択してください。

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

ステップ2:新しいパーティションをフォーマットする

9. ディスクのパーティションテーブルを再確認するには、再度fdiskコマンドを実行すると、詳細なパーティションテーブル情報が表示されます。

sudo fdisk -l /dev/vdb

10. 最初のパーティションを ext4 としてフォーマットするには、以下を使用します。

sudo mkfs.ext4 /dev/vdb1

11. 2つ目のパーティションをNTFSでフォーマットするには、ntfs-3gをインストールして、2つ目のパーティションをNTFSでフォーマットする必要があります。

sudo apt install ntfs-3g
sudo mkfs.ntfs /dev/vdb2

ステップ3:新しいパーティションをマウントする

12. パーティションを利用可能にするには、ファイルシステムのマウントポイントにマウントする必要があります。

sudo mkdir /mnt/partition1
sudo mkdir /mnt/partition2

13. 次に、作成したマウントディレクトリにパーティションをマウントします。

sudo mount /dev/vdb1 /mnt/partition1
sudo mount /dev/vdb2 /mnt/partition2

14. パーティションを自動マウントするには、blkid コマンドを使用してパーティションのUUIDを見つける必要があります。

sudo blkid /dev/vdb1
sudo blkid /dev/vdb2

15. 次に、/etc/fstab ファイルを編集し、新しいパーティションのUUIDを使用してエントリを追加します。

UUID=7a1e356f-f782-4835-bd1c-5e6d64378869 /mnt/partition1 ext4 defaults 0 2
UUID=0A9AABBB53B3165A /mnt/partition2 ntfs defaults 0 2

ステップ4: 新しいパーティションの暗号化

16. パーティションを cryptsetup を使用して暗号化するには、以下のように cryptsetup ツールをインストールする必要があります。

sudo apt install cryptsetup	[On Debian Based Systems]
sudo dnf install cryptsetup	[On RedHat Based Systems]

17. 今こそ、次のコマンドを発行してハードディスクの最初のパーティションを暗号化する時です。このコマンドを実行すると、確認を求められ、暗号化されたパーティションを解除するために使用されるパスフレーズを入力します。

sudo cryptsetup luksFormat /dev/vdb1

18. この暗号化されたパーティションをアクティブにするには、/dev/mapper ディレクトリに名前エントリ(初期化)が必要です。これは、cryptsetupパッケージを使用して行います。

sudo cryptsetup open --type luks /dev/vdb1 crypted_volume

19. 次に、暗号化されたパーティションをフォーマットしてマウントします。

sudo mkfs.ext4 /dev/mapper/crypted_volume
sudo mkdir /mnt/encrypted1
sudo mount /dev/mapper/crypted_volume /mnt/encrypted1

20. 2 番目のパーティションのために、次のコマンドを使用して暗号化を初期化する必要があります。

sudo cryptsetup luksFormat /dev/vdb2

21. この2番目の暗号化されたパーティションをアクティブにするには、cryptsetupパッケージの助けを借りて、/dev/mapperへの名前エントリ(初期化)を持っている必要があります。

sudo cryptsetup open --type luks /dev/vdb2 crypted_volume2

22. 次に、2番目の暗号化されたパーティションをフォーマットし、マウントします。

sudo mkfs.ntfs /dev/mapper/crypted_volume2
sudo mkdir /mnt/encrypted2
sudo mount /dev/mapper/crypted_volume2 /mnt/encrypted2

ステップ4: 暗号化されたパーティションを自動的にマウントする

23. ブート時に暗号化されたパーティションを自動的に解除してマウントするには、/etc/crypttab と /etc/fstab を更新する必要があります。

sudo nano /etc/crypttab

24. 次に、blkid コマンドを使用してパーティションの UUID を見つけます。

sudo blkid /dev/vdb1
sudo blkid /dev/vdb2

25. 次に、/etc/crypttab ファイルに暗号化されたパーティションエントリを追加します。

crypted_volume UUID=d29f57c3-fe00-41d5-8095-d68f7f04823d none luks
crypted_volume2 UUID=1DF9CC677F758914 none luks

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

sudo nano /etc/fstab

ファイルシステムのエントリを追加してください:

/dev/mapper/crypted_volume /mnt/encrypted1 ext4 defaults 0 2
/dev/mapper/crypted_volume2 /mnt/encrypted2 ntfs defaults 0 2

27. 最後に、暗号化されたパーティションが正しくマウントされていることを確認してください。

df -hT

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

同じ設定は、USBスティック、フラッシュメモリ、外付けハードディスクなどのすべての種類の取り外し可能なメディアに適用でき、盗聴や盗難の際に重要で秘密のデータや敏感なデータを保護することができます。

関連記事: