見出し画像

Appendix OpenLDAPの設定 slapd-config


OpenLDAPの設定方法

~slapd.confを編集する~
slapd.confを編集してslapdサービスを再起動する。
この方法はOpenLDAP2.3から非推奨となっている。

~slapd-configを使う~
OpenLDAP2.3からサポートされた方法。
slapd(OpenLDAPサーバー)を再起動することなく設定が動的に反映される。
slapdの設定ファイルは/etc/openldap/slapd.d以下にテキストファイルで格納されているが、これを直接編集することはできずLDIFファイルを作成しldapadd、ldapdelete、ldapmodifyコマンドを使って設定する。

[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# ls -la /etc/openldap/slapd.d
合計 5
drwxr-x--- 3 ldap ldap   4  526 22:57  .
drwxr-xr-x 5 root root   7  526 22:57  ..
drwxr-x--- 3 ldap ldap   8  526 22:57 'cn=config'
-rw------- 1 ldap ldap 366  526 22:57 'cn=config.ldif'
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# tree /etc/openldap/slapd.d
/etc/openldap/slapd.d
├─ cn=config
│  ├─ cn=schema
│  │  └─ cn={0}core.ldif
│  ├─ cn=schema.ldif
│  ├─ olcDatabase={-1}frontend.ldif
│  ├─ olcDatabase={0}config.ldif
│  ├─ olcDatabase={1}monitor.ldif
│  └─ olcDatabase={2}mdb.ldif
└─ cn=config.ldif

2 directories, 7 files
[root@rocky9-ldap21 ~]#

初期設定

以下の操作例ではslapd-configを使った設定方法をご紹介します。
設定を記述したLDIFファイルの保存場所は任意ですが、以下操作例では/etc/openldapに保存をすることにします。

[root@rocky9-ldap21 ~]#
[root@rocky9-ldap21 ~]# cd /etc/openldap/
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# pwd
/etc/openldap
[root@rocky9-ldap21 openldap]#

★ 初期設定前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -la
合計 12
drwxr-xr-x  5 root root   7  910 23:41 .
drwxr-xr-x 65 root root 149  910 23:41 ..
drwxr-xr-x  2 root root   2 111  2022 certs
-rw-r--r--  1 root root 121  921  2022 check_password.conf
-rw-r--r--  1 root root 900 111  2022 ldap.conf
drwxr-xr-x  2 root root  32  910 23:41 schema
drwxr-x---  3 ldap ldap   4  921  2022 slapd.d
[root@rocky9-ldap21 openldap]#

★ 初期設定後(setup-*.ldifが追加されている) ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -la
合計 17
drwxr-xr-x  5 root root  12  911 01:42 .
drwxr-xr-x 65 root root 150  911 00:17 ..
drwxr-xr-x  2 root root   2 111  2022 certs
-rw-r--r--  1 root root 121  921  2022 check_password.conf
-rw-r--r--  1 root root 900 111  2022 ldap.conf
drwxr-xr-x  2 root root  32  910 23:41 schema
-rw-r--r--  1 root root 452  911 01:42 setup-adduser-user00.ldif
-rw-r--r--  1 root root 678  911 01:07 setup-domain-mdb.ldif
-rw-r--r--  1 root root 237  911 01:03 setup-domain-monitor.ldif
-rw-r--r--  1 root root 395  911 01:33 setup-domaintree.ldif
-rw-r--r--  1 root root 120  910 23:56 setup-rootpw.ldif
drwxr-x---  3 ldap ldap   4  921  2022 slapd.d
[root@rocky9-ldap21 openldap]#

管理者パスワードの設定

管理者パスワードを設定するにはslappasswdコマンドで暗号化されたパスワードを生成します。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP
[root@rocky9-ldap21 openldap]#

LDIFファイルを作成します。
olcRootPW: にslappasswdコマンドで生成したパスワードを設定します。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-rootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP  <---★slappasswdで生成したパスワード
[root@rocky9-ldap21 openldap]#

ldapmodifyコマンドで設定変更をします。
ldapsearchコマンドで変更前後の確認ができる。

★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={0}config,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" manage by * none

[root@rocky9-ldap21 openldap]#


★ ldapmodifyコマンドで設定変更 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-rootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"

[root@rocky9-ldap21 openldap]#

★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={0}config,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" manage by * none
olcRootPW: {SSHA}ufMho5BOMGg2AL4bzuVCGm3iN1/RvsVP  <---★追加された

[root@rocky9-ldap21 openldap]#

スキーマを追加する

スキーマとは、OpenLDAPで管理できる項目を事前に定義したもの。
用途に応じてスキーマを追加することでOpenLDAPで管理できる情報を拡張することができる。
OpenLDAPのパッケージをインストールすると/etc/openldap/schemaディレクトリに格納されているが、オリジナルのスキーマを作成して拡張することもできる。
ユーザー名、パスワード、メールアドレスなどの一般的なユーザー情報であればcosine、inetorgperson、nisで対応可能。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ls -l /etc/openldap/schema/
合計 169
-r--r--r-- 1 root root   2036  54  2022 collective.ldif
-r--r--r-- 1 root root   6191  54  2022 collective.schema
-r--r--r-- 1 root root   1845  54  2022 corba.ldif
-r--r--r-- 1 root root   8063  54  2022 corba.schema
-r--r--r-- 1 root root  20619  54  2022 core.ldif
-r--r--r-- 1 root root  20506  54  2022 core.schema
-r--r--r-- 1 root root  12006  54  2022 cosine.ldif
-r--r--r-- 1 root root  73995  54  2022 cosine.schema
-r--r--r-- 1 root root   3594  54  2022 dsee.ldif
-r--r--r-- 1 root root   3374  54  2022 dsee.schema
-r--r--r-- 1 root root   4842  54  2022 duaconf.ldif
-r--r--r-- 1 root root  10389  54  2022 duaconf.schema
-r--r--r-- 1 root root   3500  54  2022 dyngroup.ldif
-r--r--r-- 1 root root   3523  54  2022 dyngroup.schema
-r--r--r-- 1 root root   3481  54  2022 inetorgperson.ldif
-r--r--r-- 1 root root   6267  54  2022 inetorgperson.schema
-r--r--r-- 1 root root   2979  54  2022 java.ldif
-r--r--r-- 1 root root  13901  54  2022 java.schema
-r--r--r-- 1 root root   2082  54  2022 misc.ldif
-r--r--r-- 1 root root   2387  54  2022 misc.schema
-r--r--r-- 1 root root 121865  54  2022 msuser.ldif
-r--r--r-- 1 root root 113752  54  2022 msuser.schema
-r--r--r-- 1 root root   1218  54  2022 namedobject.ldif
-r--r--r-- 1 root root   1574  54  2022 namedobject.schema
-r--r--r-- 1 root root   6809  54  2022 nis.ldif
-r--r--r-- 1 root root   7640  54  2022 nis.schema
-r--r--r-- 1 root root   3308  54  2022 openldap.ldif
-r--r--r-- 1 root root   1514  54  2022 openldap.schema
-r--r--r-- 1 root root   6904  54  2022 pmi.ldif
-r--r--r-- 1 root root  20467  54  2022 pmi.schema
[root@rocky9-ldap21 openldap]#

ldapaddコマンドでスキーマの追加が可能。
どのスキーマが使われているかはldapsearchコマンドで確認できる。

★ スキーマ追加前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=schema,cn=config" dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

[root@rocky9-ldap21 openldap]#

★ ldapmodifyコマンドでスキーマを追加する ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"

[root@rocky9-ldap21 openldap]#

★ スキーマ追加後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "cn=schema,cn=config" dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config  <---★追加された

dn: cn={2}inetorgperson,cn=schema,cn=config  <---★追加された

dn: cn={3}nis,cn=schema,cn=config  <---★追加された

[root@rocky9-ldap21 openldap]#

ドメインを定義する

OpenLDAPで管理するドメインを定義する。
以下の操作では、ドメインは example.co.jp、ドメイン管理者のユーザー名はManagerとしている。
なお、LDAPではexample.co.jpというドメインをdc=example,dc=co,dc=jpと表記する。
また、ドメイン管理者のManagerはcn=Manager,dc=example,dc=co,dc=jpと表記する。

まず、ドメイン管理者のパスワードをslappasswdコマンドで生成する。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph
[root@rocky9-ldap21 openldap]#

LDIFファイルを作成します。
olcRootPW: にslappasswdコマンドで生成したパスワードを設定します。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domain-monitor.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to *
  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
  by dn.base="cn=Manager,dc=example,dc=co,dc=jp" read
  by * none

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domain-mdb.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=co,dc=jp

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=co,dc=jp

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph  <---★slappasswdで生成したパスワード

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
  by dn="cn=Manager,dc=example,dc=co,dc=jp" write
  by anonymous auth
  by self write
  by * none
olcAccess: {1}to dn.base=""
  by * read
olcAccess: {2}to *
  by dn="cn=Manager,dc=example,dc=co,dc=jp" write
  by * read

[root@rocky9-ldap21 openldap]#

ldapmodifyコマンドで設定変更をします。

★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}monitor,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={2}hdb,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
No such object (32)
Matched DN: cn=config
[root@rocky9-ldap21 openldap]#

