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

文档信息

前言

第 1 部分安全性概述

1.  安全性服务(概述)

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

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

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

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

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

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

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

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

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

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

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

第 4 部分加密服务

11.  加密框架(概述)

12.  加密框架(任务)

13.  密钥管理框架

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

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

15.  使用 PAM

PAM(概述)

使用 PAM 的益处

PAM 框架介绍

此发行版中 PAM 的更改

PAM(任务)

PAM(任务列表)

规划 PAM 实现

如何添加 PAM 模块

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

如何记录 PAM 错误报告

PAM 配置(参考)

PAM 配置文件语法

PAM 堆栈工作原理

PAM 堆栈示例

16.  使用 SASL

17.  使用 安全 Shell(任务)

18.  安全 Shell(参考)

第 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 配置文件 pam.conf(4) 用于为系统服务(如 loginrloginsucron)配置 PAM 服务模块。系统管理员可以管理此文件。如果 pam.conf 中的项顺序有误,会导致无法预料的负面影响。例如,如果 pam.conf 配置错误,则会将多个用户锁定在外,这样必须采用单用户模式才能进行修复。有关设置顺序的说明,请参见PAM 堆栈工作原理

PAM 配置文件语法

该配置文件中的项采用以下格式:

service-name module-type control-flag module-path module-options
service-name

服务的名称,例如 ftploginpasswd。应用程序可以针对其提供的各服务使用不同的服务名。例如,Oracle Solaris 安全 shell 守护进程使用以下服务名:sshd-nonesshd-passwordsshd-kbdintsshd-pubkey 以及 sshd-hostbased。服务名 other 是用作通配符服务名的预定义名称。如果在配置文件中未找到特定的服务名,则会使用 other 的配置。

module-type

服务类型,即 authaccountsessionpassword

control-flag

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

module-path

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

module-options

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

PAM 堆栈工作原理

应用程序调用以下函数时,libpam 将读取配置文件 /etc/pam.conf 以确定针对该服务参与操作的模块:

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

passwd  auth required           pam_passwd_auth.so.1

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

login   auth requisite          pam_authtok_get.so.1
login   auth required           pam_dhkeys.so.1
login   auth required           pam_unix_cred.so.1
login   auth required           pam_unix_auth.so.1
login   auth required           pam_dial_auth.so.1

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

控制标志用于指明 PAM 模块在确定对服务的访问方面所起的作用。控制标志及其作用如下所述:

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

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

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

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

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

PAM 堆栈示例

请考虑以下请求验证的 rlogin 服务示例。

示例 15-1 典型 PAM 配置文件的部分内容

该示例中的 pam.conf 文件包含以下有关 rlogin 服务的内容:

     # Authentication management
     ...     
     # rlogin service 
     rlogin  auth sufficient         pam_rhosts_auth.so.1
     rlogin  auth requisite          pam_authtok_get.so.1
     rlogin  auth required           pam_dhkeys.so.1
     rlogin  auth required           pam_unix_auth.so.1
     ...

rlogin 服务请求验证时,libpam 会首先执行 pam_rhosts_auth(5) 模块。对于 pam_rhosts_auth 模块,控制标志将设置为 sufficient。如果 pam_rhosts_auth 模块可以验证用户,则处理过程将停止,并且会向应用程序返回成功信息。

如果 pam_rhosts_auth 模块无法验证用户,则将执行下一个 PAM 模块 pam_authtok_get(5)。此模块的控制标志将设置为 requisite。如果 pam_authtok_get 失败,则验证过程将结束并向 rlogin 返回失败信息。

如果 pam_authtok_get 成功,则将执行接下来的两个模块 pam_dhkeys(5)pam_unix_auth(5)。这两个模块的关联控制标志都会设置为 required,以便处理过程可继续进行,无论是否会返回单独的失败信息。执行了 pam_unix_auth 后,不会再保留任何用于 rlogin 验证的模块。此时,如果 pam_dhkeyspam_unix_auth 返回失败信息,则会拒绝用户通过 rlogin 进行访问。