CentOS 7 作为一款广泛使用的Linux发行版,其审计功能为系统安全和管理提供了重要保障,通过审计功能,管理员可以记录系统中的关键事件,如用户登录、文件访问、命令执行等,从而实现安全事件的追踪、异常行为的检测以及合规性审计,本文将详细介绍CentOS 7审计功能的配置、使用及管理方法。

审计系统
CentOS 7 默认安装了auditd服务,这是Linux内核审计系统的用户空间组件,auditd服务负责收集、记录和管理审计规则产生的审计事件,并将这些事件写入日志文件或发送到远程日志服务器,审计系统的主要优势在于其灵活性和可扩展性,管理员可以根据实际需求定制审计规则,精确监控系统的关键操作。
安装与启动审计服务
在CentOS 7中,auditd服务通常已预装,但若需手动安装,可通过以下命令完成:
sudo yum install audit -y
安装完成后,启动并启用auditd服务:
sudo systemctl start auditd sudo systemctl enable auditd
使用以下命令检查审计服务状态:
sudo systemctl status auditd
审计规则配置
审计规则是审计系统的核心,决定了系统需要记录哪些事件,规则可以通过auditctl命令动态添加或修改,也可以通过配置文件持久化保存,以下为常用规则示例:
监控文件访问
监控/etc/passwd文件的读写操作:
sudo auditctl -w /etc/passwd -p wa -k passwd_modification
参数说明:-w指定监控路径,-p设置权限(r=读,w=写,x=执行,a=属性修改),-k为规则添加关键字便于检索。
记录用户登录事件
记录所有用户的登录和注销行为:
sudo auditctl -S arch=b64 -S arch=b32 -F exit=0 -F auid>=1000 -F auid!=4294967295 -k login_events
该规则通过系统调用号(-S)和用户ID(-F auid)过滤事件,仅记录普通用户的登录行为。
监控命令执行
监控sudo命令的使用:

sudo auditctl -a always,exit -F arch=b64 -S execve -k sudo_commands
持久化规则
将当前规则保存到配置文件:
sudo auditctl -l > /etc/audit/rules.d/custom.rules
重启auditd服务后,规则将自动加载。
审计日志管理
审计日志默认存储在/var/log/audit/目录下,文件名通常为audit.log,管理员可通过ausearch和aureport工具查询和分析日志。
查询特定事件
根据关键字搜索事件:
sudo ausearch -k passwd_modification
按时间范围搜索(示例:2025-01-01至2025-01-31):
sudo ausearch -ts 01/01/2025 -te 01/31/2025
生成审计报告报告:
sudo aureport -i
查看登录事件详情:
sudo aureport -l -i
日志轮转与清理
配置日志轮转以避免磁盘空间耗尽,编辑/etc/audit/auditd.conf,调整max_log_file和num_logs参数:
max_log_file = 50
num_logs = 5 使用autorelabel工具强制轮转日志:
sudo augenrule -R
高级审计技巧
实时监控审计事件
使用tail命令实时查看日志:
sudo tail -f /var/log/audit/audit.log
远程日志存储
为增强安全性,可将审计日志发送至远程日志服务器(如rsyslog),编辑/etc/audit/auditd.conf,添加:

remote_server = <远程服务器IP>
transport = tcp 重启auditd服务后,日志将实时同步至远程服务器。
审计规则优化
避免过度审计导致性能下降,通过auditctl的-f参数设置失败响应级别(如-f 2表示严重错误时暂停系统)。
常见问题排查
审计规则未生效
检查规则是否正确加载:
sudo auditctl -l
若规则未显示,确认服务状态并重新加载规则:
sudo systemctl restart auditd
磁盘空间不足
调整max_log_file和num_logs参数,或设置日志自动清理:
sudo auditctl -e 0 sudo rm /var/log/audit/audit.log.* sudo auditctl -e 1
FAQs
Q1: 如何删除已配置的审计规则?
A: 使用auditctl命令的-D参数删除所有规则,或通过-d参数删除特定规则(如sudo auditctl -d -w /etc/passwd -p wa),规则删除后需重启auditd服务生效。
Q2: 审计日志中UID为4294967295代表什么?
A: UID为4294967295(即-1)表示未认证的用户(如内核进程或登录前的系统事件),通常与系统启动或服务初始化相关,可忽略或单独分析。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复