本章介绍了如何使用自动安全性增强工具 (Automated Security Enhancement Tool, ASET) 来监视或限制对系统文件和目录的访问。
以下是本章中的逐步说明列表:
如需一种比 ASET 更为全面的工具,请使用 Solaris 安全工具包。Solaris 安全工具包提供了用于强化和最小化 Solaris 系统的框架。此工具包包括文件配置工具、报告工具和撤消功能。此工具包是免费的,可以从 Sun Web 站点 http://wwws.sun.com/security/jass 下载。此 Web 站点包含指向联机文档的链接。
Alex Noordergraaf 和 Glenn Brunette 合著的《Securing Systems with the Solaris Security Toolkit》(ISBN 0-13-141071-7,2003 年 6 月)中对此工具包进行了详细说明。本书是 Sun Microsystems Press 出版的 Sun BluePrints 系列的一部分。
Solaris 操作系统包括自动安全性增强工具 (Automated Security Enhancement Tool, ASET)。ASET 通过自动执行原本需要手动执行的任务来帮助监视和控制系统安全性。
ASET 安全软件包提供可用于控制和监视系统安全性的自动管理工具。您可以指定运行 ASET 时的安全级别。安全级别包括低、中和高。级别越高,ASET 的文件控制功能越强,从而可限制文件访问并提高系统安全性。
ASET 可以运行七项任务。每项任务都针对系统文件执行特定的检查和调整。ASET 任务可以加强对文件权限的控制,检查关键系统文件内容中的安全漏洞以及监视重要区域。ASET 还可以通过将防火墙系统的基本要求应用于网关系统来保护网络。请参见防火墙设置。
ASET 使用主文件进行配置。主文件、报告和其他 ASET 文件都位于 /usr/aset 目录中。可以更改这些文件以适应您站点的特定要求。
每项任务都会生成一个报告。此报告将记录检测到的安全漏洞以及任务对系统文件所做的任何更改。以最高安全级别运行时,ASET 将尝试修复所有系统安全漏洞。如果 ASET 无法更正某个潜在的安全问题,则会报告存在此问题。
您可以通过交互地使用 /usr/aset/aset 命令来启动 ASET 会话。或者,也可以通过向 crontab 文件中加入一项,将 ASET 设置为定期运行。
ASET 任务会占用大量磁盘空间,并且会干扰常规活动。要将对系统性能的影响降至最小,可以安排 ASET 在系统活动量最少时运行。例如,每 24 或 48 小时在午夜运行一次 ASET。
可以将 ASET 设置为在三种安全级别之一下运行:低、中或高。级别越高,ASET 的文件控制功能就越强,从而可限制文件访问并提高系统安全性。这些功能范围很广,从在不限制用户访问文件的情况下监视系统安全性,到逐渐加强对访问权限的控制直到系统完全安全为止。
下表概括了这三种安全级别。
ASET 不会通过更改文件的权限来降低文件的安全性,除非您降低安全级别。您也可以专门将系统恢复到运行 ASET 之前存在的设置。
本节介绍 ASET 所执行的任务。您应该了解每项 ASET 任务。通过了解 ASET 的目标、ASET 执行的操作以及 ASET 影响的系统组件,可以有效地理解和使用其报告。
ASET 报告文件包含的消息尽可能详细地说明了每项 ASET 任务发现的所有问题。这些消息有助于诊断和更正这些问题。但是,要成功使用 ASET,您需要对系统管理和系统组件有大致的了解。如果您是初级管理员,可以参阅其他 Solaris 系统管理文档。您可以参阅相关的手册页来学习 ASET 管理。
taskstat 实用程序用于标识已完成的任务,以及仍在运行的任务。每项完成的任务都会生成一个报告文件。有关 taskstat 实用程序的完整说明,请参阅 taskstat(1M)。
此任务会将系统文件的权限设置为指定的安全级别。此任务在安装系统时运行。如果您稍后决定更改先前建立的级别,请再次运行此任务。在低安全级别,权限会设置为适合于开放式信息共享环境的值。在中安全级别,会加强对权限的控制,以便为大多数环境提供足够高的安全性。在高安全级别,会控制权限以严格限制访问。
此任务对系统文件权限或参数设置所做的任何修改都会报告在 tune.rpt 文件中。有关 ASET 在设置权限时参考的文件的示例,请参见,请参见调优文件示例。
此任务会检查系统文件,并将每个文件与主文件中相应文件的说明进行比较。主文件是 ASET 首次运行此任务时创建的。主文件包含 checklist 针对指定安全级别执行的系统文件设置。
针对每种安全级别,将定义要检查其文件的目录的列表。可以使用缺省列表,也可以修改列表,以便针对每个级别指定不同的目录。
对于每个文件,会检查以下条件:
属主和组
权限位
大小以及校验和
链接数目
上次修改时间
ASET 发现的任何差异都会报告在 cklist.rpt 文件中。此文件包含将系统文件大小、权限及校验和的值与主文件进行比较的结果。
此任务会检查用户帐户和组的一致性和完整性。此任务使用 passwd 和 group 文件中的定义。此任务检查本地口令文件、NIS 口令文件或 NIS+ 口令文件,并报告 NIS+ 的口令文件问题,但不会进行更正。此任务将检查以下违规:
重复的名称或 ID
格式不正确的项
缺少口令的帐户
无效的登录目录
nobody 帐户
空的组口令
NIS 服务器或 NIS+ 服务器上的 /etc/passwd 文件中的加号 (+)
在执行此任务的过程中,ASET 会检查各种系统表,其中大多数系统表位于 /etc 目录中。这些文件包括:
/etc/default/login
/etc/hosts.equiv
/etc/inetd.conf
/etc/aliases
/var/adm/utmpx
/.rhosts
/etc/vfstab
/etc/dfs/dfstab
/etc/ftpd/ftpusers
ASET 会对这些文件执行各种检查和修改,并在 sysconf.rpt 文件中报告问题。
此任务会检查为超级用户和其他用户设置 PATH 和 UMASK 环境变量的方式,并检查 /.profile、/.login 和 /.cshrc 文件。
此任务会检查 eeprom 安全参数的值,以确保此参数设置在合适的安全级别。 可以将 eeprom 安全参数设置为 none、command 或 full。
ASET 不会更改此设置,但会在 eeprom.rpt 文件中报告其建议。
此任务确保系统可以安全地用作网络中继。此任务通过将专用系统设置为防火墙,保护内部网络不受外部公共网络的干扰,防火墙系统对此进行了说明。防火墙系统可分隔两个网络。在这种情况下,每个网络都作为不可信对象访问另一个网络。防火墙设置任务将禁止 Internet 协议 (Internet Protocol, IP) 包的转发。防火墙还会对外部网络隐藏路由信息。
防火墙任务可以在所有安全级别运行,但是仅在最高级别执行操作。如果要在高安全级别运行ASET,但发现系统不需要防火墙保护,则可以取消防火墙任务。可以通过编辑 asetenv 文件删除此任务。
所做的任何更改都会报告在 firewall.rpt 文件中。
无论 ASET 以交互方式运行还是在后台运行,它都会生成执行日志。缺省情况下,ASET 会生成标准输出形式的日志文件。执行日志可确认 ASET 是否在指定时间运行,并且还包含所有执行错误消息。aset -n 命令指示将日志通过电子邮件发送到指定的用户。有关 ASET 选项的完整列表,请参见 aset(1M) 手册页。
ASET running at security level low Machine=example; Current time = 0325_08:00 aset: Using /usr/aset as working directory Executing task list... firewall env sysconfig usrgrp tune cklist eeprom All tasks executed. Some background tasks may still be running. Run /usr/aset/util/taskstat to check their status: $/usr/aset/util/taskstat aset_dir Where aset_dir is ASET's operating directory, currently=/usr/aset When the tasks complete, the reports can be found in: /usr/aset/reports/latest/*.rpt You can view them by: more /usr/aset/reports/latest/*.rpt |
执行日志首先显示运行 ASET 的系统和时间。然后,执行日志会列出启动任务时的每项任务。
ASET 将针对这些任务中的每一项调用后台进程,这在ASET 任务列表中进行了说明。启动任务时,执行日志中会列出此任务。列出此任务并不意味着任务已完成。要检查后台任务的状态,请使用 taskstat 命令。
由 ASET 任务生成的所有报告文件都存储在 /usr/aset/reports 目录下的子目录中。本节介绍 /usr/aset/reports 目录的结构,并提供管理报告文件的指南。
ASET 将报告文件放在子目录中,这些子目录的名称可反映报告生成时间和日期。通过此约定,可以按顺序跟踪记录,这些记录用于在系统状态随 ASET 执行的不同而变化的过程中记载系统状态。可以监视和比较这些报告以确定系统安全的可靠性。
下图显示了 reports 目录结构的示例。
此示例说明了两个报告子目录。
0124_01:00
0125_01:00
子目录的名称指明了报告的生成日期和时间。每个报告子目录名称都具有以下格式:
monthdate_hour:minute |
month、date、hour 和 minute 都是两位数字。例如,0125_01:00 表示 1 月 25 日凌晨 1 点。
这两个报告子目录都包含执行一次 ASET 所生成的报告集合。
latest 目录是始终指向包含最新报告的子目录的符号链接。因此,要查看 ASET 生成的最新报告,可以转至 /usr/aset/reports/latest 目录。此目录中包含 ASET 在最近一次执行期间所执行的每项任务的报告文件。
每个报告文件都以生成此报告的任务命名。下表列出了各项任务及其报告。
表 7–1 ASET 任务和生成的报告
任务 |
报告 |
---|---|
系统文件权限调优 (tune) |
tune.rpt |
系统文件检查 (cklist) |
cklist.rpt |
用户和组检查 (usrgrp) |
usrgrp.rpt |
系统配置文件检查 (sysconf) |
sysconf.rpt |
环境变量检查 (env) |
env.rpt |
eeprom 检查 (eeprom) |
eeprom.rpt |
防火墙设置 (firewall) |
firewall.rpt |
每个报告文件中,消息括在开始标题行和结束标题行中。有时,任务会提前结束。例如,意外删除或损坏 ASET 的组件时,任务便会提前结束。在这类情况下,报告文件通常会在结尾附近包含一条消息,指明提前终止的原因。
*** Begin User and Group Checking *** Checking /etc/passwd ... Warning! Password file, line 10, no passwd :sync::1:1::/:/bin/sync ..end user check; starting group check ... Checking /etc/group... *** End User And group Checking *** |
初次运行或重新配置 ASET 之后,应该严密地检查报告文件。重新配置包括修改 asetenv 文件或 masters 子目录中的主文件,或者更改运行 ASET 的安全级别。
报告会记录在重新配置 ASET 时引起的所有错误。通过严密地查看报告,可以在出现问题时做出反应并解决问题。
在对报告文件监视一段时间(其间没有进行配置更改或系统更新)之后,您可能会发现报告的内容开始趋于稳定。如果报告包含的意外信息很少,可使用 diff 实用程序来比较这些报告。
ASET 的主文件 tune.high、tune.low 、tune.med 和 uid_aliases 位于 /usr/aset/masters 目录中。ASET 使用这些主文件来定义安全级别。有关更多详细信息,请参见 asetmasters(4) 手册页。
tune.low、tune.med 和 tune.high 主文件用于定义可用的 ASET 安全级别。这些文件可指定系统文件在每个级别的属性,用于比较和参考。
uid_aliases 文件包含共享同一用户 ID (user ID, UID) 的多个用户帐户的列表。通常,由于这种做法降低了可说明性,因此 ASET 会针对此类多个用户帐户发出警告。您可以通过在 uid_aliases 文件中列出例外情况来允许此规则存在例外。如果 uid_aliases 文件中指定了具有重复 UID 的项,则 ASET 不会在 passwd 文件中报告这些项。
请避免使多个用户帐户共享同一 UID。您应该考虑使用其他方法来实现目标。例如,如果要让多个用户共享一个权限集,则可以创建一个组帐户。您还可以创建角色。仅当其他方法都无法实现目标时,才应使用共享 UID 这一方法。
可以使用 UID_ALIASES 环境变量来指定备用的别名文件。缺省文件为 /usr/aset/masters/uid_aliases。
系统文件检查所使用的主文件在首次执行 ASET 时生成,也可在更改安全级别之后运行 ASET 时生成。
CKLISTPATH_LOW
CKLISTPATH_MED
CKLISTPATH_HIGH
环境文件 asetenv 包含影响 ASET 任务的环境变量的列表。可以更改其中一些变量来修改 ASET 操作。有关 asetenv 文件的详细信息,请参见 asetenv(4)。
本节介绍了如何配置 ASET,还介绍了 ASET 的运行环境。
ASET 所需的管理和配置操作最少。在大多数情况下,可以使用缺省值运行 ASET。但是,也可以微调某些影响 ASET 操作和行为的参数,以便最大程度发挥此工具的优点。更改缺省值之前,应了解 ASET 如何运行以及它如何影响系统组件。
ASET 依靠四个配置文件来控制其任务的行为:
/usr/aset/asetenv
/usr/aset/masters/tune.low
/usr/aset/masters/tune.med
/usr/aset/masters/tune.high
用户可配置的环境变量部分
内部环境变量部分
您可以更改用户可配置的参数部分。但是,内部环境变量部分中的设置仅供内部使用,不应修改这些设置。
您可以编辑用户可配置部分中的各项以执行以下操作:
选择要运行的任务
指定系统文件检查任务的目录
安排 ASET 执行
指定 UID 别名文件
将检查扩展到 NIS+ 表
ASET 执行的每项任务都会监视系统安全的特定方面。在大多数系统环境中,必须执行所有任务以便在各方面都可保证安全性。但是,您可能会决定删除一项或多项任务。
例如,防火墙任务可以在所有安全级别下运行,但是仅在高安全级别下执行操作。您可能希望在高安全级别运行 ASET,但是不需要防火墙保护。
可以将 ASET 设置为在没有防火墙功能的情况下在高安全级别运行。为此,可编辑 asetenv 文件中的环境变量的 TASKS 列表。缺省情况下,TASKS 列表包含所有的 ASET 任务。要删除某项任务,请从此文件中删除与此任务相关的环境变量。在这种情况下,可从列表中删除 firewall 环境变量。下次运行 ASET 时,便不会执行已排除的任务。
以下示例显示了包含所有 ASET 任务的 TASKS 列表。
TASKS=”env sysconfig usrgrp tune cklist eeprom firewall” |
系统文件检查会检查选定系统目录中的文件属性。可以使用以下环境变量来定义要检查的目录。
CKLISTPATH_LOW 变量定义要在低安全级别检查的目录。CKLISTPATH_MED 和 CKLISTPATH_HIGH 环境变量可分别在中安全级别和高安全级别实现类似的功能。
环境变量在较低安全级别定义的目录列表应该是在下一个较高级别定义的目录列表的子集。例如,为 CKLISTPATH_LOW 指定的所有目录应该包括在 CKLISTPATH_MED 中。同样,为 CKLISTPATH_MED 指定的所有目录应该包括在 CKLISTPATH_HIGH 中。
针对这些目录执行的检查并不是递归的。ASET 仅检查在环境变量中显式列出的那些目录,而不检查其子目录。
可以编辑这些环境变量定义,以添加或删除需要 ASET 检查的目录。请注意,这些核对表仅适用于通常不会每日更改的系统文件。例如,用户的起始目录通常动态地频繁更新,因此不适合选择用作核对表的目录。
您可以交互地启动 ASET,也可以使用 -p 选项来请求 ASET 任务在预定时间运行。您可以定期在系统需求较少时运行 ASET。例如,ASET 可参阅 PERIODIC_SCHEDULE 来确定执行 ASET 任务的频率以及运行这些任务的时间。有关设置 ASET 使其定期运行的详细说明,请参见如何定期运行 ASET。
PERIODIC_SCHEDULE 的格式遵循 crontab 项的格式。有关完整信息,请参见 crontab(1)。
UID_ALIASES 变量可指定用于列出共享 UID 的别名文件。缺省文件为 /usr/aset/masters/uid_aliases。
YPCHECK 环境变量可指定 ASET 是否也应该检查系统配置文件表。YPCHECK 为布尔变量。 只能将 YPCHECK 指定为 true 或 false。缺省值为 false,它将禁用 NIS+ 表检查。
要了解此环境变量如何运行,请考虑其对 passwd 文件的影响。设置为 false 时,ASET 会检查本地 passwd 文件。如果设置 true,此任务还将检查系统域的 NIS+ passwd 表。
尽管 ASET 会自动修复本地文件,但是 ASET 仅报告 NIS+ 表中的潜在问题,而不会更改这些表。
ASET 使用三个主调优文件 tune.low、tune.med 和 tune.high 来放松或加强对关键系统文件的访问。这些主文件位于 /usr/aset/masters 目录中。可以修改这些文件以适合您的环境。有关示例,请参见调优文件示例。
tune.low 文件可将权限设置为适合于缺省系统设置的值。tune.med 文件可进一步限制这些权限。tune.med 文件还包括 tune.low 中没有的项。tune.high 文件可更进一步限制这些权限。
可以通过添加或删除文件项来修改调优文件中的设置。无法有效地将权限设置为比当前设置限制少的值。除非将系统安全降至更低的级别,否则 ASET 任务不会放松权限。
首次执行 ASET 时,ASET 会保存并归档初始系统文件。aset.restore 实用程序可重新恢复这些文件。如果当前安排 ASET 定期执行,则此实用程序还会取消对 ASET 的安排。aset.restore 命令位于 ASET 操作目录 /usr/aset 中。
运行 aset.restore 命令时,对系统文件所做的更改会丢失。
应在以下情况下使用 aset.restore 命令:
要删除 ASET 更改并恢复初始系统。
如果先前已将 aset 命令添加到根目录的 crontab,则要永久取消激活 ASET 时,可以从 cron 调度中删除 ASET。有关如何使用 cron 删除自动执行的任务的说明,请参见如何停止定期运行 ASET。
试用 ASET 一段时间后,希望恢复初始系统状态。
某些主要系统功能没有正常运行,并且您怀疑问题是由 ASET 引起时。
一般情况下,ASET 在单机模式下使用,即使在网络所包含的系统中也是如此。作为独立系统的系统管理员,您要负责系统的安全。因此,您将负责运行和管理 ASET 以保护系统。
您还可以在 NFS 分布式环境中使用 ASET。作为网络管理员,您要负责为所有客户机安装、运行和管理各种管理任务。为了便于在多个客户机系统中进行 ASET 管理,可以对全局应用于所有客户机的配置进行更改。通过全局应用更改,无需登录到每个系统即可重复配置更改。
决定如何在联网系统中设置 ASET 时,应该考虑希望谁来控制安全性。您可能希望用户控制其各自系统的部分安全性,还可能希望集中负责安全控制。
要设置多个网络配置时可能会出现这种情况。例如,您可能要为那些指定为低安全级别的客户机设置一种配置,为中级别的客户机设置一种配置,为高级别的客户机设置另一种配置。
如果需要为每种安全级别创建单独的 ASET 网络配置,可以在服务器上创建三种 ASET 配置,为每种级别创建一种配置。可以将每种配置导出到具有相应安全级别的客户机中。对于所有三种配置都相同的某些 ASET 组件可使用链接来共享。
您不仅可以在服务器上集中 ASET 组件,还可以在服务器上设置中央目录以收集所有的 ASET 报告。具有或不具有超级用户权限的客户机均可访问此服务器。有关设置收集机制的说明,请参见如何在服务器上收集 ASET 报告。
通过在服务器上设置报告收集,可以从一个位置查看所有客户机的报告。无论客户机是否具有超级用户权限,都可以使用此方法。或者,如果要用户监视自己的 ASET 报告,可以将报告目录保留在本地系统上。
指定 ASET 工作目录
指定安全级别
指定定期安排
指定要运行的 ASET 任务
指定别名文件
确定是否将检查扩展到 NIS 映射和 NIS+ 表
低安全级别的目录列表
中安全级别的目录列表
高安全级别的目录列表
以下各节中列出的环境变量位于 /usr/aset/asetenv 文件中。ASETDIR 和 ASETSECLEVEL 变量为可选变量。这些变量只能使用 /usr/aset/aset 命令通过 shell 来设置。其他环境变量可以通过编辑此文件来设置。
从 C shell 中,键入:
% setenv ASETDIR pathname |
从 Bourne shell 或 Korn shell 中,键入:
$ ASETDIR=pathname $ export ASETDIR |
将 pathname 设置为 ASET 工作目录的全路径名。
ASETSECLEVEL 变量指定执行 ASET 任务的安全级别。
从 C shell 中,键入:
% setenv ASETSECLEVEL level |
从 Bourne shell 或 Korn shell 中,键入:
$ ASETSECLEVEL=level $ export ASETSECLEVEL |
在这些命令中,可以将 level 设置为以下各项之一:
低安全级别
中安全级别
高安全级别
PERIODIC_SCHEDULE 的值与 crontab 文件遵循相同的格式。将变量值指定为用双引号引起的五个字段的字符串,其中各个字段用一个空格分隔:
"minutes hours day-of-month month day-of-week" |
以(整小时数之后经过的)分钟数 (0-59) 和小时数 (0-23) 指定开始时间。
指定应该运行 ASET 的月日期,值的范围为 1-31。
指定应该运行 ASET 的月份,值的范围为 1-12。
指定应该运行 ASET 的周日期,值的范围为 0-6。星期天为 0 日。
为 ASET 创建定期安排时,可应用以下规则:
可以为任何字段指定值的列表,各个值用逗号分隔。
可以将值指定为数字,也可以将值指定为一个范围。范围是由连字符连接的一对数字。范围表明了 ASET 任务应该在此范围所包括的所有时间执行。
如果使用 PERIODIC_SCHEDULE 变量的缺省项,则 ASET 每天在午夜 12:00 执行:
PERIODIC_SCHEDULE=”0 0 * * *” |
TASKS 变量用于列出 ASET 所执行的任务。缺省设置为列出所有七项任务:
TASKS=”env sysconfig usrgrp tune cklist eeprom firewall” |
UID_ALIASES 变量用于指定别名文件。如果存在,则 ASET 会参阅此文件以获取允许的多个别名的列表。别名格式为 UID_ALIASES=pathname,其中 pathname 为别名文件的全路径名。
缺省设置如下:
UID_ALIASES=${ASETDIR}/masters/uid_aliases |
YPCHECK 变量用于将检查系统表的任务扩展到包括 NIS 或 NIS+ 表。YPCHECK 变量为布尔变量,可以设置为 true 或 false。
缺省设置为 false,表示将检查限定在本地系统表:
YPCHECK=false |
三个核对表路径变量用于列出系统文件检查任务要检查的目录。缺省情况下,将设置以下变量定义。这些定义说明了不同级别变量之间的关系:
CKLISTPATH_LOW=${ASETDIR}/tasks:${ASETDIR}/util:${ASETDIR}/masters:/etc CKLISTPATH_MED=${CKLISTPATH_LOW}:/usr/bin:/usr/ucb CKLISTPATH_HIGH=${CKLISTPATH_MED}:/usr/lib:/sbin:/usr/sbin:/usr/ucblib |
核对表路径环境变量的值类似于 shell 路径变量的值。与 shell 路径变量相同,核对表路径环境变量也是目录名称的列表。这些目录名称用冒号分隔。您可以使用等号 (=) 将变量名称与其值相连。
本节介绍一些 ASET 文件的示例,包括调优文件和别名文件。
ASET 可维护三个调优文件。调优文件中的每项都占用一行。每项中的字段按以下顺序排列:
pathname mode owner group type |
文件的全路径名
用于表示权限设置的五位数
文件的属主
文件的组属主
文件的类型
可在路径名中使用常规的 shell 通配符(例如星号 (*) 和问号 (?)),以便引用多个路径。有关更多信息,请参见 sh(1)。
mode 表示限制最少的值。如果当前设置已经比指定值的限制多,则 ASET 不会放松权限设置。例如,如果指定的值为 00777,则权限保持不变,因为 00777 始终比当前设置的限制少。
此过程说明 ASET 如何处理模式设置。如果降低安全级别或删除 ASET,则此过程有所不同。从先前执行时的级别降低安全级别时,或是要将系统文件恢复到首次执行 ASET 之前的状态时,ASET 可识别正在执行的操作并降低保护级别。
必须使用 owner 和 group 的名称,而不是使用数字 ID。
可以使用问号 (?) 来代替 owner、group 和 type,以防止 ASET 更改这些参数的现有值。
type 可以是 symlink、目录或文件。symlink 是符号链接。
较高安全级别的调优文件可将文件权限重置为至少与较低级别的文件权限具有相同限制。另外,在较高的安全级别,还会向列表中添加其他文件。
一个文件可以与多个调优文件项相匹配。例如,etc/passwd 与 etc/pass* 和 /etc/* 项相匹配。
如果两个项具有不同权限,则文件权限将设置为限制性最高的值。在以下示例中, /etc/passwd 文件的权限设置为 00755,这是 00755 和 00770 中限制性较高的值。
/etc/pass* 00755 ? ? file /etc/* 00770 ? ? file |
如果两个项指定的 owner 或 group 不同,则后一项优先级更高。在以下示例中,/usr/sbin/chroot 的属主设置为 root。
/usr/sbin/chroot 00555 bin bin file /usr/sbin/chroot 00555 root bin file |
每项都具有如下格式:
uid=alias1 =alias2=alias3=...
共享的 UID。
共享一个 UID 的用户帐户。
例如,以下项列出了 UID 0。sysadm 和 root 帐户共享此 UID:
0=root=sysadm
任务 |
说明 |
参考 |
---|---|---|
从命令行运行 ASET |
以指定的 ASET 级别保护系统。查看执行日志可了解更改。 | |
按固定间隔以批处理模式运行 ASET |
设置 cron(时钟守护进程)作业以确保 ASET 保护系统。 | |
停止以批处理模式运行 ASET |
删除 ASET cron 作业。 | |
将 ASET 报告存储在服务器上 |
收集来自客户机的 ASET 报告以便集中进行监视。 |
要设置 ASET 中的变量,请参见ASET 环境变量。要配置 ASET,请参见配置 ASET。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见配置 RBAC(任务列表)。
使用 aset 命令交互运行 ASET。
# /usr/aset/aset -l level -d pathname |
指定安全级别。有效值为 low、medium 或 high。缺省设置为 low。有关安全级别的详细信息,请参见ASET 安全级别。
指定 ASET 的工作目录。缺省设置为 /usr/aset。
查看屏幕上显示的 ASET 执行日志,验证 ASET 是否正在运行。
执行日志消息可确定正在运行的任务。
在以下示例中,ASET 在低安全级别运行,并且使用缺省工作目录。
# /usr/aset/aset -l low ======= ASET Execution Log ======= ASET running at security level low Machine = jupiter; Current time = 0111_09:26 aset: Using /usr/aset as working directory Executing task list ... firewall env sysconf usrgrp tune cklist eeprom All tasks executed. Some background tasks may still be running. Run /usr/aset/util/taskstat to check their status: /usr/aset/util/taskstat [aset_dir] where aset_dir is ASET's operating directory,currently=/usr/aset. When the tasks complete, the reports can be found in: /usr/aset/reports/latest/*.rpt You can view them by: more /usr/aset/reports/latest/*.rpt |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见配置 RBAC(任务列表)。
如有必要,设置希望 ASET 定期运行的时间。
应该在系统需求较少时运行 ASET。/usr/aset/asetenv 文件中的 PERIODIC_SCHEDULE 环境变量用于设置 ASET 的定期运行时间。缺省情况下,时间设置为每天午夜。
如果希望设置其他时间,请编辑 /usr/aset/asetenv 文件中的 PERIODIC_SCHEDULE 变量。有关设置 PERIODIC_SCHEDULE 变量的详细信息,请参见PERIODIC_SCHEDULE 环境变量。
# /usr/aset/aset -p |
-p 选项可在 crontab 文件中插入一行,使 ASET 在 /usr/aset/asetenv 文件中的 PERIODIC_SCHEDULE 环境变量确定的时间开始运行。
显示 crontab 项以检验安排 ASET 运行的时间。
# crontab -l root |
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 crontab 文件。
# crontab -e root |
删除 ASET 项。
保存更改并退出。
显示 crontab 项,检验 ASET 项是否已删除。
# crontab -l root |
承担主管理员角色,或成为超级用户。
主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在服务器上设置目录:
转到 /usr/aset 目录。
mars# cd /usr/aset |
创建 rptdir 目录。
mars# mkdir rptdir |
转到 rptdir 目录并创建 client_rpt 目录。
此步骤可为客户机创建 client_rpt 子目录。对于每台需要收集报告的客户机,请重复此步骤。
mars# cd rptdir mars# mkdir client_rpt |
在以下示例中,创建了目录 all_reports 以及子目录 pluto_rpt 和 neptune_rpt。
mars# cd /usr/aset mars# mkdir all_reports mars# cd all_reports mars# mkdir pluto_rpt mars# mkdir neptune_rpt |
将 client_rpt 目录添加到 /etc/dfs/dfstab 文件中。
这些目录应可选择进行读取还是写入。
例如,可使用读写权限共享 dfstab 文件中的以下各项。
share -F nfs -o rw=pluto /usr/aset/all_reports/pluto_rpt share -F nfs -o rw=neptune /usr/aset/all_reports/neptune_rpt |
使 dfstab 文件中的资源可供客户机使用。
# shareall |
在每台客户机上,在挂载点 /usr/aset/masters/reports 上挂载服务器中的客户机子目录。
# mount server:/usr/aset/client_rpt /usr/aset/masters/reports |
编辑 /etc/vfstab 文件以在系统引导时自动挂载目录。
neptune 上的 /etc/vfstab 中的以下样例项列出了要从 mars、/usr/aset/all_reports/neptune_rpt 以及 neptune 上的挂载点 /usr/aset/reports 挂载的目录。系统引导时,vfstab 中列出的目录会自动挂载。
mars:/usr/aset/all_reports/neptune.rpt /usr/aset/reports nfs - yes hard |
ASET failed: no mail program found.
原因:系统指示 ASET 将执行日志发送给用户,但是无法找到邮件程序。
解决方法:安装邮件程序。
Usage: aset [-n user[@host]]]] in /bin/mail or /usr/ucb/mail.
Cannot decide current and previous security levels.
原因:ASET 无法确定当前调用和先前调用的安全级别。
解决方法:确保通过命令行选项或 ASETSECLEVEL 环境变量设置了当前安全级别。此外,还应确保 ASETDIR/archives/asetseclevel.arch 的最后一行正确反映先前的安全级别。如果未设置这些值,或者这些值不正确,请输入正确的值。
ASET working directory undefined.
To specify, set ASETDIR environment variable or use command line option -d.
ASET startup unsuccessful.
原因:ASET 工作目录未定义,或者定义错误。此工作目录为操作目录。
解决方法:使用 ASETDIR 环境变量或 -d 命令行选项来更正此错误,然后重新启动 ASET。
ASET working directory $ASETDIR missing.
ASET startup unsuccessful.
原因:ASET 工作目录未定义,或者定义错误。此工作目录为操作目录。此问题可能是由于 ASETDIR 变量引用了不存在的目录而引起,或是 -d 命令行选项可能引用了不存在的目录。
解决方法:确保正确引用了正确的目录,即包含 ASET 目录分层结构的目录。
Cannot expand $ASETDIR to full pathname.
原因:ASET 无法将由 ASETDIR 变量或 -d 命令行选项提供的目录名称扩展为全路径名。
解决方法:确保目录名称正确。确保目录引用了用户可以访问的现有目录。
aset: invalid/undefined security level.
To specify, set ASETSECLEVEL environment variable or use command line option -l, with argument= low/med/high.
原因:安全级别未定义或者定义错误。仅有值 low、med 或 high 可以接受。
解决方法:使用 ASETSECLEVEL 变量或 -l 命令行选项来指定这三个值中的其中一个。
ASET environment file asetenv not found in $ASETDIR.
ASET startup unsuccessful.
原因:ASET 在其工作目录中无法找到 asetenv 文件。
解决方法:确保 ASET 的工作目录中存在 asetenv 文件。有关此文件的详细信息,请参见 asetenv(4) 手册页。
filename doesn't exist or is not readable.
原因:通过 filename 引用的文件不存在或无法读取。使用 -u 选项时可能会出现此问题。通过此选项,可以指定一个包含要检查的用户列表的文件。
解决方法:确保 -u 选项的参数存在并可读取。
ASET task list TASKLIST undefined.
原因:未定义应在 asetenv 文件中定义的 ASET 任务列表。此消息表示 asetenv 文件错误。
解决方法:检查 asetenv 文件。确保在 User Configurable 部分中定义了任务列表。另外,还要检查此文件的其他部分以确保文件的完整性。有关有效的 asetenv 文件的内容,请参见 asetenv(4) 手册页。
ASET task list $TASKLIST missing.
ASET startup unsuccessful.
原因:未定义应在 asetenv 文件中定义的 ASET 任务列表。此消息表示 asetenv 文件错误。
解决方法:检查 asetenv 文件。确保在 User Configurable 部分中定义了任务列表。另外,还要检查此文件的其他部分以确保文件的完整性。有关有效的 asetenv 文件的内容,请参见 asetenv(4) 手册页。
Schedule undefined for periodic invocation.
No tasks executed or scheduled. Check asetenv file.
原因:使用 -p 选项请求了 ASET 调度,但未在 asetenv 文件中定义环境变量 PERIODIC_SCHEDULE。
解决方法:检查 asetenv 文件的 User Configurable 部分以确保定义了此变量。确保此变量的格式正确。
Warning! Duplicate ASET execution scheduled.
Check crontab file.
原因:安排 ASET 运行多次。换句话说,在一个 ASET 调度仍有效时请求了另一个调度。如果确实需要多个调度,则此消息不一定就表示错误。在这种情况下,此消息仅用作警告。如果需要多个调度,则应该使用正确的调度格式以及 crontab 命令。有关更多信息,请参见 crontab(1) 手册页。
解决方法:通过 crontab 命令检验正确的调度是否有效。确保 ASET 不存在不必要的 crontab 项。