| Works
LDAPユーザーでLinuxにログイン
前回はLDAPサーバにユーザーを作成したので、このユーザーで別のLinuxへログインする所です。
今回の内容は389-dsというよりLDAP全般の話かな。
サーバ環境は前回までと同じですが、今回はもう一つ別のLinux環境を用意します。
とりあえずOSは同じくRHEL 9.2にしました。
| ホスト名 | FQDN | IPアドレス | 備考 |
| ds-1 | ds-1.example.com | 172.16.11.51 | LDAPサーバ |
| ds-2 | ds-2.example.com | 172.16.11.52 | LDAPサーバ |
| stg | stg.example.com | 172.16.11.55 | クライアント(今回の作業対象) |
LDAPクライアント設定
新しいLinux環境を準備したら、当然ですが2台のLDAPサーバと通信可能にしておきます。
また、LDAPクライアントとして動作させるために最低限必要なパッケージをインストールします。
以降の作業も、特に記載がない限りクライアント側の作業です。
とりあえずOpenLDAPクライアントの設定をしておきます。
"/etc/openldap/ldap.conf"に以下の内容を追記します。
BASE dc=example,dc=com
URI ldaps://ds-1.example.com:636 ldaps://ds-2.example.com:636
TLS_CACERTDIR /etc/openldap/certs
TLS_REQCERT never "URI"にはスペース区切りで2台のLDAPサーバへの接続を記述しておきます。基本的にLDAPクライアントはDNS等と同様、前から順に1台目に接続できなかった場合は2台目に接続を試みます。
セキュリティ事情を考慮して、プロトコルはLDAPSにしています。
SSSDの設定
RHELではLDAPやActive Directoryとの認証連携にSystem Security Services Daemon(SSSD)を使います。
今回はLDAPと連携するための設定を入れていきます。
設定ファイル"/etc/sssd/sssd.conf"はデフォルトでは存在しないと思うので、新規作成して次の内容を記述します。
[sssd]
config_file_version = 2
services = nss, pam, autofs
domains = default
[nss]
filter_groups = root
filter_users = root
homedir_substring = /home
[pam]
[domain/default]
id_provider = ldap
autofs_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldaps://ds-1.example.com:636,ldaps://ds-2.example.com:636
ldap_chpass_uri = ldaps://ds-1.example.com:636,ldaps://ds-2.example.com:636
ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/certs
cache_credentials = True
ldap_tls_reqcert = never
entry_cache_timeout = 600
ldap_network_timeout = 3
ldap_connection_expire_timeout = 60
ldap_default_bind_dn = cn=readonly,dc=example,dc=com
ldap_default_authtok_type = password
ldap_default_authtok = password "ldap_uri"には先程と同様に2台分の接続を記述しますが、"sssd.conf"の区切り文字は",(カンマ)"であることに注意してください。
"ldap_tls_reqcert=never"は証明書の検証を無視する設定で、ちゃんとした証明書を使っている環境であれば"demand"にして検証をするようにします。
"ldap_default_bind_dn"の値は前回作成した読み取り専用オブジェクトのDNで、"ldap_default_authtok"はそのパスワードです。
設定ファイルの作成と記述が終わったら、パーミッションを変更します。
"sssd.conf"のパーミッションが"600"でないと"sssd"起動時の設定読み込みでエラーになります。
SSSDのサービス再起動と併せて関連サービスも起動しておきます。"oddjobd"はLDAPユーザーでログインした時にホームディレクトリを自動的に作成するためのサービスです。
# systemctl start oddjobd.service
# systemctl restart sssd.service
最後に"authselect"コマンドで認証ソースを"SSSD"に変更します。
これでLDAPと認証連携できるようになったはずです。
"id"コマンド等で前回作成したLDAPユーザーを確認できます。
uid=10001(test) gid=10001(ldapusers) groups=10001(ldapusers)
これでクライアント側の設定は完了です。
動作確認
あとは実際にLDAPユーザーでログインしてみるだけです。
test@stg.example.com's password:
Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Sat Apr 20 20:07:25 2024 from 172.16.11.251
[test@stg ~]$ pwd
/home/test
[test@stg ~]$ passwd
Changing password for user test.
Current Password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
"test"ユーザーでログインし、パスワードが変更できました。
今回はここまで。次はNFSとの連携かな。