系统管理员使用审计来发现安全违规并跟踪其系统上的安全相关信息。根据预先配置的规则和属性,auditd 生成日志条目以记录有关系统上发生的事件信息。管理员使用此信息来分析安全策略出了什么问题,并通过采取其他措施进一步改进它们。

本文介绍如何安装、配置和管理审计服务。它还展示了如何定义审计规则、搜索审计日志和创建审计报告。

安装audit

audit包默认安装在 Centos8中。如果未安装,请使用以下命令添加:


[root@localhost ~]# yum -y install audit


审计配置文件 /etc/audit/auditd.conf。该文件包含更改 auditd 守护程序行为的默认参数。

管理审计服务

配置 auditd 后,启动服务来收集审计信息:


# service auditd start


使用 service 命令而不是 systemctl 的唯一原因是正确记录用户 ID (UID) 值。

设置开机启动:


# systemctl enable auditd


定义审计规则

使用 auditctl 工具,可以在你想要的任何系统调用上添加审计规则。规则会按顺序执行。

下一步定义监视规则。此规则跟踪文件或目录是否由某些类型的访问触发,包括读取、写入、执行和属性更改。

定义规则的语法是:


auditctl -w path_to_file -p permissions -k key_name


如要审核用户创建操作,首先,向 /etc/passwd 文件添加监视以跟踪写入和属性更改访问,并添加自定义键以记录所有消息(此自定义键可用于过滤日志消息):


[root@localhost ~]# auditctl -w /etc/passwd -p wa -k user-modify


接下来,添加一个新用户。这样做会更改 /etc/passwd 文件:


[root@localhost ~]# useradd user01


最后,检查 auditd 是否记录了更改。默认情况下,auditd 将日志存储在 /var/log/audit/audit.log 文件中:


[root@localhost ~]# cat /var/log/audit/audit.log | grep user-modify


centos6 审计启用 centos日志审计_服务器

定义持久审计规则

要使audit规则在重新启动后保持不变,请将它们添加到/etc/audit/rules.d/audit.rules文件中。

下面在 audit.rules 文件中定义持久性规则以监视 /etc/passwd 文件的更改。


-w /etc/passwd -p wa -k user-modify


centos6 审计启用 centos日志审计_centos6 审计启用_02

保存文件,然后重新加载 auditd 守护程序以实现对规则文件中配置的更改:


[root@localhost ~]# service auditd reload


centos6 审计启用 centos日志审计_服务器_03

可以运行auditctl -l列出规则:


[root@localhost ~]# auditctl -l
-w /etc/passwd -p wa -k user-modify


centos6 审计启用 centos日志审计_centos6 审计启用_04

最后,添加新用户或更改 /etc/passwd 文件会出发审计。更改记录在 /var/log/audit/audit.log 中,即使系统重新启动,规则仍然存在。

搜索审计日志

使用ausearch工具搜索审计日志。默认情况下,它搜索 /var/log/audit/audit.log 文件。

例如,要根据 key_name 搜索日志条目,搜索有关user-modify相关的:


[root@localhost ~]# ausearch -i -k user-modify


centos6 审计启用 centos日志审计_Linux_05

创建审计报告

使用 aureport 工具根据审计日志查询和创建审计报告。


[root@localhost ~]# aureport


centos6 审计启用 centos日志审计_服务器_06

查看关于尝试身份验证的报告:


[root@localhost ~]# aureport -au

Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 11/10/2021 23:42:19 root localhost.localdomain tty1 /usr/bin/login yes 81
2. 11/10/2021 23:44:08 root 192.168.43.1 ssh /usr/sbin/sshd yes 111
3. 11/10/2021 23:54:31 root 192.168.43.1 ssh /usr/sbin/sshd yes 76
4. 11/11/2021 00:44:30 root 192.168.43.1 ssh /usr/sbin/sshd yes 81
5. 11/11/2021 00:58:41 root 192.168.43.1 ssh /usr/sbin/sshd yes 131
6. 11/11/2021 01:13:12 root 192.168.43.1 ssh /usr/sbin/sshd no 156


centos6 审计启用 centos日志审计_服务器_07

其中no代表验证失败。yes代表验证成功。

总结

在本文中学习了如何使用auditctl 临时定义auditd 规则,并在audit.rules 文件中永久定义。最后分别使用 ausearch 和 aureport 命令搜索了审计日志并生成了审计报告。