汕头市网站建设_网站建设公司_产品经理_seo优化
2026/1/21 11:19:04 网站建设 项目流程

文章目录

  • 前言
  • 一、安装Audit?
  • 二、理解工作流程与核心工具
  • 三、核心使用(三大工具)
    • 1. auditctl:实时控制审计规则
    • 2. ausearch:查询审计日志
    • 3. aureport:生成汇总报告
  • 四、规则持久化(关键步骤)
    • 1.规则文件位置:
    • 2.写入规则:
    • 3.加载规则并重启服务:
  • 五、常见问题与解决方案
  • 实战示例:监控Web目录篡改

前言

Linux Audit(审计子系统)是Linux内核的一个安全框架,用于记录系统中发生的各种安全相关事件。它的核心价值在于事后追溯和安全合规。当发生安全事件(如文件被篡改、异常登录、权限滥用)时,审计日志可以帮助系统管理员精确复盘事件全过程。


一、安装Audit?

大多数主流Linux发行版都已预装auditd。如果未安装,请根据你的系统使用以下命令:

# Ubuntu / Debiansudoaptupdate&&sudoaptinstallauditd audispd-plugins# CentOS / RHEL / Fedora / 麒麟V10 / openEulersudoyuminstallaudit# 或 sudo dnf install audit# 安装后,启动并设置开机自启sudosystemctlenable--now auditdsudosystemctl status auditd# 确认状态为 active (running)

二、理解工作流程与核心工具

了解auditd各组件如何协同工作至关重要。下图清晰地展示了从规则配置到日志查询的完整流程:

整个过程是一个闭环:管理员通过auditctl配置规则,内核根据这些规则监控系统,auditd守护进程将事件写入日志,最后管理员使用工具查询日志以验证规则效果或进行安全分析。

三、核心使用(三大工具)

现在,让我们学习流程图中涉及的三个核心工具的具体用法。

1. auditctl:实时控制审计规则

# 1. 查看当前所有规则sudoauditctl -l# 2. 监控文件或目录(-w 为监控路径,-p 为权限,-k 为自定义关键词)sudoauditctl -w /etc/passwd -p wa -k identity_file# -p 后跟的权限:r=读,w=写,x=执行,a=属性变更# 3. 监控系统调用(-S 为系统调用名,-F 为过滤条件)# 例:记录所有失败的open系统调用sudoauditctl -a always,exit -Sopen-Fsuccess=0-k failed_open# 4. 删除所有规则sudoauditctl -D

2. ausearch:查询审计日志

用于从/var/log/audit/audit.log中检索特定事件。

# 1. 根据关键词(-k)搜索最近的事件sudoausearch -k identity_file# 2. 根据时间范围搜索(-ts 开始时间,-te 结束时间)sudoausearch -ts today 09:00 -te10:00# 3. 根据事件ID搜索(-a)sudoausearch -a12345# 4. 查看失败的登录尝试sudoausearch -m USER_LOGIN -sv no

3. aureport:生成汇总报告

生成易于人类阅读的汇总报告,便于宏观分析。

# 1. 生成所有事件的汇总报告sudoaureport# 2. 生成关于文件的报告sudoaureport -f# 3. 生成认证相关(登录)报告sudoaureport -au# 4. 生成今天发生的所有事件的详细报告sudoaureport -t

四、规则持久化(关键步骤)

通过auditctl添加的规则在系统重启后会丢失。要使其永久生效,必须将规则写入配置文件。

1.规则文件位置:

  • /etc/audit/rules.d/audit.rules (主要配置文件)
  • 你也可以在/etc/audit/rules.d/目录下创建自己的.rules文件(如myrules.rules)。

2.写入规则:

将你用auditctl测试好的规则,去掉开头的auditctl命令,直接写入规则文件。例如,将 auditctl -w /etc/passwd -p wa -k identity_file 转换为:

# 编辑规则文件sudovim/etc/audit/rules.d/audit.rules# 在文件末尾添加以下行(不要写 auditctl 命令本身)-w /etc/passwd -p wa -k identity_file -w /etc/shadow -p wa -k identity_file

3.加载规则并重启服务:

# 方法一:使用augenrules重新编译并加载所有规则(推荐)sudoaugenrules --load# 方法二:重启auditd服务sudosystemctl restart auditd# 验证规则是否已永久加载sudoauditctl -l

五、常见问题与解决方案

实战示例:监控Web目录篡改

假设你想监控网站目录/var/www/html是否被篡改(写入或属性变更):

1.添加临时规则测试:

sudoauditctl -w /var/www/html/ -p wa -k web_content

2.测试规则:在该目录下创建或修改一个文件,然后查询:

sudotouch/var/www/html/test.txtsudoausearch -k web_content -i

3.永久化规则:确认规则有效后,写入规则文件:

echo"-w /var/www/html/ -p wa -k web_content"|sudotee-a /etc/audit/rules.d/web.rulessudoaugenrules --load

掌握了以上内容,你就具备了使用auditd进行系统安全审计的基础能力

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询