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
ファイルが作成され、ldap
をautofs_provider
およびid_provider
として指定するように設定されている。 -
OpenLDAP サーバー証明書を発行した認証局からの PEM 形式の証明書チェーンがあり、
core-dirsrv.ca.pem
という名前のローカルファイルに保存されている。
手順
必要なパッケージをインストールします。
# dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
認証プロバイダーを
sssd
に切り替えます。# authselect select sssd with-mkhomedir
OpenLDAP サーバーの SSL/TLS 証明書を発行した認証局からのルート CA 署名証明書チェーンを含む
core-dirsrv.ca.pem
ファイルを/etc/openldap/certs
フォルダーにコピーします。# cp core-dirsrv.ca.pem /etc/openldap/certs
LDAP サーバーの URL と接尾辞を
/etc/openldap/ldap.conf
ファイルに追加します。URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
/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
/etc/sssd/sssd.conf
ファイルで、環境の値をldap_uri
パラメーターおよびldap_search_base
パラメーターに追加し、ldap_id_use_start_tls
をTrue
に設定します。[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 …
/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 …
/etc/sssd/sssd.conf
ファイルの権限を変更します。# chmod 600 /etc/sssd/sssd.conf
SSSD サービスおよび
oddjobd
デーモンを再起動して有効にします。# systemctl restart sssd oddjobd # systemctl enable sssd oddjobd
(必要に応じて) 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 とグループメンバーシップを返します。