算法/力扣--栈与队列经典题目
2026/3/30 19:42:55
Linux Audit(审计子系统)是Linux内核的一个安全框架,用于记录系统中发生的各种安全相关事件。它的核心价值在于事后追溯和安全合规。当发生安全事件(如文件被篡改、异常登录、权限滥用)时,审计日志可以帮助系统管理员精确复盘事件全过程。
大多数主流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. 查看当前所有规则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用于从/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生成易于人类阅读的汇总报告,便于宏观分析。
# 1. 生成所有事件的汇总报告sudoaureport# 2. 生成关于文件的报告sudoaureport -f# 3. 生成认证相关(登录)报告sudoaureport -au# 4. 生成今天发生的所有事件的详细报告sudoaureport -t通过auditctl添加的规则在系统重启后会丢失。要使其永久生效,必须将规则写入配置文件。
将你用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# 方法一:使用augenrules重新编译并加载所有规则(推荐)sudoaugenrules --load# 方法二:重启auditd服务sudosystemctl restart auditd# 验证规则是否已永久加载sudoauditctl -l假设你想监控网站目录/var/www/html是否被篡改(写入或属性变更):
1.添加临时规则测试:
sudoauditctl -w /var/www/html/ -p wa -k web_content2.测试规则:在该目录下创建或修改一个文件,然后查询:
sudotouch/var/www/html/test.txtsudoausearch -k web_content -i3.永久化规则:确认规则有效后,写入规则文件:
echo"-w /var/www/html/ -p wa -k web_content"|sudotee-a /etc/audit/rules.d/web.rulessudoaugenrules --load掌握了以上内容,你就具备了使用auditd进行系统安全审计的基础能力