★ ldapmodifyコマンドでドメインを設定する ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-domain-monitor.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapmodify -Y EXTERNAL -H ldapi:/// -f setup-domain-mdb.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}mdb,cn=config"

modifying entry "olcDatabase={2}mdb,cn=config"

modifying entry "olcDatabase={2}mdb,cn=config"

modifying entry "olcDatabase={2}mdb,cn=config"

[root@rocky9-ldap21 openldap]#


★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={1}monitor,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={1}monitor,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {1}monitor
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external
 ,cn=auth" read by dn.base="cn=Manager,dc=example,dc=co,dc=jp" read by * none

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={2}mdb,cn=config"
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: olcDatabase={2}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {2}mdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcSuffix: dc=example,dc=co,dc=jp
olcRootDN: cn=Manager,dc=example,dc=co,dc=jp
olcRootPW: {SSHA}QBGJJEMP1rLuEqNTeoNH5oRINY+Nysph
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=exam
 ple,dc=co,dc=jp" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to *  by dn="cn=Manager,dc=example,dc=co,dc=jp" write by * read

[root@rocky9-ldap21 openldap]#

初期データの投入

ここからはslapd.confと同じ

ドメインツリーを定義する

管理するドメインの情報を格納するツリー構造を定義する。
以下の操作例ではユーザー情報をou=Users,dc=example,dc=co,dc=jpに、グループ情報をou=Groups,dc=example,dc=co,dc=jpに格納するように 定義している。

