tcbck 命令
用途
审计系统的安全状态。
语法
检查方式
特克 { -n | -p | -t| -y } [ -我 ] [-o] { 全部 | 树 | { 名称 ... 类 ...}}
更新方式
tcbck -a -f File | PathName Attribute = Value...
或
特克 -d -f文件 | { 路径名 ... | 类 ... }
或
tcbck -l /dev/filename /dev/filename
退出状态
- 0
- 用户定义文件是合适的。
- >0
- 发生错误,或者一个或多个用户定义文件中有错误。
- EINVAL(22)
- 命令行实参无效
- ENOENT(2)
- 一个或多个用户定义文件不存在
- ENTRUST (114)
- 数据库文件中的用户定义出错。
描述
tcbck 命令通过检查 /etc/security/sysck.cfg 文件中定义的文件的安装来审计系统的安全状态 (sysck数据库)。 /etc/security/sysck.cfg 文件之中的每个文件定义可以包含一个或多个描述正确安装的属性。 在不带标记和参数调用时,tcbck 命令显示其语法摘要。
该tcbck数据库通常定义属于可信计算库的所有文件和程序,但 root 用户或安全组的成员可以选择仅定义那些被认为与安全性相关的文件。
标志
| 项 | 描述 |
|---|---|
| -a | 添加或更新文件定义sysck。 |
| -d | 从sysck。 |
| -f 文件 | 指定文件定义从 File 读入。 |
| -i | 当指定 tree 选项后,排除列在 treeck_nodir 属性中的目录下的文件系统。 |
| -l | (小写的 L)为管理员希望注册到可信计算库的 /dev/ 文件增加条目到 sysck.cfg 文件。 |
| -n | 指定检测方式,并指明将报告但不修订错误。 |
| -O | 写输出到 syslog。 |
| -p | 指定检测方式,并指明将修订但不报告错误。 |
| -t | 指定检测方式,指明将报告错误并提示询问是否应该修订错误。 |
| -y | 指定检测方式,并指明将修订并报告错误。 |
操作方式
tcbck 命令有两种操作方式:检测方式和更新方式。 下面是它们各自的描述。
检查方式
在检测方式中,tcbck 命令检测已安装文件的定义。 您可以检查sysck通过指定 ALL 值来数据库 ( /etc/security/sysck.cfg 文件) ,或者通过指定 tree 值来指定文件系统树中的所有文件。 如果想要检测特定文件,可以使用 Name 参数来给出单个文件的路径名或给出 Class 参数将若干文件打成一个由类名定义的逻辑包,例如 audit。 必须从以下选择其一:ALL 或 tree 值,或由 Class 或 Name 参数标识的一个或多个文件。
如果 tree 值是选择标准,那么将检查文件系统树中的所有文件,以确保在sysck。 定义的文件tcbck数据库将根据其定义进行检查。 文件不在tcbck数据库 不得:
- 设置 可信计算库 属性。
- 为 setuid 或 setgid 为管理标识。
- 链接到tcbck。
- 是设备特殊文件。
如果 tcbck 命令以检测方式运行并带有 tree 值和 -t 标记时出现错误,该命令会提供一个出错消息,并提示您确定如何或是否应纠正该错误。 如果决定不删除该文件或关闭非法许可,那么将提示您确定更新该数据库。 如果请求更新,系统提供缺少的信息,诸如文件名、链接或未注册的设备名。
还必须包括一个标记(-n、-p、-t、-y)来指定检测方式并标识错误处理方法。 如果文件 /etc/security/sysck.cfg 中有一个重复节,将报告一个错误,但并不修订。
更新重要产品数据库(VPD)包括定义 VPD 管理器每一个文件的 type、checksum 和 size 属性。 该信息用于验证正确的安装。 如果这些属性未在 -f File 中定义,那么将在程序安装或更新时计算它们。 checksum 属性将用一个专门为 VPD 管理器定义的方法来计算。 有关文件属性的更多信息,请参阅 修正错误 。
在更新时修改的文件定义仅是指示文件为可信计算库(TCB)的一部分的新定义。 File 参数是一个节文件,包括 tcbck 格式的文件定义,在文件 /etc/security/sysck.cfg 中定义。 当更新完成时,按节文件中的文件定义检测文件,并修订和报告错误。
需要 setuid 或 setgid 特权的程序必须位于tcbck数据库,或者在 tcbck 命令以 "检查" 方式运行时将清除这些特权。
更新方式
在更新方式下, tcbck 命令添加 (-a) ,删除 (-d) 或修改 /etc/security/sysck.cfg 文件中由 File 参数, PathName 参数或 Class 参数指定的文件的文件定义。 Class 参数允许您将若干文件打成一个由类名定义的逻辑包,例如 audit。 tcbck 命令还删除 /etc/security/sysck.cfg 文件中指定节。
在更新方式中,tcbck 命令(-l)为指定的 /dev 条目增加或修改在 /etc/security/sysck.cfg 文件中定义的 /dev/ 条目。 该标记应由管理员运行,用来添加新创建的并为 sysck.cfg 文件所信任的设备。 在新设备未添加到 sysck.cfg 文件时,tree 选项生成未注册设备的警告。
-l 标记为命令行上列出的每一 /dev/ 条目创建一个节。 节的信息来自 /dev 条目的当前状态。 节包括:
| 设备名 | /dev/ 条目名 |
|---|---|
| 文件类型 | FILE、DIRECTORY、FIFO、SYMLINK、BLK_DEV、CHAR_DEV 或 MPX_DEV |
| 所有者标识 | 所有者名 |
| 组标识 | 组名 |
| 许可权 | 所有者、组和其他人的读/写/执行许可权。 SUID、SGID、SVTX 和 TCB 属性位 |
| 目标 | 如果文件为符号链接,将列出目标文件。 |
要以 -a 标记添加或修改的文件定义可以在命令行上指定,或在文件中以 Attribute=Value 语句指定。 可使用下列属性:
| 项 | 描述 |
|---|---|
| ACL | 文件的访问控制表。 如果该值为空白,那么除去 acl 属性。 如果不指定值,那么命令会根据访问控制表中描述的格式计算值。 |
| CLASS | 文件的逻辑组。 必须指定一个值,因为无法计算出来。 如果该值为空白,那么从指定的文件节除去 class 属性。 值为 ClassName [ClassName]。 |
| 校验和 | 文件的校验和。 如果该值为空白,那么除去 checksum 属性。 如果不指定值,那么该命令根据 sum 命令指定的格式计算值。 该值为 sum -r 命令的输出,包含空格。 |
| 组 | 文件组。 如果值为 blank,那么将除去 group 属性。 如果不指定值,那么该命令计算一个值,该值可以是组标识,也可以是组名。 |
| 链接 | 指向该文件的硬链接。 如果该值为空白,那么除去 links 属性。 必须指定一个值,因为无法计算出来。 该值必须为绝对路径名,表示为 Path [, Path ...]。 |
| 方式 | 文件方式。 如果该值为空白,那么除去 mode 属性。 如果不指定值,那么该命令计算值,它可以是八进制数字或字符串(rwx),并具有属性 tcb、SUID、SGID 和 SVTX。 |
| 所有者 | 文件所有者。 如果该值为空白,那么除去 owner 属性。 如果不指定值,那么该命令会计算值,它可以是用户标识或用户名。 |
| PROGRAM | 文件关联的检测程序。 如果该值为空白,那么除去 program 属性。 必须指定一个值,因为无法计算出来。 该值必须为绝对路径名。 如果指定了标志,那么该值应表示为 Path, Flag。 |
| symlinks | 指向文件的符号链接。 如果该值为空白,那么除去 symlinks 属性。 必须指定一个值,因为无法计算出来。 该值必须为绝对路径名,表示为 Path [, Path...]。 |
| 大小 | 文件的大小,以字节为单位。 如果该值为空白,那么除去 size 属性。 如果不指定值,那么该命令会计算值。 该值为一个十进制值。 |
| SOURCE | 文件源。 如果该值为空白,那么除去 source 属性。 如果不指定值,那么创建一个适当类型的空文件。 该值必须为绝对路径名。 |
| TYPE | 文件类型。 该值不能为空白。 如果不指定值,那么该命令会计算值,它可以是 FILE、DIRECTORY、FIFO、BLK_DEV、CHAR_DEV 或 MPX_DEV 关键字。 |
可通过创建或修改 /etc/security/sysck.cfg 文件中的 sysck 节来添加、删除或修改 tcbck 命令的属性。 可使用下列属性:
| 项 | 描述 |
|---|---|
| 校验和 | 计算文件校验和值的备用 checksum 命令。 系统将每个文件名附加到该命令。 如果该值为空白,那么去除该备用 checksum 属性。 该值为对每一文件运行的命令字符串。 默认字符串为/usr/bin/sum -r<。 |
| 设置辅助数据 | 要用 setgid 程序检测是否为无效的管理组的附加列表(ID 号大于 200 的组)。 如果该值为空白,那么除去 setgids 属性。 该值为一个由逗号分隔的组名列表。 |
| 设置标识 | 要用 setuid 程序检测是否为无效的管理用户的附加列表(ID 号大于 200 的用户)。 如果该值为空白,那么除去 setuids 属性。 该值为一个由逗号分隔的用户名列表。 |
| treeck_nodir | tcbck 命令不验证的目录列表。 如果该值为空,那么除去 treeck_nodir 属性。 该值为由逗号分隔的目录列表。 不排除该属性中的目录下的文件系统。 用 -i 标记来排除这些文件系统。 仅当指定 tree 选项时,才使用此选项。 |
| 树形 (treeck_novfs) | 为在检测已安装的文件系统树时 tcbck 命令不验证的文件系统列表。 如果该值为空白,那么除去 treeck_novfs 属性。 该值为由逗号分隔的文件系统列表。 仅当指定 tree 选项时,才使用此选项。 |
请参阅 /etc/security/sysck.cfg 文件以获取有关这些属性的更多信息,并参阅 示例 以获取有关典型节的信息。
如果包含了无值的属性,那么该命令试图从要改变的文件中计算该值。 type 属性是强制性的,但其他不必指定。
修正错误
要修正错误,tcbck 命令通常将属性复位为已定义值。 对于下列属性,命令按如下所述修改其操作:
| 项 | 描述 |
|---|---|
| 校验和 | 通过清除文件的访问控制表来禁用文件,但不停止任何进一步的检测。 |
| 链接 | 创建任何缺少的硬链接。 如果存在到另一文件的链接,那么删除该链接。 |
| PROGRAM | 调用该程序,该程序必须存在并有绝对路径名。 如果发生错误,会显示出一条消息,但不采取其他的操作。 |
| 大小 | 通过清除文件的访问控制表来禁用文件,但不停止任何进一步的检测。 |
| SOURCE | 将源文件复制到由 File 参数标识的文件。 如果源为空(null),那么删除任何现有文件,并创建正确 type 的文件。 |
| symlinks | 创建缺少的符号链接。 如果存在到另一文件的链接,那么删除该链接。 |
| TYPE | 通过清除文件的访问控制表来禁用文件,并停止任何进一步的检测。 |
如果使用 -t 标志和 tcbck 命令,会提示请您决定修订错误。 如果你回答yes,错误已修复。 如果给出其他任何答复,那么不修订错误。
安全性
访问控制:该命令仅授予 root 用户和安全组的成员执行 (x) 访问权。 该命令应对 root 用户设置用户标识并具有可信计算库属性。
访问的文件:
| 方式 | 文件 |
|---|---|
| R | /etc/passwd |
| R | /etc/group |
| R | /etc/security/user |
| rw | /etc/security/sysck.cfg |
| X | /usr/bin/aclget |
| X | /usr/bin/aclput |
| X | /usr/bin/sum |
审计事件:
| 事件 | 信息 |
|---|---|
| TCBCK_Check | 文件、错误、状态 |
| TCBCK_Update | 文件、功能 |
示例
- 要使用 acl, checksum和 class添加 /bin/boo 文件, group, owner和 program 属性tcbck数据库,类型:
产生的节将包含之前所给出的属性,未定义的属性都会插入计算值。 数据库将包含如下的节:tcbck -a /bin/boo acl checksum class=audit group owner\ program=/bin/boock
属性值添加到安装定义,但不检测正确性。 program 属性值来自命令行, checksum 属性值是使用 checksum 程序和所有其他程序计算的,但acl,根据文件索引节点计算。/bin/boo: acl = checksum = 48235 class = audit group = system owner = root program = /bin/boock type = FILE - 要指示应该检查文件的大小,但不应将其添加到数据库,因为它可以在安装期间展开,请使用 VOLATILE 关键字,如以下示例中的 /etc/passwd 文件所示:
/etc/passwd: type = FILE owner = root group = system size = 1234,VOLATILE - 要从以下目录中删除 /bin/boo 文件定义:tcbck数据库,类型:
tcbck -d /bin/boo - 要删除具有以下内容的所有定义:class个(共audit从tcbck数据库,类型:
tcbck -d audit - 要检查tcbck数据库,并修正和报告所有错误,请输入:
tcbck -y ALL - 要排除/calvin与/hobbes在对已安装的文件系统树进行安全性审计期间通过验证的文件系统,请输入:
tcbck -a sysck treeck_novfs=/calvin,/hobbes - 要在安全性审计期间从验证中排除目录,请输入:
tcbck -a sysck treeck_nodir=/home/john - 要添加jfh和jsl作为管理用户和developers作为要在已安装文件的安全性审计期间验证的管理组,请输入:
tcbck -a sysck setuids=jfh,jsl setgids=developers - 要为新创建的 /dev 条目创建/修改 sysck.cfg 节条目foo和bar,类型:
tcbck -l /dev/foo /dev/bar注: 通过添加这些条目,您将在可信计算库中注册这些条目。
文件
| 项 | 描述 |
|---|---|
| /usr/bin/tcbck | 指定到 tcbck 命令的路径。 |
| /etc/security/sysck.cfg | 指定到系统配置数据库的路径。 |