【IT168 专稿】BART是在文件系统级的文件跟踪工具。使用BART工具使你能快速、容易和可靠地得到系统中的软件构成信息。使用BART能很大程度地减少网络系统的管理成本。BART能够在目标系统软件目录的文件层执行检查操作。该实用程序可用于收集有关系统已安装了哪些内容的信息。BART还使你能够对已安装的系统及系统内容随时间的变化情况进行比较。
1 、BART功能简介
BART 与现有审计工具的主要区别在于 BART 在跟踪信息和报告信息方面都非常灵活。BART 的其他优点和用法包括:
" 提供了一种为运行 Solaris 软件的系统在文件层编制目录的有效而简便的方法。
" 使用 BART,可以定义要监视的文件,还可以在必要时修改配置文件。借助这种灵活性,可以监视本地的自定义项,并可轻松、有效地重新配置软件。
" 确保系统运行可靠的软件。
" 允许监视一段时间内系统在文件层的变化,从而帮助找到损坏或异常的文件。
" 帮助对系统性能问题进行疑难解答。
2 、BRAT的组成
基本审计和报告工具(BART)由两个主要部分和一个可选部分组成。
(1)BART清单(Manifest)。
可以使用 bart create 命令在特定时间拍摄系统的文件层快照。输出是名为清单的关于文件和文件属性的目录。此清单列出了有关系统上所有文件或特定文件的信息。它包含了有关文件属性的信息,其中可以包括一些唯一标识的信息,如 MD5 校验和。清单可以进行存储,并可以在客户机和服务器系统间传送。说明:BART 不会跨越文件系统边界,但同一类型的文件系统除外。此约束使 bart create 命令的输出更容易预测。例如,在不带参数的情况下,bart create 命令编制根 (/) 目录下所有 UFS 文件系统的目录。
(2)BART报告和输出
BART报告有三个输出:两个文件列表的比较和一个可能出现的差异标记。你能用bart compare命令比较两个文件列表:控制文件列表和测试文件列表。这些文件列表必须是具有相同的文件系统、选项和创建时使用的规则文件。bart compare命令报告两个文件列表的每一行的差异。这个差异就是指文件列表内表示的文件属性的任何差异。两个文件列表中条目的增加和删除也视为差异。在缺省模式下,bart compare 命令会检查系统上安装的除已修改的目录时间标记 (dirmtime) 外所有文件,如以下示例所示:
CHECK all
IGNORE dirmtime
如果提供了 rules 文件,则全局指令 CHECK all 和 IGNORE dirmtime 会按照以上顺序自动前置到 rules 文件之前。
BART 输出,将返回以下退出值:
0 :成功
1 :处理文件时出现非致命错误,如权限问题
>1 :出现致命错误,如无效的命令行选项
(3)BART规则文件。
规则文件是用来管理bart命令的文件,是可选的。它使用或排除一些规则。规则文件用来创建定制文件列表和报告。规则文件使你能使用简单的语法设置文件的类别,以及哪些属性需要监控。当你比较文件列表时,规则文件帮助识别差异。使用规则文件是得到系统专门信息的有效方法。通过规则文件,可以执行以下任务:
" 使用 bart create 命令创建列出有关系统上所有文件或特定文件的信息的清单。
" 使用 bart compare 命令生成监视文件系统的特定属性的报告。
3.BART使用方法
规则用户、超级用户或具有重要管理权限的用户可以使用bart命令。如果你是运行bart的规则用户,你只能监控有权限访问的文件和目录,比如主目录信息。超级用户使用bart命令的优势是可以监控隐藏目录和私人目录的信息。如果要监控严格限制的目录,比如/etc/shadow和/etc/passwd目录,就需要是超级用户或具有相当角色的用户。Bart是Unix 命令行工具,所以首先必须了解相关参数:
bart create [-n] [-R 根目录] [-r 规则|-]
bart create [-n] [-R 根目录] [-I | -I 文件列表]
bart compare [-r 规则|-] [-i 关键字] [-p]控制清单文件 测试清单文件
(1)使用BRAT创建文件列表。
应用实例:创建目录etc/nfs下所有文件信息的文件列表。
# bart create -R /etc/nfs ,如图 1 。
图 1创建目录/etc/nfs下所有文件信息的文件列表
说明:-R 选项表示指定清单的根目录。所有由规则指定的路径都会被解释为此目录的相对路径。所有由清单报告的路径均为此目录的相对路径。
应用实例:创建包含文件/etc/passwd和/etc/shadow的信息的文件列表。
# bart create -I /etc/passwd /etc/shadow ,如图 2 。
图2创建包含文件/etc/passwd和/etc/shadow的信息的文件列表
说明:-l选项表示:无论是从命令行执行此选项,还是从标准输入中读取此选项,它都会接受要列出的单个文件的列表。
图2 上面已经显示了这两个文件的详细信息,我们可以对比一下ls -al命令的输出,体会一下它们之间的不同:
# ls -al /etc/passwd
-r--r--r-- 1 root sys 542 Dec 4 17:42 /etc/passwd
# ls -al /etc/shadow
-r-------- 1 root sys 294 Oct 15 16:09 /etc/shadow
显然,文件列表的内容要比ls -al详细得多。
(2)如何比较文件列表。
如果我们在不同的时间对系统中某个目录分别建立了两个文件列表,就可以通过比较这两文件列表的不同而找到这个目录的轻微改动,这也将为系统安全带来新的保障。
应用实例:比较不同时间的/etc目录的变化。
首先,建立/etc的文件列表:
bart create -R /etc > system1.control.081101
在另一个时间建立/etc目录的新的文件列表:
bart create -R /etc > system1. control.081112
最后,比较两个文件列表的内容:
# bart compare system1.control. 081101 system1. control. 081112 如图 3 。
图 3比较不同时间的/etc目录的变化
(3)比较不同系统的清单与控制系统的清单
您可以运行系统间比较,这样可以迅速确定在基准系统和其他系统之间是否存在任何文件层差异。例如,如果您已经在基准系统上安装了特定版本的 Solaris 软件,并且需要了解其他系统是否也安装了相同的软件包,则可以创建那些系统的清单,然后将测试清单与控制清单进行比较。此类比较会列出与控制系统比较的每个测试系统在文件内容方面的任何差异。
下面这个例子介绍了如何通过比较控制清单与不同系统的测试清单来监视 /usr/bin 目录内容的更改。
" 创建控制清单。
# bart create -R /usr/bin > control-manifest.121203
" 为需要与控制系统进行比较的系统创建测试清单。
# bart create -R /usr/bin > system2-manifest.121503
" 需要比较清单时,将清单复制到同一位置。
# cp control-manifest /net/system2.central/bart/manifests
" 将控制清单与测试清单进行比较。
# bart compare control-manifest system2.test > system2.report
/su:
gid control:3 test:1
/ypcat:
mtime control:3fd72511 test:3fd9eb23
上面的输出指示了 /usr/bin 目录中 su 文件的组 ID 与控制系统中的组 ID 不同。此信息有助于确定测试系统上是否安装了不同版本的软件或是否有人篡改了文件。
总结:BART 是一种完全在文件系统层运行的文件跟踪工具。使用 BART,可以迅速、轻松、可靠地收集有关安装在已部署的系统上的软件栈组件的信息。使用 BART,可以通过简化耗时的管理任务来显著降低管理系统网络的成本。使用 BART,可以根据已知的基准确定系统上所进行的文件层更改。可以使用 BART 根据完全安装并配置的系统创建基准或控制清单。然后可将此基准与系统快照进行比较,将生成一个列出从系统安装以来所进行的文件层更改的报告。bart 命令是标准 UNIX 命令。您可以将 bart 命令的输出重定向到文件以便进行后续处理。