Введение
Управление аутентификацией и авторизацией пользователей требует обеспечения высокой доступности NAC-системы, т. к. в случае её отказа подключение пользователей и эндпоинтов станет невозможным.
Резервирование Eltex-NAICE выполняется по схеме Active-Active, каждая нода имеет свой собственный IP-адрес. В настройках сетевого оборудования потребуется настроить взаимодействие с двумя RADIUS/TACACS+ серверами. Определение недоступности сервиса будет выполняться со стороны сетевого оборудования. Для настройки схемы с резервирование требуется выделить 4 виртуальных (или физических) сервера: 2 для функционирования сервисов NAICE, 2 для функционирования СУБД PostgreSQL, отвечающей за хранение данных.
Установка обновлением схемы с резервированием на хост, который ранее использовался для работы системы в однохостовом режиме не допускается
Порядок действий при переходе с однохостовой схемы на схему с резервированием описан в v1.1_3.8.1 Обновление PostgreSQL при переходе со схемы с однохостовой установкой на схему с резервированием.
Общая схема резервирования
- Резервирование NAICE выполняется по схеме Active-Active, возможно обращение к любому серверу NAICE по протоколу RADIUS со стороны сетевых устройств. Требуется настройка двух инстансов radius-server host/tacacs-server host для каждого IP-адреса NAICE.
- IP-адреса NAICE могут находиться в разных подсетях. В этом случае, L3-связность между подсетями должна быть обеспечена с использованием маршрутизации (без NAT или других технологий подмены адресов). В случае использования межсетевого экрана для корректной работы, необходимо обеспечить прохождение трафика между нодами по портам, описанным в статье v1.1_1.4 Перечень портов, используемых сервисами, в разделе "Порты, используемые нодами NAICE, в схеме с резервированием".
- Административный доступ через GUI для управления системой возможен к любой ноде по её реальному адресу.
- Для резервирования БД PostgreSQL используется replication manager. Резервирование выполняется на двух нодах, которые имеют роли Primary и Standby.
- В настройках подключения к БД сервисов NAICE указываются оба адреса БД.
Для лицензирования схемы с резервированием требуется две лицензии для каждого из хостов NAICE. Лицензии должны иметь уникальные Product ID, но одинаковый ключ лицензии.
Системные требования к серверам
Системные требования к серверам описаны в разделе "Установка с резервированием" статьи v1.1_3.1 Системные требования
Установка
Возможна онлайн и оффлайн установка.
Установка онлайн возможна на все поддерживаемые типы ОС и описана далее.
Оффлайн установка (закрытый контур) описана в разделе v1.1_3.5.1 Установка схемы с резервированием в закрытом контуре (без использования VRRP)
Онлайн установка
Для выполнения онлайн установки требуется обеспечить с хостов, на которые выполняется установка, прямой доступ в сеть Интернет (без использования прокси-сервера или иных способов, которые вызывают подмену сертификатов конечных сайтов, к которым выполняется обращение в ходе установки).
Требуется указывать IP-адреса целевых серверов при выполнении установки! Использование доменных имен не допускается!
Установка выполняется с помощью двух плейбуков ansible:
- Установка СУБД PostgrteSQL в кластере плейбуком
install-postgres-cluster.yml. - Установка сервисов NAICE плейбуком
geo-naice-services.yml.
Подготовка к установке
Для корректного взаимодействия с источником идентификации типа ACTIVE DIRECTORY, необходимо создать две учетных записи компьютера, которые будут использоваться для взаимодействия по протоколу netlogon в ходе проверки паролей пользователей. Каждая нода NAICE должна использовать отдельную УЗ компьютера.
Для этого, в файле переменных group_vars/all.yml необходимо указать значения переменных:
cetus_netlogon_pc1_name: "<Имя компьютера 1>" cetus_netlogon_pc1_pass: "<Пароль компьютера 1>" cetus_netlogon_pc2_name: "<Имя компьютера 2>" cetus_netlogon_pc2_pass: "<Пароль компьютера 2>"
и сохранить перед выполнением плейбука установки NAICE.
В случае наличия данных настроек в конфигурации параметров NAICE, они имеют приоритет перед указанными в веб-интерфейсе!
Подробнее о настройке взаимодействия с Active Directory можно ознакомиться в разделе: v1.1_4.1.1 Настройка интеграции с Active Directory
Адреса целевых хостов, на которых будет выполнятся установка, определяются в файле inventory/hosts-geo.yml.
Для СУБД PostgreSQL необходимо задать адреса в разделе postgres-cluster:
# Группа хостов для установки postgres-cluster (primary + standby)
postgres-cluster:
hosts:
node_primary:
ansible_host: <IP-адрес хоста-1 PostgreSQL>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432
node_standby:
ansible_host: <IP-адрес хоста-2 PostgreSQL>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
forwarded_postgresql_port: 5432
forwarded_ssh_port: 15432
Для установки сервисов NAICE с резервированием необходимо задать адреса в разделе geo:
# Группа хостов для установки NAICE с резервированием
geo:
hosts:
master_host:
ansible_host: <IP-адрес хоста 1 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
backup_host:
ansible_host: <IP-адрес хоста 2 для NAICE>
ansible_port: 22
ansible_user: <логин пользователя>
ansible_ssh_pass: <пароль пользователя>
ansible_become_password: <пароль для повышения привилегий (sudo)>
При выполнении онлайн установки не требуется указывать данные для доступа к хосту, на котором запускается плейбук в разделе Local actions. Данный раздел используется только при выполнении установки в закрытом контуре.
Установка кластера СУБД PostgreSQL
Выполнить плейбук:
ansible-playbook install-postgres-cluster.yml -i inventory/hosts-geo.yml
Результатом выполнения плейбука будет установка СУБД PostgreSQL в кластере на серверах, указанных в node_primary и node_standby. Мастер-нода кластера будет находиться на хосте node_primary.
Проверка состояния кластера PostgreSQL после установки описана в инструкции Диагностика состояния кластера БД PostgreSQL.
Установка кластера NAICE
Перед установкой необходимо убедиться, что роль Primary принадлежит ноде PostgreSQL, указанной в переменной node_primary "ansible_host". При необходимости выполнить переключение роли Primary. В противном случае установка не сможет быть завершена.
В настройках подключения к БД сервисов NAICE указываются оба адреса БД, а запись в БД возможна только через Primary-сервер. Обязательным условием является использование в URL параметра targetServerType для сервисов, которые выполняют запись в БД.
Пример:
URSUS_POSTGRES_JDBC_URL:jdbc:postgresql://192.168.0.101:5432,192.168.0.102:5432/ursus?targetServerType=preferPrimary
Адреса взаимодействия с БД берутся из значения ansible_host из раздела postgres-cluster файла hosts-geo.yml.
Для установки необходимо выполнить плейбук:
ansible-playbook geo-naice-services.yml -i inventory/hosts-geo.yml
Проверка состояния кластера NAICE
После завершения установки кластера NAICE контейнеры на обоих нодах должны находиться в состоянии healthy.
На хостах зайти в папку установки (по умолчанию /etc/docker-naice) и убедиться, что контейнеры запущены.
Описание схемы работы
Нормальное состояние системы
В нормальном состоянии системы функционируют все четыре хоста.
- Обработка RADIUS/TACACS-запросов возможна на каждой ноде кластера;
- Взаимодействие сервисов с БД выполняется по двум реальным адресам нод кластера PostgrteSQL. Нода, доступная для записи в состоянии Primary,определяется автоматически.
Отказ хоста NAICE 1
При отказе хоста NAICE 1 будут автоматически выполнены следующие действия:
- Сетевое оборудование при попытке отправки пакетов на ноду NAICE 1 определит её недоступность в соответствии с настроенными параметрами ожидания и повторной отправки пакетов.
- Повторные обращения будут выполняться к ноде NAICE 2.
Для уточнения поведения сетевого оборудования при работе с двумя хостами RADIUS/TACACS+ серверов и корректности настройки необходимо обратиться к документации данного оборудования!
Отказ хоста БД 1
При отказе хоста БД 1 будут автоматически выполнены следующие действия:
- Хост БД 2 автоматически перейдет в состояние Primary;
- Сервисами NAICE будет определен факт недоступности БД 1 и дальнейшие действия по работе с БД будут выполняться с хостом БД 2;
- Обработка RADIUS-запросов возможна на всех двух адресах кластера.
Восстановление после отказа
- После возвращения в работу хоста NAICE, если он является приоритетным для обращения в настройках сетевого оборудования, RADIUS/TACACS+ запросы начнут выполняться к этому хосту.
- После возвращения в работу хоста БД PostgreSQL он будет работать в режиме Standby. Роль Primary останется у текущей работоспособной ноды кластера.
Восстановление хоста
В случае полной утраты одного из хостов требуется предварительно восстановить стартовое состояние: развернуть ОС, настроить IP-адресацию и пользователей, как было ранее, и выполнить процедуру восстановления.
Восстановление хоста кластера БД PostgreSQL
На оставшейся в работе ноде выполнить резервное копирование данных в соответствии с инструкцией: v1.1_3.9 Создание резервной копии данных БД и восстановление данных БД.
Повторно развернуть хост для вышедшей из строя ноды кластера с прежней ОС, адресацией и пользователем.
Выполнить плейбук:
ansible-playbook install-postgres-cluster.yml -i inventory/hosts-geo.yml
После завершения плейбука проверить состояние кластера БД PostgreSQL, убедиться в его работоспособности и проверить работу авторизации и корректности настроек в GUI.
Восстановление хоста сервисов NAICE
Повторно развернуть хост для вышедшей из строя ноды кластера с прежней ОС, адресацией и пользователем.
Выполнить плейбук:
ansible-playbook geo-naice-services.yml -i inventory/hosts-geo.yml
При повторном выполнении установки будет выполнен перезапуск всех сервисов NAICE, что приведет к кратковременному (до 5 мин) перерыву в работе комплекса. Необходимо это учитывать при проведении работ по восстановлению.
После восстановления убедиться в работе авторизации и корректной работе всех сервисов.