Red Hat Training

A Red Hat training course is available for RHEL 8

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

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

先决条件

  • policycoreutils-python-utils 包及其依赖项已经安装。

流程

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

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

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

    请注意,某个端口一次只能由一个服务使用,因此尝试使用已占用的端口意味着 ValueError: Port 已定义的 错误消息。

  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 start tangd.socket

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

其它资源

  • tang(8)semanage(8)firewall-cmd(1)、 jose(1)、 systemd.unit(5)systemd.socket(5) man page