搜索

15.5. 使用带有 TLS 的 logging RHEL 系统角色

download PDF

传输层安全性(TLS)是一种加密协议,旨在允许通过计算机网络的安全通信。

作为管理员,您可以使用 logging RHEL 系统角色,使用红帽 Ansible Automation Platform 配置日志的安全传输。

15.5.1. 配置带有 TLS 的客户端日志

您可以使用 Ansible playbook 和 logging RHEL 系统角色,来在 RHEL 客户端上配置日志,并使用 TLS 加密将日志传送到远程日志系统上。

此流程创建一个私钥和证书,并在 Ansible 清单中的客户端组的所有主机上配置 TLS。TLS 对信息的传输进行加密,确保日志在网络安全传输。

注意

您不必在 playbook 中调用 certificate RHEL 系统角色来创建证书。logging RHEL 系统角色会自动调用它。

要让 CA 能够为创建的证书签名,受管节点必须在 IdM 域中注册。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 受管节点已在 IdM 域中注册。
  • 如果要在管理节点上配置的日志服务器运行 RHEL 9.2 或更高版本,且启用了 FIPS 模式,客户端必须支持扩展 Master Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅 强制 TLS 扩展"Extended Master Secret" 知识库文章。

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Deploying files input and forwards output with certs
      hosts: managed-node-01.example.com
      roles:
        - rhel-system-roles.logging
      vars:
        logging_certificates:
          - name: logging_cert
            dns: ['localhost', 'www.example.com']
            ca: ipa
        logging_pki_files:
          - ca_cert: /local/path/to/ca_cert.pem
            cert: /local/path/to/logging_cert.pem
            private_key: /local/path/to/logging_cert.pem
        logging_inputs:
          - name: input_name
            type: files
            input_log_path: /var/log/containers/*.log
        logging_outputs:
          - name: output_name
            type: forwards
            target: your_target_host
            tcp_port: 514
            tls: true
            pki_authmode: x509/name
            permitted_server: 'server.example.com'
        logging_flows:
          - name: flow_name
            inputs: [input_name]
            outputs: [output_name]

    playbook 使用以下参数:

    logging_certificates
    此参数的值传递给 certificate RHEL 系统角色中的 certificate_requests,并用来创建一个私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置日志记录用来查找用于 TLS 的 CA、证书和密钥文件的路径和其他设置,使用以下一个或多个子参数指定:ca_certca_cert_srccertcert_srcprivate_keyprivate_key_srctls

    注意

    如果您使用 logging_certificates 在目标节点上创建文件,请不要使用 ca_cert_srccert_srcprivate_key_src,它们用于复制不是由 logging_certificates 创建的文件。

    ca_cert
    表示目标节点上 CA 证书文件的路径。默认路径为 /etc/pki/tls/certs/ca.pem,文件名由用户设置。
    cert
    表示目标节点上证书文件的路径。默认路径为 /etc/pki/tls/certs/server-cert.pem,文件名由用户设置。
    private_key
    表示目标节点上私钥文件的路径。默认路径为 /etc/pki/tls/private/server-key.pem,文件名由用户设置。
    ca_cert_src
    代表控制节点上 CA 证书文件的路径,该路径将复制到目标主机上 ca_cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    cert_src
    表示控制节点上证书文件的路径,其将被复制到目标主机上 cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    private_key_src
    表示控制节点上私钥文件的路径,其将被复制到目标主机上 private_key 指定的位置。如果使用 logging_certificates,请不要使用它。
    tls
    将此参数设置为 true 可确保通过网络安全地传输日志。如果您不想要安全封装器,您可以设置 tls: false
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

15.5.2. 配置带有 TLS 的服务器日志

您可以使用 Ansible playbook 和 logging RHEL 系统角色,来在 RHEL 服务器上配置日志,并将它们设置为使用 TLS 加密从远程日志系统接收日志。

此流程创建一个私钥和证书,并在 Ansible 清单的服务器组中的所有主机上配置 TLS。

注意

您不必在 playbook 中调用 certificate RHEL 系统角色来创建证书。logging RHEL 系统角色会自动调用它。

要让 CA 能够为创建的证书签名,受管节点必须在 IdM 域中注册。

先决条件

  • 您已准备好控制节点和受管节点
  • 以可在受管主机上运行 playbook 的用户登录到控制节点。
  • 用于连接到受管节点的帐户具有 sudo 权限。
  • 受管节点已在 IdM 域中注册。
  • 如果要在管理节点上配置的日志服务器运行 RHEL 9.2 或更高版本,且启用了 FIPS 模式,客户端必须支持扩展 Master Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅 强制 TLS 扩展"Extended Master Secret" 知识库文章。

流程

  1. 创建一个包含以下内容的 playbook 文件,如 ~/playbook.yml

    ---
    - name: Deploying remote input and remote_files output with certs
      hosts: managed-node-01.example.com
      roles:
        - rhel-system-roles.logging
      vars:
        logging_certificates:
          - name: logging_cert
            dns: ['localhost', 'www.example.com']
            ca: ipa
        logging_pki_files:
          - ca_cert: /local/path/to/ca_cert.pem
            cert: /local/path/to/logging_cert.pem
            private_key: /local/path/to/logging_cert.pem
        logging_inputs:
          - name: input_name
            type: remote
            tcp_ports: 514
            tls: true
            permitted_clients: ['clients.example.com']
        logging_outputs:
          - name: output_name
            type: remote_files
            remote_log_path: /var/log/remote/%FROMHOST%/%PROGRAMNAME:::secpath-replace%.log
            async_writing: true
            client_count: 20
            io_buffer_size: 8192
        logging_flows:
          - name: flow_name
            inputs: [input_name]
            outputs: [output_name]

    playbook 使用以下参数:

    logging_certificates
    此参数的值传递给 certificate RHEL 系统角色中的 certificate_requests,并用来创建一个私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置日志记录用来查找用于 TLS 的 CA、证书和密钥文件的路径和其他设置,使用以下一个或多个子参数指定:ca_certca_cert_srccertcert_srcprivate_keyprivate_key_srctls

    注意

    如果您使用 logging_certificates 在目标节点上创建文件,请不要使用 ca_cert_srccert_srcprivate_key_src,它们用于复制不是由 logging_certificates 创建的文件。

    ca_cert
    表示目标节点上 CA 证书文件的路径。默认路径为 /etc/pki/tls/certs/ca.pem,文件名由用户设置。
    cert
    表示目标节点上证书文件的路径。默认路径为 /etc/pki/tls/certs/server-cert.pem,文件名由用户设置。
    private_key
    表示目标节点上私钥文件的路径。默认路径为 /etc/pki/tls/private/server-key.pem,文件名由用户设置。
    ca_cert_src
    代表控制节点上 CA 证书文件的路径,该路径将复制到目标主机上 ca_cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    cert_src
    表示控制节点上证书文件的路径,其将被复制到目标主机上 cert 指定的位置。如果使用 logging_certificates,请不要使用它。
    private_key_src
    表示控制节点上私钥文件的路径,其将被复制到目标主机上 private_key 指定的位置。如果使用 logging_certificates,请不要使用它。
    tls
    将此参数设置为 true 可确保通过网络安全地传输日志。如果您不想要安全封装器,您可以设置 tls: false
  2. 验证 playbook 语法:

    $ ansible-playbook --syntax-check ~/playbook.yml

    请注意,这个命令只验证语法,不会防止错误但有效的配置。

  3. 运行 playbook:

    $ ansible-playbook ~/playbook.yml

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.