系统管理指南:安全性服务

第 2 章 管理计算机安全性(概述)

保持计算机的信息安全是一项重要的系统管理任务。本章概述了有关管理计算机安全性的信息。

以下是本章中概述信息的列表:

Solaris 10 发行版中计算机安全性的增强

从 Solaris 9 发行版开始,已经引入了以下功能来增强系统安全:

控制对计算机系统的访问

在工作场所中,可以将所有与服务器连接的计算机视为一个大型的多功能系统。您要负责此大型系统的安全性。您需要保护网络,防止其受到尝试访问此网络的外来者的破坏,还需要确保网络中各计算机上的数据的完整性。

在文件级别,Solaris OS 提供了可用于保护文件、目录和设备的标准安全功能。在系统和网络级别,安全问题基本相同。第一道安全防线是控制对系统的访问。您可以执行以下操作来控制和监视系统访问:

维护物理安全性

要控制对系统的访问,必须维护计算环境的物理安全性。例如,处于登录状态并且无人值守的系统容易受到未经授权的访问攻击。入侵者可以获取访问操作系统和网络的权限。应该物理保护计算机环境和计算机硬件,防止其受到未经授权的访问攻击。

您可以保护 SPARC 系统,防止硬件设置受到未经授权的访问。使用 eeprom 命令要求在访问 PROM 时提供口令。有关更多信息,请参见如何要求硬件访问口令

维护登录控制

您还必须防止对系统或网络进行未经授权的登录,这可以通过指定口令和控制登录来实现。系统上的所有帐户都应该具有口令。口令是一种简单的验证机制。如果帐户没有设置口令,则猜中用户名的入侵者可以访问整个网络。强口令算法可防止强力攻击。

用户登录系统时,login 命令会根据 /etc/nsswitch.conf 文件中列出的信息检查相应的名称服务或目录服务数据库。此文件包括以下项:

有关 nsswitch.conf 文件的说明,请参见 nsswitch.conf(4) 手册页。有关名称服务和目录服务的信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》《System Administration Guide: Naming and Directory Services (NIS+)》

login 命令会检验用户提供的用户名和口令。如果用户名不在口令文件中,则 login 命令会拒绝对系统进行访问。如果口令对于指定的用户名而言不正确,则 login 命令会拒绝对系统进行访问。当用户提供有效的用户名及其对应口令时,系统会授予此用户访问系统的权限。

成功登录到系统之后,可使用 PAM 模块简化应用程序登录。有关更多信息,请参见第 16 章,使用 PAM

Solaris 系统提供了完善的验证和授权机制。有关网络级别的验证和授权机制的介绍,请参见远程访问的验证和授权

管理口令信息

用户登录系统时,必须提供用户名和口令。尽管登录名是公开的,但是口令必须保密。口令应该只有每个用户才知道。应该要求用户谨慎选择其口令。用户应该经常更改其口令。

口令最初是在设置用户帐户时创建的。要维护用户帐户的安全性,可以设置口令生命期,以便强制用户定期更改其口令。还可以通过锁定口令来禁用用户帐户。有关管理口令的详细信息,请参见《系统管理指南:基本管理》中的第 4  章 “管理用户帐户和组(概述)”以及 passwd(1) 手册页。

本地口令

如果网络使用本地文件来验证用户,则口令信息保存在系统的 /etc/passwd/etc/shadow 文件中。用户名和其他信息保存在口令文件 /etc/passwd 中。加密的口令本身保存在单独的阴影文件 /etc/shadow 中。这种安全措施可防止用户获取访问加密口令的权限。尽管任何可以登录到系统的用户都能使用 /etc/passwd 文件,但是仅有超级用户或等效角色才能读取 /etc/shadow 文件。可以使用 passwd 命令来更改本地系统上的用户口令。

NIS 和 NIS+ 口令

