コマンド_cryptsetup(HDDの暗号化)

Linux
ブログ

cryptsetupとは

cryptsetupは、Linux環境でディスクの暗号化を行うためのコマンドラインツールです。

例えば、linuxにつなげたHDDをディスクごと暗号化するのに役立ちます。

cryptsetupパッケージのインストール:

Debian系

apt install cryptsetup

RedHat系

yum install cryptsetup cryptsetup-libs

デバイスの確認

# fdisk -l
ディスク /dev/sda: 2.73 TiB, 3000592982016 バイト, 5860533168 セクタ
Disk model:
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 8DA8E9D3-09CF-2A47-84FF-85C3e5bsre1D2

デバイス   開始位置   最後から     セクタ サイズ タイプ
/dev/sda1      2048 5860533134 5860531087   2.7T Linux ファイルシステム

だったとします。

対象パーテーションの初期化

今回のパーテーションは/dev/sda1です。

# cryptsetup luksFormat /dev/sda1
WARNING: Device /dev/sda1 already contains a 'ext4' superblock signature.

WARNING!
========
This will overwrite data on /dev/sda1 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES →大文字で「YES」
Enter passphrase for /dev/sda1: パスフレーズを入力
パスフレーズを確認: パスフレーズを再び入力

暗号化したデバイスにアクセス

デバイスの状態を見ます

# lsblk
sda             8:0    0  2.7T  0 disk
└─sda1        8:1    0  2.7T  0 part

暗号化されているため、開けません。

暗号化を解除します

暗号化されたデバイスにアクセスするため、暗号化を解除してアクセスしてみます

# cryptsetup open /dev/sda1 cryptdata
Enter passphrase for /dev/sda1: 暗号化時に設定したパスフレーズを入力

# lsblk
sda              8:0    0  2.7T  0 disk
└─sda1          8:1    0  2.7T  0 part
  └─cryptdata 253:0    0  2.7T  0 crypt → cryptdataとしてされています

# cryptsetup status cryptdata
/dev/mapper/cryptdata is active. → /dev/mapper/cryptdata がデバイス名となります。
  type:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sda1
  sector size:  512
  offset:  32768 sectors
  size:    5860498319 sectors
  mode:    read/write

デバイスをフォーマットします

ext4でフォーマットします。(!!これはデバイス作成時のみ行います!!

# mkfs -t ext4 /dev/mapper/cryptdata
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 732562289 4k blocks and 183148544 inodes
Filesystem UUID: f87a5ef5-d3a4-49f5-973c-8ajfseia49e0e
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information:
done

マウントします

フォーマットしたデバイスをマウントします。

# mount -t ext4 /dev/mapper/cryptdata (マウント先)

以上で終了です。

暗号化したデバイスを削除する

アンマウントをする

# unmount /dev/mapper/cryptdata

LUKSパーテーションを削除する

# cryptsetup luksClose cryptdata

参考文献

cryptsetupコマンドを使用したディスクの暗号化

【Linux】Cryptsetupを用いたディスク(デバイス)の暗号化

コメント