CentOS系统提供了强大的安全审计功能,主要通过auditd
服务实现。以下是使用CentOS安全审计功能的详细步骤:
# 检查是否已安装
sudo yum list installed audit
# 如果未安装,则安装
sudo yum install audit
# 启动服务并设置开机自启
sudo systemctl start auditd
sudo systemctl enable auditd
主配置文件位于/etc/audit/auditd.conf
,常用配置项包括:
# 日志文件位置
log_file = /var/log/audit/audit.log
# 日志文件大小限制(MB)
max_log_file = 50
# 保留的日志文件数量
num_logs = 5
# 磁盘空间不足时的操作
space_left = 75
space_left_action = email
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = halt
# 监控文件访问
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
# 监控系统调用
sudo auditctl -a always,exit -F arch=b64 -S open -S openat -F exit=-EACCES -k access_denied
将规则添加到/etc/audit/rules.d/audit.rules
文件中:
# 监控用户登录
-w /var/log/lastlog -p wa -k logins
# 监控sudo使用
-w /etc/sudoers -p wa -k sudoers_changes
# 监控特权命令执行
-a always,exit -F path=/usr/bin/su -F perm=x -F auid>=1000 -F auid!=4294967295 -k privileged
# 监控用户账户变更
sudo auditctl -w /etc/passwd -p wa -k identity
sudo auditctl -w /etc/group -p wa -k identity
sudo auditctl -w /etc/shadow -p wa -k identity
# 监控系统时间变更
sudo auditctl -w /etc/localtime -p wa -k time-change
sudo auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k time-change
# 监控网络配置变更
sudo auditctl -w /etc/hosts -p wa -k hosts-file
sudo auditctl -w /etc/sysconfig/network-scripts/ -p wa -k network-scripts
# 查看原始日志
sudo cat /var/log/audit/audit.log
# 使用ausearch工具查询
sudo ausearch -k passwd_changes # 按key查询
sudo ausearch -m USER_LOGIN # 按事件类型查询
sudo ausearch -ua root # 按用户查询
# 使用aureport生成报告
sudo aureport -u # 用户登录报告
sudo aureport -l # 登录事件报告
sudo aureport -f # 文件访问报告
sudo aureport --summary # 摘要报告
# 实时监控审计事件
sudo tail -f /var/log/audit/audit.log
# 或者使用
sudo auditwatch
# 生成自定义时间范围的报告
sudo aureport -ts 09:00 -te 17:00 -i
# 生成可疑事件报告
sudo aureport -m execve -i --summary | grep -v "0"
# 手动旋转日志文件
sudo service auditd rotate
# 检查审计服务状态
sudo auditctl -s
# 清空所有审计规则
sudo auditctl -D
通过合理配置这些审计规则,您可以全面监控CentOS系统的各种活动,包括文件访问、用户登录、特权命令执行等,为系统安全提供有力保障。