如果网络使用 NIS 来验证用户,则口令信息保存在 NIS 口令列表中。NIS 不支持口令生命期。可以使用命令 passwd -r nis 来更改存储在 NIS 口令列表中的用户口令。

如果网络使用 NIS+ 来验证用户,则口令信息保存在 NIS+ 数据库中。可以通过仅允许授权用户进行访问来保护 NIS+ 数据库中的信息。可以使用 passwd -r nisplus 命令来更改存储在 NIS+ 数据库中的用户口令。

LDAP 口令

Solaris LDAP 名称服务将口令信息和阴影信息存储在 LDAP 目录树的 ou=people 容器中。在 Solaris LDAP 名称服务客户机上,可以使用 passwd -r ldap 命令来更改用户口令。LDAP 名称服务将口令存储在 LDAP 系统信息库中。

在 Solaris 10 发行版中,口令策略是在 Sun JavaTM System Directory Server 上强制执行的。具体而言,客户机的 pam_ldap 模块遵循在 Sun Java System Directory Server 上强制执行的口令策略控制。有关更多信息,请参见《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》中的“LDAP 名称服务安全模型”

口令加密

强口令加密可提供较早的攻击防线。Solaris 软件提供了四种口令加密算法。与 UNIX 算法相比,其中的两种 MD5 算法和 Blowfish 算法可提供更为强大的口令加密。

口令算法标识符

可以在 /etc/security/policy.conf 文件中指定站点的算法配置。在 policy.conf 文件中,算法以其标识符命名,如下表所示。

表 2–1 口令加密算法

标识符 

说明 

算法手册页 

1

与 BSD 和 Linux 系统上的 MD5 算法兼容的 MD5 算法。

crypt_bsdmd5(5)

2a

与 BSD 系统上的 Blowfish 算法兼容的 Blowfish 算法。

crypt_bsdbf(5)

md5

Sun MD5 算法,此算法被视为比 BSD 和 Linux 版本的 MD5 更为强大。

crypt_sunmd5(5)

__unix__

传统的 UNIX 加密算法。此算法是 policy.conf 文件中的缺省模块。

crypt_unix(5)

policy.conf 文件中的算法配置

以下说明了 policy.conf 文件中的缺省算法配置:


#

…

# crypt(3c) Algorithms Configuration

#

# CRYPT_ALGORITHMS_ALLOW specifies the algorithms that are allowed to

# be used for new passwords.  This is enforced only in crypt_gensalt(3c).

#

CRYPT_ALGORITHMS_ALLOW=1,2a,md5



# To deprecate use of the traditional unix algorithm, uncomment below

# and change CRYPT_DEFAULT= to another algorithm.  For example,

# CRYPT_DEFAULT=1 for BSD/Linux MD5.

#

#CRYPT_ALGORITHMS_DEPRECATE=__unix__



# The Solaris default is the traditional UNIX algorithm.  This is not

# listed in crypt.conf(4) since it is internal to libc.  The reserved

# name __unix__ is used to refer to it.

#

CRYPT_DEFAULT=__unix__

…

更改 CRYPT_DEFAULT 的值之后,将使用与新值关联的算法对新用户的口令进行加密。当前用户更改其口令之后,其旧口令的加密方式会影响加密新口令所用的算法。

例如,假设 CRYPT_ALGORITHMS_ALLOW=1,2a,md5CRYPT_DEFAULT=1。下表说明了将使用何种算法来生成加密口令。

标识符=口令算法 

说明 

初始口令 

更改后的口令 

1 = crypt_bsdmd5

使用同一算法 

1 标识符也是 CRYPT_DEFAULT 的值。继续使用 crypt_bsdmd5 算法对用户口令进行加密。

2a = crypt_bsdbf

使用同一算法 

2a 标识符位于 CRYPT_ALGORITHMS_ALLOW 列表中。因此,使用 crypt_bsbdf 算法对新口令进行加密。

md5 = crypt_md5

使用同一算法 

