9.3. enforcing モードの SELinux を使用した Tang サーバーのデプロイ
サーバー上の別のサービスにより、Tang サーバーがデフォルトで使用するポート 80 が占有されている可能性があるため、カスタムポートで Tang をデプロイできます。その際、SELinux を enforcing モードにして、制限されたサービスとしてデプロイするのが理想的です。
前提条件
-
policycoreutils-python-utilsパッケージおよび依存関係がインストールされている。 -
firewalldサービスが実行中である。
手順
tangパッケージとその依存関係をインストールするには、rootで以下のコマンドを実行します。# dnf install tang7500/tcp などの不要なポートを選択し、
tangdサービスがそのポートにバインドできるようにします。# semanage port -a -t tangd_port_t -p tcp 7500一度に 1 つのサービスしかポートを使用できないことに注意してください。
ファイアウォールのポートを開きます。
# 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 から以前に選択した番号に変更します。# Anything between hereと# Lines below thisの間に次のコードスニペットを挿入します。そうしないと、システムによって変更が破棄されます。[Socket] ListenStream= ListenStream=7500-
変更を保存し、エディターを終了します。デフォルトの
viエディターでこれを実行するには、Esc キーを押してコマンドモードに切り替え、:wqと入力して Enter キーを押します。 変更した設定を再読み込みします。
# systemctl daemon-reload設定が機能していることを確認します。
# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)tangdサービスを起動します。# systemctl restart tangd.sockettangdが、systemdのソケットアクティベーションメカニズムを使用しているため、最初に接続するとすぐにサーバーが起動します。最初の起動時に、一組の暗号鍵が自動的に生成されます。手動による鍵生成などの暗号化操作を実行するには、システム上のjose(1)man ページに記載されているjoseユーティリティーを使用してください。
検証
NBDE クライアントで、次のコマンドを使用して、Tang サーバーが正しく動作していることを確認します。このコマンドで、暗号化と復号に渡したのと同じメッセージが返される必要があります。
# echo test | clevis encrypt tang '{"url":"<tang.server.example.com:7500>"}' -y | clevis decrypt test