Предварительная настройка
Перед настройкой интеграции должно быть выполнено добавление компьютера с NAICE в домен. Для этого в момент установки должны были быть настроены параметры подключения, описанные в инструкции по установке или во встроенной документации .
Если при установке они не были настроены, то требуется указать все необходимые данные и выполнить установку плейбуком повторно поверх существующей инсталляции.
Без этих настроек авторизация пользователей через MS AD работать не будет!
Предварительно также необходимо:
- Настроить сетевое устройство на взаимодействие с Eltex-NAICE по протоколу RADIUS в соответствие с инструкцией производителя.
- Добавить сетевое устройство и его профиль в NAICE.
Подробная информация о настройках содержится во встроенной документации, которую можно просмотреть нажав кнопку вверху справа.
Создание источника идентификации
Открыть раздел "Администрирование" → "Управление идентификацией" → "Внешние источники идентификации" и нажать кнопку :
Более подробно о настраиваемых параметрах можно узнать во встроенной документации .
После сохранения перейдем в раздел "Группы" и добавить группы, которые предполагается использовать в политиках авторизации:
В данном примере добавляем группу "Гости".
Перейдем в раздел "Атрибуты" и добавим атрибут, значение которого будет использоваться для выдачи cVLAN. При получении списка доступных атрибутов требуется обязательно задать фильтр, в зависимости от которого могут отображаться разные атрибуты. Рекомендуется использовать фильтры: "distinguishedName=*", "objectClass=person", "givenName=<имя пользователя>" и т.п. Так же следует иметь ввиду, что атрибуты, для которых ни разу не задавалось значение, могут не отображаться. Для пользователя в приведенном ниже примере в поле "Описание" задано значение 1000, которое будет использоваться в качестве cVLAN:
И нажать кнопку "Сохранить".
Нажав справа от добавленного атрибута кнопку отредактируем поле "Имя" на другое, т.к. именно оно будет отображаться при работе с LDAP словарем на более понятное. "Тип" и "Внутреннее наименование" не меняются:
После этого сохраняем новое значение нажав кнопку справа от атрибута.
Создание цепочки идентификаций с использованием ранее созданного источника идентификации
Открыть раздел "Администрирование" → "Управление идентификацией" → "Цепочки идентификации" и нажать кнопку :
После создания цепочки идентификации с использованием ранее созданного источника нажать кнопку "Добавить".
Создание профиля авторизации с использованием ранее созданного атрибута
Открыть раздел "Политика" → "Элементы" → "Результаты" → "Профили авторизации" и нажать кнопку . В открывшемся окне, после выбора профиля сетевого устройства, в блоке "Общие задачи" включить галочку "VLAN", после этого нажать на кнопку выбора атрибута справа , выбрать словарь с именем ранее созданного источника идентификации:
В словаре выбрать ранее созданный атрибут "cVLAN":
И сохранить профиль авторизации нажав кнопку "Добавить":
Если в выбранном профиле сетевого устройства не включена возможность использовать VLAN, то чекбокс в профиле авторизации будет неактивен!
Настройка политик
В разделе "Политика" → "Наборы политик" добавим новую политику, в которой условием попадания под данную политику будет, например "NAS-IP-address" равно <IP-адресу устройства>.
Сохранить новую политику нажав кнопку "Сохранить" и перейти к настройке политик аутентификации и авторизации нажатием кнопки справа от добавленной политики.
Добавить политику аутентификации, которая использует созданную цепочку идентификаций (с использованием, например, одинакового условия с политикой):
Добавить политику авторизации, которая использует в качестве условия принадлежность пользователя к ранее созданной группе в источнике идентификации, а в качестве профиля авторизации - ранее созданный профиль:
И нажать кнопку "Сохранить".
Проверка подключения клиентом
Подробнее настройка клиентского конечного устройства для подключения описана в v0.7_8. Настройка подключения клиента.
Проверка пользователя в Active Directory возможна только при подключении клиента по протоколам MSCHAPv2, EAP-PEAP-MSCHAPv2 и EAP-TLS.
Подключиться клиентом и после авторизации перейти в раздел "Мониторинг" → "RADIUS" → "Пользовательские сессии":
Для подробного просмотра информации о сессии можно в колонке "Подробнее" нажать кнопку :
Траблшутинг подключения
Проблемы с проверкой связи при добавлении источника
В случае если не проходит проверка связи с сервером AD необходимо проверить:
- Внимательно проверить корректность заполнения всех данных для подключения.
Проверить, что DNS-имена домена и сервера AD резолвятся через DNS-запросы. Для этого необходимо подключиться по SSH к серверу и выполнить команды:
Так же рекомендуется в настройках "Структура каталога" указать строки с учетом подразделений, что бы выполнять поиск пользователей и групп в требуемых подразделениях, что может существенно сократить время поиска и повысить стабильность работы, т.к. поиск во всем домене может возвращать очень большое число сущностей.
Далее приведен пример как можно задать значения. Например есть домен "eltex.loc", в котором в подразделение "Eltex" находятся подразделения "Сотрудники" и "Группы".
- "Subject search base": ou=Сотрудники,ou=Eltex,dc=eltex,dc=loc
- "Group search base": ou=Группы,ou=Eltex,dc=eltex,dc=loc
Ошибка "mschap-ad: Unable to contact winbind!"
Данная ошибка возникает в ходе проверки пароля пользователя. За проверку пароля пользователя отвечает сервис "naice-radius".
Причиной ошибки могут служить некорректное указание переменных отвечающих за взаимодействие с MS AD, которые задаются перед запуском плейбуков Ansible или недостаточные права УЗ NAICE, отвечающей за взаимодействиес MS AD.
Для устранения ошибок требуется выполнить следующие действия:
Проверить корректность значений переменных в файле all.yml. Следует обратить внимание, что домен, рабочая группа и имя сервера AD всегда указываются заглавными буквами!
В случае исправления переменных необходимо повторно запустить плейбук установки сервисов.
Проверить, что DNS имена домена и контроллера домена, указанные в переменных "radius_kerberos_kdc" и "radius_kerberos_admin_server" резолвяться в IP адреса. Для этого необходимо подключиться по SSH к серверу и выполнить команды:
если был изменен DNS-сервер хоста - необходимо выполнить рестарт NAICE для применения изменений. Для этого надо зайти в директорию установки NAICE (по умолчанию "/etc/docker-naice") и выполнить команду:
sudo docker compose down && sudo docker compose up -d
Перезапуск всех сервисом может занять до 5 минут.
Для дальнейшей диагностики необходимо зайти в контейнер "naice-radius":
sudo docker exec -it naice-radius bash
в контейнере выполнить команду получения токена "kerberos" из MS AD "kinit <логин УЗ>@<домен AD из radius_kerberos_kdc>" и ввести пароль. Пример:
# kinit admin@TEST.LOC Password for admin@TEST.LOC:
при успешном выполнении команды никакого лога не будет. Можно просмотреть токены командой "klist":
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: admin@WS.LOC Valid starting Expires Service principal 12/13/24 14:27:54 12/14/24 00:27:54 krbtgt/WS.LOC@WS.LOC renew until 12/14/24 14:27:51
В случае возникновения ошибки необходимо проверить корректность используемой УЗ и наличие необходимых прав в MS AD.
Следующим шагом необходимо проверить возможность выполнения включения в домен. Для этого необходимо выполнить команду:
net ads join -U <логин УЗ>@<домен AD из radius_kerberos_kdc> -S <имя сервера AD из radius_kerberos_admin_server> createcomputer='<подразделение в которое требуется добавить компьютер>'
Пример команды:
net ads join -U admin@WS.LOC -S LABMS.WS.LOC createcomputer='Сomputers'
Если используется иерархия подразделение - необходимо указать их через "/" от корня домена. Пример:
net ads join -U admin@WS.LOC -S LABMS.WS.LOC createcomputer='naice/servers'
в результате ожидается вывод:
ошибки в конце о невозможности отрезолвить имя сервера NAICE не имею значения, главное успешный результат "Joined 'naice' to dns domain 'ws.loc'. В результате компьютер с именем сервера NAICE должен появиться в требуемом подразделении AD. В случае возникновения ошибок необходимо проверить прав УЗ NAICE в AD. Обязательно требуется право на добавление компьютера в домен AD!# net ads join -U admin@WS.LOC -S LABMS.WS.LOC createcomputer='computers' Password for [admin@WS.LOC]: Using short domain name -- WS Joined 'naice' to dns domain 'ws.loc' No DNS domain configured for naice. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
Проверить внутри контейнера состояние сервиса "winbind" командой "service winbind status". Пример успешного выполнения:
# service winbind status * winbindd is running
Если сервис не запущен - выполнить рестарт:
# service winbind restart * Stopping Samba Winbind daemon winbindd [ OK ] * Starting Samba Winbind daemon winbindd
Если все вышеперечисленные действия не привели к результату: ошибка сохраняется:
необходимо собрать логи выполняемых действий в отдельный файл.
выгрузить лог "winbind" командой в контейнере:
и сохранить лог в файл.# cat /var/log/samba/log.winbindd
- Выйти из контейнера и выгрузить файл "/var/log/radius/radius.log".
- Обратиться в техническую поддержку с описанием проблемы и приложить собранные файлы.
Сессия не отображается в разделе "Мониторинг - Пользовательские сессии"
Отсутствие сессии пользователя в разделе "Мониторинг - Пользовательские сессии" может происходить по следующим причинам:
- некорректная настройка сетевого устройства, используемого для подключения пользователя.
- некорректная настройка устройства пользователя.
- не совпадающий секретный ключ сетевого устройства в конфигурации устройства и настройках сетевого устройства NAICE.
- не совпадающий IP-адрес сетевого устройства в настройках NAICE.
Для анализа поведения необходимо проанализировать логи файла "/var/log/radius/radius.log". Просмотр файла доступе с правами "sudo".
- в файле нет логов о попытках подключения с IP-адреса сетевого устройства - проверить настройки сетевого устройства и пользователя.
если наблюдаются логи вида:
Error: Ignoring request to acct address * port 1813 bound to server default from unknown client 192.168.0.10 port 49206 proto udp
это означает что сетевое устройство не добавлено в NAICE или у него указан неправильный IP-адрес. Необходимо добавить устройство в раздел "Администрирование - Сетевые ресурсы - Устройство" или исправить его IP-адрес.
если наблюдаются логи вида:
Info: Dropping packet without response because of error: Received Accounting-Request packet from client 192.168.0.10 with invalid Request Authenticator! (Shared secret is incorrect.) (from client sw1)
это означает, что в настройках сетевого устройства указан неправильный секретный ключ. Требуется исправить секретный ключ либо в настройках сетевого устройства в разделе "Администрирование - Сетевые ресурсы - Устройство", либо исправить его на сетевом устройстве.
NAS запись сетевого устройства кэшируется на 1 час! Поэтому новый секретный ключ после изменения не применяется немедленно. Для перечитывания значения секретного ключа необходимо перезапустить сервис naice-radius. Для перезапуска надо зайти в директорию установки NAICE (по умолчанию "/etc/docker-naice") и выполнить команду:
sudo docker compose stop naice-radius && sudo docker compose up -d naice-radius