Контроль управления доступом
Аутентификация
Аутентификация – это процесс проверки подлинности введённых пользователем имени и пароля. В ARMA Стена возможна аутентификация с использованием локальной или внешней БД пользователей. Для хранения УЗ пользователей по умолчанию применяется локальная БД. В качестве внешней БД служат различные внешние серверы авторизации.
В системе ARMA Стена предусмотрена учётная запись «admin», обладающая правами суперпользователя.
Локальные учётные записи
Добавление пользовательских учётных записей
Для создания пользовательской УЗ необходимо в режиме конфигурирования ввести следующие команды с указанием учётных данных:
set system login user User1 full-name "Fedor Volov" set system login user User1 authentication plaintext-password PasswordUser1где:
«User1» – логин;
«Fedor Volov» – имя пользователя;
«PasswordUser1» – пароль.
Учётные данные приведены в качестве примера.
Для просмотра списка УЗ необходимо ввести следующую команду:
в эксплуатационном режиме:
admin@ngfwos:~$ show system login users #Пример просмотра списка УЗ: Username Type Locked Tty From Last login ---------- ------ -------- ----- ----------- ------------------------ admin ngfwos False pts/0 10.20.21.11 Wed Mar 19 09:34:37 2025 test ngfwos False pts/1 10.20.21.11 Wed Mar 19 13:47:46 2025 admin@ngfwos:~$в конфигурационном режиме:
show system login user #Пример просмотра списка УЗ: user admin { authentication { encrypted-password $6$rounds=6560...30 } class NGFW_Super_Administrators } user test { authentication { encrypted-password $6$rounds=6560...j1 } } [edit] admin@ngfwos#
Политика паролей учётных записей
Команды конфигурации политики паролей УЗ:
Указать максимальную длину пароля:
set system login password maximum-length <max>где <max> - значение максимальной длины пароля. Возможно указать значение в диапазоне от «1» до «128». По умолчанию используется значение «128».
Указать минимальную длину пароля:
set system login password minimum-length <min>где <min> - значение минимальной длины пароля. Возможно указать значение в диапазоне от «1» до «64». По умолчанию используется значение «1».
Указать минимальное количество цифр в пароле:
set system login password minimum-numerics <number>где <number> - количество цифр в пароле. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».
Указать минимальное количество специальных символов в пароле:
set system login password minimum-special <number>где <number> - количество специальных символов. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».
В пароле допускается использовать следующие специальные символы: «!», «#», «%», «&», «(», «)», «*», «+», «,», «.», «/», «:», «;», «<», «=», «>», «@», «[», «]», «^», «_», «{», «|», «}», «~», «`», «$».
Указать минимальное количество букв в нижнем регистре в пароле:
set system login password minimum-lower-case <numberгде <number> - количество букв в нижнем регистре. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».
Указать минимальное количество букв в верхнем регистре в пароле:
set system login password minimum-upper-case <number>где <number> - количество букв в верхнем регистре. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».
Настройка временной блокировки УЗ
Указать количество попыток ввода пароля, после которых УЗ будет заблокирована:
set system login retry-options attemps-before-block <number>где <number> - количество попыток. Возможно указать значение в диапазоне от «1» до «100».
Примечание
Для повышения безопасности и снижения эффективности брутфорс-атак рекомендуется ограничить количество попыток ввода пароля для учётных записей пользователей.
Указать время блокировки УЗ после превышения количества попыток ввода пароля:
set system login retry-options lockout-period seconds <sec> set system login retry-options lockout-period minutes <min> set system login retry-options lockout-period hours <hour>где:
<sec> - количество секунд. Возможно указать значение в диапазоне от «0» до «60»;
<min> - количество минут. Возможно указать значение в диапазоне от «0» до «60»;
<hour> - количество часов. Возможно указать значение в диапазоне от «0» до «168».
Общее время блокировки будет равняться сумме настроенных секунд, минут и часов. По умолчанию УЗ блокируется на 10 минут.
Примечание
Настройки временной блокировки учётной записи в системе ARMA Стена действуют независимо от используемого метода аутентификации.
Примечание
Для досрочной разблокировки УЗ необходимо ввести команду «sudo pam_tally2 -u <user> –reset» под УЗ «admin».
Назначение прав доступа пользовательским учётным записям
Для ограничения прав пользовательских учётных записей используются классы.
Класс представляет собой перечень разрешённых команд для использования в ARMA Стена.
В системе ARMA Стена по умолчанию предусмотрено четыре класса (см. Таблица «Список классов по умолчанию»).
Класс |
Описание |
Список разрешённых команд |
---|---|---|
NGFW_Super_Administrators |
Специальный класс для встроенной УЗ admin |
ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:
КОНФИГУРАЦИОННЫЙ РЕЖИМ:
|
NGFW_Administrators |
Группа администраторов с полными правами |
ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:
КОНФИГУРАЦИОННЫЙ РЕЖИМ:
|
Network_Administrators |
Группа администраторов сети |
ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:
КОНФИГУРАЦИОННЫЙ РЕЖИМ:
|
Security_Engineers |
Группа инженеров безопасности |
ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:
КОНФИГУРАЦИОННЫЙ РЕЖИМ:
|
Примечание
Класс пользователя «NGFW_Super_Administrators» предназначен исключительно для встроенной учётной записи «admin». Добавление других учётных записей в этот класс не допускается.
Класс пользователя «NGFW_Super_Administrators» не может быть изменён или удалён.
Для настройки классов необходимо ввести следующую команду в конфигурационном режиме:
set system login class <name_class> <operational-command | configure-command> <team>где:
<name_class> - уникальное имя класса;
<operational-command> - установка прав на использование команд в эксплуатационном режиме;
<configure-command> - установка прав на использование команд в конфигурационном режиме;
<team> - разрешённая команда.
Для добавления описания класса следует ввести команду:
set system login class <name_class> description <text>где <text> - текстовое описание класса. Описание не должно превышать «255» символов. Если описание содержит пробелы или символ «#», то его необходимо заключить в двойные кавычки.
Для добавления класса к учётной записи пользователя необходимо ввести команду:
set system login user <name_user> class <name_class>где <name_user> - имя учётной записи пользователя.
Для каждой учётной записи пользователя возможно назначить только один класс.
Для просмотра списка разрешённых команд для класса необходимо в режиме конфигурации ввести команду:
show system login class [name_class] [operational-command | configure-command]
Примечание
Встроенной учётной записи «admin» запрещено изменять класс, удалять или отключать её.
Примечание
При отсутствии назначенного класса доступа или наличии класса с пустым набором разрешенных команд, пользователь получает доступ к минимальному набору команд. Данный механизм обеспечивает необходимый минимум функционала для взаимодействия с системой в условиях отсутствия явных прав доступа.
Список разрешённых команд в эксплуатационном режиме:
configure - войти в режим настройки;
exit - выйти из системы.
Список разрешённых команд в конфигурационном режиме:
commit - зафиксировать текущий набор изменений;
commit-confirm - зафиксировать текущий набор изменений с обязательным «подтверждением»;
confirm - подтвердить предыдущую фиксацию - подтвердить;
discard - отменить незафиксированные изменения;
exit - выход с этого уровня конфигурации;
run - выполнить команду эксплуатационного режима;
save - сохранить конфигурацию в файл.
Пример настройки прав учётной записи пользователя
В качестве примера приведён список команд для создания учётной записи «test» с паролем «Password» и разрешением прав на использование команд: ping, set service dns, delete service dns, show service dns.
set system login user test authentication plaintext-password Password set system login class c_dns set system login class c_dns operational-command ping set system login class c_dns operational-command configure set system login class c_dns configure-command "set service dns" set system login class c_dns configure-command "delete service dns" set system login class c_dns configure-command "show service dns" set system login user test class c_dns commit save
Блокирование доступа пользователя
При необходимости блокирования доступа пользователя следует ввести следующую команду:
set system login user User1 disable
Завершение сессии пользователя
Для завершения сессии пользователя необходимо в эксплуатационном режиме ввести команду «exit»:
admin@ngfwos:~$ exit
Аутентификация RADIUS
RADIUS (Remote Authentication Dial-In User Service) — это сетевой протокол, который обеспечивает централизованную аутентификацию, авторизацию и учёт пользователей.
Система ARMA Стена поддерживает RADIUS-серверы в качестве серверной части для пользовательской аутентификации.
Атрибут «cisco-avpair = shell:priv-lvl» в Radius-сервере предназначен для определения уровня привилегий учетных записей. В системе ARMA Стена реализованы два уровня доступа для учетных записей Radius-сервера:
Полный доступ (priv-lvl=15) - предоставляет разрешение на выполнение всех команд системы, за исключением команды «sudo».
Ограниченный доступ (priv-lvl=0-14) - предоставляет разрешение на выполнение ограниченного набора команд, представленных таблице «Список разрешённых команд для УЗ RADIUS-сервера с ограниченным доступом).
Таблица «Список разрешённых команд для УЗ RADIUS-сервера с ограниченным доступом» Режим работы
Команда
Краткое описание
Эксплуатационный
exit
Выход из системы
Эксплуатационный
monitor
Мониторинг системной информации
Эксплуатационный
ping
Отправить запрос эха ICMP
Эксплуатационный
show
Просмотр настроек и журнала событий системы
Эксплуатационный
telnet
Telnet к узлу
Эксплуатационный
traceroute
Трассировка сетевого пути к узлу
Перед началом настройки внешнего Radius-сервера необходимо убедиться в наличии сетевого доступа к данному серверу.
Примечание
При обнаружении идентичных учётных записей в локальной базе данных пользователей и в Radius-сервере, система ARMA Стена осуществляет аутентификацию посредством локальной учётной записи. Данный механизм приоритезации не применяется в случае установки режима безопасности «mandatory», который принудительно использует аутентификацию через Radius-сервер, игнорируя наличие дублирующих учётных записей в локальной базе данных.
Добавление внешнего Radius-сервера
Для добавления внешнего Radius-сервера необходимо выполнить следующие настройки:
Указать IP-адрес Radius-сервера и общий ключ, который используется для шифрования обмена данными между ARMA Стена и Radius-сервером:
set system login radius server <address> key <secret>где:
<address> - IP-адрес Radius-сервера в формате <x.x.x.x> для IPv4 или <h:h:h:h:h:h:h:h> для IPv6;
<secret> - значение ключа, который используется для шифрования.
Указать порт, через который будет осуществляться доступ к Radius-серверу:
set system login radius server <address> port <port>где <port> - номер порта. Возможно указать значение в диапазоне от «1» до «65535». По умолчанию используется порт «1812».
Дополнительные команды настройки Radius-сервера
Указать приоритет Radius-серверу:
set system login radius server <address> priority <1-255>где <1-255> - номер приоритета для указанного Radius-сервера. Возможно указать значение в диапазоне от «1» до «255». По умолчанию используется значение «255». Чем ниже число, тем выше приоритет сервера.
Используется для определения порядка обращения к Radius-серверам при аутентификации.
Установить время ожидания для получения ответа от Radius-сервера:
set system login radius server <address> timeout <timeout>где <timeout> - время ожидания в секундах. Возможно указать значение в диапазоне от «1» до «240». По умолчанию используется значение «2».
Определяет, как долго ARMA Стена будет ожидать ответа от Radius-сервера. Помогает предотвратить зависание системы при недоступности сервера. При отсутствии ответа в течение заданного времени система перейдёт к локальной аутентификации или к другим настроенным Radius-серверам.
При настройке тайм-аута необходимо определить значение, которое обеспечит оптимальное соотношение между скоростью проверки подлинности и безопасностью. Слишком малое значение тайм-аута может привести к ложным отказам при нормальной работе сети, а слишком большое — к замедлению процесса аутентификации.
Временно отключить указанный Radius-сервера:
set system login radius server <address> disableКоманда временно отключает указанный Radius-сервер, в результате чего система перестает обращаться к нему при попытке аутентификации пользователей. Для отмены отключения сервера необходимо удалить данную настройку через команду «delete».
Установить IP-адрес источника, с которого будут отправляться запросы к Radius-серверам:
set system login radius source-address <address>где <address> - IP-адрес источника в формате <x.x.x.x> для IPv4 или <h:h:h:h:h:h:h:h> для IPv6.
Команда задает фиксированный IP-адрес, с которого ARMA Стена будет отправлять запросы ко всем настроенным Radius-серверам. Это особенно важно в случаях, когда Radius-серверы ограничивают доступ только с определенных IP-адресов.
Определить режим безопасности для аутентификации Radius:
set system login radius security-mode <mandatory | optional>
mandatory - вся аутентификация осуществляется исключительно через Radius-сервер. Локальная база пользователей отключается. При недоступности Radius-сервера доступ к устройству блокируется.
optional - осуществляется первичная попытка аутентификации через Radius-сервер, при неудаче производится попытка локальной аутентификации. Доступ к устройству сохраняется при недоступности Radius-сервера. По умолчанию установлен режим «optional».
Команда определяет порядок аутентификации пользователей на устройстве ARMA Стена. Режим «mandatory» обеспечивает максимальную безопасность, но несет риски потери доступа. Режим «optional» предоставляет баланс между безопасностью и доступностью, но требует дополнительного администрирования.
Указать виртуальную сеть (VRF), через которую будет осуществляться подключение к Radius-серверу:
set system login radius vrf <vrf>где <vrf> - имя виртуальной сети vrf.
Команда используется для указания, что все подключения к Radius-серверам должны исходить из указанной виртуальной сети (vrf). Это позволяет изолировать трафик аутентификации RADIUS в определённой виртуальной сети, что может быть полезно в сложных сетевых конфигурациях, где требуется сегментация трафика.
Multifactor Radius Adapter
ARMA Стена предоставляет возможность проводить аутентификацию пользователей на удалённом Radius-сервере. В данном примере в качестве Radius-сервера будет использоваться Multifactor Radius Adapter, который доступен в двух версиях: для Windows и для Linux.
Multifactor Radius Adapter - Windows
В качестве примера настройки Multifactor Radius Adapter для Windows будет использоваться стенд представленный на рисунке (см. Рисунок – Схема стенда для настройки Multifactor Radius Adapter - Windows).