md5 标识符位于 CRYPT_ALGORITHMS_ALLOW 列表中。因此,使用 crypt_md5 算法对新口令进行加密。

__unix__ = crypt_unix

使用 crypt_bsdmd5 算法

__unix__ 标识符不在 CRYPT_ALGORITHMS_ALLOW 列表中。因此,不能使用 crypt_unix 算法。将使用 CRYPT_DEFAULT 算法对新口令进行加密。

有关配置算法选择的更多信息,请参见 policy.conf(4) 手册页。要指定口令加密算法,请参见更改口令算法(任务列表)

特殊的系统登录

访问系统的两种常用方法是使用普通用户登录或者使用 root 登录。此外,用户还可以使用许多特殊的系统登录来运行管理命令,而无需使用 root 帐户。作为系统管理员,您可以为这些登录帐户指定口令。

下表列出了一些系统登录帐户及其用法。这些系统登录可执行特殊的功能。每种登录都有各自的组标识 (group identification, GID) 号。每种登录都应该具有各自的口令,此口令应该只透露给需要知道的用户。

表 2–2 系统登录帐户及其用法

登录帐户 

GID 

用法  

root

0

几乎没有任何限制。可覆盖所有其他登录、保护和权限。root 帐户具有访问整个系统的权限。应该非常谨慎地保护 root 登录口令。root 帐户(即超级用户)有权使用大多数 Solaris 命令。

daemon

1

控制后台处理。 

bin

2

有权使用部分 Solaris 命令。 

sys

3

有权访问许多系统文件。 

adm

4

有权访问某些管理文件。 

lp

71

有权访问打印机的对象数据文件和假脱机数据文件。 

uucp

5

有权访问 UUCP(UNIX 对 UNIX 复制程序)的对象数据文件和假脱机数据文件。 

nuucp

9

供远程系统用于登录到系统并启动文件传输。 

远程登录

远程登录为入侵者提供了可乘之机。Solaris OS 提供了多个命令来监视、限制和禁用远程登录。有关过程,请参见保证登录和口令的安全(任务列表)

缺省情况下,远程登录无法获取控制或读取特定系统设备(如系统鼠标、键盘、帧缓冲区或音频设备)的权限。有关更多信息,请参见 logindevperm(4) 手册页。

拨号登录

如果能够通过调制解调器或拨号端口访问计算机,则可以添加额外的安全层。您可以要求通过调制解调器或拨号端口访问系统的用户提供拨号口令。拨号口令是附加口令,用户必须提供此口令之后才能被授予访问系统的权限。

仅有超级用户或具有等效功能的角色才能创建或更改拨号口令。要确保系统的完整性,应该大约每月更改一次口令。此功能最有效的功用就是要求提供拨号口令来获取访问网关系统的权限。有关如何设置拨号口令的信息,请参见如何创建拨号口令

创建拨号口令涉及两个文件:/etc/dialups /etc/d_passwddialups 文件包含需要拨号口令的端口的列表。d_passwd 文件包含需要加密口令作为附加拨号口令的 shell 程序的列表。这两个文件中的信息按如下方式处理:

控制对设备的访问

连接到计算机系统的外围设备会引起安全风险。麦克风可以获取会话内容并将其传输到远程系统。CD-ROM 可能会保存其信息供下一个 CD-ROM 设备用户读取。打印机可以从远程访问。系统不可或缺的设备也可能会出现安全问题。例如,网络接口(如 hme0)被视为不可或缺的设备。

Solaris 软件提供了两种方法来控制对设备的访问。设备策略可限制或防止对构成系统的设备进行访问。设备策略在内核中强制执行。设备分配可限制或防止对外围设备进行访问。设备分配在用户分配时强制执行。

设备策略在内核中使用 privilege(权限)来保护选定设备。例如,hme 之类的网络接口的设备策略要求具有所有权限才能进行读取或写入。

