文档介绍:,审计系统分为用户空间和内核空间审计系统,用户空间审计系统用来设置规则和审计系统状态、将内核审计系统传来的审计消息写入log文件。内核审计系统用于产生和过滤内核的各种审计消息。本节重点分析内核审计系统产生和过滤审计消息的机制。,为系统管理员在用户违反系统安全法则时提供及时的警告信息。审计系统的审计信息包括:可被审计的事件名称、事件状态(成功或失败)和安全信息等。审计系统可以将记录系统内部发生的事件的信息根据用户的需求,提供不同的报表功能,从而实现对系统信息的追踪、审查、统计和报告等功能。Linux审计系统子系统之间通信如图2-3所示。应用程序auditctl用来设置审计消息过滤规则、查询内核审计系统状态等,link机制与内核审计系统的socket线程进行双向通信。内核其他线程的审计信息通过内核审计API写入套接字缓冲区队列audit_skb_queue中,link机制将审计消息定向发送给用户空间的审计后台auditd的主线程,auditd主线程再通过事件队列将审计消息传给审计后台的写log文件线程,由写log文件线程将审计消息写入log文件。另一方面,审计后台还通过一个与套接字绑定的管道将审计消息发送给dispatcher应用程序。,审计系统由auditd、audispd、auditctl、autrace、ausearch和aureport等应用程序组成。link机制从内核中接收审计消息,然后,通过一个工作线程将审计消息写入到审计日志文件中,其中,还有一部分消息通过消息分发后台进程dispatcher调用syslog写入日志系统。下面分别说明这些应用程序的功能。,审计系统通过auditd后台进程接收内核审计系统传送来的审计信息,将信息写入到/var/log/audit/,。图2-3Linux审计系统子系统之间通信当auditd没有运行时,内核将审计信息传送给syslog,这些消息通常保存在/var/log/messages文件中,可以用dmesg命令查看。如果要启用内核中的审计功能,必须在系统启动时将audit=1传递给内核。也可以在运行时,使用下列命令来启用内核审计功能:auditctl-e1审计系统后台应用程序auditd是Linux审计系统的用户空间部件,它负责将审计记录写入到硬盘中。ausearch或aureport工具用来查看写在文件中的审计记录,auditctl工具用来设置审计规则。系统启动时,auditctl读取/etc/,。运行auditd后台的命令如下:auditd[-f]其中,选项-f表示让auditctl在前台运行,以方便调试,消息可以直接输出到stderr,而不是输出到log系统。用于配置auditd后台的文件说明如下:/etc/。/etc/。、得到状态、从内核审计系统增加或删除规则。命令格式如下:auditctl[options]工具auditctl的命令行选项(options)很多,例如:-e[0|1]表示停止或启动内核审计功能;-a表示将规则追加到链表;-S表示系统调用号或名字;-F表示规则域。工具auditctl设置规则的样例如下://查看程序所有的系统调用auditctl-aentry,always-Sall-Fpid=1005//查看指定用户打开的文件auditctl-aexit,always-Sopen-Fauid=510//查看不成功的open系统调用auditctl-aexit,always-Sopen-ess!=0设置规则和显示规则的命令样例列出如下:^-^$auditctl-aentry,always-Sall-Fpid=1005^-^$auditctl-lLIST_RULES:entry,alwayspid=1005(0x3ed)syscall=all工具auditctl的选项说明如表2-1所示。表2-1工具auditctl的选项说明选项名选项的值说明-b<backlog>设置内核允许的缓冲区数,默认值为64-e[0|1]关闭或启动内核审计系统-f[0..2]设置失败标识0=silent1=printk2=panic,默认值为1。设置内核如