Рисунок – Схема стенда для настройки Multifactor Radius Adapter - Windows
Для получения доступа необходимо выполнить следующие шаги:
Настроить ARMA Стена.
Настроить Windows Server.
Проверка работы службы.
Настройка ARMA Стена
Настройка интерфейсов
На первом шаге необходимо предоставить ARMA Стена доступ к интернету. Для этого требуется подключить интерфейс «eth0» к корпоративной сети, назначить ему IP-адрес вручную или через DHCP-сервер и присвоить описание «WAN»:
set interfaces ethernet eth0 address <x.x.x.x/x | dhcp> set interfaces ethernet eth0 description "WAN" commit save
Далее необходимо назначить интерфейсу «eth1», направленному в локальную подсеть, IP-адрес и присвоить ему описание «LAN»:
set interfaces ethernet eth1 address 192.168.1.1/24 set interfaces ethernet eth1 description "LAN" commit save
Для просмотра информации о настройках интерфейсов необходимо ввести следующую команду в эксплуатационном режиме (см. Рисунок – Назначенные IP-адреса интерфейсам LAN и WAN):
admin@ngfwos:~$ show interfaces

Рисунок – Назначенные IP-адреса интерфейсам LAN и WAN
Настройка DHCP-сервера
Необходимо настроить DHCP-сервер на интерфейсе «eth1» для автоматической выдачи адресов устройствам в локальной сети:
set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 default-router 192.168.1.1 set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 name-server 192.168.1.1 set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 lease 86400 set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 start 192.168.1.100 set service dhcp-server shared-network-name LAN subnet 192.168.1.0/24 range 0 stop 192.168.1.150 commit saveгде:
LAN - имя пула;
192.168.1.1 - IP-адрес шлюза по умолчанию;
86400 - время аренды IP-адресов в секундах;
192.168.1.100 - начальный IP-адрес пула адресов;
192.168.1.150 - конечный IP-адрес пула адресов.
Настройка DNS-ретрансляции
Команды настройки DNS-ретрансляции:
set service dns forwarding cache-size 0 set service dns forwarding listen-address 192.168.1.1 set service dns forwarding allow-from 192.168.1.0/24 commit saveгде:
cache-size 0 - запись в кэш DNS-ретрансляции отключена;
192.168.1.1 - IP-адрес интерфейса, на котором прослушиваются запросы DNS;
192.168.1.0/24 - подсеть, на которой разрешён доступ к DNS-ретрансляции.
Настройка NAT
Для настройки правил NAT необходимо ввести следующие команды:
set nat source rule 11 outbound-interface name eth1 set nat source rule 11 source address 192.168.1.0/24 set nat source rule 11 translation address masquerade commit save
Добавление DNS-сервера
Для настройки DNS-сервера необходимо ввести следующие команды:
set system name-server 8.8.8.8 set system name-server 172.16.230.11 commit saveгде:
8.8.8.8 - публичный DNS-сервер google;
172.16.230.11 - DNS-сервер корпоративной сети.
Настройка маршрутизации
Для настройки шлюза по умолчанию необходимо ввести следующую команду:
set protocols static route 0.0.0.0/0 next-hop 172.16.230.1 commit save
Добавление Radius-server
Для добавления Radius-server необходимо ввести следующие команды:
set system login radius server <192.168.1.x> key <secretRadius> set system login radius server <192.168.1.x> port 1812 commit saveгде:
<192.168.1.x> - IP-адрес, который был выдан Windows Server;
<secretRadius> - секретный ключ, который был указан при конфигурировании Radius адаптера.
Настройка Windows Server
Первичная настройка
Перед началом работы необходимо, чтобы был настроен контроллер домена с установленными доменными службами Active Directory.
Настройка контроллера домена под Windows Server
Открыть окно «Сетевые подключения». Для этого необходимо нажать сочетание клавиш «Win+R» и в открывшемся окне «Выполнить» ввести команду «ncpa.cpl».
Нажать ПКМ по сетевому адаптеру, выбрать пункт меню «Свойства» и в открывшемся окне «Свойства» перейти в параметры «IP версии 4 (TCP/IPv4)» двойным нажатием ЛКМ (см. Рисунок – Окно свойств сетевого адаптера). Изменить динамические параметры IP и DNS на статические и ввести необходимые значения.

