13
7

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 5 years have passed since last update.

openldap 2.4 でldapサーバーを構築する時のtips

Last updated at Posted at 2019-06-30

よく使うコマンド

config確認

$ ldapsearch -L -Y EXTERNAL -H ldapi:/// -b cn=config dn

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
version: 1

#
# LDAPv3
# base <cn=config> with scope subtree
# filter: (objectclass=*)
# requesting: dn
#

# config
dn: cn=config

# schema, config
dn: cn=schema,cn=config

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

# {-1}frontend, config
dn: olcDatabase={-1}frontend,cn=config

# {0}config, config
dn: olcDatabase={0}config,cn=config

# {1}monitor, config
dn: olcDatabase={1}monitor,cn=config

# {2}hdb, config
dn: olcDatabase={2}hdb,cn=config

# search result

# numResponses: 8
# numEntries: 7

データベースの確認

olcDatabase={2}hdb,cn=config の部分は、サーバーによって違うかもしれないので、configで確認する。

# 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
dn: olcDatabase={2}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
olcSuffix: dc=hogehoge,dc=or,dc=jp
olcRootDN: cn=Manager,dc=hogehoge,dc=or,dc=jp
olcRootPW: {SSHA}-----------------------

登録データの確認

# ldapsearch -H ldapi:/// -b 'ou=****, dc=***, dc=***'

全体の管理

ldifを実行する時には、ldapadd -f /path/to/file.ldif が基本。
ldapサーバー上のrootアカウントで作業をする時は、-Y EXTERNAL オプションをつけてパスワード入力をスキップできる。
-H ldapi:///だと、ローカルサーバに対して操作。
$ ldapadd -Y EXTERNAL -H ldapi:/// -f /path/tofile.ldif
のように実行できる。

ldapサーバー(全体)の管理者のパスワードを変更する

{SSHA}abcdefgabcdefgabcdefg は slappasswd コマンドで用意しておく。

hogehoge.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}abcdefgabcdefgabcdefgabcdefgabcdefg

ベースDNを変更する

configで確認した {2}hdb に設定する場合。

hogehoge.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=hogehoge,dc=or,dc=jp

データベース管理者のDNを変更する

`cn=Manager,dc=hogehoge,dc=or,dc=jp'にする場合。

hogehoge.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=hogehoge,dc=or,dc=jp

データベース管理者のパスワードを変更する

{SSHA}abcdefgabcdefgabcdefg は slappasswd コマンドで用意しておく。

hogehoge.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}abcdefgabcdefgabcdefg

データベースの管理

これは、データベース管理者の権限で実行する必要があるので、-D "cn=Manager,dc=hogehogee,dc=or,dc=jp" -W をつけてldapaddを実行する。
(ダブルクオートの中は、データベース管理者のDN)

# ldapadd -H ldapi:/// -D "cn=Manager,dc=hogehoge,dc=or,dc=jp" -W -f /path/to/hogehoge.ldif

トップ組織を作成する

hogehoge.ldif
dn: dc=hogehoge,dc=or,dc=jp
objectClass: dcObject
objectClass: organization
dc: hogehoge
o: 組織名

ユニットを作成する

peopleというユニットを作成する場合。

hogehoge.ldif
dn: ou=people,dc=hogehoge,dc=or,dc=jp
objectClass: organizationalUnit
ou: people

スキーマの管理

使えるスキーマの一覧

dnを指定してdnのみ表示させると見やすい。

# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
(snip)
dn: cn=schema,cn=config

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

スキーマファイルからldifへの変換

参考 : OpenLDAP Server 日本語訳

管理のためには、/etc/openldap/schema/ ディレクトリの中に、.schemaと.ldifを保存しておくのが良いと思われる。

スキーマの追加

ldapadd -H ldapi:/// -Y EXTERNAL -f /etc/openldap/schema/SOMETYPE.ldif

.schemaから.ldifに変換する時に必要だったldifファイルも追加しておくこと。
(例えば、inetOrgPersonを継承したクラスだったら、あらかじめinetOrgPersonスキーマを追加しておく。inetOrgPersonスキーマを追加するには、あらかじめcosineスキーマを追加しておく。)

ユーザーデータの管理

ldifファイルを使ってユーザーの追加

データベース管理者の権限で実行する

# ldapadd -H ldapi:/// -D "cn=Manager,dc=hogehoge,dc=or,dc=jp" -W -f /path/to/file.ldif

CentOS 7.6 にインストールする方法

# yum install openldap openldap-servers openldap-clients

# systemctl start slapd

# systemctl enable slapd
13
7
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
13
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?