系统管理指南:安全性服务

Procedure在 Kerberos 领域中配置用户自动迁移

没有 Kerberos 主体的用户可以自动迁移到现有 Kerberos 领域。通过将 pam_krb5_migrate 模块堆叠在 /etc/pam.conf 的服务验证栈中,可以通过正在使用的服务的 PAM 框架实现迁移。

在此示例中,将配置 rloginother PAM 服务名称以使用自动迁移。将使用以下配置参数:

开始之前

server1 设置为 EXAMPLE.COM 领域的 Kerberos 客户机。有关更多信息,请参见配置 Kerberos 客户机

  1. 检查是否存在 server1 的主机服务主体。

    server1keytab 文件中的主机服务主体用于向主 KDC 验证该服务器。


    server1 # klist -k
    
    Keytab name: FILE:/etc/krb5/krb5.keytab
    
    	KVNO Principal
    
    	---- ------------------------------------------------
    
    	   3 host/server1.example.com@EXAMPLE.COM
    
    	   3 host/server1.example.com@EXAMPLE.COM
    
    	   3 host/server1.example.com@EXAMPLE.COM
    
    	   3 host/server1.example.com@EXAMPLE.COM
    
  2. 对 PAM 配置文件进行更改。

    pam_krb5_migrate PAM 模块添加到 rloginother 服务名称的验证栈中。系统将自动为使用 rlogintelnetssh 而不具有 Kerberos 主体的用户创建主体。


    # cat /etc/pam.conf
    
     .
    
     .
    
    #
    
    # rlogin service (explicit because of pam_rhost_auth)
    
    #
    
    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_cred.so.1
    
    rlogin  auth required           pam_unix_auth.so.1
    
    rlogin  auth sufficient         pam_krb5.so.1
    
    rlogin  auth optional           pam_krb5_migrate.so.1
    
    #
    
     .
    
     .
    
    #
    
    # Default definitions for Authentication management
    
    # Used when service name is not explicitly mentioned for authentication
    
    #
    
    other   auth requisite          pam_authtok_get.so.1
    
    other   auth required           pam_dhkeys.so.1
    
    other   auth required           pam_unix_cred.so.1
    
    other   auth required           pam_unix_auth.so.1
    
    other   auth sufficient         pam_krb5.so.1
    
    other   auth optional           pam_krb5_migrate.so.1
    
  3. (可选的)如果需要,可强制立即更改口令。

    可以将新建 Kerberos 帐户的口令失效时间设置为当前时间(现在),以便强制立即更改 Kerberos 口令。要将失效时间设置为当前时间,请将 expire_pw 选项添加到使用 pam_krb5_migrate 模块的行中。有关更多信息,请参见 pam_krb5_migrate(5) 手册页。


    # cat /etc/pam.conf
    
     .
    
     .
    
    rlogin  auth optional           pam_krb5_migrate.so.1 expire_pw
    
    #
    
     .
    
     .
    
    other   auth optional           pam_krb5_migrate.so.1 expire_pw
    
  4. 在主 KDC 上,更新访问控制文件。

    以下项将为所有用户(root 用户除外)授予对 host/server1.example.com 服务主体的迁移和查询权限。务必注意,不应使用 U 权限迁移 kadm5.acl 文件中列出的用户。这些项必须位于允许所有用户或 ui 项之前。有关更多信息,请参见 kadm5.acl(4) 手册页。


    kdc1 # cat /etc/krb5/kadm5.acl
    
    host/server1.example.com@EXAMPLE.COM U root
    
    host/server1.example.com@EXAMPLE.COM ui *
    
    */admin@EXAMPLE.COM *
  5. 在主 KDC 上,重新启动 Kerberos 管理守护进程。

    通过此步骤,kadmind 守护进程可以使用新的 kadm5.acl 项。


    kdc1 # svcadm restart network/security/kadmin
    
  6. 在主 KDC 上,向 pam.conf 文件中添加项。

    通过以下项,kadmind 守护进程可以使用 k5migrate PAM 服务来验证需要迁移的帐户的 UNIX 用户口令。


    # grep k5migrate /etc/pam.conf
    
    k5migrate        auth    required        pam_unix_auth.so.1
    
    k5migrate        account required        pam_unix_account.so.1