首页主机资讯CentOS Syslog日志审计功能详解

CentOS Syslog日志审计功能详解

时间2025-10-30 09:00:03发布访客分类主机资讯浏览1089
导读:CentOS Syslog日志审计功能详解 日志审计是系统安全管理的关键环节,通过记录、分析用户及系统行为,帮助管理员检测异常、满足合规要求(如等保)。在CentOS系统中,rsyslog(Syslog实现)与auditd(Linux审计框...

CentOS Syslog日志审计功能详解

日志审计是系统安全管理的关键环节,通过记录、分析用户及系统行为,帮助管理员检测异常、满足合规要求(如等保)。在CentOS系统中,rsyslog(Syslog实现)与auditd(Linux审计框架)是实现日志审计的核心工具,二者协同工作可覆盖从系统日志到细粒度操作审计的全场景需求。

一、日志审计的核心组件

1. rsyslog:系统日志收集与转发

rsyslog是CentOS默认的Syslog服务,负责收集系统各组件的日志(如内核、认证、服务日志),并将其存储到本地或转发至远程服务器。其核心功能包括日志分级(如infoerr)、分类(如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. 安装与启动

  • 安装auditdyum 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
centos sqlplus版本升级步骤 CentOS Syslog如何设置告警通知

游客 回复需填写必要信息