CentOS 7的audit功能具体该如何开启配置并查看日志?

在当今复杂的网络环境中,系统安全是每一位Linux管理员不可忽视的核心议题,CentOS 7作为一款广泛使用的企业级操作系统,内置了强大的审计功能,它如同飞机的“黑匣子”,能够详细记录系统中发生的各类事件,为安全审计、合规性检查和故障排查提供了坚实的数据基础,本文将深入探讨CentOS 7的audit功能,从其核心组件、规则配置到日志分析,全面展示如何利用这一工具来加固系统安全。

CentOS 7的audit功能具体该如何开启配置并查看日志?

审计系统的核心组件

CentOS 7的审计功能主要由auditd包提供,它包含了一组协同工作的工具,共同构成了完整的审计体系,理解这些组件的功能是有效使用审计功能的第一步。

组件名称 功能描述
auditd 审计守护进程,负责接收内核传递的审计事件,并将其写入日志文件,它是整个审计系统的核心。
auditctl 审计控制工具,用于与内核的审计子系统进行交互,管理员可以使用它来添加、删除或查看审计规则,并控制审计系统的状态。
ausearch 审计日志查询工具,允许管理员根据各种条件(如时间、用户、事件类型、文件名等)在审计日志中搜索特定事件。
aureport 审计报告生成工具,能够根据审计日志生成汇总性的报告,例如用户登录报告、文件访问报告、系统调用报告等,便于快速了解系统活动概况。
audispd 审计事件分发器,可以将审计事件实时发送给其他应用程序进行处理,例如与SIEM(安全信息和事件管理)系统集成。

审计日志默认存储在/var/log/audit/audit.log文件中,该文件以二进制格式存储,不能直接用catvim等工具查看,必须使用ausearchaureport等专用工具进行解析。

配置与管理审计规则

审计规则是定义“记录什么”的关键,规则可以分为两类:临时规则和永久规则,临时规则通过auditctl命令直接添加,系统重启后失效;永久规则则写入配置文件,重启后自动加载。

安装与启动

确保auditd服务已安装并运行。

# 安装auditd包(通常默认已安装)
sudo yum install audit
# 启动服务并设置开机自启
sudo systemctl start auditd
sudo systemctl enable auditd

定义审计规则

审计规则主要分为三类:控制规则、文件系统监控规则和系统调用规则。

  1. 文件系统监控规则
    这是最常用的一类规则,用于监控特定文件或目录的访问、修改、执行等操作。

    • 监控/etc/passwd文件的写操作和属性变更:这是监控敏感文件变更的典型例子。

      # -w 表示监控文件或目录,-p 指定权限,-k 添加一个便于搜索的“键”
      sudo auditctl -w /etc/passwd -p wa -k passwd_changes
      • -w /etc/passwd: 监控路径。
      • -p wa: 监控权限,w代表写,a代表属性变更。
      • -k passwd_changes: 为这条规则设置一个关键字,方便后续在日志中快速定位。
    • 监控/var/www/html/目录下的所有删除操作:用于保护Web目录不被恶意篡改。

      sudo auditctl -w /var/www/html/ -p r -k web_access
      sudo auditctl -w /var/www/html/ -p a -k web_attr_change
      sudo auditctl -w /var/www/html/ -p w -k web_write
      sudo auditctl -w /var/www/html/ -p x -k web_execute
  2. 系统调用监控规则
    这类规则更为底层,可以监控特定进程或用户执行的系统调用。

    • 监控所有用户对chmodchown系统调用的使用
      # -a always,exit 表示始终在系统调用退出时记录
      # -F arch=b64 指定架构为64位
      # -S chmod, chown 指定要监控的系统调用
      sudo auditctl -a always,exit -F arch=b64 -S chmod,chown -k perm_changes
  3. 永久规则
    为了让规则在重启后依然生效,需要将它们写入/etc/audit/rules.d/目录下以.rules结尾的文件中,创建/etc/audit/rules.d/my_audit.rules文件,并将上述规则写入其中。

    # 编辑规则文件
    sudo vi /etc/audit/rules.d/my_audit.rules

    示例:

    CentOS 7的audit功能具体该如何开启配置并查看日志?

    -w /etc/passwd -p wa -k passwd_changes
    -w /var/www/html/ -p wa -k web_dir_changes
    -a always,exit -F arch=b64 -S chmod,chown -k perm_changes

    写入后,使用augenrules命令加载所有规则文件中的规则,并重启auditd服务。

    sudo augenrules --load
    sudo systemctl restart auditd

日志查询与分析

配置好规则后,系统会根据规则记录事件,接下来就是如何从海量的日志中提取有价值的信息。

使用ausearch进行查询

ausearch是分析日志的利器,以下是一些常用示例:

  • 根据关键字查询:查找所有与passwd_changes相关的事件。

    ausearch -k passwd_changes
  • 根据用户ID查询:查询UID为1000的用户在最近一小时内的所有活动。

    ausearch -ui 1000 -ts recent
  • 根据文件名查询:查询所有与/etc/shadow文件相关的事件。

    ausearch -f /etc/shadow
  • 查询失败的事件:查找所有失败的登录尝试。

    ausearch -m LOGIN -ts recent -sv no

使用aureport生成报告

aureport可以生成更直观的汇总报告。

  • 生成登录摘要报告

    aureport -l
  • 生成文件访问摘要报告

    aureport -f
  • 生成最近24小时的认证事件报告

    CentOS 7的audit功能具体该如何开启配置并查看日志?

    aureport -au -ts yesterday

