見出し画像

Appendix (準備)OpenLDAPをパッケージからインストールする:CentOS7


LinuC300の試験範囲は OpenLDAP と Samba ですが、OpenLDAPについては どのバージョンが対象なのかは不明なのでパッケージからインストールできるものを使います。
LinuC300の前身にあたるLPIC300 v1.0が2013年8月にリリースされていることから、OSはCentOS6.xの前半、OpenLDAPは2.4系がターゲットになっているのではないかと推測します。

この記事ではCentOS7にOpenLDAPをインストールする方法についてご紹介します。
本来ならばCentOS6にOpenLDAPをインストールする方法をご紹介したいところですが、学習環境に使っているLXDコンテナ基盤でCentOS6のコンテナが作れないので、あしからず…

環境

  • OS:CentOS 7.9.2009

  • OpenLDAP:OpenLDAP2.4.44

パッケージを検索してみる

本記事の執筆時点でCentOS7の標準リポジトリからはOpenLDAP2.6.2がインストールできるが、opelndap-serversがインストールできないためEPELリポジトリを追加してインストールする。

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
repo id                                            repo name                                            status
base/7/x86_64                                      CentOS-7 - Base                                      10072
extras/7/x86_64                                    CentOS-7 - Extras                                      518
updates/7/x86_64                                   CentOS-7 - Updates                                    5287
repolist: 15877
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# yum search openldap
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
=========================================== N/S matched: openldap ============================================
compat-openldap.i686 : OpenLDAP compatibility shared libraries
compat-openldap.x86_64 : OpenLDAP compatibility shared libraries
openldap-servers-sql.x86_64 : SQL support module for OpenLDAP server
openldap.i686 : LDAP support libraries
openldap.x86_64 : LDAP support libraries
openldap-clients.x86_64 : LDAP client utilities
openldap-devel.i686 : LDAP development libraries and header files
openldap-devel.x86_64 : LDAP development libraries and header files
openldap-servers.x86_64 : LDAP server
perl-Mozilla-LDAP.x86_64 : LDAP Perl module that wraps the OpenLDAP C SDK

  Name and summary matches only, use "search all" for everything.
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# yum info info openldap
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Available Packages
Name        : openldap
Arch        : i686
Version     : 2.4.44
Release     : 25.el7_9
Size        : 355 k
Repo        : updates/7/x86_64
Summary     : LDAP support libraries
URL         : http://www.openldap.org/
License     : OpenLDAP
Description : OpenLDAP is an open source suite of LDAP (Lightweight Directory Access
            : Protocol) applications and development tools. LDAP is a set of
            : protocols for accessing directory services (usually phone book style
            : information, but other information is possible) over the Internet,
            : similar to the way DNS (Domain Name System) information is propagated
            : over the Internet. The openldap package contains configuration files,
            : libraries, and documentation for OpenLDAP.

[root@centos7-ldap28  ~]#
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# yum info info openldap-servers
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Available Packages
Name        : openldap-servers
Arch        : x86_64
Version     : 2.4.44
Release     : 25.el7_9
Size        : 2.2 M
Repo        : updates/7/x86_64
Summary     : LDAP server
URL         : http://www.openldap.org/
License     : OpenLDAP
Description : OpenLDAP is an open-source suite of LDAP (Lightweight Directory Access
            : Protocol) applications and development tools. LDAP is a set of
            : protocols for accessing directory services (usually phone book style
            : information, but other information is possible) over the Internet,
            : similar to the way DNS (Domain Name System) information is propagated
            : over the Internet. This package contains the slapd server and related files.

[root@centos7-ldap28 ~]#

OpenLDAPをインストールする

とりあえずopenldap、openldap-servers、openldap-clientをインストールして、そのほか必要になったら都度インストールすることにします。

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# yum install -y openldap openldap-servers openldap-clients
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# rpm -qa | grep openldap
openldap-servers-2.4.44-25.el7_9.x86_64
openldap-2.4.44-25.el7_9.x86_64
openldap-clients-2.4.44-25.el7_9.x86_64
[root@centos7-ldap28 ~]#
[root@centos7-ldap28  ~]#
[root@centos7-ldap28 ~]# slapd -V
@(#) $OpenLDAP: slapd 2.4.44 (Feb 23 2022 17:11:27) $
        mockbuild@x86-01.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd

[root@centos7-ldap28 ~]#

OpenLDAPを起動する

DB_CONFIGをコピーする

DB_CONFIGはOpenLDAPのバックエンドデータベースがbdbまたはhdbのときに使われる設定ファイル。
本記事のOpenLDAP2.4はhdbを使っているので必要になる。

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@centos7-ldap28 ~]#

slapdを起動させる

