Перед настройкой интеграции должно быть выполнено добавление компьютера с NAICE в домен. Для этого в момент установки должны были быть настроены параметры подключения, описанные в инструкции по установке или во встроенной документации Если при установке они не были настроены, то требуется указать все необходимые данные и выполнить установку плейбуком повторно поверх существующей инсталляции. Без этих настроек авторизация пользователей через MS AD работать не будет! |
Предварительно также необходимо:
Подробная информация о настройках содержится во встроенной документации, которую можно просмотреть нажав кнопку вверху справа.
Открыть раздел "Администрирование" → "Управление идентификацией" → "Внешние источники идентификации" и нажать кнопку :
Более подробно о настраиваемых параметрах можно узнать во встроенной документации .
После сохранения перейдем в раздел "Группы" и добавить группы, которые предполагается использовать в политиках авторизации:
В данном примере добавляем группу "Гости".
Перейдем в раздел "Атрибуты" и добавим атрибут, значение которого будет использоваться для выдачи 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 к серверу и выполнить команды:
$ dig LABMS.WS.LOC | grep 'ANSWER SECTION' -A 10 ;; ANSWER SECTION: LABMS.WS.LOC. 3600 IN A 192.168.0.1 ;; Query time: 1 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) (UDP) ;; WHEN: Fri Dec 13 17:04:14 +10 2024 ;; MSG SIZE rcvd: 69 $ dig WS.LOC | grep 'ANSWER SECTION' -A 10 ;; ANSWER SECTION: WS.LOC. 600 IN A 192.168.0.1 ;; Query time: 1 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) (UDP) ;; WHEN: Fri Dec 13 17:05:30 +10 2024 ;; MSG SIZE rcvd: 53 |
Так же рекомендуется в настройках "Структура каталога" указать строки с учетом подразделений, что бы выполнять поиск пользователей и групп в требуемых подразделениях, что может существенно сократить время поиска и повысить стабильность работы, т.к. поиск во всем домене может возвращать очень большое число сущностей.
Далее приведен пример как можно задать значения. Например есть домен "eltex.loc", в котором в подразделение "Eltex" находятся подразделения "Сотрудники" и "Группы".
Данная ошибка возникает в ходе проверки пароля пользователя. За проверку пароля пользователя отвечает сервис "naice-radius".
Причиной ошибки могут служить некорректное указание переменных отвечающих за взаимодействие с MS AD, которые задаются перед запуском плейбуков Ansible или недостаточные права УЗ NAICE, отвечающей за взаимодействиес MS AD.
Для устранения ошибок требуется выполнить следующие действия:
Проверить корректность значений переменных в файле all.yml. Следует обратить внимание, что домен, рабочая группа и имя сервера AD всегда указываются заглавными буквами!
use_ms_ad: True radius_ms_ad_ip: '192.168.0.1' radius_kerberos_ad_user_login: 'fill_login' radius_kerberos_ad_user_password: 'fill_password' radius_kerberos_workgroup: 'WS' radius_kerberos_kdc: 'WS.LOC' radius_kerberos_admin_server: 'LABMS.WS.LOC' radius_samba_ou_structure: 'Computers' |
В случае исправления переменных необходимо повторно запустить плейбук установки сервисов.
Проверить, что DNS имена домена и контроллера домена, указанные в переменных "radius_kerberos_kdc" и "radius_kerberos_admin_server" резолвяться в IP адреса. Для этого необходимо подключиться по SSH к серверу и выполнить команды:
$ dig LABMS.WS.LOC | grep 'ANSWER SECTION' -A 10 ;; ANSWER SECTION: LABMS.WS.LOC. 3600 IN A 192.168.0.1 ;; Query time: 1 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) (UDP) ;; WHEN: Fri Dec 13 17:04:14 +10 2024 ;; MSG SIZE rcvd: 69 $ dig WS.LOC | grep 'ANSWER SECTION' -A 10 ;; ANSWER SECTION: WS.LOC. 600 IN A 192.168.0.1 ;; Query time: 1 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) (UDP) ;; WHEN: Fri Dec 13 17:05:30 +10 2024 ;; MSG SIZE rcvd: 53 |
если был изменен 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 |
в результате ожидается вывод:
# 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". Просмотр файла доступе с правами "sudo".
если наблюдаются логи вида:
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") и выполнить команду:
|