auditd日志分析方法

本文介绍了如何分析auditd日志,包括了解auditd原理,分析已知和未知bash进程ID的情况,以及进阶的统计方法。通过日志可以追踪文件操作,确定用户执行的动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

auditd是监听目录下的文件操作

你可以通过auditd配置你要监听的目录,之后对这个目录下的操作会记录到autitd的日志中

这里先不讲如何去配置auditd,这里讲如何去分析auditd日志

auditd原理简介

  1. 首先我们创建文件也好,删除文件也好,都是由进程帮我们去执行的

  2. linux内核提供接口,可以查询进程对文件的操作

  3. autitd记录的就是文件操作时涉及到的数据记录下来

所以只要分析日志就可以判断出是谁对哪个文件进行了什么操作

本文只分享分析方法,这里就讲得粗糙些

怎么去分析

这里给出两个例子,一个是知道登录时的bash进程id,另一个是不知道

在这两种情况下如何去分析日志

为什么要知道bash进程id?

  • 因为登录服务器后,输入的命令都是通过这个bash进程传递linux去执行
  • 也就是说你登录服务器后所有运行的命令都是bash这个进程的子进程
  • 所以只要分析bash这个进程的子进程进行了什么样的操作就可以知道用户执行了什么操作

首先确认下配置

确认下auditd的配置,查以看出他监控了/opt/context/EPG目录

# 新建一个规则
auditctl -w /opt/context/EPG -p wa -k watchdata

# 查看我们新建的规则
auditctl -l
-w /opt/context/EPG -p wa -k watchdata

没什么特殊配置,就是监听了/opt/context/EPG这个目录,并配置了key为watchdata(方便我们查看日志)

知道bash进程id

我们先登录服务器

可以看到日志/var/log/audit/audit.log中记录了以下信息

type=CRYPTO_KEY_USER msg=audit(1614316640.869:11712): pid=16275 uid=0 auid=0 ses=1249 msg='op=destroy kind=server fp=SHA256:f3:c7:dd:6e:c4:cf:6e:ac:b6:ab:ea:ad:c4:36:b8:26:a9:bd:b2:69:27:8d:44:8b:5c:9e:e8:ab:4d:e6:1e:da direction=? spid=16275 suid=0  exe="/usr/sbin/sshd" hostname=fcg-1 addr=? terminal=pts/3 res=success'UID="root" AUID="root" SUID="root"
type=CRYPTO_KEY_USER msg=audit(1614316640.869:11713): pid=16275 uid=0 auid=0 ses=1249 msg='op=destroy kind=server fp=SHA256:62:ed:84:c4:f5:a1:ac:cd:eb:fa:ca:68:81:87:21:9e:fe:e4:ff:92:e3:f5:fa:53:4f:3e:38:58:a2:74:a1:91 direction=? spid=16275 suid=0  exe="/usr/sbin/sshd" hostname=fcg-1 addr=? terminal=pts/3 res=success'UID="root" AUID="
<think>好的,我现在要解决auditd启动缓慢的问题。首先,我需要了解auditd是什么以及它在系统中的角色。根据引用[2],Systemd是系统启动和管理的解决方案,而auditd作为守护进程,负责系统的审计功能。如果启动慢,可能是配置问题或依赖服务延迟。 用户提到之前尝试过修改auditd.conf文件,比如注释掉max_log_file参数并重启服务,如引用[1]所述。这可能解决了某些配置错误,但启动慢的问题依然存在。我需要考虑其他可能的原因。 首先,检查auditd的启动日志,使用journalctl -u auditd.service查看是否有错误或警告信息。如果有日志文件过大或权限问题,可能导致启动延迟。引用[4]提到审计规则配置,如果规则过多或复杂,可能增加启动时间。检查/etc/audit/rules.d/中的规则,适当简化或优化。 另外,Systemd的服务依赖关系可能影响启动时间。查看auditd的unit文件,确认是否有不必要的依赖或需要调整的启动顺序。使用systemctl edit auditd.service覆盖配置,添加[Service]段中的TimeoutStartSec参数,增加启动超时时间,避免因超时导致的失败。 还有可能是磁盘I/O慢,尤其是如果审计日志存储在慢速磁盘上。考虑将日志目录挂载到更快的存储设备,或调整日志写入策略。检查auditd.conf中的flush参数,设置为sync或data可能会影响性能,改为incremental或none可能提升速度。 此外,检查系统资源是否充足,如内存不足可能导致服务启动缓慢。使用dmesg或top查看启动时的资源使用情况。更新auditd到最新版本也可能修复已知的性能问题。 最后,参考引用[3]中关于Ubuntu服务管理的建议,确保系统启动项优化,禁用不必要的服务,减少auditd启动时的竞争资源。</think>### 解决方案:auditd 启动缓慢的优化方法 #### 1. 检查审计规则复杂度 审计规则过多或匹配路径过广会导致初始化耗时: ```bash # 查看当前生效的审计规则 sudo auditctl -l # 精简规则文件(路径:/etc/audit/rules.d/audit.rules) sudo vim /etc/audit/rules.d/audit.rules ``` 建议使用`-F`参数优化规则过滤条件,避免使用通配符路径监控[^4]。 #### 2. 调整日志存储策略 修改`/etc/audit/auditd.conf`配置文件: ```ini max_log_file_action = rotate # 避免日志文件无限增长 num_logs = 5 # 保留5个历史日志 flush = incremental # 降低写入频率(原默认sync) ``` 调整后执行`service auditd restart`重启服务[^1]。 #### 3. 优化systemd单元配置 创建服务覆盖配置: ```bash sudo systemctl edit auditd.service ``` 添加以下内容: ```ini [Unit] After=systemd-tmpfiles-setup.service # 明确依赖关系 [Service] TimeoutStartSec=30s # 延长超时阈值 ExecStartPre=/bin/sleep 3 # 延迟启动(可选) ``` #### 4. 检查硬件性能瓶颈 使用`iotop`监控启动时的磁盘I/O: ```bash sudo iotop -oP ``` 若磁盘负载过高,建议将审计日志存储到独立SSD或RAM磁盘。 #### 5. 禁用冗余内核审计模块 检查加载的内核模块: ```bash lsmod | grep audit ``` 若存在`audit_backlog_limit`参数设置过低(默认64),可调整: ```bash echo 1024 > /sys/module/audit/parameters/backlog_limit ``` ### 验证方法 通过systemd分析启动耗时: ```bash systemd-analyze blame | grep auditd journalctl -u auditd.service --since "5 minutes ago" ``` ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值