1
1

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

OpenLDAPの設定ディレクトリ

Posted at

#設定ディレクトリのエントリと役割
OpenLDAPへのサーバーの設定は、設定ディレクトリ(Config Directory)の情報を変更することで行う

エントリのdn 役割
cn=config LDAPサーバ全体の設定を管理するエントリ
cn=schema,cn=config スキーマデータを管理するためのコンテナ
olcDatabase={-1}frontend,cn=config LDAPサーバが扱うデータベースの設定を管理する
olcDatabase={0}config,cn=config 設定ディレクトリへのアクセス権など、設定ディレクトリに関する設定を管理するエントリ
olcDatabese={1}mdb,cn=config データ用ディレクトリの設定を管理するエントリ

・「{0}」のような数値がついて表記されているものがあり、同じ階層のエントリの中で順序に意味がある場合に付けられるプレフィックス

#設定ディレクトリへのアクセス
rootユーザでldapi:///というURLに対してアクセスすることで設定ディレクトリへのアクセスを行う
ldapi:///はUNIXドメインソケットを使ってローカルなLDAPサーバと通信を行うための指定

ldapsearchコマンドで設定を確認する場合の動作例
-Y EXTERNAL LDAP Version 3のSASL認証の機能のうち外部認証(Linuxユーザ認証)を使用する指定
-b 設定ディレクトリのベースDNを指定

# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'cn=config' '(objectClass=*)' dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config

dn: cn=schema,cn=config

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

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

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

dn: olcDatabase={1}mdb,cn=config

SASL/EXTERNAL authentication started LDAPサーバへ接続し、SASL/EXTERNAL認証を行うことを表示
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL認証に使うユーザ名を表示
cn=peercred,cn=external,cn=authは、Linuxユーザでの認証を示す
gidNumber=0+uidNumber=0は、rootユーザのUID、GIDそのもの
SASL SSF: 0 認証が成功したことを示す
dn: cn=config 以降が検索の結果

-Q オプションを使用すると以上の表示を抑制できる

# ldapsearch -LLL -Q -Y EXTERNAL -H ldapi:/// -b 'cn=config' '(objectClass=*)' dn
dn: cn=config

dn: cn=schema,cn=config

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

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

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

dn: olcDatabase={1}mdb,cn=config

##アクセスの簡略化
長いコマンドラインを簡略化する方法

# vi /usr/local/etc/openldap/ldap.conf
+URI     ldapi:///
+SASL_MECH EXTERNAL
+BASE    cn=config

# ldapsearch -Q -LLL '(objectClass=*)' dn
dn: cn=config

dn: cn=schema,cn=config

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

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

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

dn: olcDatabase={1}mdb,cn=config

#設定の確認
ldapsearchコマンドを使用してcn=configのエントリの内容を閲覧する例

# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(cn=config)'
dn: cn=config
objectClass: olcGlobal
cn: config
olcConfigFile: slapd.conf
olcConfigDir: slapd.d
olcArgsFile: /usr/local/var/run/slapd.args
olcAttributeOptions: lang-
olcAuthzPolicy: none
olcConcurrency: 0
olcConnMaxPending: 100
olcConnMaxPendingAuth: 1000
olcGentleHUP: FALSE
olcIdleTimeout: 0
olcIndexSubstrIfMaxLen: 4
olcIndexSubstrIfMinLen: 2
olcIndexSubstrAnyLen: 4
olcIndexSubstrAnyStep: 2
olcIndexHash64: FALSE
olcIndexIntLen: 4
olcListenerThreads: 1
olcLocalSSF: 71
olcLogLevel: 0
olcMaxFilterDepth: 1000
olcPidFile: /usr/local/var/run/slapd.pid
olcReadOnly: FALSE
olcSaslAuxpropsDontUseCopyIgnore: FALSE
olcSaslSecProps: noplain,noanonymous
olcSockbufMaxIncoming: 262143
olcSockbufMaxIncomingAuth: 16777215
olcThreads: 16
olcThreadQueues: 1
olcToolThreads: 1
olcWriteTimeout: 0

#設定の変更
ldapmodifyコマンドを使用する
##ルートDNのパスワードの変更(属性値の変更)
登録状況の確認

# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={1}mdb,cn=config
dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /usr/local/var/openldap-data
olcSuffix: dc=example,dc=com
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcLastBind: TRUE
olcMaxDerefDepth: 15
olcReadOnly: FALSE
olcRootDN: cn=Manager,dc=example,dc=com
olcRootPW: {SSHA}904gvYMd0lwUC9Vtj5FzkG2DnbvRWOg4
olcSyncUseSubentry: FALSE
olcMonitoring: TRUE
olcDbNoSync: FALSE
olcDbIndex: objectClass eq
olcDbMaxReaders: 0
olcDbMaxSize: 1073741824
olcDbMode: 0600
olcDbSearchStack: 16
olcDbMaxEntrySize: 0
olcDbRtxnSize: 10000

olcRootDNという属性の値を変更する

次のLDIFファイルを用意する
※rootpasswd

# cat /usr/local/etc/openldap/ldif/change-rootpw.ldif
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}9c/3/IFFHubW9nkC0ppbZwS38B2+t1g5

LDIFファイルを指定して設定を変更

# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /usr/local/etc/openldap/ldif/change-rootpw.ldif
modifying entry "olcDatabase={1}mdb,cn=config"

変更されたことを確認

#  ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={1}mdb,cn=config |grep olcRootPW
olcRootPW: {SSHA}9c/3/IFFHubW9nkC0ppbZwS38B2+t1g5

ここまで
#参考
・『入門LDAP/OpenLDAP ディレクトリサービス導入・運用ガイド 第3版』

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?