JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:安全性服务     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

第 2 部分系统、文件和设备安全性

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

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

控制对计算机系统的访问

维护物理安全性

维护登录控制

管理口令信息

口令加密

特殊系统帐户

远程登录

拨号登录

控制对设备的访问

设备策略(概述)

设备分配(概述)

控制对计算机资源的访问

限制和监视超级用户

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

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

设置 PATH 变量

为用户指定受限 Shell

限制对文件中数据的访问

限制 setuid 可执行文件

使用自动安全性增强工具

使用 Oracle Solaris 安全工具包

使用缺省安全 (Secure by Default) 配置

使用资源管理功能

使用 Oracle Solaris 区域

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

监视文件完整性

控制对文件的访问

通过加密保护文件

使用访问控制列表

跨计算机共享文件

限制对共享文件的 root 访问

控制网络访问

网络安全性机制

远程访问的验证和授权

防火墙系统

加密和防火墙系统

报告安全问题

3.  控制对系统的访问(任务)

4.  控制对设备的访问(任务)

5.  使用基本审计报告工具(任务)

6.  控制对文件的访问(任务)

7.  使用自动安全性增强工具(任务)

第 3 部分角色、权限配置文件和特权

8.  使用角色和特权(概述)

9.  使用基于角色的访问控制(任务)

10.  基于角色的访问控制(参考)

11.  特权(任务)

12.  特权(参考)

第 4 部分加密服务

13.  Oracle Solaris 加密框架(概述)

14.  Oracle Solaris 加密框架(任务)

15.  Oracle Solaris 密钥管理框架

第 5 部分验证服务和安全通信

16.  使用验证服务(任务)

17.  使用 PAM

18.  使用 SASL

19.  使用 Oracle Solaris 安全 Shell(任务)

20.  Oracle Solaris 安全 Shell(参考)

第 6 部分Kerberos 服务

21.  Kerberos 服务介绍

22.  规划 Kerberos 服务

23.  配置 Kerberos 服务(任务)

24.  Kerberos 错误消息和故障排除

25.  管理 Kerberos 主体和策略(任务)

26.  使用 Kerberos 应用程序(任务)

27.  Kerberos 服务(参考)

第 7 部分Oracle Solaris 审计

28.  Oracle Solaris 审计(概述)

29.  规划 Oracle Solaris 审计

30.  管理 Oracle Solaris 审计(任务)

31.  Oracle Solaris 审计(参考)

词汇表

索引

控制对计算机系统的访问

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

在文件级别,Oracle Solaris 提供了可用于保护文件、目录和设备的标准安全功能。在系统和网络级别,安全问题基本相同。第一道安全防线是控制对系统的访问。

您可以执行以下操作来控制和监视系统访问:

维护物理安全性

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

您可以保护 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 模块可以简化应用程序登录。有关更多信息,请参见第 17 章

Oracle 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 口令

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

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

口令加密

强口令加密可针对攻击提供一道前期防线。Oracle Solaris 软件提供了六种口令加密算法。与 UNIX 算法相比,BlowfishMD5 和 SHA 算法提供的口令加密更加稳健。

口令算法标识符

可以在 /etc/security/policy.conf 文件中为您的站点指定算法配置。在 policy.conf 文件中,算法通过其标识符指定,如下表所示。有关标识符-算法映射的信息,请参见 /etc/security/crypt.conf 文件。

表 2-1 口令加密算法

标识符
说明
算法手册页
1
与 BSD 和 Linux 系统上的 MD5 算法兼容的 MD5 算法。
2a
与 BSD 系统上的 Blowfish 算法兼容的 Blowfish 算法。
md5
Sun MD5 算法,一般认为此算法比 BSD 和 Linux 版本的 MD5 更强大。
5
SHA256 算法。SHA 是 Secure Hash Algorithm(安全散列算法)的缩写。此算法属于 SHA-2 系列。SHA256 支持 255 个字符的口令。
6
SHA512 算法。
__unix__
传统的 UNIX 加密算法。此算法是 policy.conf 文件中的缺省模块。
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,5,6

# 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,md5,5,6CRYPT_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 算法对新口令进行加密。
5 = crypt_sha256
使用同一算法
5 标识符在 CRYPT_ALGORITHMS_ALLOW 列表中。因此,使用 crypt_sha256 算法对新口令进行加密。
6 = crypt_sha512
使用同一算法
6 标识符在 CRYPT_ALGORITHMS_ALLOW 列表中。因此,使用 crypt_sha512 算法对新口令进行加密。
__unix__ = crypt_unix
使用 crypt_bsdmd5 算法
__unix__ 标识符不在 CRYPT_ALGORITHMS_ALLOW 列表中。因此,不能使用 crypt_unix 算法。将使用 CRYPT_DEFAULT 算法对新口令进行加密。

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

特殊系统帐户

root 帐户是多个特殊系统帐户之一。在这些帐户中,只有 root 帐户指定了口令并可登录。nuucp 帐户可登录进行文件传输。其他系统帐户无需使用 root 的全部功能即可保护文件或运行管理进程。


注意

注意 - 绝对不能更改系统帐户的口令设置。shadow 文件第二个字段中提供的带 NP*LK*sys 的帐户表示系统帐户。


下表列出了一些系统帐户及其用途。这些系统帐户执行一些特殊功能。每个帐户都有一个小于 100 的 UID。

表 2-2 系统帐户及其用途

系统帐户
GID
用途
root
0
几乎没有任何限制。可以覆盖其他保护和权限。root 帐户具有访问整个系统的权限。应该非常谨慎地保护 root 登录口令。root 帐户(即超级用户)可以使用大多数 Oracle Solaris 命令。
daemon
1
控制后台处理。
bin
2
有权使用部分 Oracle Solaris 命令。
sys
3
有权访问许多系统文件。
adm
4
有权访问某些管理文件。
lp
71
有权访问打印机的对象数据文件和假脱机数据文件。
uucp
5
有权访问 UUCP(UNIX-to-UNIX copy program,UNIX 对 UNIX 复制程序)的对象数据文件和假脱机数据文件。
nuucp
9
供远程系统用于登录到系统并启动文件传输。

远程登录

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

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

拨号登录

如果能够通过调制解调器或拨号端口访问计算机,就能增加额外的安全层。可以要求通过调制解调器或拨号端口访问系统的用户提供拨号口令。用户必须提供这个额外的口令才能获得系统的访问权限。

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

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