Рисунок – Окно свойств сетевого адаптера
Открыть окно «Свойство системы». Для этого необходимо нажать сочетание клавиш «Win+R» и в открывшемся окне «Выполнить» ввести команду «sysdm.cpl». Нажать кнопку «Изменить» и в окне «Изменение имени компьютера или домена» переименовать компьютер в «DC1» (см. Рисунок – Изменение имени хоста).

Рисунок – Изменение имени хоста
После применения настроек необходимо перезагрузить компьютер.
После перезагрузки компьютера необходимо открыть «Диспетчер серверов», выбрать опцию «Добавить роли и компоненты», указать сервер DC1 и нажать кнопку «Далее» (см. Рисунок – Выбор целевого сервера).

Рисунок – Выбор целевого сервера
В ролях выбрать «DNS-сервер» и «Доменные службы Active Directory», в компонентах оставить всё как есть и следовать мастеру установки (см. Рисунок – Роли сервера).

Рисунок – Роли сервера
Далее необходимо настроить Active Directory. Для этого требуется нажать на иконку флага с восклицательным знаком в Диспетчере устройств и выбрать «Повысить роль этого сервера до уровня контроллера домена» (см. Рисунок – Настройка Active Directory).

Рисунок – Настройка Active Directory
В открывшемся окне «Мастер настройки доменных служб Active Directory» выбрать «Добавить новый лес» и указать имя корневого домена. Имя «IW2FA.ru» указано в качестве примера (см. Рисунок – Конфигурация Active Directory).