设备分配使用授权来保护外围设备,如打印机或麦克风。缺省情况下,不会启用设备分配。一旦启用,便可配置设备分配,以防止使用设备或者要求仅有获得授权才能访问该设备。当分配某个设备以供使用时,在当前用户解除分配此设备之前,其他用户将无法访问此设备。

可以在多个区域中配置 Solaris 系统以控制对设备的访问:

设备策略(概述)

使用设备策略机制,可以指定打开设备的进程需要特定权限。仅有正在使用设备策略指定的权限运行的进程才能访问受设备策略保护的设备。Solaris OS 提供了缺省设备策略。例如,hme0 之类的网络接口要求对其进行访问的进程使用 net_rawaccess 权限运行。这一要求是在内核中强制执行的。有关权限的更多信息,请参见权限(概述)

在早期的 Solaris OS 发行版中,设备节点仅受文件权限的保护。例如,组 sys 拥有的设备只能由 sys 组的成员打开。在 Solaris 10 发行版中,文件权限不会预测哪些用户可打开设备,而是使用文件权限设备策略来保护设备。例如,/dev/ip 文件具有 666 项权限。但是,设备只能由具有相应权限的进程打开。

可以对设备策略的配置进行审计。AUE_MODDEVPLCY 审计事件可记录设备策略的更改。

有关设备策略的更多信息,请参见以下内容:

设备分配(概述)

使用设备分配机制,可以限制对外围设备(如 CD-ROM)的访问。可以在本地管理此机制。如果未启用设备分配,则外围设备仅受文件权限的保护。例如,外围设备在缺省情况下可供以下用户使用:

设备分配可以限制设备仅由授权用户使用,还可以完全阻止对设备进行访问。分配了设备的用户对设备具有独占使用权,直到此用户解除分配此设备为止。解除分配设备时,设备清除脚本会删除任何剩余数据。可以编写设备清除脚本来清除没有脚本的设备中的信息。有关示例,请参见编写新的设备清理脚本

可以对分配设备、解除分配设备以及列出可分配设备的尝试进行审计。审计事件是 ot 审计类的一部分。

有关设备分配的更多信息,请参见以下内容:

控制对计算机资源的访问

作为系统管理员,您可以控制和监视系统活动。可以针对何人使用哪些资源设置限制。可以记录资源的使用,并可以监视正在使用资源的用户,还可以设置计算机以最大程度减少资源的不正确使用。

限制和监视超级用户

系统要求提供 root 口令才能进行超级用户访问。在缺省配置中,用户无法以 root 的身份远程登录系统。远程登录时,用户必须使用其用户名登录,然后使用 su 命令成为 root。可以监视使用 su 命令的用户,特别是那些尝试获取超级用户访问权限的用户。有关监视用户以及限制超级用户访问权限的过程,请参见监视和限制超级用户(任务列表)

配置基于角色的访问控制以替换超级用户

基于角色的访问控制或 RBAC 旨在限制超级用户的功能。超级用户(即 root 用户)具有访问系统中所有资源的权限。借助 RBAC,可以使用一组具有单独权限的角色来替换 root。例如,可以设置一个角色来处理用户帐户创建,设置另一个角色来处理系统文件修改。创建了处理一种或一组功能的角色之后,即可从 root 的功能中删除这些功能。

每个角色都要求已知的用户使用自己的用户名和口令进行登录。登录之后,用户即可承担具有特定角色口令的角色。因此,知道 root 口令的用户只有有限的系统破坏力。有关 RBAC 的更多信息,请参见基于角色的访问控制(概述)

防止无意中误用计算机资源

您可以通过以下方法来防止您自己和您的用户导致意外的错误:

设置 PATH 变量

应该谨慎地正确设置 PATH 变量。否则,可能会无意中运行由其他用户引入的程序。入侵程序会破坏数据或损坏系统。这类对安全性构成威胁的程序称为特洛伊木马程序。例如,一个替代的 su 程序可能会放置在公共目录中,而您作为系统管理员可能会运行此替代程序。这类脚本看上去正好类似于常规的 su 命令。由于这类脚本会在执行之后自行删除,因此,几乎没有明确迹象表明您实际上已运行了特洛伊木马程序。

