最終更新日: 2019-10-27 日 18:22
ホーム | 文書トップ | 目次

CentOS7 LDAP認証

Table of Contents

概要

OpenLDAPをインストールしたDD_WRTサーバにLDAPにユーザ情報を登録し、CentOS7(別サーバ) のユーザ認証を LDAP認証とする設定方法について。

非常に苦労したのだが、結論としては authconfig-tuiとsssdの設定を行うだけ であった。

(補足)sssdがRHELに導入されたのはRHEL6からである。 それ以前は、ネームサービスとして nslcd (Name Service LDAP Connection Daemon) を使用し、 キャッシュの為に nscd (Name Service Cache Daemon) を使用する必要があった。

nslcd + nscd (これがまた名前がややこしい)を使う場合、/etc/nsswitch.conf や /etc/pam.d/system-auth の設定が必要だった。

一方、sssdを使用する場合は、sssd-ldap というパッケージがあり、sssd の設定にて ldap に関係する設定を行えばよい。

インストール済パッケージの確認

sssd,openldap,openldap-clients,sssd-ldap がインストールされていることを確認する

$ sudo yum list installed | grep ldap
Repository google-chrome is listed more than once in the configuration
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
openldap.x86_64                            2.4.44-21.el7_6             @updates
openldap-clients.x86_64                    2.4.44-21.el7_6             @updates
python-ldap.x86_64                         2.4.15-2.el7                @base
sssd-ldap.x86_64                           1.16.2-13.el7_6.5           @updates
$ sudo yum list installed | grep sssd
Repository google-chrome is listed more than once in the configuration
python-sssdconfig.noarch                1.16.2-13.el7_6.8              @updates
sssd.x86_64                             1.16.2-13.el7_6.8              @updates
sssd-ad.x86_64                          1.16.2-13.el7_6.8              @updates
sssd-client.x86_64                      1.16.2-13.el7_6.8              @updates
sssd-common.x86_64                      1.16.2-13.el7_6.8              @updates
sssd-common-pac.x86_64                  1.16.2-13.el7_6.8              @updates
sssd-ipa.x86_64                         1.16.2-13.el7_6.8              @updates
sssd-krb5.x86_64                        1.16.2-13.el7_6.8              @updates
sssd-krb5-common.x86_64                 1.16.2-13.el7_6.8              @updates
sssd-ldap.x86_64                        1.16.2-13.el7_6.8              @updates
sssd-proxy.x86_64                       1.16.2-13.el7_6.8              @updates

sssd が稼働していることを確認する

$ sudo systemctl status sssd
● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2019-10-27 17:12:08 JST; 28min ago

authconfig-tui

これを行うことにより、/etc/openldap/ldap.conf が書き換えられている(はず)

authconfig_tui_01.png

authconfig_tui_02.png

authconfig_tui_03.png

上記のように設定しても、下記のように一部は元に戻ってしまう

authconfig_tui_04.png

sssd

sssd.conf の設定例

$ sudo vi /etc/sssd/sssd.conf
[sssd]

debug_level = 9
services = nss, pam, autofs, ssh
domains = default

[domain/default]

id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
sudo_provider = ldap

ldap_uri = ldap://192.168.1.100/
ldap_search_base = dc=example,dc=com
ldap_auth_disable_tls_never_use_in_production = true
ldap_id_use_start_tls = False
ldap_tls_reqcert = never

cache_credentials = True

chpass_provider = ldap
autofs_provider = ldap
ldap_tls_cacertdir = /etc/openldap/cacerts

[nss]
homedir_substring = /home

sssd サービスのrestart

$ sudo systemctl restart sssd

sssdトラブル事例

startできず

$ sudo systemctl status sssd
● sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 土 2019-09-21 16:49:27 JST; 7s ago
  Process: 2274 ExecStart=/usr/sbin/sssd -i ${DEBUG_LOGGER} (code=exited, status=4)
 Main PID: 2274 (code=exited, status=4)

 9月 21 16:49:27 サーバ名 systemd[1]: Starting System Security Services Daemon...
 9月 21 16:49:27 サーバ名 systemd[1]: sssd.service: main process exited, code=exited, status=4/NOPERMISSION
 9月 21 16:49:27 サーバ名 systemd[1]: Failed to start System Security Services Daemon.
 9月 21 16:49:27 サーバ名 systemd[1]: Unit sssd.service entered failed state.
 9月 21 16:49:27 サーバ名 systemd[1]: sssd.service failed.

これについては、authconfig-tui で正しく設定すれば start できるようになる

unsupported extended operation

id でLDAPユーザを参照することはできる

$ id wurly
uid=1010(wurly) gid=1010(wurly) groups=1010(wurly)

su しようとすると(ログインしようとすると)失敗する

$ su - wurly

/var/log/messages には下記が記録されている

Oct 27 17:05:25 サーバ名 sssd[be[default]]: Could not start TLS encryption. unsupported extended operation
Oct 27 17:05:27 サーバ名 su: FAILED SU (to wurly) ユーザ名 on pts/0

ldap_auth_disable_tls_never_use_in_production を true にすれば解決

Oct 27 17:12:25 サーバ名 sssd[be[default]]: LDAP authentication being performed over insecure connection. This should be done for debugging purposes only.
Oct 27 17:12:25 サーバ名 sssd[be[default]]: No encryption detected on LDAP connection.
Oct 27 17:12:25 サーバ名 su: (to wurly) ユーザ名 on pts/0

その他

古い(試行錯誤していた時の)情報

参考ページ

量が多いので別ページにしました。

ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)