1


简介

本章介绍 Solaris Security Toolkit 软件的设计和用途。其中涉及关键组件、功能、优点和所支持平台方面的信息。本章还提供有关对修改和部署进行版本控制的准则,并提出有关定制 Solaris Security Toolkit 软件的重要准则。

本章包含以下主题:


使用 Solaris Security Toolkit 软件保护系统安全

Solaris Security Toolkit 软件的非正式名称为 JASS(JumpStart 体系结构和安全脚本)工具包,可提供自动化、可扩展、可伸缩的机制来构建和维护 Solaris OS 系统的安全。使用 Solaris Security Toolkit 软件可以加强、最小化和审计系统的安全性。

系统安装和配置应该尽可能实现自动化(理想状态为 100%)。本准则包括 OS 安装和配置、网络配置、用户帐户、应用程序和安全性修改方面的信息。安全性修改包括加强系统安全性和/或最小化系统安全性,具体取决于系统的用途。JumpStart 软件是一种可用于实现 Solaris OS 安装自动化的技术。JumpStart 软件提供一种通过网络安装系统的机制,很少需要或不需要人为干预。Solaris Security Toolkit 软件提供了一个框架和多个脚本,可在基于 JumpStart 软件的安装中实现并使大部分与加强和最小化 Solaris OS 系统安全性相关的任务自动化。

此外,Solaris Security Toolkit 软件还具有独立模式。该模式能够执行与 JumpStart 模式中相同的所有安全性加强功能,但是只能在经过部署的系统上使用。在上述两种模式中,安全性修改的定制可以并且应该与系统的安全性要求相匹配。

无论采取哪种方式安装系统,您都可以在初始阶段使用 Solaris Security Toolkit 软件来加强和最小化系统的安全性。然后,定期使用 Solaris Security Toolkit 软件来审计安全系统的安全性配置文件是否被意外或恶意地进行了修改。



注 - 术语审计 指的是 Solaris Security Toolkit 软件对安全性状态的自动化验证过程,方法是与预先定义的安全性配置文件相比较。本出版物中使用此术语,并不表示在使用审计选项后便可保证系统的绝对安全。




了解软件组件

本节概述了 Solaris Security Toolkit 软件的组件结构。Solaris Security Toolkit 软件是多个文件和目录的集合。图 1-1 为该软件的结构示意图。


图 1-1 软件组件结构

软件组件结构示意图。


除这些目录和子目录外,以下文件位于 Solaris Security Toolkit 软件结构的顶层,在 /bin 中:

目录

Solaris Security Toolkit 体系结构的组件按以下目录进行组织:

本节中逐一介绍了每个目录,并在适当的位置列出了每个脚本、配置文件或子目录,同时还将提供其他章节作为参考以便您获得详细信息。

Solaris Security Toolkit 目录结构是基于 Sun BluePrints 书籍《JumpStart Technology: Effective Use in the Solaris Operating Environment》 中所述的结构。

Audit 目录

该目录包含的脚本,可评估系统是否符合预定义的安全性配置文件或审计脚本集。该目录中的脚本分为以下类别:

有关每个类别中脚本的详细列表和每个脚本的说明,请参阅《Solaris Security Toolkit 4.1 Reference Manual》

Documentation 目录

本目录包含针对用户使用信息的文本文件,如自述文件。

man 目录

本目录包含命令、功能和驱动程序手册页部分的子目录。此外,本目录还包含 windex 文件,该文件是命令的索引,且免费提供。

有关上述手册页的详细信息,请参见手册页本身或《Solaris Security Toolkit 4.1 Man Page Guide》

Drivers 目录

该目录包含配置信息文件,这些配置信息指定了运行 Solaris Security Toolkit 软件时需要执行和安装的文件。该目录还包含驱动程序、脚本和配置文件。

以下是 Drivers 目录中的驱动程序和脚本的实例:

所有特定产品的驱动程序以及某些其他驱动程序均包括三个文件:

在以上列表中,这三个文件是在括号中列出的,例如 sunfire_15k_sc-{config|hardening|secure}.driver。列出这些文件是为了突出完整性。执行某个驱动程序时,仅使用 name-secure.driver 即可。该驱动程序会自动调用相关的驱动程序。

