Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

compliance (8)

名称

compliance - 管理安全合规性测试

用法概要

compliance [subcommand subcommand_options ...]

描述

compliance 命令管理安全合规性策略。

compliance 命令使用基准和配置文件生成安全指南、评估和报告。指南是一个文档,描述某个基准的策略以及为了确保符合该策略所执行的测试。评估是根据某个基准对系统的安全配置所做的评估。基准是以可解释的编程方式指定的系统安全参数的可接受范围。配置文件选择在评估时要评估基准测试中的哪些测试;将指定一组配置文件作为基准测试的一部分。定制 (tailoring) 指定基准测试外部的配置文件。报告是显示评估结果的一种形式。

子命令

此命令有十三个子命令:assessdeleteexplainget-optionsget-policyguidelistreportrostersetoptionsset-policystoretailor

compliance assess [–b benchmark] [–p profile] [–m matches] [–a assessment] [–s store-URI] [–N node-URI]
compliance assess [–b benchmark] –t tailoring[–m matches] [–a assessment] [–s store-URI] [–N node-URI]
compliance assess [–a assessment] [–s store-URI] [–r roster]

assess 子命令根据基准测试当前的系统配置并创建结果系统信息库。

–a

可以使用 –a 选项指定评估系统信息库的名称。如果未指定,则该值缺省为一个基于评估参数和评估执行时间的值。

–b

可以使用 –b 选项指定基准。基准参数必须是所安装的指定基准。

–m

可以使用 –m 选项将用户指定的匹配数据与评估相关联。matches 参数是由 keyskey=value 对构成的以逗号分隔的列表。有关更多信息,请参见下文“匹配参数”部分。

–N

–N 选项指定将使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上执行评估。在这种情况下,直到在远程系统上完成评估或评估失败后,assess 子命令才会返回。

–p

可以使用 –p 选项将评估限定于指定的配置文件。如果未指定 –p 选项,则该值缺省为基准定义的第一个配置文件(如果存在)。

–r

–r 选项可用于评估 roster 中列出的一组远程系统。–r 选项只能与 –a–s 选项一起使用,因为用于评估每个远程系统的其他所有参数均可在 roster 中指定。有关更多信息,请参见 compliance-roster(8) 手册页。如果使用了 –rassess 子命令对 roster 中的每个远程系统发起评估后便返回,而不等待完成对远程系统的评估。使用 list -av 可检查评估的状态(请参见下文的 list 子命令)。

–s

–s 选项指定在完成后应使用 store-URI 参数将评估传输到远程评估存储。有关更多信息,请参见下文“存储 URI”部分。成功传输之后,将自动删除本地评估存储中的任何临时评估副本。

–t

–t 选项指定评估应该依照指定的定制进行。如果指定了 –b 选项,则采用安装的定制,好像单独的定制操作数是基准/定制一样。由于配置文件由定制隐式指定,因此 –p 选项不能与 –t 选项结合使用。

如果未指定 –b–p–t 选项,则从缺省策略中获取基准、配置文件和定制。有关更多信息,请参见 set-policy 子命令。

如果未指定 –a–m–s 选项中的任何一个,则从缺省选项中获取对应的参数。有关更多信息,请参见 set-options 子命令。显式使用这些含空参数 ("") 的选项与未设置对应缺省参数具有相同的效果。

如果 –N–r 选项均未指定,则对本地系统执行评估。在这种情况下,直到对本地系统完成评估或评估失败后,assess 子命令才会返回。

用户必须具有所有区域特权和 solaris.compliance.assess 授权才能执行评估。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权执行评估。

assess 子命令还会生成评估的统计信息,并将其上载到本地统计信息存储。授权用户可使用 sstore 命令查看该统计信息。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权上载统计信息。分配有 "Compliance Reporter"(合规性报告者)权限配置文件的用户有权收集和查看评估统计信息。有关更多信息,请参见 sstore(1) 手册页。

生成的统计信息分为以下几类:

//:class.app/solaris/compliance/assessment
//:class.app/solaris/compliance/rule
compliance delete [–n] [–v] [–N node-URI] {–m matches | assessment...}

