CentOS Syslog日志审计功能详解
CentOS Syslog日志审计功能详解
日志审计是系统安全管理的关键环节,通过记录、分析用户及系统行为,帮助管理员检测异常、满足合规要求(如等保)。在CentOS系统中,rsyslog(Syslog实现)与auditd(Linux审计框架)是实现日志审计的核心工具,二者协同工作可覆盖从系统日志到细粒度操作审计的全场景需求。
一、日志审计的核心组件
1. rsyslog:系统日志收集与转发
rsyslog是CentOS默认的Syslog服务,负责收集系统各组件的日志(如内核、认证、服务日志),并将其存储到本地或转发至远程服务器。其核心功能包括日志分级(如info、err)、分类(如authpriv用于认证日志)及远程传输(通过UDP/TCP)。
2. auditd:细粒度审计框架
auditd是Linux内核级审计系统,可监控文件访问、命令执行、用户登录等细粒度操作,生成结构化日志(存储于/var/log/audit/audit.log)。相比rsyslog,auditd能记录操作结果、进程ID、用户ID等深度信息,更适合安全审计。
二、rsyslog日志审计配置
rsyslog主要收集系统常规日志(如认证、服务),配置重点在于分类存储与远程转发,以满足审计溯源需求。
1. 基础配置步骤
- 确认rsyslog安装:CentOS默认安装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。
2. 日志轮转设置(避免日志过大)
通过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细粒度审计配置
auditd用于监控关键系统操作(如文件修改、命令执行),生成可追溯的审计日志,是日志审计的核心。
1. 安装与启动
- 安装auditd:
yum install -y audit(CentOS默认仓库包含)。 - 启动服务:
systemctl start auditd,并设置开机自启:systemctl enable auditd。 - 验证状态:
systemctl status auditd(应显示“active (running)”)。
2. 添加审计规则
审计规则定义了需要监控的对象(文件、目录、命令),常用命令如下:
- 临时规则(重启失效):
# 监控/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重新加载。
3. 日志查看与分析
- 查看实时日志:
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的用户操作日志)。
四、日志审计的最佳实践
1. 关键文件监控
必监控文件包括:/etc/passwd(用户信息)、/etc/shadow(密码哈希)、/etc/sudoers(sudo权限)、/etc/ssh/sshd_config(SSH配置)、/root/.bash_history(root用户命令历史)。
2. 关键目录监控
如/etc/(系统配置目录)、/bin/、/sbin/(系统命令目录)、/home/(用户家目录)。
3. 日志权限管理
确保审计日志仅管理员可访问:
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
4. 远程日志转发
将日志发送至远程日志服务器(如专用的ELK或Splunk服务器),避免本地日志被篡改,提高安全性。
通过以上配置,CentOS系统可实现从系统日志到细粒度操作的全面审计,满足安全合规需求。需注意的是,日志审计仅为安全体系的一部分,还需结合防火墙、入侵检测等工具,形成多层防御。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Syslog日志审计功能详解
本文地址: https://pptw.com/jishu/738550.html
