AIX® 提供了一些简单的方式以跟踪最近对文件的访问。ls 命令就是一个示例。但是,有时您还希望了解是谁、或者哪个进程对该文件进行了访问。您可能需要这样的信息,以便进行调试或者对重要的文件进行跟踪。在审核 的帮助之下,您可以跟踪对文件的读写操作的相关信息。
在 AIX 中,审核系统用于记录与安全相关的信息,并向管理员发出有关安全问题的警告。您可以自定义配置和目标文件,审核子系统将使用它们来跟踪任何需要跟踪的文件。您还可以使用审核的实时监视特性,以跟踪某些进程和文件(由未标识的进程随意地进行修改)。
跟踪文件没有什么特殊的要求;您所需要的是具有 root 访问权限的一个普通的 AIX 系统。audit 命令为 root 用户和 audit 组的成员授予执行访问权限。对于非 root 用户,如果要在系统中执行审核,那么就应该是 audit 组的成员。
跟踪文件的概要步骤如下:
配置审核子系统需要在目标和配置文件(审核子系统将其用于生成结果)中建立特定的条目。
在这个场景中,您将要跟踪 /home/test.txt 文件。为配置审核子系统,请尝试下面的操作:
- 在 /etc/security/audit/objects 文件中,为 /home/test.txt 建立相应的条目。请使用下面的格式:
/home/test.txt: r = "S_NOTAUTH_READ" w = "S_NOTAUTH_WRITE"
S_NOTAUTH_READ和S_NOTAUTH_WRITE分别是用于跟踪读操作和写操作的关键字。可以使用任何关键字来替换这两个关键字,这取决于您的具体需求。通过在 /etc/security/audit/objects 文件中采用相同的格式为每个想要跟踪的文件建立单独的条目,您还可以使用相同的关键字跟踪多个文件。
- 在 /etc/security/audit/config 文件中,在 classes 部分中建立如下所示的条目:
classes: abusers = S_NOTAUTH_READ, S_NOTAUTH_WRITE
- 在 /etc/security/audit/config 文件中,为所有的用户添加相应的条目,如下所示:
users: root = general, abusers user1=abusers user2=abusers . . . userN=abusers
这组条目可以确保审核将报告所有用户(在这个列表中的任何用户)对 /home/test.txt 文件所执行的读写操作。如果用户的条目已经存在,那么您可以为不正常的使用者追加相应的条目,使用逗号将其与前面的条目隔开。
- 审核提供了两种数据监视模式:
- BIN 模式:将审核事件记录到两个交换使用的临时 BIN 文件中,然后将它们追加到一个审核跟踪文件中。
- STREAM 模式:将审核记录写入到循环缓冲区(该缓冲区可以通过 /dev/audit 设备文件进行读取)。
在这个场景中,除了所提供的输出格式不同之外,这两者之间并没有什么重大的区别。您可以打开任何一种模式或者同时打开两种模式以收集数据。可以通过在 etc/security/audit/config 文件中建立合适的条目来打开或者关闭它们。下面的示例打开了 STREAM 模式。
start: bin mode = off stream mode = on
上面的步骤确保 /home/test.txt 文件处于审核子系统的观察之下。
要对输出进行监视,首先使用下面的命令启动审核子系统:
# audit start |
因为在 STREAM 模式中启用了数据收集,所以您可以通过运行下面的命令来开始数据收集工作:
# cat /etc/security/audit/streamcmds |
这个命令将提供下面的信息:
/usr/sbin/auditstream | auditpr > /audit/stream.out & |
将审核结果写入 /audit/stream.out 文件中,可以实时地对该文件进行监视,以跟踪读写操作。
典型的输出应该与下面的清单 1 所示类似。
清单 1. 输出文件——采用 STREAM 模式的数据收集
# tail -f /audit/stream.out
event login status time command
--------------- -------- -------- --------- ---------
S_NOTAUTH_READ root OK Thu May 24 14:07:05 2007 cat
S_NOTAUTH_READ root OK Thu May 24 14:07:05 2007 cat
FILE_Unlink root OK Thu May 24 14:07:09 2007 vi
S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi
S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi
S_NOTAUTH_READ root OK Thu May 24 14:07:09 2007 vi
S_NOTAUTH_WRITE root OK Thu May 24 14:07:13 2007 vi
FILE_Unlink root OK Thu May 24 14:07:13 2007 vi
FILE_Unlink root OK Thu May 24 14:07:20 2007 vi
S_NOTAUTH_READ ash OK Thu May 24 14:09:39 2007 cat
S_NOTAUTH_READ ash OK Thu May 24 14:09:39 2007 cat
|
要解释该输出文件是非常简单的。例如,下面的一行内容:
S_NOTAUTH_WRITE root OK Thu May 24 14:07:13 2007 vi |
显示了在 5 月 24 日(星期四)的 14:07:13,由 root 用户对该文件执行了一次写入操作。
如果在 BIN 模式中启用了数据收集,那么您可以通过执行下面的命令来启动数据收集:
# /usr/sbin/auditpr -v < /audit/trail > /audit.out |
这个命令会将审核结果写入到 /audit.out 文件中,同样可以对该文件进行实时监视。
典型的输出应该与下面的清单 2 所示类似。
清单 2. 输出文件——采用 BIN 模式的数据收集
# vi /audit.out
"/audit.out" 30 lines, 2012 characters
event login status time command
-------- -------- ----------- ------------- --------------
S_NOTAUTH_READ root OK Thu May 24 15:07:27 2007 cat
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:27 2007 cat
<tail format undefined>
FILE_Unlink root OK Thu May 24 15:07:32 2007 vi
filename /var/tmp/Ex21778
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_READ root OK Thu May 24 15:07:32 2007 vi
<tail format undefined>
S_NOTAUTH_WRITE root OK Thu May 24 15:07:37 2007 vi
<ail format undefined>
FILE_Unlink root OK Thu May 24 15:07:37 2007 vi
|
您可以监视这些输出文件,以便跟踪对您的文件所进行的读写操作。
学习
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
IBM 红皮书:阅读 Accounting and Auditing on AIX 5L,以便在 AIX 5L™ 系统中设置、维护高级审核和核算功能,并对其进行故障排除。
-
受欢迎的内容:查看您的同事所感兴趣的 AIX 和 UNIX 文章。
-
AIX and UNIX:“AIX and UNIX developerWorks”专区提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
-
New to AIX and UNIX?:访问“New to AIX and UNIX”页面以学习更多关于 AIX 和 UNIX 的信息。
-
AIX Wiki:发现 AIX 相关技术信息的协作环境。
- 按主题搜索“AIX and UNIX”库:
-
Safari 书店:访问此电子参考资料库可查找特定的技术资源。
-
developerWorks 技术事件和网络广播:了解最新的 developerWorks 技术事件和网络广播。
-
Podcasts:收听 Podcast 并与 IBM 技术专家保持同步。
获得产品和技术
-
IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。
讨论
- 参与 developerWorks Blog,从而加入到 developerWorks 社区中来。
- 参与“AIX and UNIX”论坛:
- AIX——技术论坛
- AIX 6 公开测试版
- AIX for Developers 论坛
- 集群系统管理
- IBM Support Assistant
- 性能工具——技术
- 虚拟化——技术
- 更多“AIX and UNIX”论坛
Ashish Nainwal 是 IBM India Systems and Technology Lab 的一名 AIX 安全支持专家。在从事 AIX 工作的两年中,他一直是 AIX 安全方面的焦点人物之一。Ashish 还参与各种 System p™ 管理活动,对客户有丰富的工作经验。您可以通过 anainwal@in.ibm.com 与他联系。