ノート:
- このチュートリアルは、Oracle提供の無料ラボ環境で提供されています。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
Oracle LinuxでLUKSを使用してドライブを暗号化
イントロダクション
Oracle Linuxには、ブロック・デバイスでの暗号化を処理するためのデバイス・マッパー暗号化(dm-crypt
)およびLinux Unified Key Setup (LUKS)が含まれています。
この演習では、Linuxカーネルに含まれているデバイス・マッパー・サポートからdm-crypt
モジュールを使用するLUKSを使用してデバイスを暗号化するフロントエンド・ツールに焦点を当てます。
目的
cryptsetup
のインストール- 暗号化されたボリュームの作成
- 暗号化されたボリュームのマウント
要件
使用可能なディスクと Oracle Linuxのフルパッチインストールを備えたシステム。
演習環境の設定
ノート: 無料ラボ環境を使用する場合、接続およびその他の使用手順については、Oracle Linux Labの基本を参照してください。
-
まだ接続していない場合は、端末を開き、ssh経由でol-node01インスタンスに接続します。
ssh oracle@<ip_address_of_instance>
-
ブロック・ボリュームが存在することを確認します。
lsblk -f
フリー・ラボ環境の出力には、ベースOSを含む
sda
と、この演習で使用するsdb
の2つのブロック・デバイスが表示されます。-f
オプションを使用すると、ファイルシステムタイプ(FSTYPE)およびブロック(汎用一意識別子(UUID)が表示されます。
暗号化パッケージのインストール
-
システムでまだ使用できない場合は、
cryptsetup
ツールをインストールします。cryptsetup
がインストールされているかどうかを確認します。sudo dnf list --installed cryptsetup
インストールされていない場合は、
cryptsetup
をインストールします。sudo dnf -y install cryptsetup
ノート: 無料ラボ環境では、
cryptsetup
ツールがすでにインストールされています。
LUKSを使用してボリュームを暗号化する
LUKSおよびdm-crypt
は、ブロック・デバイス、RAID、LVM物理ボリューム、さらにはスワップに対して機能します。暗号化されると、これらのデバイスのデータは、適切な資格情報でブート時またはマウント時にのみアクセスできます。
フリー・ラボ環境では、このステップに対してパーティション化されたディスク/dev/sdb1
が提供されます。
-
ディスクを暗号化します。
sudo cryptsetup -y -v luksFormat /dev/sdb1
続行してパスフレーズを2回指定するには、
YES
と入力します。パスフレーズには次のものが含まれている必要があります。- 最少8文字
- 1桁
- 1つの大文字
- 1つの特殊文字
- 非ディクショナリ・ベースの単語
重要: 入力されたパスワードは、後で使用するように覚えておいてください。
出力例:
[oracle@ol-node01 ~]$ sudo cryptsetup -y -v luksFormat /dev/sdb1 WARNING! ======== This will overwrite data on /dev/sdb1 irrevocably. Are you sure? (Type 'yes' in capital letters): YES Enter passphrase for /dev/sdb1: Verify passphrase: Key slot 0 created. Command successful.
-
暗号化されたボリュームを開きます。
このステップには、任意の名前を付けることができるターゲットが必要です。
mysecrets
を使用します。sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
リクエスト時に前のステップで作成されたものと同じパスフレーズを入力します。
出力例:
[oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets Enter passphrase for /dev/sdb1: Key slot 0 unlocked. Command successful.
-
ブロック・デバイスを再度確認します。
lsblk -f
デバイス
/dev/sdb1
は、FSTYPEを crypto_LUKSとして表示し、暗号化されたデバイスボリュームのマッピングmysecrets
を表示します。
暗号化されたボリュームのフォーマット
暗号化されたボリュームにデータを追加する前に、フォーマットする必要があります。xfs、ext3、ext4など、様々なファイル・システムを選択できます。
-
ファイルシステムを作成します。
sudo mkfs.xfs /dev/mapper/mysecrets
暗号化されたボリュームのマウント
-
マウントポイントを作成します。
sudo mkdir -p /u01/my_secret_storage
-
ボリュームをマウントします。
sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage
出力には、SELinux警告が表示されます。
出力例:
[oracle@ol-node01 ~]$ sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage/ mount: /u01/my_secret_storage does not contain SELinux labels. You just mounted an file system that supports labels which does not contain labels, onto an SELinux box. It is likely that confined applications will generate AVC messages and not be allowed access to this file system. For more details see restorecon(8) and mount(8). mount: /dev/mapper/mysecrets mounted on /u01/my_secret_storage.
これには、マウント・ポイントのSELinuxセキュリティ・コンテキストのラベルを変更する必要があります。
sudo restorecon -vvRF /u01/my_secret_storage
mount
コマンドを再度実行します。sudo mount -v -o remount /u01/my_secret_storage
-
マウントされたボリュームを表示します。
lsblk
出力例:
[oracle@ol-node01 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 46.6G 0 disk |-sda1 8:1 0 100M 0 part /boot/efi |-sda2 8:2 0 1G 0 part /boot `-sda3 8:3 0 45.5G 0 part |-ocivolume-root 252:0 0 35.5G 0 lvm / `-ocivolume-oled 252:1 0 10G 0 lvm /var/oled sdb 8:16 0 50G 0 disk `-sdb1 8:17 0 2G 0 part `-mysecrets 252:2 0 2G 0 crypt /u01/my_secret_storage
LUKSボリューム詳細の表示
LUKSヘッダー、データセグメント、キースロット、およびバージョン情報を表示します。
-
LUKSの詳細をダンプします。
sudo cryptsetup luksDump /dev/sdb1
出力例:
LUKS header information Version: 2 Epoch: 3 Metadata area: 16384 [bytes] Keyslots area: 16744448 [bytes] UUID: 4ccea398-5864-45a9-b274-173c8ebc3356 Label: (no label) Subsystem: (no subsystem) Flags: (no flags) Data segments: 0: crypt offset: 16777216 [bytes] length: (whole device) cipher: aes-xts-plain64 sector: 512 [bytes] Keyslots: 0: luks2 Key: 512 bits Priority: normal Cipher: aes-xts-plain64 Cipher key: 512 bits PBKDF: argon2i Time cost: 10 Memory: 1048576 Threads: 4 Salt: ee d2 c7 5b 05 43 0f 0a 12 60 da b5 87 19 4a 6f 06 57 a2 31 b1 dd bb 60 74 53 95 b2 ca 2f ad 4b AF stripes: 4000 AF hash: sha256 Area offset:32768 [bytes] Area length:258048 [bytes] Digest ID: 0 Tokens: Digests: 0: pbkdf2 Hash: sha256 Iterations: 243628 Salt: 89 6c 8b aa 37 af 58 e9 26 49 c5 e5 db 2d 54 ea f8 7a c2 89 0e ab ed 48 74 a5 23 d7 b0 e6 9c 87 Digest: 4a 2b 25 76 c5 85 1a 6c a9 28 0c ee d0 c7 76 eb e1 4c ee 9c 5b 9a e2 d0 95 6e 1f 6e bb 1b 03 d1
詳細は、cryptsetup(8)
マニュアル・ページ、OracleドキュメントまたはアップストリームFAQを参照してください。
詳細情報
他の関連リソースを参照してください。
その他の学習リソース
他のラボをdocs.oracle.com/learnで探すか、Oracle LearningのYouTubeチャネルでより無料の学習コンテンツにアクセスします。また、education.oracle.com/learning-explorerにアクセスしてOracle Learningエクスプローラになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Encrypt Drives using LUKS on Oracle Linux
F60526-01
July 2022
Copyright © 2022, Oracle and/or its affiliates.