16.3.2. 配置带有 TLS 的服务器日志
您可以使用 logging RHEL 系统角色在 RHEL 服务器上配置日志,并将它们设置为使用 TLS 加密从远程日志系统接收日志。
该角色创建私钥和证书。接下来,它对 Ansible 清单中 server 组中的所有主机配置 TLS。
您不必在 playbook 中调用 certificate RHEL 系统角色来创建证书。logging RHEL 系统角色自动调用它。
要让 CA 能够为创建的证书签名,受管节点必须在 IdM 域中注册。
先决条件
- 您已准备好控制节点和受管节点。
- 您以可在受管主机上运行 playbook 的用户身份登录到控制节点。
-
用于连接到受管节点的帐户具有这些节点的
sudo权限。 - 受管节点已在 IdM 域中注册。
- 如果要在受管节点上配置的日志服务器运行 RHEL 9.2 或更高版本,并且启用了 FIPS 模式,客户端必须支持扩展主 Secret (EMS)扩展或使用 TLS 1.3。没有 EMS 的 TLS 1.2 连接会失败。如需更多信息,请参阅红帽知识库解决方案 强制执行 TLS 扩展"Extended Master Secret" 。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml:--- - name: Configure remote logging solution by using TLS for secure transfer of logs hosts: managed-node-01.example.com tasks: - name: Deploying remote input and remote_files output with certs ansible.builtin.include_role: name: redhat.rhel_system_roles.logging vars: logging_certificates: - name: logging_cert dns: ['www.example.com'] ca: ipa principal: "logging/{{ inventory_hostname }}@IDM.EXAMPLE.COM" 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-
此参数的值被传递给
certificateRHEL 系统角色中的certificate_requests,用于创建私钥和证书。 logging_pki_files使用这个参数,您可以配置日志记录用来查找用于 TLS 的 CA、证书和密钥文件的路径和其他设置,使用以下一个或多个子参数指定:
ca_cert、ca_cert_src、cert、cert_src、private_key、private_key_src和tls。注意如果您使用
logging_certificates在受管节点上创建文件,请不要使用ca_cert_src,cert_src和private_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。
有关角色变量的详情和有关
rsyslog的更多信息,请参阅控制节点上的/usr/share/ansible/roles/rhel-system-roles.logging/README.md文件以及rsyslog.conf (5)和syslog (3)手册页。验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml