Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
- Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2
- Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)
- Astra Linux Common Edition 2.12
Организационные мероприятия по обеспечению восстановления
Во избежание потери данных рекомендуется сохранять созданные резервные копии на отдельных серверах или носителях. При сохранении резервных копий созданных с использованием защитного преобразования данных необходимо также сохранить ключи, с помощь которых создавалась копия. Для предотвращения несанкционированного доступа к данным резервные копии и ключи рекомендуется хранить раздельно.
Для восстановления контроллера домена с помощью репликации неоходимо заранее сохранить файл - контейнер с его сертификатом.
Создание резервной копии контроллера домена FreeIPA
Для создания резервной копии действующего контроллера домена (далее - КД) FreeIPA следует использовать инструмент ipa-backup (входит в состав пакета freeipa-server). Инструмент ipa-backup :
- Поддерживает два варианта создания резервной копии:
- Полная резервная копия. Требует остановки служб FreeIPA;
- Резервная копия данных. Может выполняться без остановки служб FreeIPA;
- Данные создаваемой резервной копии могут подвергаться защитному преобразованию с использованием принятого по умолчанию GPG-ключа пользователя root или заданного ключа. Пароли не поддерживаются;
- Резервные копии сохраняются в подкаталогах каталога /var/lib/ipa/backup:
- Полные резервные копии в подкаталогах ipa-full-YEAR-MM-DD-HH-MM-SS (используется время GMT);
- Резервные копия данных в подкаталогах ipa-data-YEAR-MM-DD-HH-MM-SS (используется время GMT);
В каждом подкаталоге создается файл с именем header. Пример файла:
[ipa] type = FULL time = 2021-09-22T14:03:50 host = ipa0.ipadomain0.ru ipa_version = 4.6.4 version = 1 services = NTP,KDC,KPASSWD,KEYS,OTPD,HTTP,DNS,DNSKeySync,ADTRUST,EXTID
Файл содержащит следующую информацию:
- тип резервной копии;
- время создания резервной копии;
- имя хоста;
- номер версии FreeIPA;
- номер версии резервной копии;
- список сервисов, используемых хостом.
- Резервные копии не могут быть восстановлены на другом компьютере;
- Резервные копии не могут быть восстановлены с другой версией FreeIP.
Команда для создания полной резервной копии:
Preparing backup on ipa0.ipadomain0.ru
Stopping IPA services
Backing up userRoot in IPADOMAIN0-RU to LDIF
Backing up IPADOMAIN0-RU
Backing up files
Backed up to /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02
Starting IPA service
The ipa-backup command was successful
Во избежание потери данных рекомендуется сохранять созданные резервные копии на отдельных серверах или носителях. При сохранении резервных копий созданных с использованием защитного преобразования данных необходимо также сохранить ключи, с помощь которых создавалась копия. Для предотвращения несанкционированного доступа к данным резервные копии и ключи следует хранить раздельно.
Восстановление контроллера домена FreeIPA из реплики
При наличии работающей реплики утерянный контроллер домена можно восстановить путем репликации. В примере далее предполагается, что имеется структура из двух контроллеров домена dc1.astra.loc и dc2.astra.loc, и контроллер dc2.astra.loc был полностью уничтожен.
Для восстановления контроллера из реплики необходимо иметь контейнер с сертификатами. Этот контейнер должен быть сохранен заранее и доступен при восстановлени.
- на сохранившемся контроллере домена dc1.astra.loc:
- удалить соглашение о репликации с потерянным контроллером:
sudo ipa-replica-manage del dc2.astra.loc - убедиться, что удалены все записи DNS об утерянном сервере:
ipa dnsrecord-find astra.loc
если записи не удалены - повторить удаление соглашения о репликации, при необходимость - удалить записи через web-интерфейс FreeIPA;
- удалить соглашение о репликации с потерянным контроллером:
- на новом компьютере:
- установить ОС;
- войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
- назначить серверу полное имя (FQDN) такое же, как у исходного сервера;
- настроить сеть так же, как она была настроена на исходном сервере;
- ввести новый компьютер в домен;
- перезагрузить сервер;
войти под учетной записью доменного администратора;
инициализировать новую реплику используя сохраненный контейнер с сертификатом старого контроллера домена (см. Инициализация сервера реплики DC FreeIPA ):
sudo astra-freeipa-replica -a dc2.astra.loc-200305-142302.p12 --pin 12345678
Восстановление контроллера домена FreeIPA из резервной копии
Восстановление состояния контроллера домена
При условии, что резерная копия размещена в принятых по умолчанию каталогах, восстановление состояния контроллера домена выполняется одной командой с указанием имени резервной копии. Для восстановления небходимо указать пароль администратора и подтвердить согласие с удалением существующих данных:
Directory Manager (existing master) password:
Preparing restore from /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02/ on ipa0.ipadomain0.ru
Performing FULL restore from FULL backup
Temporary setting umask to 022
Restoring data will overwrite existing live data.
Continue to restore? [no]: yes
Each master will individually need to be re-initialized or
re-created from this one. The replication agreements on
masters running IPA 3.1 or earlier will need to be manually
re-enabled. See the man page for details.
Disabling all replication.
Stopping IPA services
Configuring certmonger to stop tracking system certificates for CA
Systemwide CA database updated.
Restoring files
Systemwide CA database updated.
Restoring from userRoot in IPADOMAIN0-RU
Restarting GSS-proxy
Starting IPA services
Restarting SSSD
Restarting oddjobd
Restoring umask to 18
The ipa-restore command was successful
Если резервная копия находится в нестандарном каталоге вместо имени резервной копии можно указать полный путь к каталогу резервной копии:
Для восстановления сервера FreeIPA на новом компьютере при отсутствии реплик и наличии полной резервной копии:
- установить ОС на новый компьютер;
- войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
- назначить серверу полное имя (FQDN) такое же, как у исходного сервера;
- настроить сеть так же, как она была настроена на исходном сервере;
- развернуть FreeIPA КД с пустой базой по инструкции - Инициализация первого DC FreeIPA;
- перезагрузить сервер;
войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
Не использовать вход в сессию администратора домена до восстановления контроллера домена из резервной копии.- скопировать резервную копию на новый компьютер. Если при создании резервной копии использовалось защитное преобразование - обеспечить доступ к использованным при создании ключам;
выполнить команду восстановления. Для выполнения команды потребуется указать пароль администратора нового сервера FreeIPA и подтвердить удаление существующих данных:
sudo ipa-restore /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02/Directory Manager (existing master) password:
Preparing restore from /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02/ on ipa0.ipadomain0.ru
Performing FULL restore from FULL backup
Temporary setting umask to 022
Restoring data will overwrite existing live data.
Continue to restore? [no]: yes
Each master will individually need to be re-initialized or
re-created from this one. The replication agreements on
masters running IPA 3.1 or earlier will need to be manually
re-enabled. See the man page for details.
Disabling all replication.
Stopping IPA services
Configuring certmonger to stop tracking system certificates for CA
Systemwide CA database updated.
Restoring files
Systemwide CA database updated.
Restoring from userRoot in IPADOMAIN0-RU
Restarting GSS-proxy
Starting IPA services
Restarting SSSD
Restarting oddjobd
Restoring umask to 18
The ipa-restore command was successful- перезагрузить сервер;
войти под учетной записью администратора домена, используя старые имя и пароль;
Если до восстановления контроллера домена из резервной копии производился вход в сессию администратора домена с таким же именем - то вход будет невозможен.
В этом случае необходимо удалить домашний каталог этой доменной учетной записи.
Проверка корректности восстановления
Для простой проверки корректности восстановления можно проверить списки пользователей, хостов и контроллеров:
ipa user-find
ipa host-find
ipa server-find
Проверка восстановления базы, в случае когда был единственный сервер КД
На КД FreeIPA добавим два тестовых пользователя в домен FreeIPA:
admin@dc1:~$ ipa user-add testuser2 --password
admin@dc1:~$ ipa group-add group2
astrauser@astracomp:~$ scp ipa.tar.gz user@10.0.20.21:~ user@10.0.20.21's password: ipa.tar.gz 100% 3873KB 18.6MB/s 00:00
Переходим на сервер FreeIPA КД и вводим команду восстановления.:
sudo ipa-restore /var/lib/ipa/backup/ipa-full-2020-03-04-18-28-46/ Directory Manager (existing master) password: Preparing restore from /var/lib/ipa/backup/ipa-full-2020-03-04-18-28-46/ on dc1.astra.loc Performing FULL restore from FULL backup Temporary setting umask to 022 Restoring data will overwrite existing live data. Continue to restore? [no]: yes Each master will individually need to be re-initialized or re-created from this one. The replication agreements on masters running IPA 3.1 or earlier will need to be manually re-enabled. See the man page for details. Disabling all replication. Stopping IPA services Configuring certmonger to stop tracking system certificates for CA Systemwide CA database updated. Restoring files Systemwide CA database updated. Restoring from userRoot in ASTRA-LOC Restarting GSS-proxy Starting IPA services Restarting SSSD Restarting oddjobd Restoring umask to 18 The ipa-restore command was successful
Перезагружаем сервер.
Входим под уч.записью доменного пользователя (admin), вводим пароль который был в старой базе КД.
Если не удается зайти под доменной учетной записью, то возможно что производился вход под такой же учетной записью, до восстановления КД из резервной копии.
В этом случае необходимо удалить домашний каталог этой доменной учетной записи.
Проверяем восстановление сервера:
Ищем пользователей и группы из восстанавливаемой базы КД.
admin@dc1:~$ ipa user-find testuser1 -------------- 1 user matched -------------- Имя учётной записи пользователя: testuser1 Имя: 11 Фамилия: 11 Домашний каталог: /home/testuser1 Оболочка входа: /bin/sh Имя учётной записи: testuser1@ASTRA.LOC Псевдоним учётной записи: testuser1@ASTRA.LOC Адрес электронной почты: testuser1@astra.loc UID: 440009 ID группы: 440009 Учётная запись отключена: False --------------------------------- Количество возвращённых записей 1 --------------------------------- admin@dc1:~$ ipa group-find group2 --------------- 1 group matched --------------- Имя группы: group2 ID группы: 440012 --------------------------------- Количество возвращённых записей 1 ---------------------------------
Убеждаемся, что созданные ранее пользователи и группы восстановлены.
Проверка репликации сервера, после восстановления реплики КД, взамен вышедшей из строя.
Воспроизводим ситуацию, когда данные на одном из серверов реплик КД полностью уничтожены.
В таком случае восстановление сводится к новой инициализации сервера реплики КД с таким же FQDN и сетевыми настройками.
Перед восстановлением реплики нужно удалить информацию о старом сервере, на одном из доступных рабочих серверов (репликах КД).
Предположим, что тестовый стенд состоит из 2х серверов КД: dc1.astra.loc и dc2.astra.loc .
Сервер dc2.astra.loc был полностью уничтожен.
Удаляем соглашение о репликации:
admin@dc1:~$ sudo ipa-replica-manage del dc2.astra.loc Directory Manager password: Updating DNS system records --------------------------------- Удалён IPA-сервер "dc2.astra.loc" --------------------------------- admin@dc1:~$ sudo ipa-replica-manage del dc2.astra.loc Updating DNS system records dc2.astra.loc: сервер не найден admin@dc1:~$
Команду " ipa-replica-manage del " рекомендуется выполнить 2 раза, т.к. после первого запуска остаются записи в DNS и нормально удаляются только после второго запуска.
После этого нужно убедиться, что в DNS не осталось SRV записей о сервере "dc2.astra.loc"
Возможно останутся записи "SSHFP record" , но они не повлияют на дальнейшую работу и после ввода нового сервера будут перезаписаны.
Вводим новый клиент "dc2.astra.loc" в домен.
Перезагружаем и входим под доменной учетной записью "admin".
Далее копируем ранее созданный контейнер с сертификатами *.p12 , с сервера "dc1.astra.loc" (на котором он выпускался) на восстанавливаемый "dc2.astra.loc" .
admin@dc1:~$ ipa dnsrecord-add 20.0.10.in-addr.arpa. 22 --ptr-rec dc2.astra.loc. Имя записи: 22 PTR record: dc2.astra.loc.
И переходим на сервер "dc2.astra.loc" для инициализации (восстановления) реплики КД (инструкция Инициализация сервера реплики DC FreeIPA ) .
После инициализации сервера реплики и перезагрузки, возможна ошибка при попытке входа в WEB интерфейс FreeIPA.
В /var/log/syslog будут ошибки вида:
Mar 7 11:35:31 dc2 named-pkcs11[929]: LDAP error: Can't contact LDAP server: bind to LDAP server failed
В этом случае необходимо проверить сетевые настройки и поменять адрес DNS, указав первым свой ip адрес "10.0.20.22".
Далее проверяем восстановленный сервер dc2.astra.loc .
Ищем на нем учетные записи доменных пользователей и групп, которые должны были реплицироваться с dc1.astra.loc.
admin@dc2:~$ ipa user-find testuser1 -------------- 1 user matched -------------- Имя учётной записи пользователя: testuser1 Имя: 11 Фамилия: 11 Домашний каталог: /home/testuser1 Оболочка входа: /bin/sh Имя учётной записи: testuser1@ASTRA.LOC Псевдоним учётной записи: testuser1@ASTRA.LOC Адрес электронной почты: testuser1@astra.loc UID: 440009 ID группы: 440009 Учётная запись отключена: False --------------------------------- Количество возвращённых записей 1 --------------------------------- admin@dc2:~$ ipa group-find group2 --------------- 1 group matched --------------- Имя группы: group2 ID группы: 440012 --------------------------------- Количество возвращённых записей 1 ---------------------------------
Убеждаемся, что сервер dc2.astra.loc восстановлен и реплецирована актуальная база КД .