4.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-mkhomedirOpenLDAP サーバーの SSL/TLS 証明書を発行した認証局からのルート CA 署名証明書チェーンを含む
core-dirsrv.ca.pemファイルを/etc/openldap/certsフォルダーにコピーします。# cp core-dirsrv.ca.pem /etc/openldap/certsLDAP サーバーの 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.confSSSD サービスおよび
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、およびシステム上の
update-crypto-policies(8)man ページを参照してください。
検証
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 とグループメンバーシップを返します。