网站建设研究方法,做网站3年3万,wordpress图片显示缩略图,小蝌蚪xkdapp永久免费文章目录 使用场景安装auditd添加docker审计规则设置监控日志大小与定期清除查询 Docker 操作日志查看所有用户#xff0c;所有操作日志查看特定用户的 Docker 操作查看所有用户删除容器/镜像日志过滤特定时间范围内日志 使用场景
多人使用的服务器#xff0c;使用的docker … 文章目录 使用场景安装auditd添加docker审计规则设置监控日志大小与定期清除查询 Docker 操作日志查看所有用户所有操作日志查看特定用户的 Docker 操作查看所有用户删除容器/镜像日志过滤特定时间范围内日志 使用场景
多人使用的服务器使用的docker 容器或镜像被其他人删除需要找到删除的人
查找方法安装使用auditd工具并配置规则记录所有用户的docker操作
auditd 是 Linux 审计守护进程Audit Daemon用于记录系统活动和安全事件。它是 Linux 内核审计子系统的一部分帮助系统管理员跟踪关键系统事件、访问控制、用户活动等从而增强系统安全性和合规性。
主要功能
事件记录记录系统调用如文件访问、网络操作以及用户、进程和权限相关的活动。安全审计规则系统管理员可以定义规则指定要审计的事件比如监控特定文件或目录的访问。详细的审计日志审计事件被存储在 /var/log/audit/audit.log 文件中提供详细的信息如时间戳、用户、进程ID、操作类型、结果成功/失败等。实时监控可以使用工具如 ausearch 或 auditctl实时监控和查询审计日志。用户管理审计监控用户登录、登出、权限更改等敏感操作。文件完整性监控结合 auditd 和 audit rules可以监控重要文件的访问、修改或删除操作。
相关工具
auditctl管理和配置审计规则。ausearch搜索审计日志中的特定事件。aureport生成审计报告的工具。aulast显示用户登录和登出信息。autrace用于跟踪特定命令的审计事件。
常见用途
合规性审计确保系统符合安全标准如 PCI DSS、HIPAA 等。入侵检测监控可疑活动如未经授权的访问或权限提升。系统故障排除调查安全事故或操作系统问题
配置文件
主配置文件/etc/audit/auditd.conf规则配置/etc/audit/rules.d/
安装auditd
sudo apt-get install auditd
sudo systemctl enable auditd
sudo systemctl start auditd添加docker审计规则
Docker 的常用二进制文件路径包括
Docker CLI/usr/bin/dockerDocker 服务/usr/bin/dockerd
编辑规则文件
sudo vi /etc/audit/rules.d/audit.rules文件最后添加以下内容
# 监控 Docker 命令执行
-a always,exit -F path/usr/bin/docker -F permx -F keydocker_actions# 监控 Docker 配置文件
-w /etc/docker/ -p wa -k docker_config监控 Docker 命令执行解释
-a always,exit在系统调用退出时触发规则。-F path/usr/bin/docker指定要监控的路径。-F permx监控执行权限执行 Docker 命令。-F keydocker_actions为此规则设置一个键值方便日志查询。
监控 Docker 配置文件解释
-w监控指定文件或目录。-p wa监控写入和属性更改。-k docker_config设置键值。
重新加载审计规则
sudo augenrules --load设置监控日志大小与定期清除
避免日志记录大量操作文件大小过大可以设置日志轮替Log Rotation 默认日志存储位置/var/log/audit/audit.log 编辑配置文件
sudo vi /etc/audit/auditd.conf查看并修改以下配置
max_log_file 100 # 每个日志文件最大100MB
num_logs 5 # 保留5个旧日志文件
max_log_file_action ROTATE # 超过大小时轮替效果
当日志文件达到 100MB 时auditd 会创建一个新的日志文件。系统最多保留 5 个旧日志文件audit.log.1, audit.log.2, …超过的将被删除。
重新加载配置
sudo service auditd reload
# 或者
sudo systemctl restart auditd查询 Docker 操作日志
查看所有用户所有操作日志
sudo ausearch -k docker_actions输出结果中的单个样例如下
----
time-Wed Nov 01 18:59:24 2024 # 命令执行时间
typePROCTITLE msgaudit(1732695555.363:1213): proctitle646F636B6572007073002D61
typePATH msgaudit(1732695555.363:1213): item1 name/lib64/ld-linux-x86-64.so.2 inode217841670 dev08:12 mode0100755 ouid0 ogid0 rdev00:00 nametypeNORMAL cap_fp0 cap_fi0 cap_fe0 cap_fver0 cap_frootid0
typePATH msgaudit(1732695555.363:1213): item0 name/usr/bin/docker inode79708287 dev08:12 mode0100755 ouid0 ogid0 rdev00:00 nametypeNORMAL cap_fp0 cap_fi0 cap_fe0 cap_fver0 cap_frootid0
typeCWD msgaudit(1732695555.363:1213): cwd/home/haha/test # 在哪个目录执行的命令
typeEXECVE msgaudit(1732695555.363:1213): argc3 a0docker a1ps a2-a # 执行的具体命令
# 执行命令的用户
typeSYSCALL msgaudit(1732695555.363:1213): archc000003e syscall59 successyes exit0 a056353bdf70c0 a156353bec7ba0 a256353be1f680 a38 items2 ppid78046 pid78448 auid1014 uid1014 gid1014 euid1014 suid1014 fsuid1014 egid1014 sgid1014 fsgid1014 ttypts24 ses15298 commdocker exe/usr/bin/docker keydocker_actions
----在 audit.log 文件中每条审计记录都会包含用户相关信息比如
uid用户IDauid审计用户ID通常是登录用户的ID即使提权后也保持不变euid有效用户ID通常是执行操作时的用户ses会话ID
比如在上面的输出中uid1014即为用于ID。为了知道该用户ID对应的用户名使用如下命令即可
cat /etc/group | grep 1014查看特定用户的 Docker 操作
sudo ausearch -k docker_actions -ui 用户ID查看所有用户删除容器/镜像日志
sudo ausearch -k docker_actions | grep -E a1rm|a1rmi -A 1命令解释
-E ‘docker.*(rm|rmi)’正则表达式匹配包含 docker 和 rm 或 rmi 的行。-A 1可选参数表示包括匹配行和紧接的下一行。由于检索到的日志包含大量内容操作用户id出现在匹配行的下一行。因此只需要显示一行
过滤特定时间范围内日志
sudo ausearch -k docker_actions -ts yesterday -te now