delete 子命令为指定的 assessment 删除结果系统信息库,包括所有关联的报告。

–m

可以使用 –m 选项选择与 matches 表达式相匹配的评估进行删除。有关更多信息,请参见下文“匹配参数”部分。

–N

–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上进行删除。

–n

–n 选项列出可能要删除的评估,但禁止实际执行删除操作。

–v

–v 选项列出待删除的评估。

compliance explain [–H] [–b benchmark] [–t tailoring] [–N node-URI] all | rule_or_keyword...}

未提供任何参数时,explain 子命令列出的是缺省系统策略基准的规则或使用 –b 选项提供的基准的规则。

提供一个或多个参数时,将发出命名合规性规则的描述。如果没有规则与所提供的参数匹配,则对提供的参数执行不区分大小写的搜索,并发出任何匹配合规性规则的描述。

–H

–H 选项指定在列出合规性规则时不应发出列标题。

–b

–b 选项指定合规性规则局限于 benchmark 参数。如果未提供 –b 选项,则使用缺省系统策略基准。请参见下文的 'get-policy'。

–t

–t 选项指定,在必要时应在发出的规则和标题中使用指定定制中的值。

–N

–N 选项指定,使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示合规性规则的说明。

all

'all' 关键字指定应发出此基准的所有合规性规则的描述。

rule_or_keyword

发出命名规则标识符的描述。如果没有规则标识符相匹配,则对 –b 基准中的测试描述执行不区分大小写的搜索,并且仅发出匹配测试描述。

compliance get-options [–N node-URI]

get-options 子命令显示缺省评估选项。有关更多信息,请参见 set-options 子命令。

–N

–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示缺省评估选项。

compliance get-policy [–N node-URI]

get-policy 子命令显示缺省评估策略。有关更多信息,请参见 set-policy 子命令。

–N

–N 选项指定使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上显示缺省评估选项。

compliance guide [–p profile] [–b benchmark] [–o pathname]
compliance guide –a

–guide 子命令提供一个文档的位置,此文档以 html 格式描述给定基准的合规性要求,并在必要时生成特定的指南或针对所有已安装基准的指南。

–a

如果指定了 –a 选项,则为安装的所有基准以及关联的配置文件生成指南。

–b

对于单个指南,可以使用 –b 选项来指定 benchmark。benchmark 参数必须是所安装的指定基准;如果未指定,则该值缺省为 solaris

–o

如果指定了 –o 选项,则指南位于 pathname

–p

可以使用 –p 选项将指南定制为指定的 profile。如果未指定此选项,指南将包含 benchmark 定义的所有配置文件。

如果未指定 –o 选项或指定了 –a 选项,则指南位于合规性指南存储中。分配有 "Compliance Reporter"(合规性报告者)或 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权生成此类指南。

compliance list [–a] [–b] [–p] [–t] [–v] [–N node-URI]
compliance list –b [–v] [–p] [–N node-URI] [benchmark ...]
compliance list –a [–v] [–m matches] [–N node-URI] [assessment...]

list 子命令列出有关各种合规性对象(例如已安装的基准、已执行的评估、定制和登记表)的信息。缺省情况下,每行列出一个基准和评估。

–a

如果提供了 –a 选项和一个或多个 assessment 参数,则信息限定于匹配的评估。

–b

如果提供了 –b 选项和一个或多个 benchmark 参数,则信息限定于匹配的基准。

–m

可以使用 –m 选择仅列出与 matches 表达式相匹配的评估。有关更多信息,请参见下文“匹配参数”部分。

–N

–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上列出对象。

–p

如果指定了 –p 选项,则会列出每个基准的配置文件。

–r

如果指定了 –r 选项,则会列出登记表。

–t

如果指定了 –t 选项,则会列出定制。

–v

如果指定了 –v 选项,输出中会包含有关每个对象的其他描述性信息。

compliance report [–f format] [–o pathname] {–m matches | –a assessment}

report 子命令提供评估所需格式的报告的位置,并且在必要时生成所需格式的报告。

–a

可以使用 –a 选项指定评估系统信息库的名称。如果未指定,则该值缺省为最近执行的评估。