Рисунок – Конфигурация Active Directory
На следующем шаге необходимо придумать пароль для службы восстановления каталогов (см. Рисунок – Пароль для службы восстановления каталогов).

Рисунок – Пароль для службы восстановления каталогов
Мастер настройки предложит создать делегирование DNS. Однако в данном случае это не требуется, поэтому можно пропустить этот этап.
На следующем этапе мастер настройки автоматически пропишет имя домена NetBIOS. При необходимости возможно изменить его (см. Рисунок – Имя домена NetBIOS).

Рисунок – Имя домена NetBIOS
Выполнить настройку доменных служб Active Directory в соответствии с инструкциями мастера, не изменяя параметры по умолчанию. По завершении настройки перезагрузить компьютер.
Создание пользователей и групп Active Directory
Перейти в диспетчер серверов, открыть вкладку «Средства» и выбрать «Пользователи и компьютеры Active Directory» (см. Рисунок – Настройка пользователей Active Directory).

Рисунок – Настройка пользователей Active Directory
В открывшемся окне «Active Directory - пользователи и компьютеры» перейти в лес «IW2FA.ru», нажать ПКМ по директории «Users» и выбрать «Создать». В меню «Создать» выбрать «Пользователь» (см. Рисунок – Добавление пользователя).

Рисунок – Добавление пользователя
Откроется окно «Новый объект - Пользователь». Заполнить поля: «Имя», в примере используется имя «User(6)01»; «Имя входа пользователя», в примере используется - «user01». По завершению ввода параметров, нажать кнопку «Далее». Ввести пароль для создаваемого пользователя и установить флажок в чекбокс «Срок действия пароля не ограничен».
По аналогии с созданием пользователей, для создания группы пользователей необходимо нажать ПКМ по директории «Users», выбрать «Создать», после чего выбрать «Группа».
В открывшемся окне «Новый объект - Группа» ввести название группы.
Для добавления пользователей в созданную группу необходимо нажать ПКМ по необходимой группе. В контекстном меню выберите пункт «Добавить в группу…» и в открывшемся окне найти и добавить требуемых пользователей.
Подготовка Radius адаптера
Необходимо скачать актуальную версию утилиты Radius адаптер с официального сайта https://multifactor.ru. Для этого в пункте «Теория» перейти во вкладку «RADIUS адаптер» и затем во вкладку «Windows версия», далее перейти по ссылке «сборка» (см. Рисунок – Документация Radius адаптера).

