news 2026/10/21 22:04:15

Linux auditd系统审计实战:规则配置与安全事件追踪方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux auditd系统审计实战:规则配置与安全事件追踪方法

auditd安装与基本配置

auditd是Linux内核审计子系统的用户空间守护进程,提供系统级安全审计能力。服务器安全加固场景中,auditd能够记录文件访问、系统调用、用户权限变更等关键操作,是合规审计和入侵检测的基础组件。

在CentOS/RHEL系统上安装:

# 安装auditd yum install audit -y # 启动并设置开机自启 systemctl start auditd systemctl enable auditd # 验证auditd状态 systemctl status auditd # 查看内核审计模块是否加载 lsmod | grep audit # 输出应包含: # audit 98304 3 # 表示audit子系统已正常工作

auditd的主配置文件位于/etc/audit/auditd.conf,关键参数说明:

# /etc/audit/auditd.conf 核心配置 log_file = /var/log/audit/audit.log log_format = RAW log_group = root priority_boost = 4 disk_full_action = SUSPEND disk_error_action = SUSPEND max_log_file = 100 max_log_file_action = ROTATE num_logs = 10 space_left = 75 space_left_action = EMAIL action_mail_acct = rootadmin@example.com

审计规则编写与加载方法

审计规则通过auditctl命令添加,或写入/etc/audit/rules.d/audit.rules文件实现持久化。规则文件修改后需要执行augenrules –load重新加载。

监控关键文件变更的规则配置:

# 监控/etc/passwd文件的写入操作 auditctl -w /etc/passwd -p wa -k identity_changes # 监控/etc/shadow文件 auditctl -w /etc/shadow -p wa -k identity_changes # 监控/etc/sudoers文件 auditctl -w /etc/sudoers -p wa -k privilege_escalation # 监控SSH配置文件 auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config_change # 监控crontab文件变更 auditctl -w /etc/crontab -p wa -k cron_change auditctl -w /var/spool/cron/ -p wa -k cron_change # 监控系统二进制文件篡改 auditctl -w /bin/ -p wa -k binary_tamper auditctl -w /sbin/ -p wa -k binary_tamper auditctl -w /usr/bin/ -p wa -k binary_tamper auditctl -w /usr/sbin/ -p wa -k binary_tamper # 监控用户/组变更 auditctl -w /etc/group -p wa -k identity_changes auditctl -w /etc/gshadow -p wa -k identity_changes

规则参数说明:-w指定监控路径,-p指定监控权限(r读取/w写入/a属性变更/x执行),-k设置规则键值用于日志检索。同一key可以关联多条规则,方便后续按事件类型查询。

系统调用级别的审计规则:

# 审计所有execve系统调用(命令执行) auditctl -a always,exit -F arch=b64 -S execve -k cmd_execution # 审计unlink系统调用(文件删除) auditctl -a always,exit -F arch=b64 -S unlink -S unlinkat -k file_delete # 审计chmod/chown系统调用(权限变更) auditctl -a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -k perm_change auditctl -a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -k perm_change # 审计特定UID的socket操作 auditctl -a always,exit -F arch=b64 -S socket -S connect -F auid=1000 -k network_access # 按用户ID过滤,监控uid>=1000的普通用户 auditctl -a always,exit -F arch=b64 -S open -F auid>=1000 -F auid!=4294967295 -k user_file_open

安全事件追踪与日志分析

audit日志存储在/var/log/audit/audit.log中,格式为键值对。直接阅读原始日志效率低,通常使用ausearch和aureport工具进行检索分析。

# 搜索identity_changes相关的审计事件 ausearch -k identity_changes # 搜索今天的时间范围内的特权提升事件 ausearch -k privilege_escalation -ts today # 搜索特定用户的操作记录 ausearch -ua 1000 -ts today # 搜索命令执行记录 ausearch -k cmd_execution -ts today | head -50 # 生成审计摘要报告 aureport --summary # 生成事件类型报告 aureport -x --summary # 生成用户登录报告 aureport -l # 生成文件访问报告 aureport -f --summary # 查看失败的系统调用 aureport --failed

解析单条审计日志的典型输出:

