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