初回起動時はエラーになって起動しない。
これはLDAPのデータベースの所有者と所有グループがldapになっていないためで、所有者と所有グループをchownコマンドで変更してから再度slapdを起動すると良い。
起動できたらTCPの ldap:389 が確認できる。

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl start slapd
Job for slapd.service failed because the control process exited with error code. See "systemctl status slapd.service" and "journalctl -xe" for details.
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# ls -ld /var/lib/ldap/
drwx------ 2 ldap ldap 9 Oct  6 05:37 /var/lib/ldap/
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# ls -l /var/lib/ldap/
total 20
-rw------- 1 root root   286720 Oct  6 05:37 __db.001
-rw------- 1 root root    32768 Oct  6 05:37 __db.002
-rw------- 1 root root    93592 Oct  6 05:37 __db.003
-rw-r--r-- 1 root root     2048 Oct  6 05:37 alock
-rw------- 1 root root    32768 Oct  6 05:36 dn2id.bdb
-rw------- 1 root root    32768 Oct  6 05:36 id2entry.bdb
-rw------- 1 root root 10485760 Oct  6 05:37 log.0000000001
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# chown -R ldap:ldap /var/lib/ldap/
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# ls -l /var/lib/ldap/
total 20
-rw------- 1 ldap ldap   286720 Oct  6 05:37 __db.001
-rw------- 1 ldap ldap    32768 Oct  6 05:37 __db.002
-rw------- 1 ldap ldap    93592 Oct  6 05:37 __db.003
-rw-r--r-- 1 ldap ldap     2048 Oct  6 05:37 alock
-rw------- 1 ldap ldap    32768 Oct  6 05:36 dn2id.bdb
-rw------- 1 ldap ldap    32768 Oct  6 05:36 id2entry.bdb
-rw------- 1 ldap ldap 10485760 Oct  6 05:37 log.0000000001
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl start slapd
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# ss -antl
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port     
LISTEN     0      1024         *:389                      *:*
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# lsof -i:389
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
slapd   1533 ldap    8u  IPv4  31668      0t0  TCP *:ldap (LISTEN)
[root@centos7-ldap28 ~]#

サービスの状態を確認する

slapdの状態を確認する

[root@centos7-ldap28  ~]#
[root@centos7-ldap28 ~]# systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
  Drop-In: /run/systemd/system/slapd.service.d
           mqzzz-lxc-service.conf
   Active: active (running) since Fri 2023-10-06 05:42:30 UTC; 8s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
  Process: 1532 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=0/SUCCESS)
  Process: 1504 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
 Main PID: 1533 (slapd)
   CGroup: /system.slice/slapd.service
           mq1533 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

Oct 06 05:42:29 centos7-ldap28 runuser[1528]: pam_unix(runuser:session): session...)
Oct 06 05:42:29 centos7-ldap28 runuser[1528]: pam_unix(runuser:session): session...p
Oct 06 05:42:29 centos7-ldap28 runuser[1530]: pam_unix(runuser:session): session...)
Oct 06 05:42:29 centos7-ldap28 runuser[1530]: pam_unix(runuser:session): session...p
Oct 06 05:42:29 centos7-ldap28 slapd[1532]: @(#) $OpenLDAP: slapd 2.4.44 (Feb 23...$
                                                mockbuild@x86-01.bsys.centos...d
Oct 06 05:42:29 centos7-ldap28 slapd[1532]: daemon: IPv6 socket() failed errno=9...)
Oct 06 05:42:30 centos7-ldap28 slapd[1533]: hdb_db_open: database "dc=my-domain,....
Oct 06 05:42:30 centos7-ldap28 slapd[1533]: hdb_db_open: warning - no DB_CONFIG ....
                                        Expect poor performance for suffix "....
Oct 06 05:42:30 centos7-ldap28 slapd[1533]: slapd starting
Oct 06 05:42:30 centos7-ldap28 systemd[1]: Started OpenLDAP Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos7-ldap28 ~]#

サービスを停止する

slapdを停止する

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl stop slapd
[root@centos7-ldap28 ~]#

サービスを再起動する

slapdを再起動する

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl restart slapd
[root@centos7-ldap28 ~]#

サービスの自動起動を有効化する

slapdの自動起動を有効化する

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl is-enabled slapd
enabled
[root@centos7-ldap28 ~]#

サービスの自動起動を無効化する

slapdの自動起動を無効化する

[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl disable slapd
Removed symlink /etc/systemd/system/multi-user.target.wants/slapd.service.
[root@centos7-ldap28 ~]#
[root@centos7-ldap28 ~]# systemctl is-enabled slapd
disabled
[root@centos7-ldap28 ~]#

(補足)OpenLDAPのバーション

OpenLDAP, Release Road Map
https://www.openldap.org/software/roadmap.html

  • OpenLDAP 3.0 (TBD):Future Major Releases

  • OpenLDAP 2.7 (Fall 2023):Future Minor Releases

  • OpenLDAP 2.6 (Released October 2021):Feature Release

  • OpenLDAP 2.5 (released April 2021):Long Term Support Release

  • OpenLDAP 2.4 (released October 2007)

  • OpenLDAP 2.3 (released June 2005)

  • OpenLDAP 2.2 (released December 2003)

  • OpenLDAP 2.1 (released June 2002)

  • OpenLDAP 2.0 (released August 2000):LDAPv3対応

  • OpenLDAP 1.2 (released February 1999)

  • OpenLDAP 1.1 (released December 1998)

  • OpenLDAP 1.0 (released August 1998)

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