Menu Close
Settings Close

Language and Page Formatting Options

11.3. 部署 SELinux 处于 enforcing 模式的 Tang 服务器

使用此流程可以将运行在自定义端口上的 Tang 服务器部署为 SELinux enforcing 模式下的受限服务。

先决条件

  • policycoreutils-python-utils 包及其依赖项已经安装。
  • firewalld 服务在运行。

步骤

  1. 要安装 tang 软件包及其依赖项,请以 root 用户身份输入以下命令:

    # dnf install tang
  2. 选择一个未被占用的端口,例如 7500/tcp,并允许 tangd 服务绑定到该端口:

    # semanage port -a -t tangd_port_t -p tcp 7500

    请注意,一个端口只能供一个服务使用,因此试图使用一个已有的端口意味着 ValueError:Port already defined 错误信息。

  3. 在防火墙中打开端口:

    # firewall-cmd --add-port=7500/tcp
    # firewall-cmd --runtime-to-permanent
  4. 启用 tangd 服务:

    # systemctl enable tangd.socket
  5. 创建覆盖文件:

    # systemctl edit tangd.socket
  6. 在以下编辑器屏幕中,其打开了位于 /etc/systemd/system/tangd.socket.d/ 目录中的一个空 override.conf 文件,通过添加以下行将 Tang 服务器的默认端口从 80 改为之前选择的端口号:

    [Socket]
    ListenStream=
    ListenStream=7500

    保存文件并退出编辑器。

  7. 重新载入更改的配置:

    # systemctl daemon-reload
  8. 检查您的配置是否正常工作:

    # systemctl show tangd.socket -p Listen
    Listen=[::]:7500 (Stream)
  9. 启动 tangd 服务:

    # systemctl restart tangd.socket

    由于 tangd 使用了 systemd 套接字激活机制,因此服务器会在第一次连接进来时就立即启动。在第一次启动时会自动生成一组新的加密密钥。要执行手动生成密钥等加密操作,请使用 jose 工具。

其他资源

  • tang(8)semanage(8)firewall-cmd(1)jose(1)systemd.unit(5)systemd.socket(5) 手册页