日志审计是系统安全管理的关键环节,通过记录、分析用户及系统行为,帮助管理员检测异常、满足合规要求(如等保)。在CentOS系统中,rsyslog(Syslog实现)与auditd(Linux审计框架)是实现日志审计的核心工具,二者协同工作可覆盖从系统日志到细粒度操作审计的全场景需求。
rsyslog是CentOS默认的Syslog服务,负责收集系统各组件的日志(如内核、认证、服务日志),并将其存储到本地或转发至远程服务器。其核心功能包括日志分级(如info、err)、分类(如authpriv用于认证日志)及远程传输(通过UDP/TCP)。
auditd是Linux内核级审计系统,可监控文件访问、命令执行、用户登录等细粒度操作,生成结构化日志(存储于/var/log/audit/audit.log)。相比rsyslog,auditd能记录操作结果、进程ID、用户ID等深度信息,更适合安全审计。
rsyslog主要收集系统常规日志(如认证、服务),配置重点在于分类存储与远程转发,以满足审计溯源需求。
rpm -q rsyslog验证;未安装则执行yum install -y rsyslog。/etc/rsyslog.conf或创建自定义配置文件(如/etc/rsyslog.d/audit.conf),添加以下规则:# 将认证相关日志(authpriv)存储到独立文件
authpriv.* /var/log/auth.log
# 将系统关键日志(如cron、kern)存储到指定文件
cron.* /var/log/cron.log
kern.* /var/log/kern.log
# 可选:将所有日志转发至远程服务器(如日志服务器IP为192.168.1.100)
*.* @192.168.1.100:514 # UDP转发
# *.* @@192.168.1.100:514 # TCP转发(更可靠)
systemctl restart rsyslog。通过logrotate工具自动切割、压缩旧日志,配置文件为/etc/logrotate.d/rsyslog(默认存在),内容示例如下:
/var/log/auth.log
/var/log/cron.log
/var/log/kern.log {
daily # 每日切割
missingok # 文件缺失不报错
rotate 7 # 保留7天日志
compress # 压缩旧日志(如.gz格式)
notifempty # 日志为空不切割
create 640 root adm # 新日志权限(root用户,adm组)
}
修改后无需重启,logrotate会每日自动执行。
auditd用于监控关键系统操作(如文件修改、命令执行),生成可追溯的审计日志,是日志审计的核心。
yum install -y audit(CentOS默认仓库包含)。systemctl start auditd,并设置开机自启:systemctl enable auditd。systemctl status auditd(应显示“active (running)”)。审计规则定义了需要监控的对象(文件、目录、命令),常用命令如下:
# 监控/etc/passwd文件的写、属性修改操作(key为"passwd_change",方便后续查询)
auditctl -w /etc/passwd -p wa -k passwd_change
# 监控/etc/selinux目录的所有操作
auditctl -w /etc/selinux/ -p wa -k selinux_change
# 监控fdisk命令的执行(x表示执行权限)
auditctl -w /usr/sbin/fdisk -p x -k disk_partition
/etc/audit/rules.d/audit.rules(CentOS 7+),添加以下内容(重启auditd后生效):# 监控/etc/passwd文件
-w /etc/passwd -p wa -k passwd_change
# 监控/etc/shadow文件
-w /etc/shadow -p rwxa -k shadow_change
# 监控SSH配置文件
-w /etc/ssh/sshd_config -p warx -k sshd_config
# 监控所有用户执行的命令(通过bash记录)
-w /bin/bash -p x -k bash_exec
auditctl -R /etc/audit/rules.d/audit.rules重新加载。ausearch -m avc(查看SELinux拒绝事件)、ausearch -k passwd_change(查看passwd文件修改日志)。aureport -k(查看所有key的审计日志统计)、aureport -ts 09:00 -te 18:00(查看9:00-18:00期间的日志)。ausearch -ui 1000(查看UID为1000的用户操作日志)。必监控文件包括:/etc/passwd(用户信息)、/etc/shadow(密码哈希)、/etc/sudoers(sudo权限)、/etc/ssh/sshd_config(SSH配置)、/root/.bash_history(root用户命令历史)。
如/etc/(系统配置目录)、/bin/、/sbin/(系统命令目录)、/home/(用户家目录)。
确保审计日志仅管理员可访问:
chmod 640 /var/log/audit/audit.log
chown root:adm /var/log/audit/audit.log
chmod 640 /var/log/auth.log
chown root:adm /var/log/auth.log
将日志发送至远程日志服务器(如专用的ELK或Splunk服务器),避免本地日志被篡改,提高安全性。
通过以上配置,CentOS系统可实现从系统日志到细粒度操作的全面审计,满足安全合规需求。需注意的是,日志审计仅为安全体系的一部分,还需结合防火墙、入侵检测等工具,形成多层防御。