Solaris Security Toolkit 体系结构包括可以使驱动程序、finish 和 audit 脚本不经修改(不修改实际的脚本本身)便可用于不同环境的配置信息。在 finish 和 audit 脚本中的所有变量都在一个配置文件集中进行维护 -- 这些配置文件是由驱动程序导入的,当驱动程序调用脚本时 finish 和 audit 脚本就可以使用变量。

Solaris Security Toolkit 软件具有三个主要配置文件,它们都存储在 Drivers 目录中:

由驱动程序调用的 finish 脚本位于 Finish 目录中。由驱动程序调用的 audit 脚本位于 Audit 目录中。由驱动程序安装的文件从 Files 目录中读取。有关 finish 脚本和 audit 脚本的详细信息,请参阅本书中相应的章节。

图 1-2 显示了驱动程序控制流程的流程图。


图 1-2 驱动程序控制流程

驱动程序控制流程的示意图。


首先从 .init 文件导入所有环境变量。完成后,驱动程序继续进行到第二部分:定义 JASS_FILESJASS_SCRIPTS。这两个定义是可选的;可以定义任意一个单独的环境、也可以定义两个或者不定义任何环境。驱动程序的第三部分调用 driver.run 来执行由 JASS_FILEJASS_SCRIPTS 环境变量所定义的任务。

代码示例 1-1显示了驱动程序控制流程。


代码示例 1-1 驱动程序控制流程

DIR="`/bin/dirname $0`"
 
export DIR
. ${DIR}/driver.init
 
JASS_FILES="
                         /etc/cron.d/cron.allow
                         /etc/default/ftpd
                         /etc/default/telnetd
"
 
JASS_SCRIPTS="
                         install-at-allow.fin
                         remove-unneeded-accounts.fin
"
. ${DIR}/driver.run

 

该代码实例设置 DIR 环境变量并将其导出,以使驱动程序识别启动目录。接下来,将 JASS_FILES 环境变量定义为包含从 JASS_HOME_DIR/Files 目录复制到客户机上的那些文件。然后,将 JASS_SCRIPTS 环境变量定义为包含由 Solaris Security Toolkit 软件运行的 finish 脚本。最后,通过调用 driver.run 驱动程序执行运行加强系统安全性的操作。一旦调用,driver.run 将复制 JASS_FILES 中指定的文件,并运行 JASS_SCRIPTS 中指定的脚本。

Files 目录

该目录用于 JASS_FILES 环境变量和 driver.run 脚本。该目录存储着复制到 JumpStart 客户机的文件。

该目录中包含以下文件:

Finish 目录

该目录包含 finish 脚本,该脚本在安装过程中执行系统修改和更新。该目录中的脚本分为以下类别:

有关每个类别中脚本的详细列表和每个脚本的说明,请参阅《Solaris Security Toolkit 4.1 Reference Manual》

OS 目录

该目录仅包含 Solaris OS 映像。这些映像将作为客户机的安装源在 JumpStart 软件安装过程中加以使用,同时这些映像还将提供 add_install_clientrm_install_client 脚本。add_client 脚本接受这些附加目录名称。

有关加载和修改 Solaris OS 映像的详细信息,请参阅 Sun BluePrints 书籍《JumpStart Technology: Effective Use in the Solaris Operating Environment》

标准安装命名惯例如下。

Solaris OS

对于 Solaris OS,请使用以下的命名标准:

Solaris_OS 版本_CD 版本的 4 位数年份_2 位数月份

例如,日期为 2001 年 4 月的 Solaris 8 Operating Environment CD 的目录名称应为 Solaris_8_2001-04。通过将 Solaris OS 的更新和版本分开,可以对测试和开发目的维护进行非常精细的控制。

Trusted Solaris OS

对于 Trusted Solaris,请使用以下目录命名标准:

Trusted_Solaris_OS 版本_CD 版本的 4 位数年份_2 位数月份

例如,如果 Trusted Solaris 软件版本日期为 2000 年 2 月,则该目录名称应为:Trusted_Solaris_8_2000-02

