Stratisのバージョン2.1では、暗号化のサポートが導入されました。Stratisで暗号化を始める方法については、こちらをお読みください。
前提条件
暗号化には Stratis 2.1 以上が必要です。Stratis 2.1 は Fedora 33 の最終リリースで使用されます。
暗号化プールを作成するには、利用可能なブロックデバイスが少なくとも1 つ必要です。次の例は、5GBの仮想ディスク・ドライブを持つKVM仮想マシンで実行されています。
カーネルのキーリングにキーを作成します。
カーネルのキーリングにキーを設定するには、stratisのkey setコマンドを使用します。キーをどこから読み込むかを指定する必要があります。標準入力からキーを読み込むには、-capture-keyオプションを使います。ファイルからキーを読み取るには、 -keyfile-path <file> オプションを使用します。最後の引数はキーの説明です。これは、後で暗号化 Stratis プールを作成するときに使用されます。
例えば、 pool1key 記述されたキーを作成し、そのキーを標準入力から読み込むには、次のようにタイプします:
# stratis key set --capture-key pool1keyEnter desired key data followed by the return key:
コマンドは鍵データとパスワードの入力を促し、鍵はカーネルの鍵リングに作成されます。
キーが作成されたことを確認するには、 stratis key list実行します:
# stratis key listKey Descriptionpool1key
これにより、pool1key が作成されたことが確認されます。これらのキーは永続的ではないことに注意してください。ホストが再起動された場合、暗号化された Stratis プールにアクセスする際に、キーを再度提供する必要があります。
複数の暗号化プールがある場合、それぞれ別の鍵を持つことも、同じ鍵を共有することもできます。
キーは以下の # stratis key set --capture-key pool1key コマンドでも確認できます:
# keyctl get_persistent @s# keyctl showSession Keyring--alswrv 0 0 keyring: _ses--alswrv 0 65534 \_ keyring: _uid.0---lswrv 0 65534 \_ keyring: _persistent.0--alswrv 0 0 \_ user: stratis-1-key-pool1key
暗号化されたStratisプールの作成
Stratis 用のキーが作成されたので、次のステップは暗号化された Stratis プールを作成することです。プールの暗号化は、プールの作成時にのみ可能です。既存のプールを暗号化することはできません。
stratis pool createコマンドを使用してプールを作成します。key-desc と、前のステップで提供した鍵の説明を追加します。これは、プールが提供された鍵で暗号化されるべきであることを Stratis に通知します。次の例では、/dev/vdb に Stratis プールを作成し、pool1 と名前を付けています。
# stratis pool create --key-desc pool1key pool1 /dev/vdb
stratis pool list 使用して、プールが作成されたことを確認できます:
# stratis pool listName Total Physical Propertiespool1 4.98 GiB / 37.63 MiB / 4.95 GiB ~Ca, Cr
上記のサンプル出力では、~Caはキャッシュが無効であることを意味し、crは暗号化が有効であることを意味します。キャッシュと暗号化は互いに排他的であることに注意してください。同時に有効にすることはできません。
次に、ファイルシステムを作成します。次の例では、filesystem1 という名前のファイルシステムを作成し、/filesystem1 マウントポイントにマウントし、新しいファイルシステムにテストファイルを作成します:
# stratis filesystem create pool1 filesystem1# mkdir /filesystem1# mount /stratis/pool1/filesystem1 /filesystem1# cd /filesystem1# echo "this is a test file" > testfile
再起動後の暗号化プールへのアクセス
再起動すると、Stratis は暗号化プールとそのブロック・デバイスを表示しなくなります:
# stratis pool listName Total Physical Properties
# stratis blockdev listPool Name Device Node Physical Size Tier
暗号化プールにアクセスするには、まず、同じ鍵の説明と鍵データ/パスフレーズを使用して鍵を再作成します:
# stratis key set --capture-key pool1keyEnter desired key data followed by the return key:
次に、 stratis key list コマンドを実行し、プールとそのブロック・デバイスが表示されることを確認します:
# stratis pool unlock# stratis pool listName Total Physical Propertiespool1 4.98 GiB / 583.65 MiB / 4.41 GiB ~Ca, Cr# stratis blockdev listPool Name Device Node Physical Size Tierpool1 /dev/dm-2 4.98 GiB Data
次に、ファイルシステムをマウントし、作成したテスト・ファイルにアクセスできることを確認します:
# mount /stratis/pool1/filesystem1 /filesystem1/# cat /filesystem1/testfilethis is a test file
起動時に Stratis プールのロックを自動的に解除するには、systemd ユニット・ファイルを使用します。
手動で操作しなくても、起動時に Stratis プールのロックを自動的に解除することは可能です。ただし、キーを含むファイルが必要です。環境によっては、キーをファイルに保存することがセキュリティ上の問題となる場合があります。
まず、以下のコマンドでキーファイルを作成します。passphrase入力したのと同じキー・データ/パスワードに置き換えてください。
# echo -n passphrase > /root/pool1key
ファイルがrootによってのみ読み取れるようにします:
# chmod 400 /root/pool1key# chown root:root /root/pool1key
以下の内容を含むsystemdユニットファイルを /etc/systemd/system/stratis-filesystem1.service 作成します:
Description = stratis mount pool1 filesystem1 file systemAfter = stratisd.service[Service]ExecStartPre=sleep 2ExecStartPre=stratis key set --keyfile-path /root/pool1key pool1keyExecStartPre=stratis pool unlockExecStartPre=sleep 3ExecStart = mount / stratis / pool1 / filesystem1 / filesystem1;RemainAfterExit=yes[Install]WantedBy = multi-user.target
次に、サービスを有効にして、起動時に実行されるようにします:
# systemctl enable stratis-filesystem1.service
ここで再起動し、Stratis プールが自動的にロック解除され、ファイルシステムがマウントされていることを確認します。
結論
今日の環境では、暗号化は多くの人々や組織にとって必須です。この記事では、Stratis 2.1 で暗号化を有効にする方法を紹介します。
経由





