要实现Linux审计日志远程集中化存储,需分四步:一、启用auditd并配置内核级事件捕获规则;二、用rsyslog的imfile模块监听audit.log并通过TCP转发;三、服务端通过rsyslog按IP和日期分类落盘;四、启用TLS加密、磁盘队列缓存及严格权限控制确保安全可靠。

要实现 Linux 审计日志的远程集中化存储,核心是把分散在各服务器上的关键审计数据(如登录行为、sudo 操作、文件访问等)统一收拢到一台专用服务器上,并确保日志不丢失、可溯源、易检索。这不是简单地“把日志发过去”,而是一套分层协同的配置逻辑:底层用 auditd 捕获操作事件,中间靠 rsyslog 做协议转发与路由,顶层再结合结构化工具(如 Loki 或 ELK)做分析。生产环境尤其要注意可靠性与安全性,不能只图通,还要防丢、防篡改、防泄露。
第一步:启用并配置 auditd,捕获真实操作行为
系统自带的 auditd 是审计的根基,它能记录 execve 系统调用(即每条命令执行)、权限变更、敏感文件修改等内核级事件,比 bash history 更可靠、更难绕过。
- 安装并启动服务:
sudo apt install auditd(Debian/Ubuntu)或sudo yum install audit(RHEL/CentOS),然后sudo systemctl enable --now auditd - 添加关键规则(写入
/etc/audit/rules.d/audit.rules):-a always,exit -F arch=b64 -S execve -k cmd_exec(记录所有命令)-w /etc/sudoers -p wa -k sudo_config(监控 sudo 配置变更)-w /var/log/audit/ -p wa -k audit_log(保护审计日志自身) - 重载规则:
sudo augenrules --load,验证是否生效:sudo ausearch -m EXECVE -ts today | head -3
第二步:将 audit 日志转给 rsyslog,再发往中心服务器
auditd 默认把日志写入 /var/log/audit/audit.log,但该文件不走 syslog 协议,无法被 rsyslog 直接转发。需借助 audispd-plugins 中的 auoms 插件或更通用的做法:用 rsyslog 的 imfile 模块监听该文件。
- 在客户端安装必要模块:
sudo apt install rsyslog-mmjsonparse(如需结构化解析) - 新建配置
/etc/rsyslog.d/60-audit.conf:
input(type="imfile" ruleset="audit" File="/var/log/audit/audit.log" Tag="audit:")
ruleset(name="audit") {
action(type="omfwd" Target="192.168.1.100" Port="514" Protocol="tcp" Template="RSYSLOG_ForwardFormat")
stop
}
注意:这里用 TCP 转发,避免 UDP 丢包;stop 表示匹配后不再交由其他规则处理,防止重复发送。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
第三步:服务端接收并分类落盘,按主机+时间组织目录
中心服务器不能只“收”,还要能区分来源、隔离存储、便于后续归档与查询。推荐使用模板 + 主机 IP 或主机名自动建路径。
- 编辑
/etc/rsyslog.d/50-remote.conf,启用 TCP 接收并定义模板:
input(type="imtcp" port="514")
$template RemoteAudit,"/var/log/audit/%FROMHOST-IP%/%$YEAR%-%$MONTH%-%$DAY%.log"
if $programname == 'audit' then ?RemoteAudit & ~
其中 & ~ 表示匹配后终止处理,防止日志被重复写入默认文件;%FROMHOST-IP% 确保不同主机日志物理隔离,避免混杂。
- 创建基础目录并授权:
sudo mkdir -p /var/log/audit/192.168.1.0,sudo chown syslog:adm /var/log/audit - 重启服务:
sudo systemctl restart rsyslog,确认监听:ss -tlnp | grep :514
第四步:增强安全与可靠性(生产必备)
明文传输日志等于暴露系统操作全貌,且网络中断可能导致日志丢失。这两点必须加固。
-
TLS 加密:服务端配置证书(自签 CA + 服务器证书),启用 imtcp 的 TLS 模式;客户端改用
@@(o)192.168.1.100:6514(o 表示校验证书),端口建议非 514(如 6514)以区分明暗流量 -
本地队列缓存:客户端配置磁盘队列,断网时不丢日志:
$ActionQueueFileName fwd-audit$ActionQueueMaxDiskSpace 2g$ActionQueueSaveOnShutdown on$ActionQueueTimeoutShutdown 10000 -
防火墙与权限:服务端仅放行 TCP 6514(或 514),禁止 UDP;
/var/log/audit/目录权限设为750,属主为syslog:adm,禁止普通用户读取

