Рисунок – Документация Radius адаптера
После загрузки, распаковать скачанный архив и поместить его в корневую папку диска С в Windows Server.
Добавление Multifactor Radius Adapter
Перейти на сайт https://admin.multifactor.ru/account/login и зарегистрироваться (см. Рисунок – Регистрация на сайте Multifactor).

Рисунок – Регистрация на сайте Multifactor
После завершения регистрации будет запущен мастер настройки многофакторной аутентификации для административной панели. Будет предложено установить приложение Multifactor на смартфон для входа на сайт (см. Рисунок – Установка приложения Multifactor). Если необходимо выбрать другой способ аутентификации, требуется нажать на значок в виде шестерёнки в правом верхнем углу окна настройки, перейти в раздел «Расширенные настройки» и выбрать подходящий способ аутентификации (см. Рисунок – Расширенные настройки).

Рисунок – Установка приложения Multifactor

Рисунок – Расширенные настройки
После добавления способа аутентификации необходимо подтвердить вход в панель администратора с помощью выбранного ранее способа.
В панели администратора перейти в раздел «Ресурсы» и нажать кнопку «Добавить ресурсы» (см. Рисунок – Добавление ресурсов).

Рисунок – Добавление ресурсов
Выбрать добавление ресурса «Другое» и в открывшемся окне заполнить необходимые настройки (см. Рисунок – Настройка ресурса).

