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 tangCopy to Clipboard Copied! Toggle word wrap Toggle overflow 7500/tcp などの不要なポートを選択し、
tangdサービスがそのポートにバインドできるようにします。semanage port -a -t tangd_port_t -p tcp 7500
# semanage port -a -t tangd_port_t -p tcp 7500Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポートは 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-permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow tangdサービスを有効にします。systemctl enable tangd.socket
# systemctl enable tangd.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow オーバーライドファイルを作成します。
systemctl edit tangd.socket
# systemctl edit tangd.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のエディター画面で、
/etc/systemd/system/tangd.socket.d/ディレクトリーにある空のoverride.confファイルを開き、次の行を追加して、Tang サーバーのデフォルトのポートを、80 から、以前取得した番号に変更します。[Socket] ListenStream= ListenStream=7500
[Socket] ListenStream= ListenStream=7500Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要# Anything between hereと# Lines below thisで始まる行の間に以前のコードスニペットを挿入します。挿入しない場合、システムは変更を破棄します。-
変更を保存し、エディターを終了します。デフォルトの
viエディターでこれを実行するには、Esc キーを押してコマンドモードに切り替え、:wqと入力して Enter キーを押します。 変更した設定を再読み込みします。
systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 設定が機能していることを確認します。
systemctl show tangd.socket -p Listen
# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)Copy to Clipboard Copied! Toggle word wrap Toggle overflow tangdサービスを開始します。systemctl restart tangd.socket
# systemctl restart tangd.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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 testCopy to Clipboard Copied! Toggle word wrap Toggle overflow