0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CentOS Stream9にLDAP(389 Directory Server)を導入する

0
Posted at

LDAPでアカウント管理を検証するためにまずはLDAPサーバを導入してみる。

導入先OSバージョン
$ uname -a
Linux centos9-1 5.14.0-319.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 25 19:53:58 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
389-ds-baseパッケージのインストール
$ sudo dnf install -y 389-ds-base

インスタンス定義の作成

[slapd]セクションでinstance_nameが定義されていない場合、localhostが適用される。インスタンスが作成されオブジェクト検索ができることをテストするためにサンプルも合わせて作成することにする(sample_entries = yes)。

インスタンス定義を作成する
$ tee instance.inf<<EOF
[general]
config_version = 2

[slapd]
root_password = YOUR_ADMIN_PASSWORD_HERE

[backend-userroot]
sample_entries = yes
suffix = dc=example,dc=jp

LDAPインスタンスを作成する

インスタンス作成
$ sudo dscreate from-file instance.inf 
Starting installation ...
Validate installation settings ...
Create file system structures ...
Create self-signed certificate database ...
Perform SELinux labeling ...
Create database backend: dc=example,dc=jp ...
Perform post-installation tasks ...
Completed installation for instance: slapd-localhost

インスタンス起動状態を確認する

Activeがactive (running)にと出力されている事をが確認できた。

サービス状態確認
$ systemctl status dirsrv@localhost
● dirsrv@localhost.service - 389 Directory Server localhost.
     Loaded: loaded (/usr/lib/systemd/system/dirsrv@.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/dirsrv@.service.d
             └─custom.conf
     Active: active (running) since Thu 2023-08-31 04:43:10 JST; 16min ago
    Process: 20384 ExecStartPre=/usr/libexec/dirsrv/ds_systemd_ask_password_acl /etc/dirsrv/slapd-localhost/dse.ldif (code=exited, status=0/SUCCESS)
    Process: 20389 ExecStartPre=/usr/libexec/dirsrv/ds_selinux_restorecon.sh /etc/dirsrv/slapd-localhost/dse.ldif (code=exited, status=0/SUCCESS)
   Main PID: 20394 (ns-slapd)
     Status: "slapd started: Ready to process requests"
      Tasks: 29 (limit: 48922)
     Memory: 130.7M
        CPU: 2.804s
     CGroup: /system.slice/system-dirsrv.slice/dirsrv@localhost.service
             └─20394 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-localhost -i /run/dirsrv/slapd-localhost.pid

オブジェクト検索のテスト

インスタンス作成時に合わせて作成したサンプルオブジェクトが色々と出力されているので導入できたようだ。

サンプルエントリー出力
$ ldapsearch -x -LLL
dn: dc=example,dc=jp
objectClass: top
objectClass: domain
dc: example
description: dc=example,dc=jp

dn: ou=groups,dc=example,dc=jp
objectClass: top
objectClass: organizationalunit
ou: groups

dn: ou=people,dc=example,dc=jp
objectClass: top
objectClass: organizationalunit
ou: people

dn: ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: organizationalunit
ou: permissions

dn: ou=services,dc=example,dc=jp
objectClass: top
objectClass: organizationalunit
ou: services

dn: uid=demo_user,ou=people,dc=example,dc=jp
objectClass: top
objectClass: nsPerson
objectClass: nsAccount
objectClass: nsOrgPerson
objectClass: posixAccount
uid: demo_user
cn: Demo User
displayName: Demo User
legalName: Demo User Name
uidNumber: 99998
gidNumber: 99998
homeDirectory: /var/empty
loginShell: /bin/false

dn: cn=demo_group,ou=Groups,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: posixGroup
objectClass: nsMemberOf
cn: demo_group
gidNumber: 99999

dn: cn=group_admin,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: group_admin

dn: cn=group_modify,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: group_modify

dn: cn=user_admin,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: user_admin

dn: cn=user_modify,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: user_modify

dn: cn=user_passwd_reset,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: user_passwd_reset

dn: cn=user_private_read,ou=permissions,dc=example,dc=jp
objectClass: top
objectClass: groupOfNames
objectClass: nsMemberOf
cn: user_private_read

確認が終わったインスタンスを削除してみる

インスタンス削除
$ sudo dsctl localhost remove --do-it
Removing instance ...
Completed instance removal

削除後のインスタンス起動状態を確認してみる

Activeがinactive (dead)となっているので、インスタンスは停止され削除されているようだ。

サービス状態確認
$ systemctl status dirsrv@localhost
○ dirsrv@localhost.service - 389 Directory Server localhost.
     Loaded: loaded (/usr/lib/systemd/system/dirsrv@.service; disabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/dirsrv@.service.d
             └─custom.conf
     Active: inactive (dead)
$ 

インスタンス名を指定したインスタンス定義を作成してみる
[slapd]セクションにinstance_nameを定義することで任意のインスタンス名を指定できる。

インスタンス名定義
$ tee instance.inf<<EOF
[general]
config_version = 2

[slapd]
instance_name = ldap1instance
root_password = YOUR_ADMIN_PASSWORD_HERE

[backend-userroot]
sample_entries = yes
suffix = dc=example,dc=jp

LDAPインスタンスを再度作成してみる

インスタンス名が「slapd-」とinstance_nameで指定した文字列「ldap1instance」で構成されるようだ。

$ sudo dscreate from-file instance.inf 
Starting installation ...
Validate installation settings ...
Create file system structures ...
Create self-signed certificate database ...
Perform SELinux labeling ...
Create database backend: dc=example,dc=jp ...
Perform post-installation tasks ...
Completed installation for instance: slapd-ldap1instance
$ 

インスタンス起動状態を確認する

Active: active (running)であることを確認できた。

$ systemctl status dirsrv@ldap1instance
● dirsrv@ldap1instance.service - 389 Directory Server ldap1instance.
     Loaded: loaded (/usr/lib/systemd/system/dirsrv@.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/dirsrv@.service.d
             └─custom.conf
     Active: active (running) since Thu 2023-08-31 05:17:26 JST; 53s ago
    Process: 21063 ExecStartPre=/usr/libexec/dirsrv/ds_systemd_ask_password_acl /etc/dirsrv/slapd-ldap1instance/dse.ldif (code=exited, status=0/SUCCESS)
    Process: 21068 ExecStartPre=/usr/libexec/dirsrv/ds_selinux_restorecon.sh /etc/dirsrv/slapd-ldap1instance/dse.ldif (code=exited, status=0/SUCCESS)
   Main PID: 21073 (ns-slapd)
     Status: "slapd started: Ready to process requests"
      Tasks: 29 (limit: 48922)
     Memory: 117.4M
        CPU: 515ms
     CGroup: /system.slice/system-dirsrv.slice/dirsrv@ldap1instance.service
             └─21073 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-ldap1instance -i /run/dirsrv/slapd-ldap1instance.pid
$ 
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?