Рисунок – Настройка ресурса
После добавления ресурса откроется окно с его параметрами. Необходимо скопировать параметры «NAS Identifier» и «Shared Secret» (см. Рисунок – Параметры добавленного ресурса). Они необходимы для конфигурирования Radius адаптер на Windows Server и для добавления Radius-server в ARMA Стена.

Рисунок – Параметры добавленного ресурса
Конфигурирование Radius адаптера
Открыть директорию с ранее извлечёнными из архива файлами Radius адаптера. Скопировать файл «cisco with ad.config.template», расположенный в папке «Clients» и переименовать его в «arma with ad.config.template». Удалить расширение «.template», чтобы получилось «arma with ad.config». Таким образом, из предустановленного шаблона получится файл для конфигурации подключения адаптера к ARMA Стена.
Открыть полученный файл «arma with ad.config» для редактирования с помощью программы «Блокнот» и внести следующие изменения в файле (см. Рисунок – Исходный шаблон конфигурации):
установить IP-адрес ARMA Стена;
ввести придуманный секретный ключ, который будет использоваться при настройке Radius-сервера в ARMA Стена;
внести имя домена Active Directory, по которому будет проводиться аутентификация;
указать группу, которой предоставляется доступ без второго фактора аутентификации;
указать группу, у которой будет запрашиваться второй фактор аутентификации;
ввести NAS Identifier, полученный на сайте Multifactor;
ввести Shared Secret, полученный на сайте Multifactor.

Рисунок – Исходный шаблон конфигурации
Пример конфигурационного файла, в котором не предусмотрена поддержка группы без второго фактора аутентификации (см. Рисунок – Пример конфигурационного файла):

Рисунок – Пример конфигурационного файла
Запуск Radius адаптера
Компонент может работать как в режиме консоли, так и в качестве службы операционной системы Windows. Для запуска компонента в режиме консоли достаточно запустить приложение.
Для установки Radius адаптера в качестве службы Windows необходимо перейти в папку с файлами адаптера и выполнить команду с ключом «/i» от имени администратора: «MultiFactor.Radius.Adapter.exe /i».
Для удаления Radius адаптера необходимо выполнить команду от имени администратора: «sc delete MFRadiusAdapter».
Проверка работы службы
Примечание
Перед началом работы необходимо отключить брандмауэр Windows!
При входе в NGFW и аутентификации с использованием учётных данных из группы, указанной в поле «active_directory_2fa_group» при настройке адаптера, система предложит зарегистрировать второй фактор аутентификации для пользователя (если он ещё не был зарегистрирован). В случае, если второй фактор уже зарегистрирован, система проверит его (см. Рисунок – Аутентификация):

Рисунок – Аутентификация
Multifactor Radius Adapter - Linux
В качестве примера настройки Multifactor Radius Adapter для CentOS будет использоваться стенд представленный на рисунке (см. Рисунок – Схема стенда для настройки Multifactor Radius Adapter - Linux).

