Contents
概要
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)