11.3. SELinux を Enforcing モードで有効にした Tang サーバーのデプロイメント
この手順では、Enforcing モードの SELinux で限定サービスとして、カスタムポートで実行する Tang サーバーをデプロイします。
前提条件
-
policycoreutils-python-utils
パッケージおよび依存関係がインストールされている。 -
firewalld
サービスが実行している。
手順
tang
パッケージとその依存関係をインストールするには、root
で以下のコマンドを実行します。# dnf install tang
7500/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-permanent
tangd
サービスを有効にします。# systemctl enable tangd.socket
オーバーライドファイルを作成します。
# systemctl edit tangd.socket
以下のエディター画面で、
/etc/systemd/system/tangd.socket.d/
ディレクトリーにある空のoverride.conf
ファイルを開き、次の行を追加して、Tang サーバーのデフォルトのポートを、80 から、以前取得した番号に変更します。[Socket] ListenStream= ListenStream=7500
ファイルを保存して、エディターを終了します。
変更した設定を再読み込みします。
# systemctl daemon-reload
設定が機能していることを確認します。
# systemctl show tangd.socket -p Listen Listen=[::]:7500 (Stream)
tangd
サービスを開始します。# systemctl restart tangd.socket
tangd
が、systemd
のソケットアクティベーションメカニズムを使用しているため、最初に接続するとすぐにサーバーが起動します。最初の起動時に、一組の暗号鍵が自動的に生成されます。鍵の手動生成などの暗号化操作を実行するには、jose
ユーティリティーを使用します。
関連情報
-
tang(8)
、semanage(8)
、firewall-cmd(1)
、jose(1)
、systemd.unit(5)
およびsystemd.socket(5)
の man ページ