检查确认
- 我们以/data挂载点为例,看看挂载/卸载这个挂载点是否会产生审计日志。
# df -hP /data Filesystem Size Used Avail Use% Mounted on /dev/xvdf 976M 2.6M 907M 1% /data
- 手动卸载这个挂载点。
# 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"
配置审计规则以监控文件系统的挂载/卸载
现在让我们配置监控文件系统挂载/卸载所需的审计规则。
- 在/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
如何确定哪个用户或者系统进程正在卸载或者安装特定的挂载点?
挂载点的挂载和卸载可以在 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
- 如果软件包不是我们系统的一部分,我们可以继续安装它:
# yum install audit
- 确保审计守护进程正在运行。
我们将使用以下命令:
# 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