Рисунок – Схема стенда для настройки Multifactor Radius Adapter - Linux
Инструкции по настройке ARMA Стена и Multifactor Radius Adapter представлены в соответствующих разделах: «Настройка ARMA Стена» и «Добавление Multifactor Radius Adapter».
Настройка CentOS 7
Необходимо внести изменения в конфигурацию сетевого интерфейса CentOS. Для этого следует изменить параметр «ONBOOT» в файле «/etc/sysconfig/network-scripts/ifcfg-eth0» с «ONBOOT=no» на «ONBOOT=yes». После этого необходимо перезагрузить сетевую службу с помощью команды «systemctl restart network». Это позволит интерфейсу автоматически включаться при загрузке системы.
Для начала установки компонента Multifactor Radius Adapter необходимо обновить имеющиеся пакеты и проверить наличие доступа к репозиториям. Это осуществляется с помощью команды «yum -y update && yum -y upgrade». Однако при выполнении этой команды может возникнуть ошибка (см. Рисунок – Возможная ошибка).

Рисунок – Возможная ошибка
Это свидетельствует о том, что доменное имя зеркал репозиториев не разрешается по неизвестной причине. Данная проблема может быть решена путём настройки других репозиториев, которые находятся в каталоге «/etc/yum.repos.d/CentOS-Base.repo». Вот так выглядят репозитории по умолчанию (см. Рисунок – Репозитории по умолчанию):

Рисунок – Репозитории по умолчанию
Необходимо закомментировать имеющиеся зеркала и указать другие значения «baseurl» в каждом блоке. В данном примере используются архивы snapshot 2021 г. (см. Рисунок – Комментирование имеющихся зеркал):

