安全审计报告_如何使用auditd记录Linux系统文件改动

引言

安全审计报告_如何使用auditd记录Linux系统文件改动
(图片来源网络,侵删)

在Linux系统中,安全审计是至关重要的一环,它可以帮助管理员了解系统的安全状况,发现潜在的安全隐患,并采取相应的措施进行修复,Auditd是一款功能强大的Linux审计工具,它可以记录系统的各种事件,包括文件改动、用户登录、网络连接等,本文将介绍如何使用auditd记录Linux系统文件改动,帮助管理员更好地保护系统安全。

auditd简介

Auditd是一个Linux审计守护进程,它可以记录系统的各种事件,并将这些事件以日志的形式保存在磁盘上,Auditd支持多种日志格式,如文本格式、二进制格式和JSON格式,Auditd还支持多种日志存储方式,如本地存储、远程存储和第三方存储。

Auditd的主要功能如下:

1、记录系统事件:Auditd可以记录系统的各种事件,如文件改动、用户登录、网络连接等。

2、生成审计日志:Auditd将记录的事件以日志的形式保存在磁盘上,管理员可以通过查看这些日志来了解系统的运行状况。

3、过滤审计日志:Auditd支持对审计日志进行过滤,管理员可以根据需要筛选出感兴趣的事件。

4、报警通知:Auditd可以将重要的审计事件发送给管理员,以便及时采取措施。

5、审计规则配置:Auditd支持自定义审计规则,管理员可以根据需要配置不同的审计规则。

安装auditd

在大多数Linux发行版中,auditd已经预装,如果系统中没有auditd,可以使用以下命令进行安装:

对于Debian/Ubuntu系统:

sudo aptget install auditd audispdplugins

对于CentOS/RHEL系统:

sudo yum install audit auditlibs auditpluginspython

安装完成后,可以使用以下命令启动auditd服务:

sudo systemctl start auditd

配置auditd

要使用auditd记录文件改动事件,首先需要配置相应的审计规则,以下是一个简单的示例:

1、打开auditd配置文件:

sudo nano /etc/audit/auditd.conf

2、在配置文件中添加以下内容:

log_file = /var/log/audit/audit.log
log_format = RAW
priority_boost = 4
flush = INCREMENTAL_ASYNC
freq = 200
num_logs = 5
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
action_mail_acct = root
admin_space_left = 75%
admin_space_left_action = mail

这里将审计日志保存在/var/log/audit/audit.log文件中,日志格式为RAW,优先级提升为4,刷新频率为200次/秒,保留5个日志文件,丢弃质量较低的日志,当磁盘空间不足时,通过邮件通知管理员。

3、保存配置文件并退出编辑器。

接下来,需要配置audispd插件来处理文件改动事件,以下是一个简单的示例:

1、打开audispd配置文件:

sudo nano /etc/audisp/plugins.d/file_changes.conf

2、在配置文件中添加以下内容:

type=SERVICE_CHANGE msg=audit(1436898400.168:12345): item=file changed in state: oldpath=/path/to/oldfile; newpath=/path/to/newfile; inode=xxxxxx; size=xxxxx; perms=xxxxxx; owner=xxxxxx; group=xxxxxx; exe="/usr/bin/mv"; res=0; time=xxxx; tag=FILE_MODIFY type=USER msg=audit(1436898400.168:12346): user pid=xxxxx uid=xxxxx auid=xxxxx gid=xxxxx ses=xxxxx comm="touch" reason="unknown" euid=xxxxx suid=xxxxx fsuid=xxxxx egid=xxxxx sgid=xxxxx fsgid=xxxxx tty=pts0$ prio=5 rt_priority=0 policy=default acct="root" exe="/usr/bin/touch" subj=system_u:system_r:unlabeled_t:s0s0:c0.c1023 key=(null)