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

退出打印视图

更新时间: 2014 年 9 月
 
 

如何分配修改后的 PAM 策略

在此过程中,您将在所有系统映像上配置非缺省 PAM 策略。复制所有文件后,可以将新的或修改后的 PAM 策略分配给单个或所有用户。

开始之前

您已对实施新策略的 PAM 配置文件进行了修改和测试。

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

  1. 将非缺省 PAM 文件添加到所有系统映像。

    必须将所有新的 PAM 模块以及新的和修改后的 PAM 配置文件添加到所有系统映像。

    1. 首先,将任何新的 PAM 模块添加到每个系统映像。
      1. 将 32 位 PAM 模块添加到相应体系结构的的目录。
      2. 将 64 位 PAM 模块添加到相应体系结构的的目录。

      有关目录设置的示例,请参见如何添加 PAM 模块中的Step 1

    2. 接着,将任何新的 PAM 配置文件添加到每个系统映像。

      例如,将 /opt/local_pam/ssh-telnet-conf 文件添加到每个系统映像。

    3. 然后,将任何修改后的 PAM 配置文件复制到每个系统映像。

      例如,将修改后的 /etc/pam.conf 文件以及任何修改后的 /etc/pam.d/service-name-files 复制到每个系统映像。

  2. 将非缺省 PAM 策略分配给所有用户。
    1. 通过以下方法之一修改 policy.conf 文件:
      • 将 PAM 配置文件添加到 policy.conf 文件中的 PAM_POLICY 关键字。
        # pfedit /etc/security/policy.conf
        ...
        # PAM_POLICY=
        PAM_POLICY=/opt/local_pam/ssh-telnet-conf
        ...
      • 将权限配置文件添加到 policy.conf 文件中的 PROFS_GRANTED 关键字。

        例如,分配Example 1–3 中在 "Any"(任何)权限配置文件内设置的基于用户的 PAM 策略。

        # pfedit /etc/security/policy.conf
        ...
        AUTHS_GRANTED=
        # PROFS_GRANTED=Basic Solaris User
        PROFS_GRANTED=PAM Per-User Policy of Any,Basic Solaris User
        ...
    2. 将修改后的 policy.conf 文件复制到每个系统映像。
  3. 要将非缺省 PAM 策略分配给单个用户,可以直接将该策略分配给用户,也可以将该策略添加到已分配给用户的权限配置文件。
    • 直接将 PAM 策略分配给单个用户。
      # usermod -K pam_policy="/opt/local_pam/ssh-telnet-conf" jill
    • 将 PAM 策略包含到权限配置文件,然后将该配置文件分配给单个用户。

      本示例使用的是 ldap PAM 策略。

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

      然后将权限配置文件分配给用户。

      # usermod -P +"PAM Per-User Policy of LDAP" jill
示例 1-4  ktelnet PAM 栈限定到所选用户

管理员希望只有有限数量的用户能在 Kerberos 领域中使用 telnet。因此,启用 telnet 服务之前,管理员应更改缺省的 ktelnet 配置文件,并将缺省的 ktelnet 文件放到 pam_policy 目录。

首先,管理员配置一个基于用户的 ktelnet 文件。

# cp /etc/pam.d/ktelnet /etc/security/pam_policy/ktelnet-conf
# pfedit /etc/security/pam_policy/ktelnet-conf
...
# Kerberized telnet service
#
ktelnet  auth required           pam_unix_cred.so.1
ktelnet  auth required           pam_krb5.so.1

管理员使用 444 权限保护该文件。

# chmod 444 /etc/security/pam_policy/ktelnet-conf
# ls -l /etc/security/pam_policy/ktelnet-conf
-r--r--r--   1 root     root         228 Nov 27 15:04 ktelnet-conf

    然后,管理员修改 pam.d 目录中的 ktelnet 文件。

  • 第一项启用基于用户的分配。

  • 第二项拒绝 ktelnet 使用,除非管理员为您分配了 pam_policy=ktelnet。

# cp /etc/pam.d/ktelnet /etc/pam.d/ktelnet.orig
                # pfedit /etc/pam.d/ktelnet
...
# Denied Kerberized telnet service
#
auth definitive         pam_user_policy.so.1
auth required           pam_deny.so.1

管理员分别以特权用户、一般用户和 root 角色对配置进行测试。配置通过测试后,管理员将启用 telnet 服务,并将基于用户的策略分配给 Kerberos 管理员。

# svcadm enable telnet
# rolemod -S ldap -K pam_policy=ktelnet-conf kerbadmin

管理员将修改后的文件复制到所有 Kerberos 服务器,并在这些服务器上启用 telnet