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
参考文献
コメント