Рисунок – Комментирование имеющихся зеркал
После этих действий команда «yum -y update && yum -y upgrade» выполнится без ошибок.
Далее необходимо установить среду выполнения APS.NET Core runtime версии 6:
sudo rpm -Uvh https: packages.microsoft.com/config/centos/7/packages- microsoft-prod.rpm sudo yum install aspnetcore-runtime-6.0
После этого необходимо сформировать каталог для файлов инструмента, скопировать сборку в созданную папку и создать учётную запись, под которой будет работать служба:
sudo mkdir /opt/multifactor /opt/multifactor/radius/opt/multifactor/radius/logs # создание папок для файлов адаптера sudo wget https: github.com/MultifactorLab/multifactor-radius-adapter/releases/latest/download/release_linux_x64.zip # клонирование сборки sudo unzip release_linux_x64.zip -d /opt/multifactor/radius # распаковка архива sudo useradd -r mfa # создание пользователя sudo chown -R mfa:mfa /opt/multifactor/radius/ # присвоение директорий пользователю sudo chown -R mfa:mfa /opt/multifactor/radius/clients sudo chmod -R 700 /opt/multifactor/radius/ # изменять директории может только пользователь sudo chmod -R 700 /opt/multifactor/radius/clients
Необходимо создать службу systemd для адаптера. Для этого сначала требуется создать файл службы с помощью команды «sudo vi /etc/systemd/system/multifactor-radius.service», а затем изменить его содержимое:
[Unit] Description=Multifactor Radius Adapter [Service] WorkingDirectory=/opt/multifactor/radius/ ExecStart=/usr/bin/dotnet /opt/multifactor/radius/multifactor-radius- adapter.dll Restart=always # Restart service after 10 seconds if the service crashes: RestartSec=10 KillSignal=SIGINT SyslogIdentifier=multifactor-radius User=mfa Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false # How many seconds to wait for the app to shut down after it receives the initial interrupt signal. # If the app doesn't shut down in this period, SIGKILL is issued to terminate the app. # The default timeout for most distributions is 90 seconds. TimeoutStopSec=30 [Install] WantedBy=multi-user.target
После этого необходимо выполнить команду для запуска службы: «sudo systemctl enable multifactor-radius».
Затем приступить к редактированию конфигурации серверов Radius. Общие параметры работы компонента хранятся в файле «/opt/multifactor/radius/multifactor-radius-adapter.dll.config» в формате «xml»:
<!-- Адрес и порт (UDP), по которому адаптер будет принимать запросы на аутентификацию от клиентов --> <add key="adapter-server-endpoint" value="0.0.0.0:1812"/> <!-- Адрес API MULTIFACTOR --> <add key="multifactor-api-url" value="https: api.multifactor.ru"/> <!-- Доступ к API MULTIFACTOR через HTTP прокси (опционально) --> <!-- <add key="multifactor-api-proxy" value="http: login:password@proxy:3128"/> --> <!-- Уровень логирования: 'Debug', 'Info', 'Warn', 'Error' --> <add key="logging-level" value="Debug"/>
Шаблоны для настройки отдельных подключений находятся в каталоге «/opt/multifactor/radius/clients». Для создания необходимой конфигурации, требуется скопировать имеющийся шаблон «cisco with ad.config.template» с помощью команды «cp cisco/with/ad.config.template [указать имя].config». Таким образом, будет скопирован шаблон конфигурации для связи с Active Directory, содержащий следующие данные:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="RadiusReply" type="MultiFactor.Radius.Adapter.RadiusReplyAttributesSection, multifactor-radius-adapter"/> </configSections> <appSettings> <!-- cisco asa ip --> <add key="radius-client-ip" value="10.10.10.10"/> <!-- shared secret between this service and cisco --> <add key="radius-shared-secret" value="0000000000"/> <!-- One of: ActiveDirectory, ADLDS, Radius, None --> <add key="first-factor-authentication-source" value="ActiveDirectory"/> <!-- ActiveDirectory authentication settings: for example domain local on host 10.0.0.4 --> <add key="active-directory-domain" value="ldaps:10.0.0.4/DC=domain,DC=local"/> <!-- ActiveDirectory access group (optiona): --> <add key="active-directory-group" value="UPN Users"/> <!-- ActiveDirectory 2FA group (optional) --> <add key="active-directory-2fa-group" value="2FA Users"/> <!-- get it from multifactor management panel --> <add key="multifactor-nas-identifier" value="1"/> <!-- get it from multifactor management panel --> <add key="multifactor-shared-secret" value="2"/> </appSettings> <RadiusReply> <Attributes> <add name="Class" from="memberOf"/> </Attributes> </RadiusReply> </configuration>
Необходимо внести следующие изменения в файл шаблона конфигурации:
поле «radius-client-ip» должно быть изменено на 192.168.1.1, так как Radius-сервер находится в локальной сети, а клиентом является ARMA Стена;
поле «radius-shared-secret» должно содержать значение, которое было придумано при настройке аутентификации Radius на ARMA Стена;
поле «active-directory-domain» должно быть изменено в соответствии с доменом Active Directory, который присутствует в подсети;
поле «active-directory-group» должно быть удалено, чтобы всегда использовался второй фактор аутентификации, указанный в поле «active-directory-2fa-group»;
поля «multifactor-nas-identifier» и «multifactor-shared-secret» должны быть взяты из панели администратора при создании ресурса для аутентификации.
Необходимо перезагрузить подсистемы служб и созданную службу для применения изменений:
sudo systemctl daemon-reload sudo systemctl restart multifactor-radius
Возможные ошибки
В случае возникновения ошибки «Unable to load shared library „ldap.so.2“ or one of its dependencies», необходимо внести коррективы в цепочку таким образом, чтобы симлинк «libldap.so.2» в конечном итоге указывал на конкретную библиотеку «libldap-2.X.so.2.Y.Z».
Пример: libldap.so.2 * libldap-2.4.so.2 это симлинк libldap-2.4.so.2 * libldap_r-2.4.so.2 это симлинк libldap_r-2.4.so.2 * libldap_r-2.4.so.2.11.5 это симлинк libldap_r-2.4.so.2.11.5 это сама библиотека.
Проверка и исправление символических ссылок: для проверки символических ссылок необходимо определить местоположение библиотеки «libldap». Обычно она находится в каталоге «/usr/lib/x86_64-linux-gnu».
Далее необходимо выполнить команду «ls -la», чтобы просмотреть список всех файлов и символических ссылок. Необходимо найти информацию о том, как и кто ссылается на библиотеку «libldap», а также определить, каких ссылок не хватает.
Чаще всего отсутствует одна ссылка — с «libldap.so.2» на основную версию библиотеки. Команды создания недостающего симлинка:
Для Debian и Ubuntu: ln -s/usr/lib/x86_64-linux-gnu/libldap-2.4.so.2 /usr/lib/x86_64-linux- gnu/libldap.so.2 Для CentOS и REDOS: ln -s /usr/lib64/libldap_r-2.4.so.2.10.9 /usr/lib64/libldap.so.2 #Версии библиотек могут отличатьсяАналогичные действия выполняются с библиотекой «liblber».
В случае возникновения ошибки «Unable to start: Address already in use», существует два способа её устранения:
Если используете запуск адаптера через «/opt/multifactor/radius/multifactor-radius-adapter», то необходимо отключить адаптер как службу:
sudo systemctl stop multifactor-radius sudo systemctl disable multifactor-radius sudo rm /etc/systemd/system/multifactor-radius.service sudo systemctl daemon-reloadПерейти в «/opt/multifactor/radius/multifactor-radius-adapter.dll.config» используя команду «sudo nano /opt/multifactor/radius/multifactor-radius-adapter.dll.config» и изменить порт в поле «adapter-server-endpoint».