Centos8 使用auditd配置系统审计

2021-12-01 11:14:36 浏览数 (1)

安装audit

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

代码语言:javascript复制
[root@localhost ~]# yum -y install audit

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

管理审计服务

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

代码语言:javascript复制
# service auditd start

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

设置开机启动:

代码语言:javascript复制
# systemctl enable auditd

定义审计规则

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

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

定义规则的语法是:

代码语言:javascript复制
auditctl -w path_to_file -p permissions -k key_name

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

代码语言:javascript复制
[root@localhost ~]# auditctl -w /etc/passwd -p wa -k user-modify

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

代码语言:javascript复制
[root@localhost ~]# useradd user01

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

代码语言:javascript复制
[root@localhost ~]# cat /var/log/audit/audit.log | grep user-modify

定义持久审计规则

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

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

代码语言:javascript复制
-w /etc/passwd -p wa -k user-modify

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

代码语言:javascript复制
[root@localhost ~]# service auditd reload

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

代码语言:javascript复制
[root@localhost ~]# auditctl -l
-w /etc/passwd -p wa -k user-modify

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

搜索审计日志

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

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

代码语言:javascript复制
[root@localhost ~]# ausearch -i -k user-modify

创建审计报告

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

代码语言:javascript复制
[root@localhost ~]# aureport 

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

代码语言:javascript复制
[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

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

总结

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

0 人点赞