讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么设置系统审计规则_Linux auditctl审计规则配置方法【高级】

酷浩君_3060

酷浩君_3060

发布时间:2026-03-30 17:48:00

|

518人浏览过

|

来源于php中文网

原创

必须区分运行时调试与生产环境持久化两种模式:auditctl添加临时规则适用于测试,重启失效;永久规则需写入/etc/audit/rules.d/并用augenrules加载;系统调用级审计可捕获动态行为;需通过auditd.conf优化性能与日志容量;部署后须用ausearch等工具验证有效性。

linux怎么设置系统审计规则_linux auditctl审计规则配置方法【高级】

如果您需要在Linux系统中配置精细化的审计规则以捕获关键安全事件,则必须区分运行时调试与生产环境持久化两种模式。以下是针对auditctl命令的高级配置方法:

一、使用auditctl添加临时审计规则

auditctl命令直接向内核审计框架下发指令,适用于快速验证规则有效性、应急响应或测试阶段。所有规则在内存中生效,系统重启后自动失效。

1、监控关键系统文件的写入与属性变更行为:执行sudo auditctl -w /etc/shadow -p wa -k shadow_modification

2、监控特权命令执行:执行sudo auditctl -w /usr/bin/sudo -p x -k privileged_exec

3、捕获对指定目录下所有文件的读写执行访问(含子项):执行sudo auditctl -a always,exit -F dir=/root -F perm=rwxa -k root_access

4、记录普通用户调用execve系统调用的行为(64位架构):执行sudo auditctl -a always,exit -F arch=b64 -S execve -F auid>=1000 -k user_exec

5、验证当前已加载的全部规则:执行sudo auditctl -l,确认输出中包含刚添加的规则条目

二、编写永久性审计规则文件

将auditctl验证通过的规则固化至磁盘配置文件,确保auditd服务重启后仍能自动加载,是生产环境唯一合规方式。规则需存入/etc/audit/rules.d/目录下的.rules文件,并通过augenrules统一编译加载。

1、创建自定义规则文件:sudo vim /etc/audit/rules.d/10-security-critical.rules

2、在文件中逐行写入已验证的规则语句,例如:
-w /etc/passwd -p wa -k identity
-w /etc/ssh/sshd_config -p wa -k sshd_config
-a always,exit -F arch=b64 -S execve -F auid>=1000 -k user_exec

3、添加以#开头的注释行说明每条规则用途,便于后期维护

4、执行sudo augenrules --load重新加载全部规则集

5、检查规则是否成功载入:sudo auditctl -l | grep "identity",确认匹配结果存在

三、配置细粒度系统调用级审计

当文件路径监控无法覆盖动态行为(如远程下载、内存注入、非标准路径执行)时,需基于系统调用进行过滤,实现深度行为捕获。该方式依赖精确的架构标识与字段匹配,避免误报泛滥。

1、监控所有对网络端口绑定的系统调用(含失败尝试):sudo auditctl -a always,exit -F arch=b64 -S bind -k network_bind

2、捕获调用curl、wget、nc等工具的完整执行路径:sudo auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/curl -k http_tool_usage

3、限制仅记录非标准端口上的bind行为:sudo auditctl -a always,exit -F arch=b64 -S bind -F a0!=22 -F a0!=80 -F a0!=443 -k nonstandard_port_bind

4、记录所有在/tmp或/dev/shm目录下启动的进程:sudo auditctl -a always,exit -F arch=b64 -S execve -F path=/tmp -k tmp_exec

5、启用失败事件记录开关以捕获权限拒绝类操作:sudo auditctl -f -e 2(-f表示记录失败事件,-e 2表示严格模式)

四、优化审计性能与日志容量控制

不加约束的审计规则会引发日志爆炸式增长及I/O瓶颈,必须结合auditd.conf参数与规则筛选逻辑进行协同调控,防止服务中断或磁盘占满。

1、编辑主配置文件:sudo vim /etc/audit/auditd.conf

2、将max_log_file设为100(单位MB),避免单个日志过大

3、将num_logs设为6,确保最多保留6个轮转日志文件

4、设置space_left_action = SYSLOG与admin_space_left_action = SUSPEND,防止磁盘耗尽导致审计停止

5、将flush参数由默认INCREMENTAL改为DATA,提升日志写入可靠性但略微增加延迟

五、验证规则有效性与日志捕获能力

规则部署后必须立即验证其是否真实触发并生成可检索日志,否则可能因路径拼写错误、权限标记遗漏、架构不匹配等原因导致静默失效。

1、手动触发一条被监控行为,例如:sudo cp /etc/passwd /tmp/test_passwd

2、立即执行sudo ausearch -k identity -i,查看是否返回包含cp操作的完整审计记录

3、若无输出,检查规则路径是否为软链接目标路径而非链接本身;确认-p参数是否遗漏w(写)权限

4、对于系统调用规则,使用sudo ausearch -m SYSCALL -ts recent检索最近所有系统调用事件,确认是否存在对应execve或bind条目

5、检查/var/log/audit/audit.log文件末尾是否有新增时间戳匹配的操作记录,且ausearch输出中key字段与规则-k值一致

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3483

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

775

2023.10.30

vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

329

2023.08.01

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

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

3890

2023.06.21

如何安装LINUX
如何安装LINUX

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

3353

2023.06.29

linux find
linux find

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

2493

2023.06.30

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

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

6010

2023.07.05

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

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

5662

2023.07.06

FrankenPHP集成Laravel详细教程
FrankenPHP集成Laravel详细教程

本专题提供FrankenPHP集成Laravel的详细配置指南,全面解析运行原理、开发环境搭建、Caddyfile配置、Octane工作模式、数据库连接、队列任务、定时任务和生产环境优化,解决部署过程中常见的报错与兼容性问题。

0

2026.10.08

热门下载

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

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn