Назад | Перейти на главную страницу

Репликация openldap на centos 7 не реплицируется

Я установил простой сервер openldap минимум на centos 7. Добавлена ​​пара пользователей и настроен клиент, который может получать пользователей с помощью getentpasswd, и ldapsearch отлично работает между ними. Затем я попытался настроить простой репликатор (потребитель). На данном этапе нет TLS, стараюсь сделать его максимально простым. Для моего syncprov на провайдере у меня есть внутри файла /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb/olcOverlay={0}syncprov.ldif:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 80120f94
dn: olcOverlay={0}syncprov
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpSessionlog: 100
structuralObjectClass: olcSyncProvConfig
entryUUID: ba668464-d734-1035-9bf8-97aa47bee689
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20160705194510Z
entryCSN: 20160705194510.621665Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20160705194510Z

Затем я настраиваю новый сервер с именем simple-replicator.example.com с тем же base.ldif, что и мой провайдер, но не создавал пользователей. Я читал, что сначала нужно настроить как клиент, а затем установить сервер ldap, поэтому я тоже это сделал. внутри файла /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ld, если у меня есть:

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 3f0c6b1c
dn: olcDatabase={2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 0f0af22a-d73a-1035-87b2-ddfb498f969e
creatorsName: cn=config
createTimestamp: 20160705202320Z
olcSuffix: dc=example,dc=com
olcRootDN: cn=Manager,dc=example,dc=com
olcRootPW:: e1NTSEF9YVdkdGFid0dteVhqRVNTY0hGUVVTL3JYOW1xYTMyeE0=
olcSyncrepl: {0}rid=001 provider=ldap://simple-provider.example.com:389/ bindmethod=simple bin
 ddn="cn=Manager,dc=example,dc=com" credentials={SSHA}UJzXEfBudfu5U6IGzFlea0
 TjKUvxBtc/ searchbase="dc=example,dc=com" scope=sub schemachecking=on type=
 refreshAndPersist retry="1 3 10 3" interval=00:00:01:00
entryCSN: 20160705205808.847049Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20160705205808Z

Мой провайдер называется simple-provider.example.com, а мой сервер репликатора - simple-replicator.example.com.

Но моя команда ldapsearch -x -b 'ou = People, dc = example, dc = com' ничего не возвращает. Провайдер не отправил данные в репликатор. Что я делаю не так? Предполагается, что это будет сделано через 1 минуту в зависимости от interval = 00: 00: 01: 00 Заранее спасибо.

Ваши учетные данные, скорее всего, неверны, если только {SSHA}UJzXEfBudfu5U6IGzFlea0 TjKUvxBtc/ буквально текстовый пароль для cn=Manager,dc=example,dc=com.

Примечание:

  • Вам действительно стоит использовать TLS.
  • Не выполняйте репликацию с помощью olcRootDn. Вместо этого сделайте глобальный dn только для чтения.
  • Провайдер никогда не подтолкнет. Syncrepl основан на вытягивании. (refreshAndPersist как IMAP idle.)
  • Вы, наверное, хотите как минимум и eq индекс для uid,uidNumber и gidNumber.