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
という名前のローカルファイルに保存されている。
手順
必要なパッケージをインストールします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
# dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
認証プロバイダーを
sssd
に切り替えます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow authselect select sssd with-mkhomedir
# authselect select sssd with-mkhomedir
OpenLDAP サーバーの SSL/TLS 証明書を発行した認証局からのルート CA 署名証明書チェーンを含む
core-dirsrv.ca.pem
ファイルを/etc/openldap/certs
フォルダーにコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow cp core-dirsrv.ca.pem /etc/openldap/certs
# cp core-dirsrv.ca.pem /etc/openldap/certs
LDAP サーバーの URL と接尾辞を
/etc/openldap/ldap.conf
ファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
URI ldap://ldap-server.example.com/ BASE dc=example,dc=com
/etc/openldap/ldap.conf
ファイルで、/etc/openldap/certs/core-dirsrv.ca.pem
を参照する TLS_CACERT パラメーターの行を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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:
# 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
に設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [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 …
[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 認証要件を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow … cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …
… cache_credentials = True ldap_tls_cacert = /etc/openldap/certs/core-dirsrv.ca.pem ldap_tls_reqcert = hard …
/etc/sssd/sssd.conf
ファイルの権限を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 600 /etc/sssd/sssd.conf
# chmod 600 /etc/sssd/sssd.conf
SSSD サービスおよび
oddjobd
デーモンを再起動して有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart sssd oddjobd systemctl enable sssd oddjobd
# systemctl restart sssd oddjobd # systemctl enable sssd oddjobd
オプション: LDAP サーバーが非推奨の TLS 1.0 または TLS 1.1 プロトコルを使用している場合は、クライアントシステムのシステム全体の暗号化ポリシーを LEGACY レベルに切り替えて、RHEL がこのプロトコルを使用して通信できるようにします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow update-crypto-policies --set LEGACY
# 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 サーバーからユーザーデータを取得できることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow id <ldap_user>
# id <ldap_user> uid=17388( <ldap_user>) gid=45367(sysadmins) groups=45367(sysadmins),25395(engineers),10(wheel),1202200000(admins)
システム管理者は、id
コマンドを使用して LDAP からユーザーをクエリーできるようになりました。このコマンドは、正しいユーザー ID とグループメンバーシップを返します。