Centos8 使用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
定义持久审计规则
要使audit规则在重新启动后保持不变,请将它们添加到/etc/audit/rules.d/audit.rules
文件中。
下面在 audit.rules 文件中定义持久性规则以监视 /etc/passwd 文件的更改。
-w /etc/passwd -p wa -k user-modify
保存文件,然后重新加载 auditd 守护程序以实现对规则文件中配置的更改:
[root@localhost ~]# service auditd reload
可以运行auditctl -l
列出规则:
[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
相关的:
[root@localhost ~]# ausearch -i -k user-modify
创建审计报告
使用 aureport 工具根据审计日志查询和创建审计报告。
[root@localhost ~]# aureport
查看关于尝试身份验证的报告:
[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 命令搜索了审计日志并生成了审计报告。
相关文章
- C++程序设计:原理与实践(进阶篇)15.8 调整vector类达到STL版本的功能
- 15.9 调整内置数组达到STL版本的功能
- C++程序设计:原理与实践(进阶篇)15.9 调整内置数组达到STL版本的功能
- C++程序设计:原理与实践(进阶篇)15.10 容器概览
- C++程序设计:原理与实践(进阶篇)16.1 标准库算法
- C++程序设计:原理与实践(进阶篇)16.2 最简单的算法f?ind()
- C++程序设计:原理与实践(进阶篇)16.3 通用搜索算法f?ind_if()
- C++程序设计:原理与实践(进阶篇)16.4 函数对象
- C++程序设计:原理与实践(进阶篇)15.1 存储和处理数据
- JAVA-String 中删除指定字符(11种方法)
- 为自定义对象生成随机属性值
- 利用Fork/Join框架来统计某个字符串在某个文件夹的文件中出现的次数
- 创建一个简单的web服务器
- 集合和Collections、Map的UML类图
- 多线程之线程池newFixedThreadPool(二)
- 多线程之volatile关键字
- 解决RocketMQ报No route info of this topic:异常
- Linux环境下安装RocketMQ(MetaQ)
- 解决sublime package control 出现There are no packages available for installation
- Linux环境下安装dubbo-admin