Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Организационные мероприятия по обеспечению восстановления
Предупреждение |
---|
Во избежание потери данных рекомендуется сохранять созданные резервные копии на отдельных серверах или носителях. Создание резервных копий должно выполняться на регулярной основе, дополнительно рекомендуется создавать резервные копии непосредственно перед обновлениями системы. При сохранении резервных копий, созданных с использованием защитного преобразования данных, необходимо также сохранить ключи, с помощь которых использованием которых создавалась копия. Для предотвращения несанкционированного доступа к данным резервные копии и ключи рекомендуется хранить раздельно.Для восстановления контроллера При работе без использования центра управления сертификатами DogTag:
|
Создание резервной копии контроллера домена FreeIPA
Для создания резервной копии действующего контроллера домена (далее - КД) FreeIPA следует использовать инструмент ipa-backup (входит в состав пакета freeipa-server). Инструмент Особенности инструмента ipa-backup:
- Поддерживает Поддерживается два варианта создания резервной копии:
- Полная резервная копия. Требует остановки служб FreeIPAДля создания полной резервной копии требуется остановка служб 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
Файл содержащит header содержит следующую информацию:
- тип резервной копии (полная или данных);
- время создания резервной копии;
- имя хоста;
- номер версии FreeIPA;
- номер версии резервной копии;
- список сервисов, используемых хостом.
- Резервные копии не могут быть восстановлены на другом компьютерекомпьютере, имеющем конфигурацию, отличающуюся от исходного компьютера;
- Резервные копии не могут быть восстановлены с другой версией FreeIPFreeIPA.
Команда для создания полной резервной копии:
Command | ||
---|---|---|
| ||
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 :
- имеется локальная сеть с адресом 10.0.20.0/24;
- были созданы два контроллера домена ipa0.ipadomain0.ru и ipa1.ipadomain0.ru (с IP-адресом 10.0.2.22);
- контроллер ipa1.ipadomain0.ru был полностью уничтожен.
Предупреждение |
---|
Для
|
- на сохранившемся контроллере домена dc1ipa0.astraipadomain0.locru:
удалить соглашение о репликации с потерянным контроллером:
dc2Command sudo ipa-replica-manage del
astraipa1.
locipadomain0. ru убедиться, что удалены
всеDNS-записи
DNSоб утерянном сервере. Должны быть удалены все упоминания восстанавливаемого контроллера домена в записях типов "SRV record", "A record", "NS record":
astra.locCommand ipa dnsrecord-find
еслиipadomain0.ru | egrep "(SRV|A|NS) record:" Если записи не удалены - повторить удаление соглашения о репликации, при
необходимостьнеобходимости - удалить записи через web-интерфейс FreeIPA;
добавить запись типа "PTR" в реверсивную зону:
Command ipa dnsrecord-add 20.0.10.in-addr.arpa. 22 --ptr-rec ipa1.ipadomain0.ru. где 22 - адрес восстанавливаемого компьютера;
- на новом компьютере:
- установить ОС;
- войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
- назначить серверу полное имя (FQDN) такое же, как у исходного сервера;
- настроить сеть так же, как она была настроена на исходном сервере;
- ввести новый компьютер в домен;
- перезагрузить сервер;
войти под учетной записью доменного администратора;
инициализировать новую реплику используя (если не используется DogTag - то можно использовать сохраненный контейнер p12 с сертификатом старого контроллера домена (см. Инициализация сервера реплики DC FreeIPA ):
. См. FreeIPA: настройка репликации). Примеры команд:Без использования DogTag:
Command sudo astra-freeipa-replica -a
ipa1.
ipadomain0.
ru-200305-142302.p12 --pin 12345678 С использованием DogTag:
Command sudo astra-freeipa-replica --dogtag
Восстановление контроллера домена FreeIPA из резервной копии
Восстановление состояния контроллера домена
При условии, что резерная резервная копия размещена в принятых по умолчанию каталогах, восстановление состояния контроллера домена выполняется одной командой с указанием имени резервной копии. Для восстановления небходимо необходимо указать пароль администратора и подтвердить согласие с удалением существующих данных:
Command | ||
---|---|---|
| ||
Directory Manager (existing master) password: Preparing restore from /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02/ on ipa0.ipadomain0.ru |
Если резервная копия находится в нестандарном нестандартном каталоге, то вместо имени резервной копии можно указать полный путь к каталогу резервной копии:
Command |
---|
sudo ipa-restore /var/lib/ipa/backup/ipa-full-2021-09-22-17-04-02/ |
Восстановление когда данные домена полностью уничтожены
Для восстановления сервера контроллера домена FreeIPA на новом компьютере при отсутствии реплик и наличии полной резервной копии:
- установить ОС на новый компьютер;
- войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
- назначить серверу полное имя (FQDN) такое же, как у исходного сервера;
- настроить сеть так же, как она была настроена на исходном сервере;
- развернуть контроллер домена FreeIPA КД с пустой базой данных по инструкции - Инициализация первого DC FreeIPA Контроллер ЕПП FreeIPA в Astra Linux;
- перезагрузить сервер;
войти под локальной учетной записью привилегированного пользователя (для Astra Linux Special Edition - привилегированного пользователя с высоким уровнем целостности);
Предупреждение Не использовать вход в сессию администратора домена до восстановления контроллера домена из резервной копии. - скопировать резервную копию на новый компьютер. Если при создании резервной копии использовалось защитное преобразование - обеспечить доступ к использованным при создании ключам;
выполнить команду восстановления. Для выполнения команды потребуется указать пароль администратора нового сервера контроллера домена FreeIPA и подтвердить удаление существующих данных:
Command Title 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- перезагрузить сервер;
войти под учетной записью администратора домена, используя старые имя и пароль;
Предупреждение Если до восстановления контроллера домена из резервной копии производился вход в сессию администратора домена с таким же именем - то вход будет невозможен.
В этом случае необходимо удалить домашний каталог этой доменной учетной записи.
Проверка корректности восстановления
Для простой проверки корректности восстановления можно проверить списки пользователей, хостов и контроллеров, выполнив соответствующие команды на восстановленном контроллере домена:
Command |
---|
kinit admin ipa user-find ipa host-find ipa server-find |
Ошибка при попытке входа в web-интерфейс FreeIPA после восстановления
Если после восстановления реплики и перезагрузки при попытке входа в web-интерфейс FreeIPA возникает ошибка "Login failed due to an unknown reason":
и в журнале /var/log/syslog регистрируются ошибки вида:
Блок кода |
---|
... |
Проверка восстановления базы, в случае когда был единственный сервер КД
На КД FreeIPA добавим два тестовых пользователя в домен FreeIPA:
Command |
---|
admin@dc1:~$ ipa user-add testuser1 --password |
Создадим две тестовые группы:
Command |
---|
admin@dc1:~$ ipa group-add group1 |
Блок кода |
---|
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"
Command |
---|
admin@dc1:~$ ipa dnsrecord-find astra.loc |
Примечание |
---|
Возможно останутся записи "SSHFP record" , но они не повлияют на дальнейшую работу и после ввода нового сервера будут перезаписаны. |
Вводим новый клиент "dc2.astra.loc" в домен.
Перезагружаем и входим под доменной учетной записью "admin".
Command |
---|
admin@dc1:~$ sudo scp /etc/ssl/freeipa/dc2.astra.loc-200305-142302.p12 admin@dc2.astra.loc:~ |
Добавляем PTR запись в DNS для "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 ) .
Command |
---|
admin@dc2:~$ sudo astra-freeipa-replica -a dc2.astra.loc-200305-142302.p12 --pin 12345678 |
После инициализации сервера реплики и перезагрузки, возможна ошибка при попытке входа в 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 восстановлен и реплецирована актуальная база КД .
(файл /etc/resolv.conf) и изменить их так, чтобы первым был указан собственный IP-адрес восстановленной реплики.
Обновление серверов FreeIPA
Обновление серверов FreeIPA выполняется при общем обновлении системы:
При работе с Astra Linux Common Edition:
Command sudo apt dist-upgrade - При работе с Astra Linux Special Edition см. инструкции в актуальном бюллетене, а также см. Установка оперативных обновлений с использованием astra-update (fly-astra-update).
Предупреждение |
---|
Использование для обновления команды ipa-server-upgrade не поддерживается. |