Solaris OS Intel Platform Edition

对于 Solaris OS Intel Platform Edition,请使用以下目录命名标准:

Solaris_OS 版本_CD 版本的 4 位数年份_2 位数月份_ia

例如,如果 Solaris OS Intel Platform Edition 发布日期为 2001 年 4 月,则该目录名称应为:Solaris_8_2001-04_ia

Packages 目录

该目录包含可以使用 finish 脚本进行安装的软件包。例如,Sun Javatrademark System Web Server(之前称为 Suntrademark ONE Web Server,在其之前又称为 iPlanettrademark Web Server)软件包存储在 Packages 目录中,以便在需要时由相应的 finish 脚本安装该软件。

Solaris Security Toolkit 软件包含的几个 finish 脚本可以执行软件安装和基本的配置功能。从 Packages 目录中安装软件的脚本包括:

Patches 目录

本目录用于存储 Solaris OS 的 Recommended and Security Patch Clusters。下载必需的修补程序并将其提取到本目录中。

通过将修补程序放置在该目录中并在其中提取,可以简化安装操作。当修补程序提取到该目录中时,Solaris Security Toolkit 软件修补程序安装脚本会使安装自动化,因此无须手动为每个系统安装提取修补程序群集。

为所使用的每个 Solaris OS 版本创建子目录。例如,Patches 目录中可能已经存在 2.5.1_Recommended2.6_Recommended 目录。

Solaris Security Toolkit 软件支持 Solaris OS Intel Platform Edition 修补程序群集。这些修补程序群集所支持的命名惯例与通过 SunSolve OnLineSM 服务获得的命名惯例相同。

格式为 Solaris_<release>_x86_Recommended。用于 Solaris 8 OS 的 Solaris OS Intel Platform Edition 修补程序群集将位于一个名称为 Solaris_8_x86_Recommended目录中。

Profiles 目录

该目录包含所有 JumpStart 配置文件。JumpStart 软件使用这些配置文件中包含的配置信息以确定安装的 Solaris OS 群集(例如,核心、最终用户、开发人员或完整分发)、磁盘布局以及要执行的安装类型(例如,独立安装)。

rules 文件列出了它使用的 JumpStart 配置文件,以定义如何构建特定的系统或系统组。

Sysidcfg 目录

Profiles 目录类似,Sysidcfg 目录包含仅在 JumpStart 模式安装过程中使用的文件。通过提供必需的安装信息,这些文件可使 Solaris OS 安装自动化。特定操作系统的信息存储在单独的目录树中。

每个 Solaris OS 都具有一个单独的目录。每个版本都有一个名为
Solaris_OS 版本 的目录。Solaris Security Toolkit 软件提供了用于 Solaris OS 版本 2.5.1 至 9 的样例 sysidcfg 文件。

sysidcfg 文件样例可以扩展为其他类型,例如每个网络、主机等等。Solaris Security Toolkit 软件支持任意 sysidcfg 文件。

有关 sysidcfg 文件的其他信息,请参见 Sun BluePrints 书籍《JumpStart Technology: Effective Use in the Solaris Operating Environment》

数据信息库

数据信息库是 JASS_REPOSITORY 目录中的一个环境变量,它支持 Solaris Security Toolkit 将运行操作撤消,根据每个运行操作的执行方式来保存数据,维护由软件修改的文件清单以及保存执行日志的数据。撤消功能依赖于存储在数据信息库中的信息。


维护版本控制

维护由 Solaris Security Toolkit 软件使用的所有文件和脚本的版本控制非常关键,有以下两个原因。第一,该环境的其中一个目标就是能够重新创建系统安装。如果没有安装过程中所用到所有文件版本的快照,那么该目标是不可能实现的。第二,因为这些脚本执行安全性功能(这对很多组织来说都是关键的过程),所以必须给予严格的警告以确保仅适当并经过测试的更改加以了实施。

在 Solaris OS SUNWsprot 软件包中提供了源代码控制系统 (SCCS) 的版本控制软件包。用户可以使用来自免费软件和商业供应商的其他版本控制软件来管理版本信息。无论您使用哪种版本控制产品,都要使用一个过程,从而为将来系统的重新创建管理更新信息并获取版本信息。

