如何在Linux利用Rsyslog配合Stunnel实现加密的日志远程传输保护敏感数据安全

阿敏大大_5617

阿敏大大_5617

2026-05-19

659人浏览

原创

rsyslog配合stunnel实现日志加密传输的本质是分工协作:rsyslog负责日志收发与格式处理,stunnel负责建立tls加密隧道;服务端需同时运行stunnel(监听如4514)和rsyslog(监听本地6514),通过loopback互通;客户端配置为. @@logserver-ip:4514;rsyslog_forwardformat,无需gtls模块或证书验证;证书须cn匹配、权限600、pem合并,selinux需放行;验证需逐层测试openssl连接、本地端口监听及tcpdump抓包确认明文日志送达。

如何在linux利用rsyslog配合stunnel实现加密的日志远程传输保护敏感数据安全

用 Rsyslog 配合 Stunnel 实现日志加密传输,本质是“分工协作”:Rsyslog 负责日志收发和格式处理,Stunnel 负责在底层建立 TLS 加密隧道。这种方式不依赖 rsyslog-gnutls 模块,兼容性更好,配置逻辑也更清晰。

服务端(日志接收方)部署要点

服务端需同时运行 Stunnel(监听加密端口)和 Rsyslog(监听本地明文端口),两者通过 loopback 连通。

  • Stunnel 监听一个非特权端口(如 4514),接受外部 TLS 连接,并将解密后的日志转发给本地的 Rsyslog(如 127.0.0.1:6514
  • Rsyslog 只需启用 TCP 输入模块,绑定到本地高编号端口(如 6514),无需加载任何 TLS 模块或证书
  • 确保 Stunnel 的证书私钥权限为 600,证书路径在 /etc/stunnel/stunnel.conf 中正确指定:
    cert = /etc/ssl/certs/stunnel.pem
    key = /etc/ssl/private/stunnel.pem
  • 防火墙放行 Stunnel 监听端口(如 4514),不开放 6514 或 514 给外网

客户端(日志发送方)关键配置

客户端只需把日志发给 Stunnel 服务端的加密地址,其余由 Stunnel 处理。

onewo-rtlinux
onewo-rtlinux

Linux 实时编程助手。生成、审查并修改用于周期性控制任务和中断驱动程序的 C 代码。强制实施实时调度策略。

下载
  • 在客户端 Rsyslog 配置中(如 /etc/rsyslog.d/50-remote.conf),写入:
    *.* @@logserver-ip:4514;RSYSLOG_ForwardFormat
    注意用 @@(TCP)且端口是 Stunnel 的监听端口,不是 Rsyslog 原生端口
  • 无需在客户端配置 CA 文件、gtls 模块或证书验证——Stunnel 默认信任服务端证书,若需双向认证,才需额外配 client cert
  • 建议添加队列参数防丢日志:
    $ActionQueueFileName fwdq<br>$ActionQueueMaxDiskSpace 1g<br>$ActionQueueSaveOnShutdown on

证书与安全加固细节

证书是整个链路可信的基础,不能跳过验证步骤。

  • 使用 OpenSSL 生成自签名证书时,CN 必须匹配服务端实际域名或 IP(如 CN=logs.example.com),否则客户端连接会因证书不匹配被拒绝
  • Stunnel 证书文件应合并为单个 PEM:
    cat stunnel.crt stunnel.key > /etc/ssl/certs/stunnel.pem
  • 检查 SELinux 状态(RHEL/CentOS):
    若启用,需确认 stunnel 允许绑定网络端口:setsebool -P stunnel_connect_any 1;也可临时设为 permissive 模式快速排障
  • 验证连通性:在客户端执行 openssl s_client -connect logserver-ip:4514 -quiet,成功返回 SSL 握手信息即表示隧道就绪

验证与排错核心方法

不要只看服务是否启动,要逐层确认数据流是否真正贯通。

  • 先停掉 Rsyslog,仅启 Stunnel,用 openssl s_client 测试能否连上并看到 “Verify return code: 0 (ok)”
  • 再启 Rsyslog,用 ss -tlnp | grep :6514 确认它确实在监听本地端口
  • 在服务端用 tcpdump -i lo port 6514 -A 抓包,确认 Stunnel 解密后确实有明文 syslog 数据送达
  • 最后从客户端发测试日志:logger "test encrypted log from $(hostname)",检查服务端对应日志文件是否收到

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux 敏感数据

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2025.10.13

3965

12

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

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

2025.11.04

355

21

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

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

2023.06.21

3590

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3133

10

linux find
linux find

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

2023.06.30

2193

5

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

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

2023.07.05

5210

7

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

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

2023.07.06

4862

7

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

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

2023.07.20

2933

8

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

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

2023.07.20

2445

4

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习