PATH 变量在登录时自动设置。路径通过以下启动文件设置:.login.profile .cshrc。当设置用户搜索路径以便将当前目录 (.) 置于最后时,系统会阻止运行这类特洛伊木马程序。供超级用户使用的 PATH 变量根本不应该包括当前目录。

自动安全性增强工具 (Automated Security Enhancement Tool, ASET) 会检查启动文件以确保 PATH 变量设置正确。ASET 还可确保 PATH 变量不包含点 (.) 项。

为用户指定受限 Shell

标准 shell 允许用户打开文件,执行命令等。受限 shell 可限制用户更改目录和执行命令。可使用 /usr/lib/rsh 命令调用受限 shell。请注意,受限 shell 并不是远程 shell,后者为 /usr/sbin/rsh。受限 shell 在以下方面不同于标准 shell:

使用受限 shell,可以限制用户对系统文件的访问能力。此 shell 将为需要执行特定任务的用户创建一种限制环境。但是,受限 shell 并非完全安全,它仅旨在防止不熟练的用户无意中造成破坏。

有关受限 shell 的信息,请使用 man -s1m rsh 命令查看 rsh(1M) 手册页。

受限 shell 的更安全的替代项是 Solaris 安全 Shell 中的 ssh 命令。使用 Solaris 安全 Shell,用户可以通过不安全的网络安全地访问远程主机。有关使用 Solaris 安全 Shell 的信息,请参见第 19 章,Solaris 安全 Shell(参考)

限制对文件中数据的访问

由于 Solaris OS 是多用户环境,因此,文件系统的安全性是系统中最基本的安全风险。可以使用传统的 UNIX 文件保护措施来保护文件,还可以使用更安全的访问控制列表 (access control list, ACL)。

您可能需要允许某些用户读取某些文件,同时为另一些用户提供更改或删除某些文件的权限。您可能具有某些不希望其他任何用户查看的数据。第 6 章,控制对文件的访问(任务)介绍了如何设置文件权限。

限制 setuid 可执行文件

可执行文件可能存在安全风险。许多可执行程序必须以 root 的身份(即超级用户身份)执行才能正常工作。运行这些 setuid 程序需要将用户 ID 设置为 0。运行这些程序的任何用户都使用 root ID 运行程序。如果在编写使用 root ID 运行的程序时未注重安全性,则此程序将引起潜在的安全问题。

除了 Sun 附带的 setuid 位设置为 root 的可执行程序之外,还应该禁止使用 setuid 程序。如果无法禁止使用 setuid 程序,则至少应该限制其使用。安全管理很少需要使用 setuid 程序。

有关更多信息,请参见防止可执行文件危及安全。有关过程,请参见防止程序受到安全风险(任务列表)

使用自动安全性增强工具

ASET 安全软件包提供可用于控制和监视系统安全性的自动管理工具。ASET 提供了三种安全级别:低、中和高。可以指定一种 ASET 安全级别。级别越高,ASET 对文件的控制功能越强,从而可限制访问文件并提高系统的安全性。有关更多信息,请参见第 7 章,使用自动安全性增强工具(任务)

使用 Solaris 安全工具包

虽然 ASET 可用于对系统进行少量安全更改,但 Solaris 安全工具包提供了一种灵活且可扩展的机制,用于最小化、加强和保护 Solaris 系统。Solaris 安全工具包(非正式名称为 JASS 工具包)是一种由用户用来对系统执行安全修改的工具。此工具可以提供有关系统安全状态的报告,还可以撤消工具以前运行的内容。JASS 工具包可以从 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 资源管理功能

