怎么在Linux利用Nftables的Log结合Rsyslog将防火墙拦截日志远程隔离备份防止审计篡改

秋萱吖_2835

秋萱吖_2835

2026-05-28

309人浏览

原创

采用nftables log打标+rsyslog tls转发+worm存储实现日志不可删改可溯源:nftables用唯一prefix精准标记拦截事件;rsyslog仅搬运加密转发至远程tls端口;服务端强制双向证书认证、worm落盘、权限隔离与实时刷盘。

怎么在linux利用nftables的log结合rsyslog将防火墙拦截日志远程隔离备份防止审计篡改

核心思路是:用 nftables log 记录拦截动作 → 通过 rsyslog 捕获并转发 → 远程服务器启用 TLS双向认证 + WORM存储,实现日志不可删、不可改、可溯源。

nftables 日志规则精准打标

nftables 的 log 表达式本身不写磁盘,只向内核日志缓冲区(kmsg)推送带前缀的消息。关键在“打标清晰”,便于后续 rsyslog 过滤和路由:

  • 为每类拦截规则加唯一 prefix,例如:log prefix "[DROP-SSH] " level info 或 log prefix "[BLOCK-WG] " level warning
  • 配合 ip saddr、ip daddr、tcp dport 等条件,确保日志含足够上下文,避免模糊匹配
  • 建议统一设 level warning 或 err,方便 rsyslog 按严重性分流,不混入 info 级常规日志
  • 避免高频日志泛滥,可在规则前加 limit rate 5/minute burst 10 防刷

本地 rsyslog 提取并加密转发

本机 rsyslog 不存盘,只做“搬运工”:从 /proc/kmsg 或 imklog 模块读取 nftables 日志,经 TLS 加密后发往远程服务器:

linux-performance-analyzer
linux-performance-analyzer

Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。

下载
  • 加载内核日志模块:module(load="imklog" permitnonkernelfacility="on")
  • 写过滤规则,只抓带指定 prefix 的日志::msg, contains, "[DROP-" @@192.168.10.50:6514;RSYSLOG_ForwardFormat
  • 必须用 @@(TCP)而非 @(UDP),并指向远程 rsyslog 的 TLS 端口(如 6514)
  • 启用队列缓存:$ActionQueueFileName fwd-nft、$ActionQueueMaxDiskSpace 500m、$ActionQueueSaveOnShutdown on,断网时不丢日志

远程 rsyslog 服务端强隔离防护

接收端是防篡改的关键环节,需三重加固:

  • TLS 双向认证:服务端配置 CA 证书、服务证书;每个客户端(Nginx / 防火墙主机)持独立客户端证书,rsyslog 验证 CN 或 SAN 字段,拒绝无证或证书过期连接
  • 日志落盘即锁定:使用 omfile 模块配合 WORM 存储(如 ZFS append-only dataset、AWS S3 Object Lock、或本地 ext4 + chattr +a)
  • 路径与权限隔离:按源 IP + 设施名分目录,例如 /var/log/firewall/10.121.6.6/nft_drop_202605.log,属主设为 root:adm,权限 640,禁止普通用户写入或删除
  • 禁用日志覆盖:$ActionFileEnableSync on + $ActionFileForceSync on,确保每次写入立即刷盘

验证与持续防护机制

部署后必须验证链路完整性和防篡改能力:

  • 手动触发一条 nftables drop 规则(如阻断某 IP 访问 22 端口),检查远程服务器对应路径下是否 1 分钟内生成新日志条目
  • 用 openssl s_client -connect 192.168.10.50:6514 -cert client.pem -key client.key 测试 TLS 握手是否成功
  • 尝试用未授权证书或伪造 IP 发送日志,确认服务端 rsyslog 日志中出现 invalid certificate 或 rejected connection 记录
  • 定期运行校验脚本:对已归档日志文件计算 SHA256,签名后上链或存入安全存储,供审计时比对原始哈希

相关专题

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

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

2025.10.13

4065

12

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

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

2025.11.04

375

21

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

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

2023.06.21

3650

4

如何安装LINUX
如何安装LINUX

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

2023.06.29

3173

10

linux find
linux find

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

2023.06.30

2233

5

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

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

2023.07.05

5350

7

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

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

2023.07.06

5002

7

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

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

2023.07.20

2993

8

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

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

2023.07.20

2505

4

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习