type=SYSCALL msg=audit(1726012345.678:1234): arch=c000003e syscall=2 success=yes exit=3 a0=7ffd12345678 a1=0 a2=1b6 a3=0 items=1 ppid=1234 pid=5678 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=2 comm="cat" exe="/usr/bin/cat" key="user_file_open"

关键字段:auid是审计uid(原始登录用户),uid是当前有效用户,exe是执行程序的完整路径,comm是进程名,key是规则标记的键值。通过auid可以追踪即使用户执行了sudo提权后的原始身份。

auditd性能优化策略

auditd在高负载服务器上可能产生大量日志,影响系统性能。以下优化措施可以平衡审计覆盖度与性能开销:

# 限制审计速率,防止日志洪泛 auditctl -r 100 # 每秒最多记录100条审计事件 # 排除高频率但低价值的审计事件 auditctl -a never,exit -F arch=b64 -S clock_gettime -k time_call auditctl -a never,exit -F arch=b64 -S gettimeofday -k time_call auditctl -a never,exit -F arch=b64 -S stat -k stat_call auditctl -a never,exit -F arch=b64 -S lstat -k stat_call auditctl -a never,exit -F arch=b64 -S fstat -k stat_call # 排除特定进程的审计 auditctl -a never,exit -F arch=b64 -S open -F exe=/usr/sbin/sshd -k ssh_internal

日志轮转方面,建议设置max_log_file为256MB,num_logs为20,配合logrotate做压缩归档。对于安全要求高的环境,可以将audit日志实时转发到集中式日志服务器(如rsyslog远程转发或Filebeat采集到ELK),防止攻击者通过删除本地日志掩盖痕迹。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 6:25:36

Claude Haiku 5.5 上线,小模型开始承接量产调用|2026年10月09日

今天技术圈最值得拆的,不是「模型又大了多少」,而是三件工程账同时被摊开:Anthropic 把 Claude Haiku 5.5 的输入价格压到每百万 token 0.10 美元[① MarkTechPost];一项在生产环境完成的按调用点评估显示,把每个调用点…

作者头像 李华
网站建设 2026/10/20 11:31:07

Java程序员3个月斩获百度38K Offer!零AI背景转战大模型应用

本文分享了一位无AI背景的Java开发如何通过3个月成功转型,获得百度AI Agent应用开发Offer的经验。文章指出,转型关键并非深入算法或啃源码,而是利用Java后端工程优势,学习Prompt工程、RAG、Agent等核心技术,并针对目标…

作者头像 李华
网站建设 2026/10/16 6:56:39

排名滑落不是翻车:给 N2.5-mini 的冷静期说句公道话

排名滑落不是翻车:给 N2.5-mini 的冷静期说句公道话 【免费下载链接】Nex-N2.5-mini 项目地址: https://ai.gitcode.com/hf_mirrors/nex-agi/Nex-N2.5-mini Nex-N2.5 系列发布时的高调,和随后榜单排名被一轮轮刷新的现实,构成了 2025…

作者头像 李华
网站建设 2026/10/16 4:48:05

DC-DC 的开关频率是怎么确定的

一、频率的来源:固定档位、设置电阻与外部时钟固定频率 buck 的开关频率由芯片内部振荡器产生,常见三种设定方式:固定档位。芯片出厂时锁定一档或数档频率(如 400kHz 与 2.1MHz 两档),频率精度由内部振荡器…

作者头像 李华
网站建设 2026/10/19 18:00:31

企业越复杂,为什么共识比速度更重要?

当企业越来越复杂,为什么“共识”比“速度”更重要?这个问题我在不同场合被问过很多次。尤其是这几年,很多管理者一提到“共识”就皱眉,觉得那是“低效”“扯皮”“流程冗长”的代名词;一提到“速度”就两眼放光&#…

作者头像 李华
网站建设 2026/10/17 19:06:37

【AI大模型】算子优化:核心计算算子的加速实现方法

【AI大模型】算子优化:核心计算算子的加速实现方法 核心结论:大模型的计算时间,绝大部分花在少数几个核心算子上——矩阵乘法(GEMM)、注意力(Attention)、归一化(LayerNorm)、激活(GELU等)和嵌入(Embedding)。算子优化的核心,是让这些高频算子在目标硬件上跑得最…

作者头像 李华