之路 on it Road.com
安装审计
现在我们对auditd 的含义有所了解,让我们继续使用前面的用例来使用auditd:
- 安装auditd 包。
auditd 软件包是 CentOS 7 系统默认安装的一部分。
我们可以使用以下命令进行验证:
# rpm -qa | grep audit audit-libs-2.6.5-3.el7_3.1.x86_64 audit-2.6.5-3.el7_3.1.x86_64 audit-libs-python-2.6.5-3.el7_3.1.x86_64
- 如果软件包不是我们系统的一部分,我们可以继续安装它:
# yum install audit
- 确保审计守护进程正在运行。
我们将使用以下命令:
# systemctl status auditd auditd.service - Security Auditing Service Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-10-24 04:33:48 UTC; 4min 21s ago Docs: man:auditd(8) https://people.redhat.com/sgrubb/audit/ Process: 425 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS) Main PID: 424 (auditd) CGroup: /system.slice/auditd.service └─424 /sbin/auditd -n
由于我们已经启动并运行了一个审计守护程序,让我们看看如何使用 auditd 来实现所有 4 个用例。
复制、移动、删除和终止审核规则的命令
- 备份现有的配置文件(auditd规则):
# cp /etc/audit/audit.rules /etc/audit/audit.rules.bkp
- 编辑文件 /etc/audit/audit.rules 并添加以下规则以使其持久化:
# vi /etc/audit/audit.rules # Audit Copy, Move, Delete & Create file commands -a exit,always -F arch=b64 -S execve -F path=/bin/cp -k Copy -a exit,always -F arch=b64 -S execve -F path=/bin/mv -k Move_Rename -a exit,always -F arch=b64 -S execve -F path=/bin/rm -k Delete -a exit,always -F arch=b64 -S execve -F path=/bin/vi -k Create_Edit_View_File # Audit shutdown & Reboot command -a exit,always -F arch=b64 -S execve -F path=/sbin/reboot -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/init -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/poweroff -k Reboot -a exit,always -F arch=b64 -S execve -F path=/sbin/shutdown -k Reboot # Audit mount unmount commands -a exit,always -F arch=b64 -S execve -F path=/bin/mount -k mount_device -a exit,always -F arch=b64 -S execve -F path=/bin/umount -k unmount_device # Kill Process -a exit,always -F arch=b64 -S kill -k Kill_Process
- 重新启动 auditd 服务使更改生效。
# service auditd restart
- 列出添加的规则,以验证它们是否正确:
# auditctl -l
注意:bash(和许多其他 shell)有一个内置的“kill”命令,它实际上并不运行 /usr/bin/kill。
因此,如果运行内置命令,则 comm=bash 是正确的。
没有办法强制系统使用/usr/bin/kill 外部程序。
comm=kill 不会在所有情况下都发生,因为 shell 可以直接调用系统调用,而无需运行名为“kill”的外部程序
使用auditd进行系统审计
系统审计是一项非常重要的任务,应该成为每台服务器的一部分。
它使我们能够审计与系统内发生的事情相关的微小细节。
auditd 是 Linux 审计系统的用户空间组件。
这意味着系统用户将能够运行 auditd 来为 Linux 系统的审计功能配置规则和警报。
auditd 最好的事情之一是它与内核紧密集成,因此它使我们能够监视几乎所有我们想要的东西,真的。
为了让用户看到正在发生的事情,auditd 可以将所有与审计相关的事件记录到磁盘,我们可以使用各种工具,例如 ausearch 或者 aureport 来查看日志文件。
默认情况下,没有配置任何规则。
我们需要在 /etc/audit/audit.rules 配置文件中写入我们的规则,该文件将被读取并应用相应的审计操作。
日期:2020-09-17 00:14:05 来源:oir作者:oir