除版本控制外,还要使用完整性管理解决方案以确定文件的内容是否已经被修改。尽管系统的特权用户可能能够绕过版本控制系统,但他们无法轻易地绕过完整性管理系统,该系统在远程系统上维护其完整性数据库。进行集中管理时,完整性管理解决方案会充分发挥其作用,因为本地存储的数据库可能会被恶意修改。


运行受支持的 Solaris OS 版本

对于 Solaris Security Toolkit 软件的 Sun 支持,仅限于在 Solaris 8 和 Solaris 9 操作系统中使用该软件。虽然该软件能够在 Solaris 2.5.1、Solaris 2.6 和 Solaris 7 操作系统中使用,但 Sun 支持并不适用于在这些操作系统中使用该软件。

Solaris Security Toolkit 软件可自动检测已安装的 Solaris OS 软件的版本,然后运行适合该操作系统版本的任务。


运行受支持的 SMS 版本

如果您使用 System Management Service (SMS) 来管理系统控制器 (SC),且所使用的 SMS 版本在 1.3 至 1.4.1 之间,则 Sun 支持可用于 Solaris Security Toolkit 4.1 软件。


配置和定制 Solaris Security Toolkit 软件

Solaris Security Toolkit 软件包含用于脚本、框架功能和变量的缺省值,这些缺省值可实现 Sun BluePrints 书籍《Enterprise Security: Solaris Operating Environment Security Journal, Solaris Operating Environment Versions 2.5.1, 2.6, 7, and 8》以及关于安全性的 Sun BluePrints OnLine 文章中的所有安全准则。这些设置并不适用于所有系统,因此必须定制 Solaris Security Toolkit 软件来满足系统的安全性要求。

Solaris Security Toolkit 软件的一个最重要特征就是可以轻松地定制,使它符合您的环境、系统和要求。要定制 Solaris Security Toolkit 软件,请通过驱动程序、finish 脚本、audit 脚本、框架功能、环境变量以及文件模板来对其进行调整。

大多数用户不需要修改 Solaris Security Toolkit 代码。任何更改都可能对支持性和升级产生负面影响。如果在用户环境中使用 Solaris Security Toolkit 软件必须修改代码,那么请将该代码复制到一个唯一的文件或功能名称中,以便轻松地跟踪更改,如准则中所述。

在整个指南中,每章的适当位置提供了用于定制 Solaris Security Toolkit 软件的准则和指导。请参见《Solaris Security Toolkit 4.1 Reference Manual》以查找关于定制驱动程序的帮助信息。定制包括修改和创建文件或变量。

以下章节提供了用于定制 Solaris Security Toolkit 软件的实例。实例重点介绍了定制 Solaris Security Toolkit 软件的某些方法;然而,还存在许多其他方法。

在尝试定制 Solaris Security Toolkit 软件之前,必须准确理解以下各节所给出的信息。这些信息基于从很多部署方案收集的共享经验,因此可以避免通常所犯的错误。

策略和要求

定制和部署 Solaris Security Toolkit 软件时,适当的规划可以确保正确配置结果平台配置,并且与组织的期望相一致。

在规划阶段中,请务必从各种来源中获取输入,这些来源包括安全性策略和标准、工业规程和准则以及供应商提供的首选做法。

除此之外非常重要的一点是,应该考虑应用程序和操作要求以确保配置结果不会影响平台为其预期的业务功能提供服务。

准则

定制 Solaris Security Toolkit 软件时,请考虑以下准则。了解并遵守这些准则有助于使维持部署的过程更加简单、有效。

     

注 - 请注意,如果您使用 pkgrm 命令删除了 SUNWjass,由其创建的 user.inituser.run 文件不会被删除。这种情况同样会发生在其他不包含在分发版中的、后来添加到 Solaris Security Toolkit 目录结构中的用户文件。同理,存在于 Solaris Security Toolkit 分发版本 Files 目录中的文件和 sysidcfg 文件将删除。