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

Изменить место хранения данных LDAP

Я использую сервер openLDAP версии 2.4.40 на CentOS 7. LDAP будет настроен с использованием опции online conf (olc). Благодаря этому вопрос, Я знаю, что файлы базы данных slapd находятся в /var/lib/ldap.

Я пытаюсь запустить сервер openLDAP в Linux в качестве раздела ОС только для чтения и другого раздела для постоянных данных. Я смогу установить и настроить openLDAP в разделе ОС, но потеряю к нему доступ после настройки.

Вопрос: Можно ли изменить место чтения / записи данных LDAP из / var / lib / ldap куда-нибудь на постоянный раздел данных?

Раньше я перемещал базу данных по умолчанию openldap после каждой новой настройки.

Шаги, которые я делаю, когда хочу переместить базу данных:

  • Стоп slapd
sudo service slapd stop
  • slapcat содержание cn=config ветка в файле LDIF
sudo slapcat -b cn=config > /tmp/config.ldif
  • Скопируйте /var/lib/ldap каталог в любом месте
  • Убедитесь, что пользователь openldap владеет новым каталогом и всеми файлами внутри
  • Отредактируйте ранее экспортированный LDIF, чтобы изменить olcDbDirectory на новое место
  • Импортируйте LDIF (убедитесь, что /etc/ldap/slapd.d пусто перед этим)
sudo rm -r /etc/ldap/slapd.d/*
sudo slapadd -F /etc/ldap/slapd.d -b cn=config -l /tmp/config.ldif
  • Убедитесь, что /etc/ldap/slapd.d и все его содержимое принадлежит openldap
sudo chown -R openldap:openldap /etc/ldap/slapd.d/
  • Отредактируйте необходимую конфигурацию, чтобы Slapd мог использовать этот новый каталог базы данных.

Например, с apparmor, отредактируйте файл /etc/apparmor.d/usr.sbin.slapd и добавьте следующие строки:

/path/to/new/db/ r,
/path/to/new/db/** rwk,
  • Перезапустите apparmor и slapd
sudo service apparmor restart
sudo service slapd start

Обычно это помогает. Так же я делаю резервную копию конфигурации своих экземпляров openldap.

Я прочитал ваш вопрос в двух частях:

  1. Вы хотите, чтобы ОС была доступна только для чтения с сохранением доступа на запись к данным LDAP.
  2. В качестве решения для №1 вы предлагаете хранить данные LDAP в месте, отличном от /var/lib/ldap

Хотя я подозреваю, что №2 возможен, у меня недостаточно непосредственного опыта работы с OpenLDAP, чтобы решить эту проблему напрямую. Что я могу сделать, так это предложить альтернативное решение для №1. Примонтировать разностный раздел диска в /var/lib/ldap, как через mount командование и через fstab. Это должно эффективно достичь вашей цели, независимо от того, поддерживает ли OpenLDAP это изначально. Вы также можете заменить /var/lib/ldap папку с символической ссылкой на нужное место. Опять же, это обходит OpenLDAP и любую поддержку, которая есть или не встроена в этот проект.

Наконец, вам также следует подумать о сохранении доступа на запись для определенных областей журнала. Методы, описанные в предыдущем абзаце, также могут работать для перемещения местоположений файлов журнала.

Openldap, похоже, не поддерживает перемещение базы данных, файла базы данных после того, как он был создан. Openldap в настоящее время также не поддерживает удаление файлов БД.

Можно создать новый файл БД и определить его атрибут olcDbDirectory для пути в другом разделе.

dn: olcDatabase=bdb,cn=config
objectClass: olcBdbConfig
olcDatabase: bdb
olcDbDirectory: /partition/db/new-db-file
olcSuffix: dc=example,dc=net

Информация содержится в главе 6.1.1.4.5 Добавление / удаление баз данных с помощью OLC