3.2. LDAP を使用し、TLS 認証を必要とする SSSD の設定

以下の手順に従って、Red Hat Enterprise Linux (RHEL) システムを OpenLDAP クライアントとして設定します。

以下のクライアント設定を使用します。

  • RHEL システムが OpenLDAP ユーザーアカウントデータベースに保存されているユーザーを認証する。
  • RHEL システムが SSSD (System Security Services Daemon) サービスを使用してユーザーデータを取得する。
  • RHEL システムが TLS で暗号化された接続で OpenLDAP サーバーと通信する。
注記

または、この手順に従って、RHEL システムを Red Hat Directory Server のクライアントとして設定することもできます。

前提条件

  • OpenLDAP サーバーがインストールされ、ユーザー情報を含めて設定されている。
  • LDAP クライアントとして設定するホストの root 権限がある。
  • LDAP クライアントとして設定するホストで、/etc/sssd/sssd.conf ファイルが作成され、ldapautofs_provider および id_provider として指定するように設定されている。
  • OpenLDAP サーバー証明書を発行した認証局からの PEM 形式の証明書チェーンがあり、core-dirsrv.ca.pem という名前のローカルファイルに保存されている。

手順

  1. 必要なパッケージをインストールします。

    # dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
  2. 認証プロバイダーを sssd に切り替えます。

    # authselect select sssd with-mkhomedir
  3. OpenLDAP サーバーの SSL/TLS 証明書を発行した認証局からのルート CA 署名証明書チェーンを含む core-dirsrv.ca.pem ファイルを /etc/openldap/certs フォルダーにコピーします。

    # cp core-dirsrv.ca.pem /etc/openldap/certs
  4. LDAP サーバーの URL と接尾辞を /etc/openldap/ldap.conf ファイルに追加します。

    URI ldap://ldap-server.example.com/
    BASE dc=example,dc=com
  5. /etc/openldap/ldap.conf ファイルで、/etc/openldap/certs/core-dirsrv.ca.pem を参照する TLS_CACERT パラメーターの行を追加します。

    # When no CA certificates are specified the Shared System Certificates
    # are in use. In order to have these available along with the ones specified
    # by TLS_CACERTDIR one has to include them explicitly:
    TLS_CACERT /etc/openldap/certs/core-dirsrv.ca.pem
  6. /etc/sssd/sssd.conf ファイルで、環境の値を ldap_uri パラメーターおよび ldap_search_base パラメーターに追加し、ldap_id_use_start_tlsTrue に設定します。

    [domain/default]
    id_provider = ldap
    autofs_provider = ldap
    auth_provider = ldap
    chpass_provider = ldap
    ldap_uri = ldap://ldap-server.example.com/
    ldap_search_base = dc=example,dc=com
    ldap_id_use_start_tls = True
    cache_credentials = True
    ldap_tls_cacertdir = /etc/openldap/certs
    ldap_tls_reqcert = allow
    
    [sssd]
    services = nss, pam, autofs
    domains = default
    
    [nss]
    homedir_substring = /home
    …
  7. /etc/sssd/sssd.conf で、[domain] セクションの ldap_tls_cacert および ldap_tls_reqcert の値を変更して TLS 認証要件を指定します。

    …
    cache_credentials = True
    ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem
    ldap_tls_reqcert = hard
  8. /etc/sssd/sssd.conf ファイルの権限を変更します。

    # chmod 600 /etc/sssd/sssd.conf
  9. SSSD サービスおよび oddjobd デーモンを再起動して有効にします。

    # systemctl restart sssd oddjobd
    # systemctl enable sssd oddjobd
  10. (必要に応じて) LDAP サーバーが非推奨の TLS 1.0 プロトコルまたは TLS 1.1 プロトコルを使用している場合は、クライアントシステムでシステム全体の暗号化ポリシーを LEGACY レベルに切り替えて、RHEL がこのプロトコルを使用して通信できるようにします。

    # update-crypto-policies --set LEGACY

    詳細は、Red Hat カスタマーポータルのナレッジベースStrong crypto defaults in RHEL 8 and deprecation of weak crypto algorithmsおよび man ページの update-crypto-policies(8) を参照してください。

検証手順

  • id コマンドを使用し、LDAP ユーザーを指定して、LDAP サーバーからユーザーデータを取得できることを確認します。

    # id ldap_user
    uid=17388(ldap_user) gid=45367(sysadmins) groups=45367(sysadmins),25395(engineers),10(wheel),1202200000(admins)

システム管理者は、id コマンドを使用して LDAP からユーザーをクエリーできるようになりました。このコマンドは、正しいユーザー ID とグループメンバーシップを返します。