–f

可以通过 –f 选项选择合规报告的格式。格式选项包括 logxccdfhtmlsummarylog 格式报告是一个关于各评估结果的简单文本列表。xccdf 格式报告是 XML 格式的评估结果,用于编程处理。html 报告提供特定评估结果的 html 格式描述,包括失败的测试的补救信息。summary 报告提供 html 格式的总体信息,并链接至各种格式的评估报告。如果调用包含多个评估,则仅可提供 summary 格式。如果调用包含一个评估,则缺省格式为 html;如果调用包含多个评估,则缺省格式为 summary

–m

可以使用 –m 选项选择将与 matches 表达式相匹配的评估包含到报告中。有关更多信息,请参见下文“匹配参数”部分。

–o

如果未指定 –o 选项,则报告位于评估存储中。分配有 "Compliance Reporter"(合规性报告者)或 "Compliance Assessor"(合规性评估者)权限配置文件的用户有权生成此类报告。如果指定了 –o 选项,则报告位于 pathname

compliance roster [–r roster] [subcommand]
compliance roster [–r roster] –f filename

roster 子命令允许用户创建、查看、编辑和管理定制。有关更多信息,请参见 compliance-roster(8) 手册页。

compliance set-options [–a assessment] [–m matches] [–s store-URI] [–N node-URI]

set-options 子命令修改缺省评估选项。缺省选项用作 assess 子命令的缺省参数,且用于已调度的评估服务。每个缺省 assessmentmatchesstore-URI 参数都可以独立设置。

–a

–a 选项指定缺省评估名称。assessment 选项值可以为空值 (""),以指示不存在缺省评估名称。

–m

–m 选项指定缺省匹配参数。matches 选项值可以为空值 (""),以指示不存在缺省匹配参数。

–N

–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上修改缺省评估选项。

–s

–s 选项指定缺省 store-URI 参数。store-URI 选项值可以为空值 (""),以指示不存在缺省 store-URI 参数。

用户必须具有 solaris.compliance.assess 授权才能设置缺省选项;分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户具有此类权限。

compliance set-policy [–b benchmark [–p profile] [–t tailoring]] [–N node-URI]

set-policy 子命令修改缺省评估策略。缺省策略用作 assess 子命令的缺省参数,且用于已调度的评估服务。必须至少指定 –b–t 选项中的一个。

–b

–b 选项指定缺省基准。

–p

–p 选项指定缺省配置文件。–p 选项要求同时指定 –b 选项。–p 选项不能与 –t 选项一起使用。

–N

–N 选项可用于使用 node-URI 参数(请参见下文的 URI 操作数)在远程节点上修改缺省评估策略。

–t

–t 选项指定缺省定制。

用户必须具有 solaris.compliance.assess 授权才能设置缺省策略。分配有 "Compliance Assessor"(合规性评估者)权限配置文件的用户具有此类权限。

compliance store [–n] [–v] [–s store-URI] {–m matches | assessment...}

store 子命令通过使用指定的 store-URI 复制已指定的评估,包括远程评估存储中的所有关联报告。有关更多信息,请参见下文“存储 URI”部分。如果未指定 –s 选项,将使用缺省 store-URI。原始评估仍位于本地评估存储中。

–m

可以使用 –m 选项选择与 matches 表达式相匹配的评估进行复制。有关更多信息,请参见下文“匹配参数”部分。

–n

–n 选项列出可能要存储的评估,但禁止实际执行存储操作。

–v

–v 选项列出待存储的评估。

compliance tailor [–t tailoring] [subcommand]
compliance tailor [–t tailoring] –f filename

tailor 子命令允许用户创建、查看、编辑和管理定制。有关更多信息,请参见 compliance-tailor(8)。

匹配参数

所有评估均具有关联的匹配键。这包括系统定义的键和用户指定的键。键可以具有可选赋值。通过 list -av 子命令可以查看与评估关联的键。

系统定义的键总是以大写字母开头。下面列出了系统定义的键及其值的定义:

Architecture

执行评估的平台的硬件体系结构(值与 "uname -i" 相同)。