Solaris 软件提供了完善的资源管理功能。使用这些功能,可以按照服务器整合环境中的应用程序对资源使用进行分配、安排、监视以及设置上限操作。使用资源控制框架,可以对进程占用的系统资源设置约束。这类约束有助于防止尝试使系统资源发生泛洪的脚本引起的拒绝服务攻击。

使用 Solaris 资源管理功能,可以为特殊项目指定资源,还可以动态调整可用资源。有关更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 I 部分, “资源管理”

使用 Solaris Zones

Solaris Zones 提供了一种应用程序执行环境,其中单个 Solaris OS 实例中各进程与系统的其余部分隔离开来。这种隔离阻止了在一个区域中运行的进程监视或影响在其他区域中运行的进程。即使运行的进程具有超级用户功能,也不能查看或影响其他区域中的活动。

Solaris Zones 非常适用于将多个应用程序置于一台服务器中的环境。有关更多信息,请参见《系统管理指南:Solaris Containers-资源管理和 Solaris Zones》中的第 II 部分, “Zones”

监视计算机资源的使用情况

作为系统管理员,需要监视系统活动。您需要注意计算机的所有方面,包括以下各项:

了解这些知识之后,即可使用可用工具来审计系统使用情况并监视个别用户的活动。如果怀疑安全性受到破坏,则使用监视功能会非常有用。有关审计服务的更多信息,请参见第 27 章,Solaris 审计(概述)

监视文件完整性

作为系统管理员,需要确保所管理的系统上安装的文件尚未被意外更改。在大型安装中,使用用于对每个系统上的软件栈进行比较和报告的工具可跟踪系统。使用基本审计报告工具 (Basic Audit Reporting Tool, BART),可以通过在一段时间内对一个或多个系统执行文件级检查来全面验证系统。一个或多个系统的 BART 清单在一段时间内的变化可以验证系统的完整性。BART 提供了清单创建、清单比较以及脚本报告规则。有关更多信息,请参见第 5 章,使用基本审计报告工具(任务)

控制对文件的访问

Solaris OS 是一种多用户环境。在多用户环境中,所有登录到系统的用户均可读取属于其他用户的文件。使用相应的文件权限,用户还可以使用属于其他用户的文件。有关更多介绍,请参见第 6 章,控制对文件的访问(任务)。有关针对文件设置相应权限的逐步说明,请参见保护文件(任务列表)

通过加密保护文件

通过使其他用户无法访问某个文件,可以保证此文件的安全。例如,具有权限 600 的文件无法由其属主和超级用户之外的用户读取。具有权限 700 的目录同样无法访问。但是,猜中您的口令或者知道 root 口令的用户可以访问此文件。另外,每次将系统文件备份到脱机介质时,还可以在备份磁带上保留原本无法访问的文件。

Solaris 加密框架提供了 digest macencrypt 命令来保护文件。有关更多信息,请参见第 13 章,Solaris 加密框架(概述)

使用访问控制列表

ACL(发音为 “ackkl”)可以对文件权限进行更多控制。如果传统的 UNIX 文件保护无法提供足够的保护,则可添加 ACL。传统的 UNIX 文件保护可为三种用户类提供读取、写入和执行权限:属主、组和其他用户。ACL 可提供更为精确的安全性。可以使用 ACL 定义以下文件权限:

有关使用 ACL 的更多信息,请参见使用访问控制列表保护文件

跨计算机共享文件

网络文件服务器可以控制可共享的文件,还可以控制有权访问文件的客户机,以及允许这些客户机使用的访问类型。通常,文件服务器可以为所有客户机或特定客户机授予读写权限或只读权限。通过 share 命令使资源可用时,便会指定访问控制。

文件服务器上的 /etc/dfs/dfstab 文件列出了此服务器为网络中的客户机提供的文件系统。有关共享文件系统的更多信息,请参见《系统管理指南:网络服务》中的“自动文件系统共享”

限制对共享文件的 root 访问

