linux服务——auditd

转载 2012年03月24日 12:09:24

审计(audit)是linux安全体系的重要组成部分,他是一种“被动”的防御体系。

在内核里有内核审计模块,核外有核外的审计后台进程auditd。
应用程序给内核发送审计消息,内核的审计模块再把消息转发给用户空间的后台进程auditd处理。

大概就是这么回事,我不是太深入,如果需要更多的内容,自己去查阅相关资料。如果没有好的资料,我推荐一本,《linux安全体系分析与编程》作者倪继利 。

审计说穿了就是把和系统安全有关的事件记录下来:谁谁谁在什么时候做了什么事,结果是啥。

审计的消息来源主要有两方面:

1.内核(我不太确定)、应用程序(audit-libs-devel包里面有编程接口)产生的。

2.系统管理员添加的审计规则,匹配规则的事件都将被记录下来。

规则添加:

1 添加文件监视:
该规则能监视文件被读、写、执行、修改文件属性的操作,并记录
auditctl -w /etc/passwd -p rwax
上述命令记录/etc/passwd 被读、写、执行修改属性的操作

2 系统调用入口监视(entry链表)
该规则在进入系统调用的时候触发,记录此时的执行上下文
auditctl -a entry,always -F UID=root -S mkdir
上述命令记录uid为root的用户调用mkdir系统调用的情况

3 系统调用出口(exit链表)
同系统调用入口规则,不同的是在退出系统调用的时候被触发

4 任务规则(task表)
该规则在调用fork() 或者clone()产生新进程的时候触发,因此,该规则适用的“域”仅仅是此时可见的,例如uid gid pid 等等。(参见man auditctl和这里
auditctl -a task,always -F uid=root

5 可信应用程序规则(user表)
按照各种资料上的说法,这里的user表是用来过滤消息的,内核传递给审计后台进程之前先查询这个表。
但是,不管怎么设置规则都达不到这个效果。如下:
auditctl -a user,always -F uid=root
添加上述规则,发现root的行为被记录。这样添加规则还是被记录:
auditctl -a user,never -F uid=root
后来发现我的CentOS里面system-config-audit上面,该链表被命名为“可信应用程序”。受此启发写了个小程序,向审计内核里写消息,发现这样的消息被过滤了。
这点需要进一步验证。

6 过滤规则(exclude表)
这个表是用来过滤消息的,也就是不想看到的消息可以在这里写规则进行过滤。
例如:不想看到用户登陆类型的消息,可以如下添加规则:
auditctl -a exclude,always -F msgtype=USER_LOGIN
这里过滤是以“消息类型”为对象的。

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

下面的图片说明了Linux Audit的各个组成之间是如何

相互作用的:

linux的审计功能(audit)(转) - llei - llei的学习笔记linux的审计功能(audit)(转) - llei - llei的学习笔记

图片上实线代表数据流,虚线代表组件关之间的控制系

auditd

Audit 守护进程负负责把内核产生的信息写入到硬盘上,这些信息是由应用程序和系统活动所触发产生的。Audit守护进程如何启动取决于它的配置文件,/etc /sysconfig/auditd。Audit系统函数的启动受文件/etc/audit/auditd.conf的控制。有关auditd更多的信息参照第三节:配置Audit守护进程。

auditctl

auditctl功能用来控制Audit系统,它控制着生成日志的各种变量,以及内核审计的各种接口,还有决定跟踪哪些事件的规则。关于auditctl的更多信息参照第四节:用auditctl控制Audit系统。

audit rules

在/etc/audit/audit.rules中包含了一连串auditctl命令,这些命令在audit系统被启用的时候被立即加载。更所关于审计规则的信息请参看第五节:给audit系统传递变量

aureport

aureport的功能是能够从审计日志里面提取并产生一个个性化的报告,这些日志报告很容易被脚本化,并能应用于各种应用程序之中,如去描述结果,更多信息参看第六节:理解审计日志和生成审计报告

ausearch

这个功能能让我们从审计日志之中通过关键词或者是格式化录入日志中的其它特征变量查询我们想要看到的信息。详细信息请参看第七节:用ausearch查询audit守护进程的的日志。

audispd

这是一个审计调度进程,它可以为将审计的信息转发给其它应用程序,而不是只能将审计日志写入硬盘上的审计日志文件之中。

autrace

这个功能更总类似于strace,跟踪某一个进程,并将跟踪的结果写入日志文件之中。更多详细信息请参看第八节:用autrace分析进程

 

相关文章推荐

Linux中audit日志的使用方法

auditd服务的安装: 以CentOS6.5为例,使用下面的方法确认auditd服务的安装情况: yumlist audit audit-libs 确认以下两个package是否安装: a...

Linux audit【规则设置篇】

前面两篇博文介绍了Linux audit的架构,以及守护auditd的配置。让audit真正的为我们服务,还需要配置audit的规则,也就是说我们要audit什么样的事件,具体什么事件需要audit来...

linux的审计功能(audit)

PART ONE 为了满足这样的需求:记录文件变化、记录用户对文件的读写,甚至记录系统调用,文件变化通知。 什么是audit The Linux Audit Subsystem is a sys...

linux的审计功能(audit)

为了满足这样的需求:记录文件变化、记录用户对文件的读写,甚至记录系统调用,文件变化通知。 什么是audit The Linux Audit Subsystem is a system to Col...

Linux进程简介

在一台服务器上面看到有如下这么多类似的进程:     2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd       ...

Auditd - Linux 服务器安全审计工具

首先,Linux中国祝贺读者 2015羊年春节快乐,万事如意! 。下面开始这个新年版审计工具的介绍。 安全防护是首先要考虑的问题。为了避免别人盗取我们的数据,我们需要时刻关注它。安全防护包括很多...

auditd

linux服务——auditd 2012-03-24 12:09 2577人阅读 评论(1) 收藏 举报 linuxusercentos编程login脚本 审计(audit)是...

Linux 审计工具 auditd 命令

auditd 常用来对文件修改进行监听。

Linux auditd.conf详解

研究audit日志规则,本文为进程配置。 # 审计日志文件的完整路径。如果您配置守护进程向除默认/var/log/audit/外的目录中写日志文件时, # 一定要修改它上面的文件权限,使得只有根用...

AT命令之ATD

AT命令之ATD拨号命令。这个命令用来设置通话、数据或传真呼叫。如果没有拨号音,NO DIALTONE;如果线路忙,BUSY;如果连接无法被建立,NO CARRIER;如果连接成功,OK+拨通的手机号...
  • ce123
  • ce123
  • 2014年06月21日 16:33
  • 10249
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux服务——auditd
举报原因:
原因补充:

(最多只允许输入30个字)