Benchmark

为此评估定义规则和值的基准。不论显式或隐式指定了基准,此键都会存在。

Legacy

在旧版 compliance 命令中创建的评估会自动分配有 UUID 键和值以及从现有数据派生的其他匹配键和值。生成的匹配数据是最佳结果。某些系统键将会丢失,而且 Tailoring 值对于从已安装的定制执行的评估是不准确的。只有此类派生的评估匹配数据包含 Legacy 键。评估存在 xccdf 结果文件时 Legacy 键的值将为 Derived,否则为 Empty

Name

调用 assess 子命令时与评估关联的名称。请注意,多个评估可共享同一个 Name

Node

执行评估的系统的名称。

Platform

执行评估的平台的通用平台枚举,该枚举特定于操作系统版本。

Profile

为此评估选择规则和值的配置文件。如果此评估使用了定制,则不会定义此键。

Status

此评估的状态。可能的值包括 CompletedInitiatedUninitialized

Tailoring

为此评估选择规则和值的定制。只有此评估使用了定制,此键才会存在。

Timestamp

最初,这是调用 assess 命令的时间。评估完成之后,这将更新为评估完成时间。键值采用 YYYY-MM-DDTHH-mm-SS 格式。

UUID

与每个评估关联的唯一标识符。对于早期版本 compliance 创建的评估,这可以与 Name 键值相同。

调用 assess 子命令时,用户可以将以逗号分隔的其他 keyskey=value 对指定为与评估关联。用户指定的键必须以小写字母开头。

调用 deletelistreport 子命令时,用户可以指定匹配表达式,以选择命令要处理的评估。匹配表达式是使用以下基元的布尔表达式。

key

如果评估具有关联键(不论键是否具有值),则为 true,否则为 false。

! key

如果评估不具有关联键,则为 true,否则为 false。

key = value
key == value

如果评估具有值为 value 的关联键,则为 true,否则为 false。

key != value

如果评估具有值不为 value 的关联键,则为 true,否则为 false。

key < value

如果评估具有值小于 value 的关联键,则为 true,否则为 false。值以字符串形式进行比较,因此 2014-12-31T23:59:59<2015 的求值结果为 true。

key > value

如果评估具有值大于 value 的关联键,则为 true,否则为 false。值以字符串形式进行比较,因此 2015-01-01T00:00:00>2015 的求值结果为 true。

( expression )

与括起来的表达式具有相同的求值结果。

匹配表达式的布尔运算如下:

operand1 & operand2

如果 operand1operand2 的求值结果都为 true,则为 true,否则为 false。

operand1 | operand2

如果 operand1operand2 的求值结果为 true,则为 true,否则为 false。

请注意,匹配表达式中有许多运算符用作 shell 元字符,因此必须恰当地将它们括在引号中或转义,以避免通过 shell 进行解释。

存储 URI

使用 store-URI 对远程评估存储进行访问。store-URI 解释为 RAD URI。有关更多信息,请参见 rad(8) 手册页。值可用节点名称(例如 hostname 命令的输出、IP 地址或全限定域名)表示,在这种情况下,它将强制使用 RAD URI 格式。方案缺省为 ssh,user 缺省为当前用户,而 port 缺省为标准 RAD 端口。请注意,已指定的 store-URI 不可要求交互式验证,例如口令提示。

服务

SMF 服务实例 svc:/application/security/compliance:default 可用于自动执行已调度的评估。评估参数取自于缺省选项和策略。有关更多信息,请参见 set optionsset-policy 子命令。缺省情况下,default 实例处于脱机状态。有关调度参数的信息,请参见 svc.periodicd(8) 手册页。

SMF 服务实例 svc:/application/security/compliance:generate-guide 用于在合规性指南存储中自动生成指南文件。缺省情况下,generate-guide 实例处于联机状态。如果将 FMRI 指定为 restart_fmri 执行器,则会在软件包/系统安装期间生成指南文件。根据所安装文件的新旧程度,只在必要时(重新)生成指南。

退出状态

将返回以下退出值:

0

成功完成。

1

用法错误。

2