通常,不允许超级用户对通过网络共享的文件系统进行 root 访问。NFS 系统通过将请求程序的用户更改为具有用户 ID 60001 的用户 nobody,可以防止以 root 身份对已挂载的文件系统进行访问。用户 nobody 的访问权限与为公众提供的那些访问权限相同。用户 nobody 具有的访问权限与没有凭证的用户所具有的访问权限相同。例如,如果公众只对某个文件具有执行权限,则用户 nobody 只能执行此文件。

NFS 服务器可以按主机授予超级用户对共享文件系统的权限。要授予这些权限,请使用 share 命令的 root=hostname 选项。应该谨慎使用此选项。有关 NFS 的安全选项的介绍,请参见《系统管理指南:网络服务》中的第 6  章 “访问网络文件系统(参考)”

控制网络访问

计算机常常是其他计算机配置的一部分。此配置称为网络。连接的计算机可通过网络交换信息。联网的计算机可以访问网络中其他计算机的数据和其他资源。计算机网络创建了一种强大且完善的计算环境。但是,网络同时也使计算机安全性变得更为复杂。

例如,在计算机网络中,独立的计算机都允许共享信息。未经授权的访问存在安全风险。由于许多用户都有权访问网络,因此更可能会出现未经授权的访问,尤其是由于用户错误进行的访问。口令使用不当也会导致未经授权的访问。

网络安全性机制

网络安全性通常基于限制或阻止来自远程系统的操作。下图介绍了可以对远程操作强制执行的安全限制。

图 2–1 远程操作的安全限制

图中说明了限制对远程系统进行访问的三种方法:防火墙系统、验证机制和授权机制。

远程访问的验证和授权

验证是一种在特定用户访问远程系统时,限制这些用户的访问权限的方法。可以同时在系统级别和网络级别设置验证。授权是一种在授予用户访问远程系统的权限之后,限制此用户可执行的操作的方法。下表列出了可提供验证和授权的服务。

表 2–3 远程访问的验证和授权服务

服务 

说明 

更多信息 

IPsec 

IPsec 提供了基于主机和基于证书的验证以及网络通信流量加密。 

《系统管理指南:IP 服务》中的第 19  章 “IP 安全体系结构(概述)”

Kerberos 

Kerberos 使用加密功能对登录系统的用户进行验证和授权。 

有关示例,请参见Kerberos 服务的工作方式

LDAP 和 NIS+ 

LDAP 目录服务和 NIS+ 名称服务可以提供网络级别的验证和授权。 

《系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)》《System Administration Guide: Naming and Directory Services (NIS+)》

远程登录命令 

使用远程登录命令,用户可以通过网络登录到远程系统并使用其资源。rloginrcpftp 是一些远程登录命令。如果是“受信任主机”,则会自动执行验证。否则,系统会要求进行自我验证。

《系统管理指南:网络服务》中的第 29  章 “访问远程系统(任务)”

SASL 

简单身份验证和安全层 (Simple Authentication and Security Layer, SASL) 是一种为网络协议提供验证和可选安全性服务的框架。可以使用插件来选择相应的验证协议。 

SASL(概述)

安全 RPC 

安全 RPC 通过对远程计算机发出请求的用户进行验证,可提高网络环境的安全性。可以使用 UNIX、DES 或 Kerberos 验证系统来实现安全 RPC。 

安全 RPC 概述

 

安全 RPC 还可用于在 NFS 环境中提供额外的安全性。具有安全 RPC 的 NFS 环境称为安全 NFS。安全 NFS 针对公钥使用 Diffie-Hellman 验证。 

NFS 服务和安全 RPC

Solaris 安全 Shell 

Solaris 安全 Shell 可以对不安全网络上的网络通信流量进行加密。Solaris 安全 Shell 通过单独使用口令、公钥或同时使用这两者来提供验证。Solaris 安全 Shell 针对公钥使用 RSA 和 DSA 验证。 

Solaris 安全 Shell(概述)

