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

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

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

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

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

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

注意

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

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

先决条件

  • 您有在要配置 TLS 的受管节点上运行 playbook 的权限。
  • 受管节点列在控制节点上的清单文件中。
  • ansiblerhel-system-roles 软件包已安装在控制节点上。
  • 受管节点已在 IdM 域中注册。

流程

  1. 使用以下内容创建一个 playbook.yml 文件:

    ---
    - name: Deploying files input and forwards output with certs
      hosts: clients
      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 角色中的 certificate_requests,并用来创建私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置 logging 用来查找用于 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 -i inventory_file playbook.yml

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

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

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

注意

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

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

先决条件

  • 您有在要配置 TLS 的受管节点上运行 playbook 的权限。
  • 受管节点列在控制节点上的清单文件中。
  • ansiblerhel-system-roles 软件包已安装在控制节点上。
  • 受管节点已在 IdM 域中注册。

流程

  1. 使用以下内容创建一个 playbook.yml 文件:

    ---
    - name: Deploying remote input and remote_files output with certs
      hosts: server
      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 角色中的 certificate_requests,并用来创建私钥和证书。
    logging_pki_files

    使用这个参数,您可以配置 logging 用来查找用于 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 -i inventory_file playbook.yml