syslog tls加密加固需三步:换端口(udp 514停用,改tcp+tls 6514)、配证书(根ca分发、服务端/客户端证书分离、私钥严格权限)、启双向验证(x509/name认证、ip白名单、强密码套件)。

直接上干货:Syslog 明文传输就是把日志贴在网线上跑,TLS 加密是目前最成熟、最易落地的加固手段,核心就三件事——换端口、配证书、启双向验证。
选对端口和协议
UDP 514 是传统 syslog 的“裸奔通道”,必须停用。改用 TCP + TLS,标准端口是 6514(IANA 注册的 syslog-tls 端口)。 - 客户端发送必须用 `@@(o)` 语法(如 `@@(o)log.example.com:6514`),表示启用 TLS 封装的 TCP; - 服务端监听必须明确指定 `StreamDriver.Name="gtls"` 和 `StreamDriver.Mode="1"`(TLS-only 模式); - 切忌混用:`@` 是 UDP(不支持 TLS),`@@` 是 TCP(明文),只有加 `(o)` 才真正启用加密。证书不是摆设,得用对
证书体系要分层、可管理,不能全靠自签名一把梭: - 根 CA 自签后,**服务端用 server.crt + server.key**,**每个客户端用独立签发的 client.crt + client.key**; - CA 根证书(ca.pem)必须同步到所有节点,且只读权限(`chmod 444 ca.pem`); - 私钥文件(.key)必须严格限制访问(`chmod 400`),仅 root 可读; - 不建议用 `peer_verify("optional-untrusted")`,生产环境务必设为 `"required-trusted"` 或 `"x509/name"`。配置里藏着关键安全开关
光有证书不够,配置项决定是否真生效: - 启用双向认证:服务端 `StreamDriver.AuthMode="x509/name"`,客户端也需提供有效证书; - 绑定可信来源:配合 `allow("10.10.0.0/24") deny("all")`,避免证书被误用或盗用; - 禁用弱算法:显式指定 `cipher_suite("ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384")`; - 强制会话复用:加 `session_cache("on")` 减少 TLS 握手开销,不影响安全性。验证和运维不能跳过
上线前必须验证链路真实加密: - 在服务端抓包:`tcpdump -i any port 6514 -A -c 5`,看到乱码而非明文 `May 15 ... sshd[1234]: Accepted password...` 才算成功; - 检查连接证书:`openssl s_client -connect log.example.com:6514 -showcerts`,确认返回的是你签发的 server.crt; - 日志路径按主机/IP 分离存储(如 `/var/log/remote/%fromhost-ip%/`),便于溯源与审计; - 证书到期前 30 天自动告警,建议用 certbot 或自建脚本轮换,别等过期才重启服务。不复杂但容易忽略。










