在 Oracle® Solaris 11.2 中管理 Kerberos 和其他验证服务

退出打印视图

更新时间: 2014 年 9 月
 
 

如何添加 PAM 模块

此过程说明如何添加、保护和测试新的 PAM 模块。您可能需要将新模块用于特定于站点的安全策略,或用于支持第三方应用程序。要创建 PAM 模块,请参见面向开发者的 Oracle Solaris 11 安全性指南 中的第 3  章 编写 PAM 应用程序和服务


注 - 必须安装 32 位版本和 64 位版本的 PAM 服务模块。

开始之前

完成规划特定于站点的 PAM 配置中所述的步骤。

您必须承担 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 在磁盘上安装两个版本的 PAM 服务模块,然后保护这些模块。

    确保保护模块文件的所有权和权限是 root 所有权和 444 权限。

    # cd /opt/pam_modules
    # ls -lR
    .:
    total 4
    -r--r--r--   1 root     root        4570 Nov 27 12:34 pam_app1.so.1
    drwxrwxrwx   2 root     root           3 Nov 27 12:38 sparcv9
    
    ./64:
    total 1
    -r--r--r--   1 root     root        4862 Nov 27 12:38 pam_app1.so.1

    32 位模块位于 /opt/pam_modules 目录中,而 64 位模块位于 64 子目录中。

  2. 将模块添加到相应的 PAM 配置文件。

    在以下示例中,模块用于新的应用程序 (app1)。其服务名称与应用程序名称相同。在 /etc/pam.d 目录中创建 app1 服务名称文件。该文件中的第一项使 app1 服务能够分配给单个用户。

    # cd /etc/pam.d
    # pfedit app1
    ...
    # PAM configuration
    #
    # app1 service
    #
    auth definitive         pam_user_policy.so.1
    auth required           /opt/pam_modules/$ISA/pam.app1.so.1  debug

    模块路径中的 $ISA 标记根据调用应用程序将 PAM 框架定向到相应的 32 位或 64 位体系结构版本的服务模块。对于 32 位应用程序,/a/b/$ISA/module.so 将变为 /a/b/module.so,对于 64 位应用程序,将变为 /a/b/64/module.so。在本示例中,在 /opt/pam_modules 目录中安装了 32 位的 pam.app1.so.1 服务模块,在 /opt/pam_modules/64 目录中安装了 64 位的模块。

    有关更多信息,请参见 pfedit(1M)pam.conf(4) 手册页。

    要将 app1 PAM 策略限定到所选用户,请参见Example 1–2

  3. 测试新服务。

    直接使用 loginssh 登录。然后,运行受新模块影响的命令。分别对允许和拒绝使用受影响命令的用户进行测试。有关故障排除帮助,请参见如何排除 PAM 配置错误

  4. 分配策略。

    请参见如何分配修改后的 PAM 策略

示例 1-2  将新模块添加到基于用户的 PAM 策略文件

在本示例中,app1 服务并非供所有用户使用,因此管理员可将该服务添加为基于用户的策略。

# cd /etc/pam.d
# cp app1 /opt/local_pam/app1-conf
# pfedit /opt/local_pam/app1-conf

## app1 service
##
app1 auth definitive         pam_user_policy.so.1
app1 auth required           /opt/pam_modules/$ISA/pam_app1.so.1  debug

管理员将 app1 文件从 pam.d 目录中删除,

# rm /etc/pam.d/app1

然后将 app1-conf 策略添加到系统管理员的 PAM 策略。

# rolemod -K pam_policy=/opt/local_pam/app1-conf sysadmin
示例 1-3  使用权限配置文件设置基于用户的 PAM 策略

本示例使用 pam_policy 安全属性对来自不同命名服务的用户进行验证。any PAM 策略文件在 /etc/security/pam_policy 目录中提供。该文件中的注释对此策略进行了描述。

请勿修改此目录中的文件。

# profiles -p "PAM Per-User Policy of Any" \
'set desc="Profile which sets pam_policy=any";
set pam_policy=any; exit;'

要分配此权限配置文件,请参见如何分配修改后的 PAM 策略