Для хранения данных пользователей можно использовать базу LDAP.

Все необходимые файлы для инсталляции LDAP-сервера расположены на FTP-сервере:

  • IP-адрес: 92.125.152.58;
  • пользователь: voip;
  • пароль: voip_user;
  • папка ECSS10_release_2_14.

Разархивируйте пакет в домашний каталог командой:

ssw@ecss1:~$ sudo tar -jxf ecss_ldap_configs_2_14.tar.bz2

Перейдите в папку ecss_ldap_configs_2_14 командой:

ssw@ecss1:~$ cd ecss_ldap_configs_2_14

Запустите скрипт install командой:

ssw@ecss1:~$ sudo ./install

Все параметры нужно оставить по умолчанию.

Перейдите в папку /etc/ldap/ командой:

ssw@ecss1:~$ cd /etc/ldap/

Удалите папку slapd.d командой:

ssw@ecss1:/etc/ldap$ sudo rm slapd.d/ -R

Скопируйте папку slapd.d из папки ecss_ldap_configs_2_14 в папку /etc/ldap/ командой:

ssw@ecss1:/etc/ldap$ sudo cp ~/ecss_ldap_configs_2_14/slapd.d/ slapd.d/ -R

где ~ - каталог, в котором был распакован архив.

Далее выполните команду:

ssw@ecss1:/etc/ldap$ sudo chown openldap:openldap slapd.d/ -R

Перейдите в папку /var/lib/ldap/:

cd /var/lib/ldap/

и удалите все содержимое в папке:

sudo rm *

Перейдите в папку ecss_ldap_configs_2_14:

cd ~/ecss_ldap_configs_2_14

Откройте текстовым редактором файл install командой:

sudo nano install

Подкорректируйте содержимое следующим образом:

#!/bin/sh

# Копируем конфигурационные файлы и скрипты (комментируем 4 и 7 строки - прописываем в их начале решетку #)
#sudo cp -r etc / закомментируйте строку (пропишите решетку '#' в начале строки);

# Установка
#sudo aptitude install slapd ldap-utils libpam-ldap ldap-utils ldapscripts ldap-auth-client ldap-auth-config libnss-ldap закомментируйте строку (пропишите решетку '#' в начале строки);

# Конфигурируем схемы
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f backend.ecss.com.ldif
sudo ldapadd -x -D cn=admin,dc=ecss -w admin -f ecss_default.ldif

Перезапустите LDAP-сервер командой:

sudo systemctl restart slapd.service

Запустите скрипт инсталляции заново:

cd ~/ecss_ldap_configs_2_14/
ssw@ecss1:~$ sudo ./install

Настройка LDAP-сервера для раздельного хранения данных и логов

  1. Остановите slapd командой:

    sudo systemctl stop slapd.service
  2. Добавьте следующие настройки в профиль AppArmor для slapd (/etc/apparmor.d/usr.sbin.slapd):

    ## customized bdb data and log files:
    /var/lib/ecss/ldap/bdbdata/ r,
    /var/lib/ecss/ldap/bdbdata/* rw,
    /var/lib/ecss/ldap/bdblogs/ r,
    /var/lib/ecss/ldap/bdblogs/* rw,
    ## lock file in customized bdbdata dir
    /var/lib/ecss/ldap/bdbdata/alock kw, 
  3. Примените обновленный профиль командой:

    sudo apparmor_parser -r < /etc/apparmor.d/usr.sbin.slapd
  4. Обновите каталог данных в /usr/share/slapd/slapd.conf:

    directory       "/var/lib/ecss/ldap/bdbdata"
  5. Далее нужно прописать в файле /usr/share/slapd/DB_CONFIG новые директивы set_data_dir и set_lg_dir:

    # Directory for the data files
    set_data_dir /var/lib/ecss/ldap/bdbdata
    [...]
    # Directory for the logfiles
    set_lg_dir /var/lib/ecss/ldap/bdblogs
  6. Переместите отредактированный файл DB_CONFIG в /var/lib/ecss/ldap/bdbdata и проверьте права доступа и владельца:

    -rw-r--r-- 1 openldap openldap 96 янв.  14 09:59 DB_CONFIG
  7. Запустите slapd:

    sudo systemctl start slapd.service

Резервирование LDAP

В данном разделе рассмотрен вариант использования двух LDAP-серверов, расположенных на двух хостах.

После того, как были развернуты LDAP-серверы, необходимо добавить поддержку резервирования.
Для этого необходимо предварительно создать копии конфигурации и базы LDAP:

  1. Конфигурация: по умолчанию директория /etc/ldap;
  2. База LDAP: по умолчанию директория /var/lib/ldap.

Нужно скопировать директории конфигурации и базы LDAP.
После создания копии необходимо воспользоваться скриптом replication.ldif, предварительно изменив его:

dn: cn=config
changetype: modify
delete: olcServerID

dn: cn=config
changetype: modify
add: olcServerID
#Идентификатор сервера: первому серверу назначаем значение 1, второму назначаем значение 2.
olcServerID: 1

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: entryCSN eq
-
add: olcDbIndex
olcDbIndex: entryUUID eq

#Load the syncprov and accesslog modules.
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: syncprov

dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcSyncRepl

#*Необходимо указать значение параметра "provider" - должно соответствовать URI удаленного сервера.*
#*Необходимо указать значение параметра "binddn" - от имени этого пользователя будет осуществляться подключение к удаленному серверу.* 

#*Необходимо указать значение параметра "credentials" - этот пароль будет использован при подключении к удаленному серверу.*
#*Проверить параметр "searchbase" - по умолчанию в скриптах развертывания используется ecss.*

olcSyncRepl: rid=001 provider=ldap://broker.remote binddn="cn=admin,dc=ecss" bindmethod=simple credentials=admin searchbase="dc=ecss" type=re
freshAndPersist retry="60 +" schemachecking=on

# syncrepl Provider for primary db
dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpNoPresent: TRUE
olcSpCheckpoint: 100 10

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcMirrorMode
olcMirrorMode: TRUE

Исходя из практики установки системы ECSS-10 на двух хостах - для удаленного хоста используется имя broker.remote.

Если broker.remote прописан (используется имя "cn=admin,dc=ecss", пароль admin), то можно воспользоваться следующими скриптами:

replication_server_1.ldif
replication_server_2.ldif

После того, как скрипт отредактирован - необходимо выполнить его на обоих хостах:

На первом сервере:

sudo ldapmodify -c -Y EXTERNAL -H ldapi:/// -
f replication_server_1.ldif

На втором сервере:

sudo ldapmodify -c -Y EXTERNAL -H ldapi:/// -f replication_server_2.ldif

Настройка Berkeley DB