最佳实践与注意事项

  1. 日志管理:审计日志会占用大量磁盘空间,在/etc/audit/auditd.conf配置文件中,可以设置max_log_file(单个日志文件最大大小)、num_logs(保留的日志文件数量)和space_left_action(磁盘空间不足时的操作,如发送邮件或暂停审计)。
  2. 规则粒度:审计规则并非越多越好,过于细粒度的规则(如监控所有open系统调用)会产生海量日志,影响系统性能,并增加分析难度,应聚焦于关键文件、目录和敏感操作。
  3. 日志安全:审计日志本身是攻击者的目标,应确保/var/log/audit/目录的权限严格,只允许root用户访问,对于高安全要求的系统,建议将审计日志实时转发到远程、安全的日志服务器上,防止本地日志被篡改或删除。

相关问答FAQs

问题1:我的审计日志文件(audit.log)增长太快,占满了磁盘空间,该怎么办?

解答: 这是一个常见问题,可以通过调整auditd的配置来解决,编辑主配置文件/etc/audit/auditd.conf,你可以调整以下几个关键参数:

  • max_log_file: 设置单个日志文件的最大容量,max_log_file = 50 (MB)。
  • num_logs: 设置轮转后保留的日志文件数量,num_logs = 5
  • space_left_action: 当磁盘剩余空间低于某个阈值(由space_left定义)时执行的动作,可以设置为syslog(发送系统日志)、email(发送邮件,需配置)或suspend(暂停审计,避免磁盘写满)。
  • admin_space_left_action: 当空间进一步减少时,可以设置为single(切换到单用户模式)或halt(关机),以保护系统。

修改配置后,执行 sudo systemctl restart auditd 使其生效,定期审查和优化审计规则,移除不必要的监控项,也是控制日志量的根本方法。

问题2:使用-w监控文件和使用-a监控系统调用有什么本质区别?我应该如何选择?

解答: 两者的主要区别在于监控的抽象层次和灵活性。

  • :这是一个高层次、更直观的监控方式,你告诉auditd“关注这个文件/目录”,它会自动关联到所有影响该文件/目录的系统调用(如open, write, unlink, chmod等),它简单易用,非常适合监控特定敏感文件(如/etc/passwd)或重要目录(如/var/www/html)的访问和变更。

  • :这是一个低层次、更精细的监控方式,你直接指定要监控的系统调用(如chmod),这种方式更灵活,因为它可以附加更多过滤条件,例如只监控特定用户(-F uid=0)、特定进程(-F exe=/usr/bin/sudo)或特定返回值(-F success=-1表示失败)的系统调用。

如何选择?

  • 当你的目标是保护特定数据文件或目录时,优先使用-w,它更直接,配置简单。
  • 当你的目标是追踪某种特定的系统行为,而不管它影响了哪个文件时,应使用-a,你想监控所有由root用户执行的chmod操作,或者追踪所有失败的fork系统调用,这时-a是唯一的选择。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 18:17
下一篇 2025-10-04 18:19

相关推荐

  • 如何正确配置服务器网站权限以确保网站解析无误?

    服务器网站权限配置和解析设置是确保网站安全和正确运行的关键步骤。这包括设置文件权限、用户账号权限、目录保护以及域名系统(DNS)解析,确保请求被正确地路由到指定的服务器上。

    2024-08-05
    0014
  • 防火墙是软件吗_什么是云防火墙

    防火墙可以是软件、硬件或两者的结合。云防火墙是部署在云端的防火墙服务,用于保护网络不受未授权访问。它基于云计算技术,提供可扩展且集中化的网络安全管理。

    2024-07-15
    007
  • 如何下载并正确填写福建金融公司网站建设备案所需的材料模板?

    福建金融公司在进行网站建设时,需下载并填写备案材料模板。这一步骤是符合中国互联网信息管理政策的要求,确保网站合法运营。完成备案后,公司网站才能正式对外提供服务。

    2024-07-25
    0018
  • ftp服务器内外网判断_带外网络流出流入速率是什么含义?

    在FTP服务器的语境中,带外网络流出流入速率指的是**物理服务器层面(非虚拟化层面)的网络数据传输速率**,这是与监控弹性云服务器(带内)相对的一个概念。,,所谓“带外”是指在虚拟化环境中,监控和管理的是物理服务器而非虚拟机。带外网络流出流入速率反映的是物理服务器的网络使用情况,这对于了解整个服务器的网络负载和健康状况是非常重要的指标。当谈及FTP服务器时,流入速率是指数据进入服务器的速率,而流出速率则是数据离开服务器的速率。这对于确保网络资源得到合理分配,避免因网络拥堵造成数据传输延迟或失败至关重要。针对FTP服务器,通常需要开放特定的端口以便进行文件传输。默认情况下,FTP使用端口21作为命令端口,而数据端口通常是20。为了确保内外网的数据可以顺畅传输,需要在路由器或相关网络设备上对这些端口进行映射,使得外网用户能够通过这些端口访问到内网的FTP服务。,,了解FTP服务器在内外网通信中带外网络流出流入速率的概念,对于维护人员来说,不仅可以更好地监控网络状态,还能在出现问题时快速定位问题所在,采取相应措施保障数据传输的稳定性。

    2024-07-10
    006

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信