はじめに
JetsonNanoでUSBを暗号化する必要があったので、メモ書き
準備
cryptsetupを用いて暗号化していきます。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cryptsetup
以下では/dev/sda1のDiskを暗号化する前提で説明します。
毎回sudoをつけるのが面倒なのでrootで行います。
sudo su -
デバイスの確認
fdisk -l /dev/sda1
パーティションの初期化
最初にUSBは自動でマウントされると思いますので、マウントを解除し、パーティションの初期化を行います。
umount /dev/sda1
cryptsetup luksFormat /dev/sda1
Are you sure? (Type uppercase yes):と聞かれるので、大文字でYESと入力してください。小文字は出来ません。
初期化済みのLUKSパーティションをマッピング
cryptsetup open /dev/sda1 luks
マッピングされたかを一応確認
ls /dev/mapper/
暗号化されたパーティションをex4にマウント
mkfs.ext4 /dev/mapper/luks
パーティションにマウントします。
mount -t ext4 /dev/mapper/luks /mnt
マウントの確認
df -h
/dev/mapper/luks 20G 45M 19G 1% /mnt
このように出力されれば、暗号化の完了です。
自動マウント
自動で暗号化されたUSBをマウントしたかったので、設定します。
keyfileの設定
keyfileは暗号化や複合化に使うファイルになります。今回は平文でパスワードをファイルに保存します。平文のパスワードではなくバイナリファイルも登録できます。
echo -n 'password' > /root/luks_keyfile
パスフレーズをファイルに書き出します。実際に'pasword'にはパーティションのマッピングで入力したパスワードを記入してください。
chmod 600 /root/luks_keyfile
所有者以外読み込みできないようにしてください。
keyfileをKeyスロットに登録
cryptsetup luksAddKey /dev/sda1 /root/luks_keyfile
Keyスロット登録の確認
Keyスロットが登録されていることを確認します。
cryptsetup luksDump /dev/sda1
暗号デバイス自動接続設定
/etc/crypttabファイルに暗号デバイス自動接続設定を追加
echo "luks /dev/sda1 /root/luks_keyfile luks,timeout=5" >> /etc/crypttab
自動マウント設定
/etc/fstabにマウント設定を追加
echo "/dev/mapper/luks /mnt ext4 rw,nofail,seclabel,relatime,data=ordered 0 0" >> /etc/fstab
マウントオプションは適宜設定してください。ただし、nofailを設定しないと自動接続やマウントできないときに起動しない恐れがあるので設定しましょう。