セッションレプリケーションを使用してUbuntuでマスタースレーブLDAPサーバーを構成するにはどうすればよいですか。
たとえば、Ifおよびldapクライアントがマスターサーバーでパスワードを変更した場合。新しいパスワードをスレーブサーバーに自動的に同期させたい
Ldapのマスタースレーブは、プロバイダーとコンシューマーの名前を使用します。使用しているLDAPサーバーを指定しないので、openLDAPについて話していると思います。
古いopenLDAP設定では、confファイルに保存されていました。現在、すべての設定はldapサーバー自体に保存されています。そのため、これらのファイルを作成することから始めるために、構成を作成してldapサーバーに注入する必要があります。この指示により、すべてのエントリがスレーブサーバーに自動的に複製されます。
会社名がacmeで、ドメインがcomであるとします。現在のLDAPサーバーの管理者がcn = admin、dc = acme、dc = comにあること
最初すべてのldapエントリを読み取り、コンシューマサーバーに複製できるldapユーザーを作成する必要があります。
作成ファイル「create_repl_user.ldif」
dn: cn=ldaps2,dc=acme,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: ldaps2
description: LDAP server2 replicator
Secondマスターldapサーバーでプロバイダーサービスを有効にし、ユーザーldaps2にldapサーバー全体への読み取りアクセス権を付与する必要があります。
ファイル「enable_sync_prov.ldif」を作成します
dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=acme,dc=com write
by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
by self write
by dn="cn=admin,dc=acme,dc=com" write
by dn="cn=ldaps2,dc=acme,dc=com" read
by anonymous auth
by * none
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: entryCSN eq
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: {1}syncprov
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 10
olcSpSessionlog: 100
Third:指定されたサーバーからLDAPコンシューマーへの複製を有効にする必要があります。ファイルenable_sync_consumer.ldifを作成し、行provider = "ldap://yourldapservername.com:389 /"をマスターldapサーバーのIPに置き換えます。 credentials = yourencryptedldap2spassword、ldap2sユーザー用に決定したパスワードを使用します。
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
dn: olcDatabase={1}hdb,cn=config
changetype: modify
delete: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by dn="cn=admin,dc=acme,dc=com" write
by * none
-
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange
by anonymous auth
by * none
-
delete: olcAccess
olcAccess: {2}to *
by self write
by dn="cn=admin,dc=acme,dc=com" write
by * read
-
add: olcAccess
olcAccess: {2}to *
by * read
-
replace: olcRootDN
olcRootDN: cn=manager
-
delete: olcRootPW
-
add: olcDbIndex
olcDbIndex: entryCSN eq
-
add: olcDbIndex
olcDbIndex: entryUUID eq
-
add: olcDbIndex
olcDbIndex: uid eq
-
add: olcDbIndex
olcDbIndex: cn eq
-
add: olcDbIndex
olcDbIndex: ou eq
-
add: olcDbIndex
olcDbIndex: dc eq
add: olcSyncrepl
olcSyncrepl: rid=123
provider="ldap://yourldapservername.com:389/"
type=refreshAndPersist
retry="60 30 300 +"
searchbase="dc=acme,dc=com"
bindmethod=simple
binddn="cn=ldaps2,dc=acme,dc=com"
credentials=yourencryptedldap2spassword
構成ファイルを作成したので、それらをプロバイダーおよびコンシューマサーバーにインジェクトする必要があります
プロバイダーサーバーでレプリケーションユーザーを作成します。
run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f create_repl_user.ldif
プロバイダーサービスを有効にします。
run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f enable_sync_prov.ldif
コンシューマサーバーでコンシューマ同期設定を追加します。
run ldapadd -x -W -D cn=admin,dc=acme,dc=com -f enable_sync_consumer.ldif
すばらしい記事であり、私を大いに助けてくれました。しかし、ldifにはいくつかのエラーがあります。注意してください:enable_sync_prov.ldif
dn = "cn = admin、dc = acme、dc = ncom書き込み
あるべき
by dn = "cn = admin、dc = acme、dc = com"書き込み
次に、ldapadd/ldapmodifyは、cn = admin、dc = acme、dc = comではなく、ツリーのcn = admin、cn = config部分で実行する必要があります。