CentOS8 SSSDを使用したLinuxのLDAP認証

目次に戻る

概要

SSSDを使用してLinux認証にLDAPを使用します。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

設定

インストール

下記をインストールします。環境によってはインストール済みかもしれません。

[root@centos ~]# dnf install sssd sssd-tools sssd-ldap authselect

ルート証明書の配置

SELinux有効の状態では、SSSDが読み込むルート証明書の場所は/etc/openldap/cacertとなります。/etc/openldap/cacertは存在しなければ作成して下さい。

配置場所が適切でない場合、SSSDの起動時に”Could not start TLS encryption. unknown error”が出力されLDAPSで接続ができません。尚、SELinuxで許可、またはSELinux自体を無効化すればどの場所でも問題ありません。

[root@centos ~]# mkdir /etc/openldap/cacert
[root@centos ~]# cp ca.crt /etc/openldap/cacert

/etc/sssd/sssd.conf

/etc/sssd/sssd.confを新規に作成ます。sssd.confは他の設定ファイルのように元のファイルが存在しないため0から作成する必要があります。インターネット上の設定例では下記以外の設定項目が多く見られますが、本稿の環境では下記が必要最小限の設定項目でした。

[sssd]
services = nss, pam
domains = si1230.com

[nss]
filter_groups = root
filter_users = root

[domain/si1230.com]
id_provider = ldap
ldap_uri = ldaps://ldap.si1230.com
ldap_search_base = dc=si1230,dc=com
ldap_tls_cacert = /etc/openldap/cacert/ca.crt
ldap_default_bind_dn = cn=readonly,dc=si1230,dc=com
ldap_default_authtok = password

sssdセクション

services
NSSがSSSDと共に機能するサービスとのことです。これ以上の具体的な記載は見つけらていませんが、特別な要件が無ければこのままで良いでしょう。
domains
domain/domain_nameセクションのdomain_nameを指定しています。

nssセクション

filter_groups
具体的な記載は見つけられていませんが、特別な要件が無ければこのままで良いでしょう。
filter_users
filter_groupsと同じです。

domain/domain_nameセクション

id_provider
IDプロバイダーにLDAPを指定しています。
ldap_uri
LDAPサーバーのURIを設定しています。
ldap_search_base
ベースDN(検索範囲)を指定しています。
ldap_tls_cacert
信頼する証明書を指定します。サーバー証明書に署名したルート証明書が適切です。
ldap_default_bind_dn
バインドDNを指定します。SSSDを介してLDAPに書き込む想定が無い為、読み取り専用のDNを指定しています。
ldap_default_authtok
バインドDNのパスワードです。

sssd.confのパーミッションを変更します。SSSDの仕様によるものですが、パスワードを平文で書いているため何れにせよ必須ですね。

[root@centos ~]# chmod 600 /etc/sssd/sssd.conf

authselect

authselectでLinux認証をSSSDに切り替えます。CentOS7で使用していたauthconfigは削除されています。

[root@centos ~]# authselect select sssd --force
バックアップは /var/lib/authselect/backups/2021-05-04-02-18-19.XQAf17 に保存されました
プロファイル "sssd" が設定されました。
以下の nsswitch マップはプロファイルで上書きされます:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.

サービス起動設定

SSSDを起動します。

[root@centos ~]# systemctl enable --now sssd.service
[root@centos ~]# systemctl status sssd.service

確認

ここまでの設定に問題が無ければ下記のようにLDAP上のユーザー情報を取得できることが確認できます。SSHでuser1を指定してログインも可能なはずです。尚、ホームディレクトリは自動で作成されない為、必要に応じて作成して下さい。

[root@centos ~]# id user1
uid=3000(user1) gid=3000(group1) groups=3000(group1)

目次に戻る

CentOS8 SSSDを使用したLinuxのLDAP認証

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る