Go to main content
Oracle® Solaris 11.3 での Kerberos およびその他の認証サービスの管理

印刷ビューの終了

更新: 2017 年 3 月
 
 

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

Kerberos 主体を持っていないユーザーを、PAM を使用して既存の Kerberos レルムに自動的に移行できます。UNIX 資格の認識や Kerberos レルム内での再認証を処理するには、移行サーバーおよびマスターサーバー上のシステムごとの PAM 構成ファイルをカスタマイズします。

PAM については、プラグイン可能認証モジュールの使用および pam.conf(4) のマニュアルページを参照してください。

    この手順では、ログインサービス名が自動移行を使用するように構成されます。この例では、次の構成パラメータを使用します。

  • レルム名 = EXAMPLE.COM

  • マスター KDC = kdc1.example.com

  • 移行サービスをホストするマシン = server1.example.com

  • 移行サービス主体 = host/server1.example.com

始める前に

root 役割になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  1. server1 のホストサービス主体が存在することを確認します。

    server1keytab ファイル内のホストサービス主体は、マスター KDC にサーバーを認証するために使用されます。

    server1 # klist -k
    Keytab name: FILE:/etc/krb5/krb5.keytab
    KVNO Principal
    ---- ------------------------------------------------
    3 host/server1.example.com@EXAMPLE.COM
    ...

    このコマンドのオプションについては、klist(1) のマニュアルページを参照してください。

  2. server1 が一覧表示されない場合は、それをレルム EXAMPLE.COM の Kerberos クライアントとして構成します。

    手順については、Kerberos クライアントの構成の例を参照してください。

  3. server1 の PAM ポリシーを変更します。

    詳細は、ユーザーごとの PAM ポリシーの割り当てを参照してください。

    1. server1 上でどの Kerberos ポリシーが使用されているかを判定します。
      % grep PAM_POLICY /etc/security/policy.conf
      # PAM_POLICY specifies the system-wide PAM policy (see pam_user_policy(5))
      ...
      PAM_POLICY=krb5_first
    2. その PAM ポリシーファイルをコピーしたあと、新しいポリシーファイルを変更して、各認証スタックのあとに pam_krb5_migrate.so.1 モジュールを付加します。
      server1 # cd /etc/security/pam_policy/; cp krb5_first krb5_firstmigrate
      server1 # pfedit /etc/security/pam_policy/krb5_firstmigrate.
      # login service (explicit because of pam_dial_auth)
      #
      login	auth requisite	   pam_authtok_get.so.1
      ...
      login	auth required		pam_unix_auth.so.1
      login    auth optional		pam_krb5_migrate.so.1
      #
      # rlogin service (explicit because of pam_rhost_auth)
      #
      rlogin	auth sufficient	 pam_rhosts_auth.so.1
      ...
      rlogin	auth required	   pam_unix_auth.so.1
      rlogin   auth optional        pam_krb5_migrate.so.1
      #
      # Kerberized rlogin service
      #
      krlogin	auth required		pam_unix_cred.so.1
      krlogin	auth required		pam_krb5.so.1
      krlogin	auth optional		pam_krb5_migrate.so.1
      #
      # rsh service (explicit because of pam_rhost_auth)
      #
      rsh	auth sufficient		pam_rhosts_auth.so.1
      rsh	auth required		  pam_unix_cred.so.1
      rsh	auth optional		  pam_krb5_migrate.so.1
      #
      # Kerberized rsh service
      #
      krsh	auth required		pam_unix_cred.so.1
      krsh	auth required		pam_krb5.so.1
      krsh	auth optional		pam_krb5_migrate.so.1
      #
      # Kerberized telnet service
      #
      ktelnet	auth required		pam_unix_cred.so.1
      ktelnet	auth required		pam_krb5.so.1
      ktelnet	auth optional		pam_krb5_migrate.so.1
      #
      # PPP service (explicit because of pam_dial_auth)
      #
      ppp	auth requisite	   pam_authtok_get.so.1
      ...
      ppp	auth required		pam_unix_auth.so.1
      ppp	auth optional		pam_krb5_migrate.so.1
      #
      # GDM Autologin (explicit because of pam_allow).  These need to be
      # here as there is no mechanism for packages to amend pam.conf as
      # they are installed.
      #
      gdm-autologin auth  required    pam_unix_cred.so.1
      gdm-autologin auth  sufficient  pam_allow.so.1
      gdm-autologin 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_unix_auth.so.1
      OTHER	auth optional		pam_krb5_migrate.so.1
      #
      # passwd command (explicit because of a different authentication module)
      #
      passwd	auth required		pam_passwd_auth.so.1
      #
      # cron service (explicit because of non-usage of pam_roles.so.1)
      #
      cron	account required	pam_unix_account.so.1
      #
      # cups service (explicit because of non-usage of pam_roles.so.1)
      #
      cups	account	required	pam_unix_account.so.1
      #
      # GDM Autologin (explicit because of pam_allow) This needs to be here
      # as there is no mechanism for packages to amend pam.conf as they are
      # installed.
      #modified
      gdm-autologin account  sufficient  pam_allow.so.1
      #
      .
      .
      .
    3. (オプション) 即座のパスワード変更を強制的に適用します。

      新しく作成された Kerberos アカウントについて、pam_krb5_migrate エントリに –expire_pw オプションを追加することにより、パスワードの有効期限を現在の時間に設定します。詳細は、pam_krb5_migrate(5) のマニュアルページを参照してください。

      service-name auth optional     pam_krb5_migrate.so.1 expire_pw
    4. この構成ファイルで、OTHER アカウントスタックを変更して、Kerberos パスワードの期限が切れた場合はアクセスをブロックします。
      # Definition for Account management
      # Used when service name is not explicitly mentioned for account management
      # Re-ordered pam_krb5 causes password expiration in Kerberos to block access
      #
      OTHER	account	requisite   pam_roles.so.1
      OTHER	account	required	pam_krb5.so.1
      OTHER	account	required	pam_unix_account.so.1
      OTHER	account	required	pam_tsol_account.so.1
      # OTHER	account	required	pam_krb5.so.1
      #
      .
      .
      .
    5. 変更された構成ファイルを使用するように policy.conf ファイル内の PAM_POLICY エントリを変更します。
      server1 # pfedit /etc/security/policy.conf
      ...
      # PAM_POLICY=krb5_first
      PAM_POLICY=krb5_firstmigrate

      詳細は、policy.conf ファイルを参照してください。

  4. マスター KDC 上で、kadm5.acl アクセス制御ファイルを更新します。

    次のエントリにより、root ユーザーを除くすべてのユーザーの host/server1.example.com サービス主体に移行および照会権限が付与されます。U 権限を使用して、移行してはいけないユーザーを一覧表示します。これらのエントリは、permit all または ui エントリの前に置く必要があります。詳細は、kadm5.acl(4) のマニュアルページを参照してください。

    kdc1# pfedit /etc/krb5/kadm5.acl
    host/server1.example.com@EXAMPLE.COM U root
    host/server1.example.com@EXAMPLE.COM ui *
    */admin@EXAMPLE.COM *
  5. マスター KDC 上で、kadmind デーモンが k5migrate PAM サービスを使用できるようにします。

    k5migrate サービスファイルが /etc/pam.d ディレクトリ内にない場合は、このディレクトリにそのサービスファイルを追加します。詳細は、pam.d(4) のマニュアルページを参照してください。

    この変更によって、移行が必要なアカウントに対する UNIX ユーザーパスワードの検証が可能になります。

    kdc1# pfedit /etc/pam.d/k5migrate
    ...
    # Permits validation of migrated UNIX accounts
    auth    required        pam_unix_auth.so.1
    account required        pam_unix_account.so.1

    注 -  k5migrate は PAM サービスの名前です。このファイルは、k5migrate という名前である必要があります。
  6. 作成した構成を本番環境に配置する前にテストします。
    • 通常のユーザーとして、変更された各 PAM サービスをテストします。
    • root として、変更された各 PAM サービスをテストします。
    • パスワード変更を強制的に適用してから、変更された PAM サービスをテストします。