安全 RPC 的可能替代项是 Solaris 特权端口机制。为特权端口指定的端口号小于 1024。客户机系统验证客户机的凭证之后,此客户机便会使用特权端口与服务器建立连接。然后,服务器通过检查连接的端口号来检验客户机凭证。

未运行 Solaris 软件的客户机可能无法使用特权端口进行通信。如果客户机无法通过此端口进行通信,则会显示类似以下内容的错误消息:


“Weak Authentication

NFS request from unprivileged port”

防火墙系统

可以设置防火墙系统来防止外部对网络中的资源进行访问。防火墙系统是一台安全主机,可充当内部网络与外部网络之间的屏障。内部网络将所有其他网络均视为不可信对象。 应该考虑将此设置作为内部网络和任何与其进行通信的外部网络(如 Internet)之间的强制性设置。

防火墙可充当网关和屏障,并可充当在网络之间传递数据的网关,还可充当阻止与网络来回自由传递数据的屏障。防火墙要求内部网络中的用户登录到防火墙系统之后才能访问远程网络中的主机。同样,外部网络中的用户必须先登录到防火墙系统,然后才会被授予访问内部网络中主机的权限。

防火墙还可用于某些内部网络之间。例如,可以设置防火墙或安全网关计算机来限制包的传送。如果网关计算机不是包的源地址或目标地址,则网关可以禁止两个网络之间的包交换。防火墙还应设置为仅转发特定协议的包。例如,可以允许包传送邮件,但不允许传送 telnetrlogin 命令。ASET 以高安全级别运行时,会禁用 Internet 协议 (Internet Protocol, IP) 包的转发。

此外,从内部网络发送的所有电子邮件均会首先发送到防火墙系统。然后,防火墙将邮件传送给外部网络中的主机。防火墙系统还会接收所有传入的电子邮件,并将邮件分发给内部网络中的主机。


注意 – 注意 –

防火墙可阻止未经授权的用户访问网络中的主机。应该严格维护对防火墙强制执行的安全性,但对网络中其他主机的安全性限制可以较为宽松。但是,突破防火墙的入侵者可以获取访问内部网络中所有其他主机的权限。


防火墙系统不应该包含任何受信任主机。受信任主机是指不要求用户提供口令即可从其中进行登录的主机。防火墙系统不应该共享其任何文件系统,也不应该挂载其他服务器的任何文件系统。

可以使用以下技术来通过防火墙加强系统的安全性:

加密和防火墙系统

大多数局域网可以通过称为的块在计算机之间传输数据。通过称为包粉碎的过程,网络之外的未经授权用户可能会破坏或损坏数据。

包粉碎涉及在包到达其目标之前捕获这些包。然后,入侵者会向内容中加入任意数据,并将这些包发送回其原始路线。在局域网中,不可能粉碎包,因为包会同时到达所有系统(包括服务器)。但是,可以在网关上粉碎包,因此请确保网络中的所有网关都受到保护。

大多数危险的攻击都会影响数据的完整性。这类攻击包括更改包的内容或者模拟用户。涉及窃听的攻击不会破坏数据的完整性。窃听者会记录会话内容以便稍后重放,但不会模拟用户。尽管窃听攻击不会攻击数据的完整性,但是会影响保密性。可以对通过网络的数据进行加密来保护敏感信息的保密性。

报告安全问题

如果您遇到可疑的安全性破坏,则可以与计算机应急响应组/协调中心 (Computer Emergency Response Team/Coordination Center, CERT/CC) 联系。CERT/CC 是国防部高级研究项目署 (Defense Advanced Research Projects Agency, DARPA) 资助的项目,设在卡耐基梅隆大学的软件工程学院。此项目署可以您帮助解决遇到的任何安全问题,还可以指示您与其他更适合特殊要求的计算机应急响应组联系。您可以通过全天候热线致电 CERT/CC:(412) 268-7090。或者,向 cert@cert.sei.cmu.edu 发送电子邮件与此响应组联系。