JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 11.1 管理:安全服务     Oracle Solaris 11.1 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

4.  病毒扫描服务(任务)

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

6.  使用 BART 验证文件完整性(任务)

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

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

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

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

10.  Oracle Solaris 中的安全属性(参考信息)

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

14.  使用可插拔验证模块

PAM(概述)

使用 PAM 的益处

PAM 框架介绍

此发行版中 PAM 的更改

PAM(任务)

PAM(任务列表)

规划 PAM 实现

如何添加 PAM 模块

如何使用 PAM 防止从远程系统进行 Rhost 样式的访问

如何记录 PAM 错误报告

如何将定制的 PAM 策略指定给用户

如何将新的权限策略指定给所有用户

PAM 配置(参考)

PAM 配置搜索顺序

PAM 配置文件语法

基于每个用户的验证策略

PAM 栈工作原理

PAM 栈示例

15.  使用 安全 Shell

16.  安全 Shell(参考信息)

17.  使用简单验证和安全层

18.  网络服务验证(任务)

第 6 部分Kerberos 服务

19.  Kerberos 服务介绍

20.  规划 Kerberos 服务

21.  配置 Kerberos 服务(任务)

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

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

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

25.  Kerberos 服务(参考信息)

第 7 部分在 Oracle Solaris 中审计

26.  审计(概述)

27.  规划审计

28.  管理审计(任务)

29.  审计(参考信息)

词汇表

索引

PAM 配置(参考)

使用 PAM 服务的系统应用程序(如 ssh)是在 PAM 配置文件中配置的。有关更多信息,请参见 pam.conf(4) 手册页。这些配置文件包括 /etc/pam.conf 文件以及放置在 /etc/pam.d 中的服务特定文件。对这些文件所做的更改将影响系统上的所有用户。服务特定的 PAM 配置文件是用于配置 PAM 的首选机制,因为其粒度意味着文件中的错误仅影响该服务。另外,添加新的 PAM 服务可简化为通过复制一个文件来实现。通过服务特定的文件可实现与其他跨平台 PAM 应用程序的更好的互操作性,因为 /etc/pam.d 是大多数 PAM 实现中的缺省配置。

此外,PAM 策略文件可用于为单个服务创建验证策略并根据需要将这些策略指定给个人、组或所有用户。缺省的 PAM 策略文件位于 /etc/security/pam_policy 中。PAM 策略文件提供了以安全可靠的方式为一个或多个用户设置或更改验证策略的功能。

PAM 配置文件由系统管理员进行管理。如果这些文件中的项顺序有误,则会导致无法预料的负面影响。例如,如果文件配置错误,则会将多个用户锁定在外,这样必须采用单用户模式才能进行修复。有关设置顺序的说明,请参见PAM 栈工作原理

PAM 配置搜索顺序

PAM 库按以下顺序收集 PAM 配置文件中的 PAM 配置信息:

  1. /etc/pam.conf 中查找服务名称。

  2. 检查 /etc/pam.d/service

  3. /etc/pam.conf 中检查服务名称 other

  4. 检查文件 /etc/pam.d/other

此顺序允许现有的 /etc/pam.conf 文件使用位于 /etc/pam.d 中的每服务 PAM 配置文件。

PAM 配置文件语法

/etc/pam.conf 文件和 PAM 策略文件使用与服务特定文件不同的语法。这些文件中每个文件的语法如下所述。

/etc/pam.conf 或 PAM 策略文件中的项为以下格式之一:

service-name module-type control-flag module-path module-options
service-name module-type include path-to-included-PAM-configuration
service-name

服务的名称(不区分大小写),例如 loginpasswd。应用程序可以针对其提供的各服务使用不同的服务名。例如,Oracle Solaris 安全 shell 守护进程使用以下服务名:sshd-nonesshd-passwordsshd-kbdintsshd-pubkey 以及 sshd-hostbased

服务名 other 是用作通配符服务名的预定义名称。如果在配置文件中未找到特定的服务名,则会使用 other 的配置。

module-type

服务类型,即 authaccountsessionpassword

control-flag

用于指明在确定服务的集成成败值过程中模块所起的作用。有效的控制标志包括 bindingdefinitiveincludeoptionalrequiredrequisitesufficient。有关这些标志用法的信息,请参见PAM 栈工作原理

