====== LDAP ======
===== 概要 =====
LAN内のユーザアカウントとメールアカウントを管理するケースについて OpenLDAP サーバの設定および、クライアントの設定についてまとめる。
なお、メールは Postfix + dovecot でSMTPおよびIMAPサービスを行うものとする。
===== サーバ =====
===== クライアント =====
==== SSSD ====
今時のクライアントサイドはSSSDを使うものだ、と、AIが言うので、SSSDで設定を行うことにしたら、NSLCDよりよほど簡単だった。
=== モジュール ===
sssd, libnss-sss, libpam-sss, および ldap-utils をインストールしておく。
$ sudo apt install -y sssd libnss-sss libpam-sss ldap-utils
=== sssd.conf ===
SSSDをインストールしても sssd.confのひな形が作られたりはしないので、自分で全部書く。
/etc/sssd/sssd.conf は、そんなにたくさん書かなくても動くのでそれほど心配しなくてもいい。
[sssd]
service = nss, pam
config_file_version = 2
domains = exmaple.com
[domain/example.com]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldaps://ldap.example.com
ldap_search_base = dc=example,dc=com
ldap_default_bind_dn = cn=admin,dc=example,dc=com
ldap_default_authok = password
cache_credentials = True
enumerate = True
[sssd]セクションでは domainsで指定するが、ドメインを各セクションは [domain/<ドメイン名>]になるので間違えないように気をつける。
当然、ドメイン名やdcなどについては自分のものに置き換えること。
設定ファイルを保存したら、sssdを再起動する。
$ sudo systemctl restart sssd.service
基本的に nsswitch.confなどはいじらないでも sss が追加されている。
もし /etc/passwdや /etc/group にLDAPと衝突する設定があるなら適宜修正しておく。
LDAPユーザがログインしたときに、自動的にホームディレクトリを作成させたいなら、以下のように /etc/pam.d/common-sessionに**追記**しておくといい。
session required pam_mkhomedir.so skel=/etc/skel umask=0022
きちんとLDAPからエントリを読み込んでいるかどうかは、getentなどで確かめればいい。
$ getent passwd
正しく読めていれば、LDAPに設定されているユーザのエントリーが /etc/passwdに加えて表示されるはずである。
==== NSLCD ====
伝統的には、クライアント側では NSLCDを使用することが一般的であった。
=== モジュール ===
=== 設定 ===
基本的には設定はパッケージのpost installation ステップで行われるので、nslcd.confを直接いじる必要はほとんどないと思われるが、何かあればここをいじることになる。
# /etc/nslcd.conf
# nslcd configuration file. See nslcd.conf(5)
# for details.
# The user and group nslcd should run as.
uid nslcd
gid nslcd
# The location at which the LDAP server(s) should be reachable.
uri ldaps://ldap.example.com ldap://192.168.10.1 ldap://192.168.10.2
# The search base that will be used for all queries.
base dc=example,dc=com
# The LDAP protocol version to use.
#ldap_version 3
# The DN to bind with for normal lookups.
#binddn cn=annonymous,dc=example,dc=net
#bindpw secret
# The DN used for password modifications by root.
#rootpwmoddn cn=admin,dc=example,dc=com
# SSL options
#ssl off
#tls_reqcert never
tls_cacertfile /etc/ssl/certs/ca-certificates.crt
# The search scope.
#scope sub
/etc/nsswitch.conf については sssd の場合と同じで、基本的には必要な場所に ldapが追加されているので、特別に何かを追加したいのでなければほっておいて構わない。