【51CTO.com快译】借助auditd,你可以更轻松地监控Linux服务器上的事件。
Linux Auditing System是便于系统管理员为数据中心服务器上的几乎每个操作创建日志规则的一种好方法。使用该系统意味着可以通过日志文件,跟踪事件、记录事件,甚至检测滥用或未经授权的活动。审查守护程序(auditd)让你可以选择监控服务器上的哪些操作(而不是监控所有操作),不会干扰标准的日志工具(比如syslog)。
auditd方面要注意的一个地方是,它实际上没有为系统添加任何额外的安全性。相反,它为你提供了跟踪服务器上出现的任何违规的方法,以便可以针对滥用行为采取操作。
有了该工具,管理员可以通过命令行创建规则,监控众多系统和服务。auditd在内核层面运行,因此你可以访问所需的任何服务。auditd系统适用于大多数Linux发行版,但我将在Ubuntu Server 18.04上演示其用法。
你需要什么?
你只需要Linux服务器(或桌面版,如果你愿意)以及拥有sudo权限的用户帐户。这些准备到位后,不妨看看auditd是如何工作的。
安装
auditd很可能已经安装在了你的计算机上。要是未安装,可以使用该命令安装它:
- sudo apt-get install auditd -y
安装完毕后,确保使用以下命令来启动并启用系统:
- sudo systemctl start auditd
- sudo systemctl enable auditd
配置auditd
auditd的配置在单个文件中处理(而规则在一个完全独立的文件中处理)。虽然默认值足以满足大部分要求,但你可以通过执行该命令来配置系统:
- sudo nano /etc/audit/audit.conf
在该文件中,你可能需要配置以下条目:
- 日志文件的位置在log_file = /var/log/audit/audit.log这一行中配置。
- 要在服务器上保留的日志数量在num_logs = 5这个条目中配置。
- 在max_log_file = 8这一行配置***日志文件大小(以MB为单位)。
如果你对该配置进行了任何更改,需要使用该命令重启auditd:
- sudo systemctl restart auditd
创建规则
要做的***件事是确保你从干净的状态开始入手。执行命令:
- sudo auditctl -l
上述命令应显示没有规则(图A)。
图A:我们为auditd确保干净的状态
不妨创建一个规则,监控/etc/passwd和/etc/shadow是否有任何变化。我们想要创建规则,以便监控某个特定路径,并观察该文件的写入权限属性有无更改。换句话说,如果恶意用户更改了passwd文件和shadow文件的写入权限,将被记入日志。为此,我们将执行命令:
- sudo nano /etc/audit/rules.d/audit.rules
在该文件的底部,添加以下两行:
- -w /etc/shadow -p wa -k shadow
- -w /etc/passwd -p wa -k passwd
对上述行分解如下:
- -w是要关注的路径。
- -p是要监控的权限。
- -k是规则的键名。
至于权限,它有点类似标准Linux,增加了一项:
- r -读取
- w-写入
- x-执行
- a-文件属性(所有权或权限)的变化
在本例中,我们想查看文件的写入权限(w),看看属性(a)有无任何变化,因此我们的权限将是wa。
一旦我们添加了两个新规则,保存并关闭文件,然后使用该命令重启auditd:
sudo systemctl restart auditd
你现在应该能够通过执行该命令来查看列出的新规则(图B):
- sudo auditctl -l
图B:我们的新规则已到位
查看auditd日志文件
可以通过执行该命令来查看auditd日志文件中的每个条目:
- less /var/log/audit/audit.log
你很快会发现文件塞满了诸多条目。幸好有更简单的方法。因为我们在规则中包含了键名,我们可以使用内置的auditd搜索工具仅查看包含passwd或shadow键名的条目。想查看包含passwd键名的任何条目,执行该命令:
- ausearch -k passwd
你应该会看到列出的任何条目,包含指定的键名(图C)。
图C:passwd键名目前为止显示了两个条目
假设你添加一个新用户(使用sudo adduser命令)。因为你需要为该用户创建密码条目(写入到/etc/passwd),它将出现在我们的ausearch -k passwd搜索命令中(图D)。
图D:为新用户创建了一个新密码,并使用auditd记入日志
ausearch工具功能很强大。想了解有关其用法的更多信息,务必通过man ausearch命令阅读参考手册页。
这就是在数据中心Linux服务器上使用auditd的要点。现在你有方法监控需要观察的任何系统或服务了。
原文标题:How to monitor events on your Linux data center servers with auditd,作者:Jack Wallen
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】