LDIFファイルを作成します。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-domaintree.ldif
dn: dc=example,dc=co,dc=jp
objectClass: top
objectClass: dcObject
objectclass: organization
o: example.co.jp
dc: example

dn: cn=Manager,dc=example,dc=co,dc=jp
objectClass: organizationalRole
cn: Manager
description: OpenLDAP Manager

dn: ou=Users,dc=example,dc=co,dc=jp
objectClass: organizationalUnit
ou: Users

dn: ou=Groups,dc=example,dc=co,dc=jp
objectClass: organizationalUnit
ou: Groups
[root@rocky9-ldap21 openldap]#

ldapaddコマンドで設定追加をします。

★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" ou
No such object (32)
[root@rocky9-ldap21 openldap]#


★ ldapaddコマンドでドメインツリーを定義 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -f setup-domaintree.ldif
Enter LDAP Password: ********
adding new entry "dc=example,dc=co,dc=jp"

adding new entry "cn=Manager,dc=example,dc=co,dc=jp"

adding new entry "ou=Users,dc=example,dc=co,dc=jp"

adding new entry "ou=Groups,dc=example,dc=co,dc=jp"

[root@rocky9-ldap21 openldap]#


★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -b "dc=example,dc=co,dc=jp" ou
dn: dc=example,dc=co,dc=jp

dn: cn=Manager,dc=example,dc=co,dc=jp

dn: ou=Users,dc=example,dc=co,dc=jp
ou: Users

dn: ou=Groups,dc=example,dc=co,dc=jp
ou: Groups

[root@rocky9-ldap21 openldap]#

ユーザーを追加する

ドメイン管理者の定義、ドメインの定義、ドメインツリーの定義が完了したのでユーザーを追加してみる。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# slappasswd
New password: ********
Re-enter new password: ********
{SSHA}eLOuc3SirH8ip2GPLtLIhQtkDtAR3AlG
[root@rocky9-ldap21 openldap]#