module-path

用于实现服务的库对象的路径。如果路径名不是绝对路径名,则认为路径名相对于 /usr/lib/security/$ISA/。通过使用与体系结构有关的宏 $ISA,libpam 可查看应用程序特定体系结构的目录。

module-options

传递给服务模块的选项。模块的手册页介绍了相应模块可接受的选项。典型的模块选项包括 nowarndebug

path-to-included-PAM-configuration

指定单独的 PAM 配置文件的完整路径或相对于 /usr/lib/security 目录的路径名。

位于 /etc/pam.d 中的每服务配置文件使用与 pam.conf 相同的语法,但未包括服务名称。使用每服务配置文件时,文件的名称就是服务名称。例如,/etc/pam.d/cron 包括 cron 命令的 PAM 配置。

基于每个用户的验证策略

pam_user_policy PAM 模块允许系统管理员为每个用户指定 PAM 配置。用户的 pam_policy 项需要提供特定于用户的 PAM 配置文件的路径。有关更多信息,请参见 pam_user_policy(5) 手册页。

以下是建立每用户验证策略的一些方法:

PAM 栈工作原理

当应用程序调用以下函数之一时,libpam 将读取 PAM 配置文件来确定哪些模块将参与该服务的操作:

如果对于该服务的操作(如验证或帐户管理),配置文件仅包含一个模块,则该模块的结果将确定操作的结果。例如,passwd 应用程序的缺省验证操作包含一个模块,即 pam_passwd_auth.so.1

passwd  auth required           pam_passwd_auth.so.1

另一方面,如果为服务操作定义了多个模块,那么这些模块就会堆叠起来,即,对于该服务存在一个 PAM 栈。例如,请考虑 /etc/pam.d/login 包含以下项的情况:

auth definitive         pam_user_policy.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_unix_auth.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_cred.so.1

auth required           pam_dial_auth.so.1

这些项表示 login 服务的一个 auth 栈样例。要确定此栈的结果,各个模块的结果代码需要进行集成处理。在集成处理过程中,模块按照文件中指定的顺序执行。每个成功/失败代码都会根据模块的控制标志集成到整体结果中。控制标志可能会导致栈很早就终止。例如,requisitedefinitive 模块可能会失败,而 sufficientdefinitivebinding 模块则可能会成功。处理栈之后,各个结果会组合成一个整体结果,传送给应用程序。

控制标志指明了 PAM 模块在确定对服务的访问权限时所扮演的角色。控制标志及其作用如下所述:

下面的两个图说明了在集成处理过程中如何确定访问权限。第一个图说明如何为每种类型的控制标志记录成败信息。第二个图说明如何确定集成值。

图 14-2 PAM 栈:控制标志的作用

image:流程图中显示了控制标志如何影响 PAM 栈。

图 14-3 PAM 栈:如何确定集成值

image:流程图中显示了如何在 PAM 栈中确定集成值。

PAM 栈示例

此示例显示了 /etc/pam.d/other 文件中的验证管理缺省定义:如果未配置特定于服务的定义,则将使用这些缺省定义。

#
# Default definitions for Authentication management
# Used when service name is not explicitly mentioned for authentication
#
auth definitive         pam_user_policy.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_auth.so.1
auth required           pam_unix_cred.so.1 

首先,使用 pam_user_policy 模块检查用户的安全策略。definitive 控制标志指定如果安全策略的评估成功,则该服务将向应用程序返回成功,因为此时未检查其他模块。如果请求失败,则会向应用程序发送一条失败消息,而不会进行进一步检查。如果没有为用户设置策略,则将执行下一个模块。

如果没有为该用户指定每用户 PAM 策略,则将执行 pam_authtok_get 模块。此模块的控制标志将设置为 requisite。如果 pam_authtok_get 失败,则验证过程将结束并向服务返回失败信息。

如果 pam_authtok_get 没有失败,则将执行接下来的三个模块。这些模块配置有 required 控制标志,因此无论是否返回了某个失败消息,处理过程都将继续进行。执行 pam_unix_cred 后,不再执行剩余的任何模块。此时,如果所有模块都成功,用户将被授予访问权限。如果 pam_dhkeyspam_unix_authpam_unix_cred 返回失败消息,则会拒绝用户进行访问。