assess 子命令可能会返回该值,以指示子命令已成功执行,但评估的系统不合规。

>2

程序失败。

基准

compliance 命令提供了一个由供应商定义的名为 solaris 的基准。此基准的配置文件作为阈值指定,以便个别配置参数具有更高安全设置的系统可以通过此配置文件。solaris 基准包括一个 Baseline 配置文件,该配置文件对应于全新安装的 Oracle Solaris 实例的缺省安全配置设置;以及一个与供应商建议的配置对应的 Recommended 配置文件,该配置文件适用于不要求与以前 Oracle Solaris 版本兼容的系统。

示例

示例 1 显示系统上已安装的指定基准

以下示例展示了如何显示系统上已安装的指定基准:

% compliance list -bv
pci-dss
       PCI-DSS Security/Compliance benchmark for Oracle Solaris
solaris
       Oracle Solaris Security Policy
示例 2 显示 Solaris 基准的配置文件

以下示例展示了如何显示 solaris 基准的配置文件:

% compliance list -bp solaris
solaris: Baseline Recommended
示例 3 使用 Solaris 基准的 Recommended 配置文件来评估系统

以下示例显示了如何通过使用 Solaris 基准的 Recommended 配置文件和关联匹配键 demoexample=3 来对系统进行评估,并将结果存储在 CHECK 系统信息库中:

% compliance assess -p Recommended -b solaris -a CHECK -m demo,example=3
-N ssh://example@oracle.com
示例 4 列出评估和键

以下示例显示了如何列出所有评估,同时显示关联键。

% compliance list -av
CHECK
 UUID: 657fd530-6c58-11e5-8f4c-8003baa8d665
  Benchmark=solaris
  Profile=Recommended
  Status=Completed
  Node=lymph
  Platform=cpe:/o:oracle:solaris:11
  Architecture=i86pc
  Timestamp=2015-10-31T18:19:20
  Username=root
  UserID=0  
  demo
  example=3
示例 5 生成一个包含具有 demo 键的所有评估的报告

以下示例显示了如何生成一个摘要报告,并在其中包含关联了 demo 键的所有评估。

% compliance report -m demo -f summary
/var/share/compliance/assessments/657fd530-6c58-11e5-8f4c-8003baa8d665/summary.html
示例 6 检查和配置已调度的评估

以下示例显示了如何检查和配置已调度的评估。

# view the current schedule
% svccfg -s compliance:default listprop scheduled

# view when last run and next to be run
% svcs -o state,lrun,nrun,astate,fmri compliance:default

# configure the scheduled assessment to run every Sunday at 1am
% svccfg -s compliance:default setprop scheduled/interval = week
% svccfg -s compliance:default setprop scheduled/day = astring: Sunday
% svccfg -s compliance:default setprop scheduled/hour = integer: 1
示例 7 创建包括 notselected 结果类型项的报告

以下示例展示了如何生成包括 notselected 结果类型项但隐藏 informational 结果类型的报告:

% compliance report -s notselected,-informational -a CHECK
/var/share/compliance/assessments/CHECK/report.-informational,notselected.html

文件

/usr/lib/compliance

包含合规程序、数据和测试基准的目录。

/usr/lib/compliance/benchmarks

包含打包的合规基准的目录。

/var/share/compliance

合规性指南、登记表、评估和报告的存储。

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
security/compliance
security/compliance/benchmark/solaris-policy
接口稳定性
Committed(已确定)

另请参见

attributes(7)compliance-tailor(8)、compliance-roster(8)、oscap(8)rad(8)svc.periodicd(8)svccfg(8)svcs(1)uname(1)

Oracle Solaris 11.4 Security Compliance Guide

Oracle Solaris 11.4 安全和强化准则

附注

compliance 命令仅针对当前操作系统映像执行。如果需要验证其他区域或域,则应当另外调用 compliance 命令。

用户可以使用以下命令来确定用于评估的 solaris 基准的版本:

% pkg info solaris-policy

建议不要使用 svccfg 命令修改 svc:/application/security/compliance:default 选项或策略属性组。此类更改不会在语义上进行验证,因此可能会导致后续评估失败。