LDIFファイルを作成します。

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# vi setup-adduser-user00.ldif
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword: {SSHA}eLOuc3SirH8ip2GPLtLIhQtkDtAR3AlG
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

dn: cn=user00,ou=Groups,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: user00
gidNumber: 1000
memberUid: user00
[root@rocky9-ldap21 openldap]#

ldapaddでユーザーを追加します。

★ 変更前 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" uid=user00
Enter LDAP Password: ********
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" cn=user00
Enter LDAP Password: ********
[root@rocky9-ldap21 openldap]#

★ ldapaddコマンドでユーザーを追加 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapadd -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -f setup-adduser-user00.ldif
Enter LDAP Password: ********
adding new entry "uid=user00,ou=Users,dc=example,dc=co,dc=jp"

adding new entry "cn=user00,ou=Groups,dc=example,dc=co,dc=jp"

[root@rocky9-ldap21 openldap]#

★ 変更後 ★
[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" uidNumber=1000
Enter LDAP Password: ********
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword:: e1NTSEF9ZUxPdWMzU2lySDhpcDJHUEx0TEloUXRrRHRBUjNBbEc=
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
uid: user00

[root@rocky9-ldap21 openldap]#
[root@rocky9-ldap21 openldap]# ldapsearch -LLL -x -W -D "cn=Manager,dc=example,dc=co,dc=jp" -b "dc=example,dc=co,dc=jp" gidNumber=1000
Enter LDAP Password: ********
dn: uid=user00,ou=Users,dc=example,dc=co,dc=jp
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: user00
sn: example
userPassword:: e1NTSEF9ZUxPdWMzU2lySDhpcDJHUEx0TEloUXRrRHRBUjNBbEc=
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/user00
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
uid: user00

dn: cn=user00,ou=Groups,dc=example,dc=co,dc=jp
objectClass: posixGroup
cn: user00
gidNumber: 1000
memberUid: user00

[root@rocky9-ldap21 openldap]#

補足(1) ldapコマンド

ldapadd、ldapmodify、ldapsearchコマンドのオプションについて

~ldapadd、ldapmodify~

  • -Y EXTERNAL
    EXTERNALメカニズムでSASLバインド(セキュアな接続)を試みる。

  • -x
    SASLの代わりに簡易認証を使う。

  • -W
    -xオプションで簡易認証を使用する際にパスワード入力を求める。

  • -w
    -xオプションで簡易認証を使用する際にコマンドのオプションとしてパスワードを指定する。

  • -H
    バインドするサーバーを指定する。
    ローカルホストの場合:ldapi:///
    リモートホストの場合:ldap://ip.add.re.ss:port/

  • -D
    バインド(接続)するDN(Distinguished Name:識別名)を指定する。

  • -f
    読み込むLDIFファイルを指定する。

~ldapsearch~

  • -LLL
    コマンド結果の出力にLDIFバージョンなどのヘッダ情報を表示させない。

  • -Y EXTERNAL
    EXTERNALメカニズムでSASLバインド(セキュアな接続)を試みる。

  • -x
    SASLの代わりに簡易認証を使う。

  • -W
    -xオプションで簡易認証を使用する際にパスワード入力を求める。

  • -w
    -xオプションで簡易認証を使用する際にコマンドのオプションとしてパスワードを指定する。

  • -H
    バインドするサーバーを指定する。
    ローカルホストの場合:ldapi:///
    リモートホストの場合:ldap://ip.add.re.ss:port/

  • -D
    バインド(接続)するDNを指定する。

  • -b
    検索の起点となるDNを指定する。

  • フィルタ
    検索対象を絞り込むフィルタを指定する。


補足(2) DB_CONFIG

CentOS7ではOpenLDAPのデータベースにhdbを使っているためチューニングするためのDB_CONFIGファイルがないと起動時にエラーになるが、Rocky9のOpenLDAP2.6ではデータベースにチューニング不要のmdbが使われているためDB_CONFIGファイルがなくても問題なく起動できる。

★ CentOS7の場合 ★
[root@centos7 ~]#
[root@centos7 ~]# cp -p /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@centos7 ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@centos7 ~]#

または

[root@centos7 ~]#
[root@centos7 ~]# touch /var/lib/ldap/DB_CONFIG
[root@centos7 ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@centos7 ~]#


この記事が気に入ったらサポートをしてみませんか?