检查确认

  1. 我们以/data挂载点为例,看看挂载/卸载这个挂载点是否会产生审计日志。
# df -hP /data
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdf       976M  2.6M  907M   1% /data
  1. 手动卸载这个挂载点。
# umount /data

监控/var/log/audit/audit.log,寻找与下面类似的消息。
uid= 和 gid= 部分以及审计日志的 pid= 部分可以帮助确定执行命令的进程或者用户:

# tailf /var/log/audit/audit.log
...
type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"
type=CWD msg=audit(1529223527.639:881):  cwd="/root"

如果服务器中有很多事情要审核,那么通过 /var/log/audit/audit.log 可能会让人不知所措。
相反,我们可以使用命令“ausearch”和规则中定义的键来过滤掉仅与挂载和卸载相关的日志。
例如:

# ausearch -k mount_umount
---
time->Sun Jun 17 08:18:47 2018
type=PROCTITLE msg=audit(1529223527.639:881): proctitle=756D6F756E74002F64617461
type=PATH msg=audit(1529223527.639:881): item=0 name="/data" inode=2 dev=ca:50 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:unlabeled_t:s0 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529223527.639:881):  cwd="/root"
type=SYSCALL msg=audit(1529223527.639:881): arch=c000003e syscall=166 success=yes exit=0 a0=55a5863d3880 a1=0 a2=1 a3=7ffe52c22320 items=1 ppid=2930 pid=3335 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="umount" exe="/usr/bin/umount" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="mount_umount"
https://onitroad.com 更多教程

配置审计规则以监控文件系统的挂载/卸载

现在让我们配置监控文件系统挂载/卸载所需的审计规则。

  1. 在/etc/audit/rules.d/audit.rules文件中添加如下规则审计挂载和卸载操作。
    注意 umount SYCALL 的名称是 umount2.
# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b64 -S mount,umount2 -k mount_umount

这里,
-a 将规则添加到带有操作的列表末尾。

always,exit 是使用 -a 选项指定的操作。

-S 代表 SYSCALL(在 uor case mount 和 umount2 中)
arch=b64 指定 64 位架构的规则。

2.用“service”命令重启auditd服务:

# service auditd restart
Stopping logging:                                          [  OK  ]
Redirecting start to /bin/systemctl start auditd.service
如何在 CentOS/RHEL 6,7 上使用 Auditd 监控挂载点的挂载/卸载

如何确定哪个用户或者系统进程正在卸载或者安装特定的挂载点?

挂载点的挂载和卸载可以在 auditd 的帮助下进行监控。
auditd 是 Linux 审计系统的用户空间组件。
这意味着系统用户将能够运行 auditd 来为 Linux 系统的审计功能配置规则和警报。

auditd 最好的事情之一是它与内核紧密集成,因此它使我们能够监视几乎所有我们想要的东西,真的。
默认情况下,没有配置任何规则。
我们需要在 /etc/audit/rules.d/audit.rules 配置文件中写入我们的规则,该文件将被读取并应用相应的审计操作。

安装auditd

1.auditd包是RHEL/CentOS 7系统默认安装的一部分。
我们可以使用以下命令进行验证:

# rpm -qa | grep audit
audit-libs-2.8.1-3.el7.x86_64
audit-libs-python-2.8.1-3.el7.x86_64
audit-2.8.1-3.el7.x86_64
  1. 如果软件包不是我们系统的一部分,我们可以继续安装它:
# yum install audit
  1. 确保审计守护进程正在运行。
    我们将使用以下命令:
# systemctl status auditd

   Active: active (running) since Sun 2018-06-17 06:56:06 UTC; 2min 37s ago

在 CentOS/RHEL 6 的情况下,我们可以使用 service 命令来检查 auditd 服务的状态:

# service auditd status
日期:2020-09-17 00:13:43 来源:oir作者:oir