如何在Linux利用Rsyslog配置基于TLS的双向证书认证实现金融级日志传输安全

陌瑶同学_8288

陌瑶同学_8288

2026-06-08

1051人浏览

原创

金融级rsyslog日志传输安全核心是tls双向认证(mtls),需自建ca、用certtool生成证书、服务端配置streamdriver.authmode="x509/name"与permittedpeer限制客户端,客户端强制校验服务端证书,并启用队列防丢与定期轮换。

如何在linux利用rsyslog配置基于tls的双向证书认证实现金融级日志传输安全

要在Linux上用Rsyslog实现金融级日志传输安全,核心是启用TLS双向认证(mTLS),确保服务端验证客户端身份、客户端也验证服务端身份,杜绝中间人攻击和非法接入。这不是简单加个加密开关,而是建立一套可信证书链+严格策略的体系。

准备兼容工具与证书目录结构

rsyslog v8.2110.0及以上版本官方推荐使用 certtool(来自GnuTLS套件)生成证书,OpenSSL在新版系统中易因API变更导致握手失败或服务无法启动。

  • 安装命令:
    CentOS/RHEL:yum install -y gnutls-utils
    Ubuntu/Debian:apt-get install -y gnutls-bin gnutls-doc
  • 验证版本:certtool --version,确认输出为 GnuTLS ≥ 3.6.0
  • 创建清晰证书目录(避免权限混乱):
    mkdir -p /etc/rsyslog.d/tls/{ca,server,client}
    后续所有私钥文件(*-key.pem)必须设为 chmod 600

构建可信CA并签发双向证书

金融场景要求信任锚点可控、可审计,必须自建内部CA,不依赖公网CA。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 生成CA私钥与根证书:
    certtool --generate-privkey --bits 2048 --outfile /etc/rsyslog.d/tls/ca/ca-key.pem
    certtool --generate-self-signed --load-privkey /etc/rsyslog.d/tls/ca/ca-key.pem --outfile /etc/rsyslog.d/tls/ca/ca.pem
  • 为服务端生成证书请求并签名:
    先创建配置文件 server.tmpl,明确设置 organization、cn(建议用FQDN如 rsyslog-server.prod.bank.com)、tls_www_server 用途,并添加 subjectAltName(含IP和DNS);
    执行:certtool --generate-request --template server.tmpl --load-privkey /etc/rsyslog.d/tls/server/server-key.pem --outfile /etc/rsyslog.d/tls/server/server.req
    再签名:certtool --generate-certificate --load-request /etc/rsyslog.d/tls/server/server.req --load-ca-certificate /etc/rsyslog.d/tls/ca/ca.pem --load-ca-privkey /etc/rsyslog.d/tls/ca/ca-key.pem --template server.tmpl --outfile /etc/rsyslog.d/tls/server/server-cert.pem
  • 同理为每个日志客户端(如支付网关、核心账务机)生成独立证书,确保可追溯、可吊销

服务端rsyslog配置强制双向校验

仅开启TLS不等于双向认证——关键在 StreamDriver.AuthMode 和 StreamDriver.PermittedPeer 的组合使用。

  • 加载模块并监听加密端口(推荐6514,避开传统514冲突):
    module(load="imtcp" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="x509/name")
    input(type="imtcp" port="6514" StreamDriver.CAFile="/etc/rsyslog.d/tls/ca/ca.pem" StreamDriver.CertFile="/etc/rsyslog.d/tls/server/server-cert.pem" StreamDriver.KeyFile="/etc/rsyslog.d/tls/server/server-key.pem")
  • 限制合法客户端范围(防证书冒用):
    添加 StreamDriver.PermittedPeer="payment-gw*.bank.com" 或 "core-db-*.bank.com",支持通配符匹配CN或SAN中的DNS名
  • 模板与规则示例(按主机隔离存储):
    $template TlsRemote,"/var/log/tls/%FROMHOST-IP%/%PROGRAMNAME%.log"
    *.* ?TlsRemote & ~

客户端配置与合规加固要点

客户端不仅要发送加密日志,还要主动校验服务端证书真实性,防止连接到钓鱼服务器。

  • 在客户端配置中(如 /etc/rsyslog.d/50-tls-client.conf)启用TLS输出:
    module(load="omfwd" StreamDriver.Name="gtls" StreamDriver.Mode="1" StreamDriver.AuthMode="x509/name")
    *.* action(type="omfwd" target="rsyslog-server.prod.bank.com" port="6514" protocol="tcp" StreamDriver.CAFile="/etc/rsyslog.d/tls/ca/ca.pem" StreamDriver.CertFile="/etc/rsyslog.d/tls/client/client-cert.pem" StreamDriver.KeyFile="/etc/rsyslog.d/tls/client/client-key.pem")
  • 必须设置 StreamDriver.AuthMode="x509/name",否则跳过服务端证书验证
  • 金融环境建议:配置 $ActionQueueMaxDiskSpace 2g + $ActionQueueSaveOnShutdown on,网络中断时本地缓存不丢日志;同时启用 $ActionResumeRetryCount -1 确保重连不放弃
  • 定期轮换证书(CA有效期建议5年,终端证书1年),配合监控告警(如用 openssl x509 -in cert.pem -enddate -noout 检查到期日)

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4485

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

395

21

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3890

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3333

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2473

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5970

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5602

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3293

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2805

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习