温馨提示×

CentOS环境下如何进行安全审计

小樊
37
2025-12-11 17:42:39
栏目: 智能运维

CentOS 安全审计实操指南

一 核心组件与基线

  • 启用并验证 auditd(Linux 审计框架):审计内核拦截系统调用,auditd 守护进程写入磁盘,日志默认位于 /var/log/audit/audit.log。在 CentOS 7/8 上安装并启动:
    • 安装:sudo yum -y install audit audit-libs
    • 启动与自启:sudo systemctl start auditd && sudo systemctl enable auditd
    • 验证:sudo systemctl status auditdsudo auditctl -l(查看规则)、sudo ausearch -i -k <key>(按关键字检索)、sudo aureport(生成审计报告)
  • 基线加固与合规:将预置规则集复制到 /etc/audit/rules.d/ 并重启加载,可快速覆盖关键场景(身份鉴别、网络、特权操作等)。常见模板:30-nispom.rules、71-networking.rules、pci-dss-v31.rules、stig.rules(路径随版本可能为 /usr/share/doc/audit[-version]/rules//usr/share/audit/sample-rules/)。

二 日志与审计规则配置

  • 守护进程配置 /etc/audit/auditd.conf(按需调整,保证容量与可用性):
    • log_file = /var/log/audit/audit.log
    • max_log_file = 100(单位 MB,示例值)
    • num_logs = 10
    • max_log_file_action = rotate
    • flush = incremental_async(兼顾性能与及时落盘)
  • 持久化规则目录 /etc/audit/rules.d/*.rules(系统启动/重启时自动合并到 /etc/audit/audit.rules)。
  • 常用规则示例(写入即生效;永久生效请放入 rules.d):
    • 监控关键文件变更(如 /etc/shadow、/etc/passwd、/etc/ssh/sshd_config
      • sudo auditctl -w /etc/shadow -p wa -k shadow-write
      • sudo auditctl -w /etc/passwd -p wa -k passwd-modify
      • sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd-config
    • 按系统调用审计敏感行为(示例:监控删除文件)
      • sudo auditctl -a always,exit -S unlink -S rmdir -k file-delete
    • 按用户审计(示例:对 auid=1000 的用户打开敏感目录的行为进行跟踪)
      • sudo auditctl -a always,exit -F arch=b64 -S openat -F auid=1000 -k user-open-sensitive
    • 规则管理要点
      • 查看/清空:sudo auditctl -lsudo auditctl -D
      • 永久化:将等效规则写入 /etc/audit/rules.d/audit.rules 或自定义 .rules 文件,然后 sudo systemctl restart auditd
      • 加载顺序:rules.d 下文件按字典序合并,建议以 数字前缀 控制顺序(如 10-、20-、30-)。

三 日志分析与报告

  • 检索与取证
    • 按文件:sudo ausearch -f /etc/passwd -i
    • 按关键字:sudo ausearch -i -k sshd-config
    • 按事件 ID:sudo ausearch -a <event_id> -i
    • 认证相关汇总:sudo aureport -au(成功/失败登录、来源、终端等)
  • 解读要点
    • 审计事件可能由多条记录组成(如 SYSCALL/CWD/PATH),共享同一时间戳与事件 ID,便于串联还原操作链。
    • 关键字段:type(事件类型)、syscall(系统调用号/名)、auid(原始登录用户 ID)、uid/euidcomm/exe(命令/可执行文件路径)、自定义 key(便于检索)。

四 合规与加固扩展

  • 合规规则集:复制所需模板到 /etc/audit/rules.d/ 并重启加载,例如
    • sudo cp /usr/share/doc/audit-*/rules/30-nispom.rules /etc/audit/rules.d/
    • sudo cp /usr/share/doc/audit-*/rules/71-networking.rules /etc/audit/rules.d/
    • sudo systemctl restart auditd
  • 主机加固与恶意软件巡检(定期执行并留存报告)
    • Lynis:系统安全审计与配置建议
      • sudo yum install -y lynis && sudo lynis audit system
    • Chkrootkit / Rkhunter:rootkit 检测
      • sudo yum install -y chkrootkit rkhunter && sudo chkrootkit && sudo rkhunter -c
    • ClamAV:反病毒引擎(更新病毒库后按需扫描)
      • sudo yum install -y clamav && sudo freshclam && sudo clamscan -r -i /path

五 运维与风险控制建议

  • 性能与噪声控制
    • 优先使用 文件/目录 watch(-w) 覆盖关键目标;对高噪声路径(如包含大量临时文件的目录)谨慎使用宽泛的系统调用规则,必要时按用户、时间窗或路径白名单收敛。
    • 合理设置 max_log_file / num_logs / flush,并配置 logrotate 或外部日志采集,避免磁盘被占满导致 auditd 暂停(如达到上限采取 rotate 而非 suspend)。
  • 集中化与告警
    • /var/log/audit/audit.log 与安全日志(如 /var/log/secure)通过 rsyslogsyslog-ng 集中到 SIEM/日志平台,结合规则实现实时告警(如多次认证失败、关键文件变更、特权命令执行)。
  • 变更与演练
    • 规则上线前在测试环境验证,变更留痕;定期做“红蓝对抗/取证演练”,验证审计覆盖与告警有效性。
  • 风险提示
    • 审计会产生额外 I/O 与存储开销;规则过宽会影响性能与可用性。生产环境建议分阶段启用、滚动评估并持续优化。

0