手把手教你配置Linux auditd:从监控SSH登录到追踪敏感文件访问(附完整规则)

张开发
2026/4/20 11:23:10 15 分钟阅读

分享文章

手把手教你配置Linux auditd:从监控SSH登录到追踪敏感文件访问(附完整规则)
企业级Linux审计实战auditd规则配置与安全事件追踪指南当服务器遭遇异常登录或敏感文件被篡改时运维团队往往需要快速定位问题源头。auditd作为Linux内核级别的审计工具能够精确记录系统级事件但90%的用户仅停留在基础配置阶段未能发挥其真正的安全监控价值。本文将拆解auditd在真实安全运维中的高阶应用提供可直接落地的规则模板与排查方法论。1. 审计系统部署与基础校验在CentOS 8或Ubuntu 20.04 LTS环境中auditd通常已预装但未激活关键监控。通过以下命令验证安装状态并启动服务# 检查服务状态 sudo systemctl status auditd # 启用开机自启 sudo systemctl enable --now auditd常见部署问题排查若出现auditd.service not found错误需通过dnf install auditRHEL系或apt install auditd audispd-pluginsDebian系补装服务启动失败时检查SELinux上下文restorecon -Rv /etc/audit/基础配置验证应包含三项核心检查内核审计模块加载lsmod | grep audit规则存储目录权限stat -c %a /etc/audit/rules.d/日志文件轮转配置grep max_log_file /etc/audit/auditd.conf关键提示生产环境建议将日志存储到独立分区避免因审计日志暴增导致根分区写满2. 四维监控规则配置策略2.1 身份认证监控矩阵针对SSH暴力破解等常见攻击需配置立体化认证审计# 监控SSH守护进程执行 auditctl -a always,exit -F archb64 -S execve -F path/usr/sbin/sshd -k sshd_exec # 捕获PAM配置变更 auditctl -w /etc/pam.d/ -p wa -k pam_tamper # 记录所有sudo提权操作 auditctl -a always,exit -F archb64 -S execve -F path/usr/bin/sudo -k privilege_escalation对应规则生效后可通过时间窗口检索可疑登录ausearch -k sshd_exec -ts 09:00:00 -te 18:00:00 | aureport -i2.2 敏感文件监控方案文件监控规则需要平衡安全性与性能开销。推荐分级监控策略监控等级路径示例推荐权限告警场景致命级/etc/passwdrwxa用户账户异常变更高危级/usr/bin/systemctlx服务管理命令执行普通级/var/www/html/configwa配置文件未授权修改实施命令示例# 监控关键系统二进制文件 auditctl -w /usr/bin/passwd -p x -k password_change # 递归监控Web配置目录 auditctl -w /etc/nginx/ -p rwa -k web_config_access2.3 进程执行追踪技术针对攻击者常用的横向移动技术需特别关注以下进程事件反弹Shell检测auditctl -a always,exit -F archb64 -S connect -k suspicious_network可疑解释器活动auditctl -a always,exit -F archb64 -S execve -F exe/usr/bin/python -k py_script临时文件执行auditctl -a always,exit -F archb64 -S execve -F dir/tmp -k tmp_exec2.4 规则持久化与优化临时规则重启后会丢失需通过以下步骤固化配置备份现有规则cp /etc/audit/rules.d/audit.rules /etc/audit/rules.d/audit.rules.bak_$(date %F)将生效规则导入永久配置auditctl -l /etc/audit/rules.d/99-active.rules加载新规则集augenrules --load systemctl restart auditd性能优化建议对高频事件如每秒超100次的文件访问应改用inotify机制避免auditd日志洪泛3. 日志分析与事件调查实战3.1 结构化查询方法掌握ausearch的过滤语法可提升调查效率# 查询特定用户近24小时的文件修改 ausearch -k file_modify -ua 1001 -ts yesterday -i # 统计所有失败的认证尝试 ausearch -m USER_AUTH -sv no -i | aureport -au --summary常用过滤参数组合场景命令示例时间范围检索-ts 2024-01-01 -te 2024-01-02按进程ID追踪-p 1234关键系统调用监控-sc open,openat,execve结果状态筛选-sv yes/no3.2 自动化监控脚本创建实时告警脚本保存为/usr/local/bin/audit-alert.sh#!/bin/bash tail -n0 -F /var/log/audit/audit.log | while read line; do if echo $line | grep -qE typeEXECVE.*proctitle.*(wget|curl|nc); then echo [$(date)] Suspicious download detected: $line /var/log/audit/alerts.log # 可扩展邮件/Slack通知 fi done通过systemd服务实现开机自启# /etc/systemd/system/audit-alert.service [Unit] DescriptionAuditd Real-time Alert Afterauditd.service [Service] ExecStart/usr/local/bin/audit-alert.sh Restartalways [Install] WantedBymulti-user.target4. 企业级运维增强方案4.1 日志集中化管理架构分散的审计日志不利于安全分析推荐采用以下架构[Agent节点] -- [Logstash解析] -- [Elasticsearch存储] -- [SIEM告警引擎]关键配置步骤安装Filebeat收集日志sudo apt install filebeat配置/etc/filebeat/filebeat.ymlfilebeat.inputs: - type: log paths: - /var/log/audit/audit.log fields: type: auditd output.elasticsearch: hosts: [es01:9200]4.2 合规性检查自动化基于OpenSCAP实现等保合规自动检测# 生成审计配置检测报告 oscap xccdf eval --profile pci-dss \ --results audit_compliance.xml \ /usr/share/xml/scap/ssg/content/ssg-rhel8-ds.xml报告重点检查项应包括审计日志保留周期≥180天关键系统调用监控覆盖率特权命令执行记录完整性4.3 时间同步关键配置审计日志的有效性依赖精确的时间戳建议部署冗余NTP源# Chrony多源配置示例 cat EOF /etc/chrony.conf server ntp1.tencent.com iburst server ntp2.aliyun.com iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync EOF验证时间同步状态chronyc sources -v chronyc tracking在企业内网中应配置至少三台内部时间服务器形成层级架构避免直接依赖外网NTP导致的时间漂移风险。

更多文章