Linux审计功能
一、
Linux审计系统(Audit System)是Linux内核提供的一种机制,用于记录和监控与安全相关的事件,通过审计,系统管理员可以追踪系统中发生的各种操作,如文件访问、用户登录、权限变更等,审计不会主动阻止任何行为,而是记录这些行为的详细信息,以便后续分析和处理。
二、主要组件
auditd守护进程
auditd是审计系统的守护进程,负责将内核产生的信息写入到硬盘上,它通常接收来自内核的审计信息,并将其写入日志文件中,默认路径为/var/log/audit/audit.log
。
2. auditctl命令
auditctl是一个即时控制审计守护进程行为的工具,它可以添加、修改或删除审计规则,查看当前配置的规则等。
auditctl -l
:列出所有当前的审计规则。
auditctl -a exit,always -F arch=b64 -F key=power
:添加一个新的规则,监视所有64位架构下使用特定密钥的操作。
3. ausearch工具
ausearch是一个查找审计事件的工具,可以根据指定的条件在审计日志中搜索相关事件。
ausearch -k my_rule_key
这条命令会搜索所有与关键字my_rule_key
匹配的审计记录。
4. aureport工具
aureport是一个查看和生成审计报告的工具,它可以基于审计日志生成各种报告,帮助管理员更好地理解系统上的活动情况。
aureport -f --summary
这条命令会生成一个摘要报告,显示最近一段时间内的审计活动概况。
5. audispd命令
audispd可以将事件通知转发给其他应用程序,而不是直接写入审计日志文件中,这在某些需要实时响应的场景中非常有用。
6. autrace命令
autrace是一个用于跟踪进程的命令,类似于strace,但它专门用于跟踪由审计系统记录的进程活动。
autrace -p <pid>
这条命令会跟踪指定进程ID的审计记录。
三、工作原理
审计事件通过内核模块记录到审计子系统,这些事件记录包括事件类型、时间戳、主体(发起事件的进程或用户)、客体(受事件影响的对象)等信息,管理员可以使用审计工具(如auditctl、ausearch、aureport等)来查看、分析和处理这些审计事件记录。
四、应用场景
安全审计:记录系统上的各种活动,包括文件访问、用户登录、进程启动等,帮助管理员了解系统上的安全状况,发现潜在的安全威胁。
合规性检查:对于需要遵守特定安全规定或法规的组织来说,Audit可以提供有关系统活动的详细记录,以证明系统符合相关要求。
问题追踪:当系统出现问题时,Audit可以提供相关的日志记录,帮助管理员更快地定位问题的原因。
入侵检测:通过分析审计日志,可以发现未经授权的访问尝试或其他恶意行为,从而及时采取措施防止进一步的安全威胁。
五、安装与配置
安装audit服务
在大多数Linux发行版中,可以通过包管理器安装audit服务,在CentOS上:
sudo yum install audit
在Ubuntu上:
sudo apt-get install auditd
配置文件
audit的主要配置文件有两个:/etc/audit/auditd.conf
和/etc/audit/audit.rules
。
/etc/audit/auditd.conf
:定义了auditd守护进程的参数和行为,如日志文件的位置、日志格式、日志轮转策略等。
/etc/audit/audit.rules
:定义了具体的审计规则,指定哪些系统事件应该被记录到审计日志中。
添加审计规则
审计规则可以使用auditctl命令行工具添加,也可以编辑/etc/audit/audit.rules
文件来永久添加,以下是一些常见的规则示例:
监视对指定文件的访问:
auditctl -w /etc/passwd -p rwxa
监视对指定目录的访问:
auditctl -w /etc/production -p rwxa
监视所有使用sudo的命令:
auditctl -a exit,always -F arch=b64 -F key=power
六、常见问题解答
Q1: 如何更改审计日志的存储位置?
A1: 可以通过修改/etc/audit/auditd.conf
文件中的log_file
选项来更改审计日志的存储位置。
log_file = /var/log/audit/custom_audit.log
修改后重启auditd服务即可生效:
sudo systemctl restart auditd
Q2: 如何删除特定的审计规则?
A2: 可以使用auditctl的-D
选项来删除特定的审计规则,使用auditctl -l
列出所有规则,找到要删除的规则编号,然后执行以下命令:
auditctl -D <rule_number>
如果规则编号为1001,则执行:
auditctl -D 1001
小伙伴们,上文介绍了“audit linux功能”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/644236.html