第7章 AD を認証プロバイダーとして使用する RHEL ホストの設定

システム管理者は、ホストを AD に参加させずに、Red Hat Enterprise Linux (RHEL) ホストの認証プロバイダーとして Active Directory (AD) を使用できます。

たとえば、以下のような場合に実行できます。

  • AD 管理者に対して、ホストの有効化および無効化の制御を付与しない場合。
  • そのホスト (企業 PC) は、社内で 1 人のユーザーのみが使用する予定である。
重要

この手順は、このアプローチが推奨される場合に限り実装してください。通常は推奨されません。

代わりに、システムを AD または Red Hat Identity Management (IdM) に完全に参加させることを検討してください。RHEL ホストをドメインに参加させると、設定を簡単に管理できます。クライアントを直接 AD に参加させることに関連するクライアントアクセスライセンスについて懸念がある場合は、AD との信頼関係にある IdM サーバーを活用することを検討してください。IdM-AD 信頼の詳細は、IdM と AD との間のフォレスト間の信頼の計画IdM と AD との間のフォレスト間の信頼のインストール を参照してください。

この手順を実行すると、AD_user という名前のユーザーが、example.com ドメインの Active Directory (AD) ユーザーデータベースに設定されたパスワードを使用して、rhel_host システムにログインできるようになります。この例では、Kerberos レルム EXAMPLE.COMexample.com ドメインに対応します。

前提条件

  • rhel_host への root アクセスがある。
  • AD_user ユーザーアカウントが example.com ドメインにある。
  • Kerberos レルムが EXAMPLE.COM である。
  • realm join コマンドを使用して、rhel_host が AD に参加していません。

手順

  1. パスワードを割り当てずに、AD_user ユーザーアカウントをローカルに作成します。

    # useradd AD_user
  2. /etc/nsswitch.conf ファイルを開いて編集し、以下の行が含まれていることを確認します。

    passwd:     sss files systemd
    group:      sss files systemd
    shadow:     files sss
  3. /etc/krb5.conf ファイルを開いて編集し、以下のセクションと項目が含まれるようにします。

    # To opt out of the system crypto-policies configuration of krb5, remove the
    # symlink at /etc/krb5.conf.d/crypto-policies which will not be recreated.
    includedir /etc/krb5.conf.d/
    
    [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
        dns_lookup_realm = false
        ticket_lifetime = 24h
        renew_lifetime = 7d
        forwardable = true
        rdns = false
        pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt
        spake_preauth_groups = edwards25519
        default_realm = EXAMPLE.COM
        default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
     EXAMPLE.COM = {
         kdc = ad.example.com
         admin_server = ad.example.com
     }
    
    [domain_realm]
     .example.com = EXAMPLE.COM
     example.com = EXAMPLE.COM
  4. /etc/sssd/sssd.conf ファイルを作成し、以下のセクションと行をそのファイルに追加します。

    [sssd]
        services = nss, pam
        domains = EXAMPLE.COM
    
    [domain/EXAMPLE.COM]
        id_provider = files
        auth_provider = krb5
        krb5_realm = EXAMPLE.COM
        krb5_server = ad.example.com
  5. /etc/sssd/sssd.conf ファイルの権限を変更します。

    # chmod 600 /etc/sssd/sssd.conf
  6. SSSD (Security System Services Daemon) を起動します。

    # systemctl start sssd
  7. SSSD を有効にします。

    # systemctl enable sssd
  8. /etc/pam.d/system-auth ファイルを開き、以下のセクションと行が含まれるように変更します。

    # Generated by authselect on Wed May  8 08:55:04 2019
    # Do not modify this file manually.
    
    auth        required                                     pam_env.so
    auth        required                                     pam_faildelay.so delay=2000000
    auth        [default=1 ignore=ignore success=ok]         pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]         pam_localuser.so
    auth        sufficient                                   pam_unix.so nullok try_first_pass
    auth        requisite                                    pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient                                   pam_sss.so forward_pass
    auth        required                                     pam_deny.so
    
    account     required                                     pam_unix.so
    account     sufficient                                   pam_localuser.so
    account     sufficient                                   pam_succeed_if.so uid < 1000 quiet
    account     [default=bad success=ok user_unknown=ignore] pam_sss.so
    account     required                                     pam_permit.so
    
    password    requisite                                    pam_pwquality.so try_first_pass local_users_only
    password    sufficient                                   pam_unix.so sha512 shadow nullok try_first_pass use_authtok
    password    sufficient                                   pam_sss.so use_authtok
    password    required                                     pam_deny.so
    
    session     optional                                     pam_keyinit.so revoke
    session     required                                     pam_limits.so
    -session    optional                                     pam_systemd.so
    session     [success=1 default=ignore]                   pam_succeed_if.so service in crond quiet use_uid
    session     required                                     pam_unix.so
    session     optional                                     pam_sss.so
  9. /etc/pam.d/system-auth ファイルの内容を /etc/pam.d/password-auth ファイルにコピーします。yes と入力して、ファイルの現在の内容を上書きします。

    # cp /etc/pam.d/system-auth /etc/pam.d/password-auth
    cp: overwrite '/etc/pam.d/password-auth'? yes

検証手順

  1. AD_user 用の Kerberos チケット保証チケット (TGT) を要求します。AD_user のパスワードを必要に応じて入力します。

    # kinit AD_user
    Password for AD_user@EXAMPLE.COM:
  2. 取得した TGT を表示します。

    # klist
    Ticket cache: KEYRING:persistent:0:0
    Default principal: AD_user@EXAMPLE.COM
    
    Valid starting     Expires            Service principal
    11/02/20 04:16:38  11/02/20 14:16:38  krbtgt/EXAMPLE.COM@EXAMPLE.COM
    	renew until 18/02/20 04:16:34

AD_user は、Kerberos ドメイン EXAMPLE.COM の認証情報を使用して rhel_host に正常にログインしました。