4.3.1.2.2.2.2. Разнонаправленное резервирование
Прежде чем перейти к настройкам резервирования:
1. Убедитесь, что типы баз данных всех серверов – «mdb», с помощью команды:
sudo slapcat -n0
|
Если тип БД отличается, то во всех дальнейших командах нужно заменить mdb на текущий тип БД.
|
2. Отключите все возможные репликации баз и серверов.
3. Убедитесь, что содержимое баз резервируемых серверов идентично.
4. Сделайте бэкап конфигурации и БД сервера-поставщика в текущей папке с помощью команды:
cd /opt/AstraRegul/Astra.Security
sudo sh ./openldap-conf-and-data-backup.sh
|
Для восстановления конфигурации и БД OpenLDAP в случае ошибок резервирования, выполните команды:
cd /opt/AstraRegul/Astra.Security
sudo sh ./openldap-conf-and-data-restore.sh
|
5. Остановите все программы, взаимодействующие с серверами OpenLDAP.
6. Убедитесь, что системное время резервируемых серверов одинаковое, иначе синхронизация изменений будет работать в одну сторону.
7. На время настройки резервирования одного из серверов остановите остальные резервируемые сервера OpenLDAP.
Чтобы настроить разнонаправленное резервирование:
1. На любом из резервируемых серверов создайте файл конфигурации openldap-enable-syncreplmultiprovider-server.ldif со следующим содержанием:
##########################################################
# Check/modify database type (bdb/hdb/mbd/...), server ID (unique number),
# address of provider, binddn, credentials, searchbase.
##########################################################
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: syncprov.la
##########################################################
dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
##########################################################
dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl:
rid=001
provider=ldap://192.168.56.102:389
bindmethod=simple
binddn="cn=admin,dc=maxcrc,dc=com"
credentials="secret"
searchbase="dc=maxcrc,dc=com"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
olcSyncRepl:
rid=002
provider=ldap://192.168.57.102:389
bindmethod=simple
binddn="cn=admin,dc=maxcrc,dc=com"
credentials="secret"
searchbase="dc=maxcrc,dc=com"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="30 5 300 3"
interval=00:00:05:00
-
add: olcMirrorMode
olcMirrorMode: TRUE
dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
|
Отступ в каждой строке внутри конструкции olcSyncRepl обязательно должен содержать по два пробела.
|
2. Измените файл конфигурации следующим образом:
2.1. В строке olcServerID: 1 придумайте и укажите идентификатор сервера;
olcServerID должен быть уникальным для каждого резервируемого сервера.
|
2.2. Замените «mdb» на текущий тип БД, если он отличается, в строках:
«dn: olcDatabase={1}mdb,cn=config»;
«dn: olcDatabase={1}mdb,cn=configdn: olcDatabase={1}mdb,cn=config»;
«dn: olcOverlay=syncprov,olcDatabase={1}mdb,cn=config»
2.3. Добавьте столько конструкций olcSyncRepl, сколько серверов участвуют в резервировании помимо текущего. Каждая конструкция olcSyncRepl описывает один из резервируемых серверов.
Внутри одного сервера параметры rid разных конструкций olcSyncRepl должны иметь уникальные значения.
|
2.4. В каждой конструкции olcSyncRepl укажите IP-адрес и порт сервера, который она описывает, в строке параметра provider.
2.5. Замените «"dc=maxcrc,dc=com"» на «"dc=nodomain"», если не выполняли переименование домена, в строках:
«binddn="cn=admin,dc=maxcrc,dc=com"»;
«searchbase="dc=maxcrc,dc=com"».
3. Для применения внесенных изменений выполните команду:
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f openldap-enable-syncrepl-multiprovider-server.ldif
|
4. Перезапустите сервер:
sudo systemctl restart slapd
|
5. Повторите все описанные действия на каждом из резервируемых серверов.
6. Настройте Агент Astra.Security:
6.1. Перейдите к файлу конфигурации astra.security.agent.xml, расположенному по следующему пути:
/opt/AstraRegul/Astra.Security
|
Добавьте в секцию тега <LdapHosts> строки с IP-адресами и портами всех резервируемых серверов:
<LdapHosts>
<LDAPServer Address="127.0.0.1" Port="389"/>
<LDAPServer Address="172.16.13.167" Port="389"/>
</LdapHosts>
|
6.2. Перезапустите службу:
sudo systemctl restart astra.security.service
|
После настройки последовательно включите все сервера OpenLDAP.
Подключитесь напрямую к каждой базе и убедитесь, что ошибок не возникло.
Для проверки внесите изменения в конфигурацию на одном из серверов. Убедитесь, что эти изменения появились и на других серверах.