10.2. enforcing モードの SELinux を使用して Tang サーバーをデプロイする
Tang サーバーを使用して、Clevis 対応クライアント上の LUKS 暗号化ボリュームのロックを自動的に解除できます。最小限のシナリオでは、tang
パッケージをインストールし、systemctl enable tangd.socket --now
コマンドを入力することにより、ポート 80 に Tang サーバーをデプロイします。次の手順の例では、SELinux 強制モードの限定サービスとしてカスタムポートで実行されている Tang サーバーのデプロイメントを示しています。
前提条件
-
policycoreutils-python-utils
パッケージおよび依存関係がインストールされている。 -
firewalld
サービスが実行中である。
手順
tang
パッケージとその依存関係をインストールするには、root
で以下のコマンドを実行します。yum install tang
# yum install tang
Copy to Clipboard Copied! 7500/tcp などの不要なポートを選択し、
tangd
サービスがそのポートにバインドできるようにします。semanage port -a -t tangd_port_t -p tcp 7500
# semanage port -a -t tangd_port_t -p tcp 7500
Copy to Clipboard Copied! ポートは 1 つのサービスのみで一度に使用できるため、すでに使用しているポートを使用しようとすると、
ValueError: Port already defined
エラーが発生します。ファイアウォールのポートを開きます。
firewall-cmd --add-port=7500/tcp firewall-cmd --runtime-to-permanent
# firewall-cmd --add-port=7500/tcp # firewall-cmd --runtime-to-permanent
Copy to Clipboard Copied! tangd
サービスを有効にします。systemctl enable tangd.socket
# systemctl enable tangd.socket
Copy to Clipboard Copied! オーバーライドファイルを作成します。
systemctl edit tangd.socket
# systemctl edit tangd.socket
Copy to Clipboard Copied! 以下のエディター画面で、
/etc/systemd/system/tangd.socket.d/
ディレクトリーにある空のoverride.conf
ファイルを開き、次の行を追加して、Tang サーバーのデフォルトのポートを、80 から、以前取得した番号に変更します。[Socket] ListenStream= ListenStream=7500
[Socket] ListenStream= ListenStream=7500
Copy to Clipboard Copied! 重要# Anything between here
と# Lines below this
で始まる行の間に以前のコードスニペットを挿入します。挿入しない場合、システムは変更を破棄します。-
変更を保存し、エディターを終了します。デフォルトの
vi
エディターでこれを実行するには、Esc キーを押してコマンドモードに切り替え、:wq
と入力して Enter キーを押します。 変更した設定を再読み込みします。
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! 設定が機能していることを確認します。
systemctl show tangd.socket -p Listen
# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)
Copy to Clipboard Copied! tangd
サービスを開始します。systemctl restart tangd.socket
# systemctl restart tangd.socket
Copy to Clipboard Copied! tangd
が、systemd
のソケットアクティベーションメカニズムを使用しているため、最初に接続するとすぐにサーバーが起動します。最初の起動時に、一組の暗号鍵が自動的に生成されます。鍵の手動生成などの暗号化操作を実行するには、jose
ユーティリティーを使用します。
検証
NBDE クライアントで、次のコマンドを使用して、Tang サーバーが正しく動作していることを確認します。このコマンドにより、暗号化と復号化に渡すものと同じメッセージが返される必要があります。
echo test | clevis encrypt tang '{"url":"<tang.server.example.com:7500>"}' -y | clevis decrypt
# echo test | clevis encrypt tang '{"url":"<tang.server.example.com:7500>"}' -y | clevis decrypt test
Copy to Clipboard Copied!