第7章 |
|
本章介绍如何将前面章节提供的信息和专门技术应用到现实的环境中,以安装新系统并保护其安全。本章举例说明如何用 Solaris 8 OS 的 Check PointFirewall-1 NG 来部署 Solaris Security Toolkit 软件。
Sun BluePrint 书籍和联机文章可为最小化系统和加强许多 Sun 系统的安全性提供指导。有关最新的产品专用的书籍和文章,请参见以下网站:
要按照该案例研究中所述有效地部署最小化的和安全的系统,规划和准备工作是很重要的。基本的网络体系结构、策略以及过程必须适当。另外,必须对系统的支持与维护进行定义与协调。有关规划与准备的更多信息,请参阅第 2 章。本章中讲述的案例记录了系统管理员 (SA) 为防火墙系统的 Solaris OS 映像实现最小化系统和加强安全性所需执行的过程与任务。
在本案例中,系统管理员的任务是创建一种自动并可伸缩的解决方案,用于为服务提供商 (xSP) 构建和部署 Check PointFirewall-1 NG 系统,以便为其客户提供防火墙服务 。对于本案例,xSP 的要求和注意事项如下:
基于这些要求,系统管理员决定使用 JumpStart 技术与 Solaris Security Toolkit 软件以使 OS 映像的安装、最小化系统与加强安全性都实现自动化。
本章假设 Solaris Security Toolkit 软件已经运行并使用 JumpStart 技术进行安装。本书中其他章节提供了安装软件的指导,请参阅相应章节了解有关信息。
本章假设正在为最小化和加强某个特定应用程序的安全性而开发定制的配置。Solaris Security Toolkit 软件没有任何专门用于该程序的驱动程序或 JumpStart 配置文件。因此,需要为此应用程序创建定制的驱动程序和配置文件。要完成此任务,可复制现有的驱动程序和配置文件,然后针对该应用程序对它们进行修改。
本案例中,已确定高级别要求和软件包,但是还需要确定所有软件包的特定组件和服务。另外,需要确定管理系统所需的 Solaris OS 功能。
在此列表中,可以开发安全性配置文件。有关开发安全性配置文件和使用配置文件模板的详细信息,请参阅开发和执行 Solaris Security Toolkit 配置文件。
安全性配置文件定义了在加强和最小化系统安全性配置时 Solaris Security Toolkit 软件所做的安全性修改。任何包含在 Solaris Security Toolkit 软件中的标准安全性配置文件或者驱动程序都不能满足最小化 Check PointFirewall-1 NG 系统的要求。因而,必须创建一个定制的安全性配置文件以实现适当的系统修改。
对于本案例,本章中的几节介绍了适合案例的创建安全性配置文件的过程。首先,创建基于现有驱动程序的新的驱动程序文件。然后修改新的驱动程序以满足之前所述的安全性要求。。最小化系统在安装软件中有讲述,而加强安全性修改在定制加强安全性配置中有讲述。
本节演示了安装软件的过程。对于实例案例,提供了关于异常情况或者特定案例的所有指导。有关安装软件的总的指导,请参考本指南的其他部分。
在 JumpStart 服务器上,下载并安装 Solaris Security Toolkit 及附加安全性软件(包括修补程序),如下所示。
|
1. 下载 Solaris Security Toolkit 软件及附加安全性软件。
请参阅下载安全性软件。
2. 安装已下载的 Solaris Security Toolkit 软件及附加安全性软件。
请参阅安装和执行软件。
![]() |
注意 - 目前先不要执行 Solaris Security Toolkit 软件。首先按照以下几节所述进行附加配置和定制。 |
OS 修补程序可以解决安全性漏洞、可用性问题、性能问题或系统其他方面的问题。安装新的 OS 时,以及在 OS 安装后的运行过程中,都要进行检查以确保安装了适当的修补程序。
Solaris Security Toolkit 软件提供了一种机制,以安装联机的 SunSolve 上可用的推荐的修补程序群集和安全性修补程序群集。此 OS 专用的修补程序群集包含通常最需要的修补程序。
|
1. 至少,将推荐的修补程序群集和安全性修补程序群集下载到 Patches 目录下并解压缩。
如果加强安全性驱动程序中包含了 install-recommended-patches.fin 脚本,则会自动安装修补程序群集。
Check PointFirewall-1 NG 还存在另外一个问题。此应用程序需要推荐的修补程序群集和安全性修补程序群集中未包含的特定修补程序。Check PointFirewall-1 NG 需要以下修补程序:
2. 要自动安装修补程序 108434 和 108435,请从联机的 SunSolve 下载最新的版本并将它们放入 Patches 目录。
3. 用每个修补程序名称创建一个调用 add_patch 助手功能的全新 finish 脚本(例如,fw1-patch-install.fin)。
该 finish 脚本通过两个 Check PointFirewall-1 NG 所需修补程序 ID 号调用适当的助手功能。例如:
为 OS 安装定义完磁盘布局后,下一个任务是指定需要安装哪一个 Solaris OS 群集。选择 Solaris OS 可用的五个安装群集之一:SUNWCreq、SUNWCuser、SUNWCprog、SUNWCall 和 SUNWCXall。
|
因为本案例的目标是创建一个最小且专用的防火墙设备,最小可用的 Solaris OS 群集,SUNWCreq,此软件包又称作 Core。
因为本群集包含了数量相对较少的软件包,所以也可能需要其他的软件包。这些所需的其他软件包需要包含在用 Solaris OS 群集定义的配置文件中。
SUNWCreq 安装群集包含的软件包并不都是 Sun 防火墙服务器正常运行所需要的。在具有了工作基准后,请删除这些额外的软件包。请参阅 Sun BluePrints OnLine 文章“Minimizing the Solaris Operating Environment for Security: Updated for the Solaris 9 Operating Environment”。
2. 用定义好的安全性配置文件进行安装以确定是否存在软件包从属性问题。
如果在安装过程中遇到一些软件包从属性问题,则认为 Check PointFirewall-1 NG 需要以下 Solaris OS 软件包:
虽然对于本案例研究而言,此列表是完整的,然而要根据部署此配置的实际环境来添加或删除附加的软件包。
软件包的最终列表可能还需要修改,直到按质量保证测试中所述从功能及安全性两方面对系统进行了验证。若如此,请修改配置文件,重新安装系统然后重复该测试。
3. 基于之前两个步骤中的软件包从属性,创建一个 minimize-firewall.fin 脚本。
本节演示了如何配置 JumpStart 服务器和客户机,以使用一个定制的安全性配置文件进行最小化。有关在 JumpStart 环境下使用 Solaris Security Toolkit 软件的详细信息,请参阅第 5 章。
执行以下任务以准备基础结构。以下任务演示了为在客户机上使用现有驱动程序、配置文件和 finish 脚本而创建基准配置的过程。确定基准后,验证其运转是否正常,然后为所选的应用程序定制基准。
|
有关详细的指导,请参阅第 5 章。
2. 使用 add-client 命令向 JumpStart 服务器中添加客户机。
3. 为客户机创建一个 rules 文件条目,指定适当的 JumpStart 配置文件和 finish 脚本。例如:
4. 通过复制 Solaris Security Toolkit 软件提供的文件,创建名为 xsp-minimal-firewall.profile 的配置文件和名为 xsp-firewall-secure.driver 的驱动程序文件。
在成功完成下一步之前必须创建这些文件。最初,这些文件可能是与 Solaris Security Toolkit 软件一起分发的文件的副本。请勿修改与 Solaris Security Toolkit 软件一起分发的原始文件。以下实例显示了如何创建文件。
本实例以一个专用的 Web 服务器配置为基础,因为它是开发专用防火墙的很好的基准。
5. 创建配置文件和驱动程序文件后,请按照以下所示修改文件:
a. 用 xsp-firewall-hardening.driver 替换与 hardening.driver 相关的 xsp-firewall-secure.driver。
b. 替换定义在 JASS_SCRIPTS 中的与 minimize-firewall.fin 和您的 finish 脚本(例如,fw1-patch-install.fin)相关的两个 finish 脚本。
这时,应该能够在客户机(本例中为 jordan)上开始 JumpStart 安装。使用 JumpStart 配置和创建的 Solaris Security Toolkit 驱动程序、finish 脚本与配置文件。
7. 如果在检查 rules 文件时遇到问题,请参阅验证和检查 rules 文件。
8. 在客户机的 ok 提示符下,输入以下命令以使用 JumpStart 基础结构安装客户机。
如果不能构建客户机,请检查配置并对其进行修改直到它能正常运行。注意,本节并未提到 JumpStart 配置的所有方面。有关更多细节,请参阅 Sun BluePrints 书籍《JumpStart Technology: Effective Use in the Solaris Operating Environment》。
正确运行 rules 文件并验证所安装的修补程序是正确的之后,可以开始进行客户机系统基础级别的安装并最小化系统和加强安全性。
当验证 rules 文件以纠正错误时,可能会遇到多种问题。本节提到了一些最常见的问题。
在本例中,不存在 jordan 的 rules 条目中指定的配置文件。配置文件 xsp-minimal-firewall.profile 没有在配置文件目录中出现。典型地,此错误产生的原因是文件名拼写错误,忘记为配置文件指定正确的路径或者还没有创建配置文件。修正错误并再次进行检查。
第二次运行操作会暴露两个其他问题。第一个问题是在 xsp-firewall-secure.driver 中调用的驱动程序。xsp-firewall-secure.driver 没有调用 xsp-firewall-hardening.driver,而仍然调用 hardening.driver。
第二个问题是将 JASS_SCRIPTS 变量错误地设定为 minimize-Sun_ONE-WS.fin 而不是 minimize-firewall.fin。
所建议防火墙的加强安全性配置可随时进行定制与调整。初始脚本基于 hardening.driver。这意味着系统进入“屏蔽墙”状态,即所有的服务程序都被禁用。
因为 Solaris 8 OS 不包含 Secure Shell 客户机,所以需要进行修改以允许对防火墙进行远程的基于网络的管理。本案例中提到的防火墙,要求 FTP 服务必须保持启用而且必须安装 Secure Shell 客户机以进行远程管理。将这两项服务限制到仅用于私用管理网络,从而不启动对任何其他网络接口的监听。有关限制这些服务的信息,请参阅 Sun BluePrints OnLine 上名为“Solaris Operating Environment Security: Updated for Solaris 9 Operating Environment”的文章。
除了保留这两项服务处于启用状态外,也保留 RPC 服务处于启用状态,以便能够使用 Solstice DiskSuite 图形用户界面 (GUI) 将 Solstice DiskSuite 配置为进行磁盘镜像配置。如果不准备使用 Solstice DiskSuite GUI,则不需要 RPC 服务。本例中,需要使用 GUI 因而要保持启用 RPC 服务。请注意,Solstice DiskSuite 的安装与配置超出了本书的范围。
本客户机所需的最终修改是使用 xSP 的中央 SYSLOG 服务器手动定制 syslog.conf 脚本。该定制的 syslog.conf 文件必须安装在防火墙系统中的每台计算机上。
这些修改需要更改许多 Solaris Security Toolkit 配置选项。在以下几节中详细介绍每个所需的修改。
|
1. 要保留 FTP 服务处于启用状态,请设定 JASS_SVCS_DISABLE 和 JASS_SVCS_ENABLE 变量以修改 update-inetd-conf.fin 文件的缺省操作。
要禁用除 FTP 之外所有标准的 Solaris OS 服务,对于本案例的最佳方法是将 JASS_SVCS_ENABLE 定义为 ftp,而确保 JASS_SVCS_DISABLE 保留为从 finish.init 脚本中获得的缺省值。请参阅《Solaris Security Toolkit 4.1 Reference Manual》。
2. 要通过环境变量实现更改,请在调用 xsp-firewall-hardening.driver 之前,向 xsp-firewall-secure.driver 添加一条与以下相似的条目。
3. 通过防火墙软件实现 FTP 服务以确保它仅在 xSP 的管理网络上可用。
其中的另一项要求是 FTP 应该仅在 xSP 的管理网络上可用。在 Solaris 8 OS 中,既可以通过在系统上使用 TCP 封装器,又可以通过防火墙软件本身来实现此要求。在本案例中,是通过防火墙软件实现此要求的。
因为 Solaris 8 OS 不包含 Secure Shell 客户机,所以请安装一台 Secure Shell 客户机用于远程管理。
可以配置 Solaris Security Toolkit 软件以安装 OpenSSH 工具。请使用列在 config.driver 文件(由 xsp-firewall-secure.driver 使用)中的 install-openssh.fin 脚本。
|
1. 将缺省的 config.driver 复制到 xsp-firewall-config.driver。
2. 在文件的副本中,去掉 install-openssh.fin 的注释条目。
3. 修改 xsp-firewall-secure.driver 的条目使其原本调用 config.driver 转而调用 xsp-firewall-config.driver。
与修补程序和 OS 版本一样,请使用 OpenSSH 的最新版本。有关最新版本信息,请参见 OpenSSH 网页:
5. 编译最新的 OpenSSH 软件包,进行适当命名并将它安装到 Packages 目录下。
有关本软件包的更多信息,请参阅 Sun BluePrints OnLine 中名为“Configuring OpenSSH for the Solaris Operating Environment”的文章。
6. 更新 install-openssh.fin 脚本以反映正确的 OpenSSH 软件包名称。
可能需要修改 install-openssh.fin 脚本。该脚本将 OpenSSH 软件包名称定义为与以下格式相似:
其中,软件包名称后紧跟版本号 (3.5p1)、体系结构 (sparc)、体系结构版本号 (sun4u)、软件包编译所针对的操作系统 (5.8) 和一个 pkg 后缀。
7. 通过防火墙软件实现 SSH 以确保它仅在 xSP 的管理网络上可用。
其中声明的另一项要求是 Secure Shell 仅在 xSP 的管理网络上可用。在 Solaris 8 OS 中,既可以通过系统使用 TCP 封装器,又可以通过防火墙软件本身来实现此要求。在本案例中,是通过防火墙软件实现此要求的。请注意也可以通过修改 Secure Shell 服务器的配置来实现此项要求。
保留 RPC 服务处于启用状态,从而可以使用 SDS 做磁盘镜像,这需要 RPC 服务。
因为在 Solaris Security Toolkit 运行过程中可使用一个特定 finish 脚本 disable-rpc.fin 禁用 RPC 服务,所以此修改是相对简单的。
|
为 xsp-firewall-hardening.driver 中的 disable-rpc.fin 的条目加注释。
通过为驱动程序中的脚本加注释符而不是直接删除它们来最终禁用这些脚本。在为 JASS_SCRIPTS 中定义的条目添加注释符时要小心,因为只可以接受特定的注释值的组合。
以下为包含在 driver.funcs 脚本中的注释,说明了 Solaris Security Toolkit 软件可作为注释而接受的定义在 JASS_SCRIPTS 中的注释符。
本客户机所需的最终修改是使用 xSP 的中央 SYSLOG 服务器手动定制的 syslog.conf 脚本。该定义的 syslog.conf 文件必须安装在防火墙系统中的每台计算机上。
|
1. 复制 xSP 的标准 syslog.conf 文件,将它重命名为 syslog.conf.jordan,再将其放到 Files/etc 目录中。
Solaris Security Toolkit 软件支持几种不同的复制文件模式。对于此配置最适当的选项是将系统主机名作为后缀附加到文件,以便只将 syslog.conf 文件复制到 jordan,因为它有唯一的防火墙专用修改。在本例中,客户机叫作 jordan,因而 Files/etc 中使用的实际文件名是 syslog.conf.jordan。注意,请勿为 JASS_FILES 定义添加此后缀,这点是非常重要的。有关后缀的更多信息,请参阅《Solaris Security Toolkit 4.1 Reference Manual》。
2. 如果 xSP 标准的 syslog.conf 文件不可用,则按照如下所示创建一个定制文件 syslog.conf。
a. 复制包含在 Solaris Security Toolkit 中的 syslog.conf 文件,然后将它重新命名为 syslog.conf.jordan,再将其放到 Files/etc 目录中。
b. 修改 syslog.conf.jordan 以使它符合 xSP 有关 SYSLOG 的标准。
3. 验证 /etc/syslog.conf 文件已列在 xsp-firewall-hardening.driver 的 JASS_FILES 定义中。
缺省情况下,xsp-firewall-hardening.driver 中的 JASS_FILE 定义会显示为如下。
/etc/init.d/set-tmp-permissions /etc/rc2.d/S00set-tmp-permissions |
这时,所有需要的修改已完成。OS 的安装、最小化和加强安全性操作已为特定的应用程序进行了定制并完全自动化。唯一没有完全自动化的过程是防火墙软件和 Solstice DiskSuite 的配置及安装。虽然可以使用 JumpStart 技术进行这些配置,但已超出了本书的范围。请参阅 Sun BluePrints 书籍《JumpStart Technology: Effective Use in the Solaris Operating Environment》。
|
1. 对驱动程序进行所有要求的修改后,请使用 JumpStart 基础结构安装客户机。
保护系统安全过程的最终任务涉及验证系统提供的应用程序和服务是否正常运行。同时,此任务还验证安全性配置文件是否成功地实现了所需的修改。
非常重要的一点是,重新引导已加强安全性并最小化的平台后要全面完成此任务,以确保可以检测到并能够迅速纠正出现的任何异常和问题。本过程分为两个任务:验证配置文件安装和验证应用程序与服务的功能。
|
要验证 Solaris Security Toolkit 软件正确地且没有任何错误地安装了安全性配置文件,请按以下进行检查与评估。
此文件安装在 JASS_REPOSITORY/jass-install-log.txt 中。
注 - 此日志文件可以作为参考以准确理解 Solaris Security Toolkit 软件对系统所做的工作。对于系统上的每个运行操作,都会根据运行操作起始时间在目录中保存一个新的日志文件。请勿直接修改这些文件和 JASS_REPOSITORY 目录中的其他文件。 |
有关审计选项的详细信息,请参阅第 2 章。本案例中,使用安装了 Solaris Security Toolkit 软件的客户机目录中的以下命令。
如果在对 Solaris Security Toolkit 运行操作验证时遇到任何不一致,请记下它们。运行操作结尾处的摘要会报告所发现的不一致总数。运行操作的全部输出位于 JASS_REPOSITORY 目录中。
|
应用程序和服务的验证过程包括一个明确的测试和一个验收规划。此规划用于使用系统中各种各样的组件或者应用程序以确定它们可用且运行良好。如果这样的规划不可用,则要根据系统的运行方式以合理的方法对系统进行测试。目的是确保加强安全性过程决不会影响应用程序或服务执行其功能。
1. 如果在加强系统安全性之后,发现了应用程序或者服务的故障,请使用第 2 章中所述的技术确定问题。
例如,使用 truss 命令。此命令通常用于确定应用程序出现问题的故障点。一旦了解后,即可找到问题并跟踪返回到 Solaris Security Toolkit 软件所做的更改。
注 - 根据许多部署过 Solaris Security Toolkit 软件人员的共同经验,使用本书中的方法可以避免大多数问题。 |
2. 以相似的方式测试 Check PointFirewall-1 NG 软件,并将问题跟踪返回到 Solaris Security Toolkit 软件所做的更改然后纠正这些问题。
3. 如果软件包的最终列表需要修改,则修改配置文件,重新安装系统再重复测试。
Copyright © 2004, Sun Microsystems, Inc. 保留所有权利