Solaris のシステム管理 (セキュリティサービス)

ProcedureKerberos レルム内のユーザーを自動的に移行するように構成する方法

Kerberos 主体を持たないユーザーを、既存の Kerberos レルムに自動的に移行できます。移行を行うには、/etc/pam.conf のサーバーの認証スタックにある pam_krb5_migrate モジュールの積み重ねにより使用されているサービス用の PAM フレームワークを使用します。

この例では、dtloginother の PAM サービス名が構成され、自動移行を使用します。この手順では、次の構成パラメータを使用します。

始める前に

レルム EXAMPLE.COM の Kerberos クライアントとして server1 を設定します。詳細は、「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 構成ファイルを変更します。

    1. dtlogin サービスのエントリを追加します。


      # cat /etc/pam.conf
       .
       .
      #
      # dtlogin service (explicit because of pam_krb5_migrate)
      #
      dtlogin       auth requisite          pam_authtok_get.so.1
      dtlogin       auth required           pam_dhkeys.so.1
      dtlogin       auth required           pam_unix_cred.so.1
      dtlogin       auth sufficient         pam_krb5.so.1
      dtlogin       auth requisite          pam_unix_auth.so.1
      dtlogin       auth optional           pam_krb5_migrate.so.1
      
    2. (省略可能) 必要に応じて、即座のパスワードの変更を強制します。

      新しく作成された Kerberos アカウントは、即座の Kerberos パスワードの変更を強制するために、パスワードの有効期限が現在時刻 (今) に設定されています。有効期限を現在時刻に設定するには、pam_krb5_migrate モジュールを使用する行に expire_pw オプションを追加します。詳細は、pam_krb5_migrate(5) のマニュアルページを参照してください。


      # cat /etc/pam.conf
       .
       .
      dtlogin  auth optional           pam_krb5_migrate.so.1 expire_pw
      
    3. pam_krb5 モジュールをアカウントスタックに追加します。

      この追加により、Kerberos のパスワードの有効期限でアクセスをブロックできるようになります。


      # cat /etc/pam.conf
       .
       .
      #
      # Default definition for Account management
      # Used when service name is not explicitly mentioned for account management
      #
      other   account requisite       pam_roles.so.1
      other   account required        pam_krb5.so.1
      other   account required        pam_unix_account.so.1
    4. pam_krb5 モジュールをパスワードスタックに追加します。

      この追加により、パスワードが期限切れになったらパスワードを更新できるようになります。


      # cat /etc/pam.conf
       .
       .
      #
      # Default definition for Password management
      # Used when service name is not explicitly mentioned for password management
      #
      other   password required       pam_dhkeys.so.1
      other   password requisite      pam_authtok_get.so.1
      other   password requisite      pam_authtok_check.so.1
      other   password sufficient     pam_krb5.so.1
      other   password required       pam_authtok_store.so.1
  3. マスター KDC 上で、アクセス制御ファイルを更新します。

    次のエントリが、root 以外のすべてのユーザーの host/server1.example.com サービス主体に対して、次のエントリは特権の付与、移行、および照会を行います。移行すべきでないユーザーは、kadm5.acl ファイル内で、U 特権を使って示されます。これらのエントリは、permit all または 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 *
  4. マスター KDC 上で、Kerberos 管理デーモンを再起動します。

    この手順により、kadmind デーモンが新しい kadm5.acl エントリを使用できるようになります。


    kdc1 # svcadm restart network/security/kadmin
    
  5. マスター 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