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)
この記事が気に入ったらサポートをしてみませんか?