Контроль управления доступом

Аутентификация

Аутентификация – это процесс проверки подлинности введённых пользователем имени и пароля. В 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» – пароль.

Учётные данные приведены в качестве примера.

Для просмотра списка УЗ необходимо ввести следующую команду в конфигурационном режиме:

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#

Политика паролей учётных записей

Команды конфигурации политики паролей УЗ:

  1. Указать максимальную длину пароля:

set system login password maximum-length <max>

где <max> - значение максимальной длины пароля. Возможно указать значение в диапазоне от «1» до «128». По умолчанию используется значение «128».

  1. Указать минимальную длину пароля:

set system login password minimum-length <min>

где <min> - значение минимальной длины пароля. Возможно указать значение в диапазоне от «1» до «64». По умолчанию используется значение «1».

  1. Указать минимальное количество цифр в пароле:

set system login password minimum-numerics <number>

где <number> - количество цифр в пароле. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».

  1. Указать минимальное количество специальных символов в пароле:

set system login password minimum-special <number>

где <number> - количество специальных символов. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».

В пароле допускается использовать следующие специальные символы: «!», «#», «%», «&», «(», «)», «*», «+», «,», «.», «/», «:», «;», «<», «=», «>», «@», «[», «]», «^», «_», «{», «|», «}», «~», «`», «$».

  1. Указать минимальное количество букв в нижнем регистре в пароле:

set system login password minimum-lower-case <number

где <number> - количество букв в нижнем регистре. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».

  1. Указать минимальное количество букв в верхнем регистре в пароле:

set system login password minimum-upper-case <number>

где <number> - количество букв в верхнем регистре. Возможно указать значение в диапазоне от «1» до «32». По умолчанию используется значение «0».

Настройка временной блокировки УЗ

  1. Указать количество попыток ввода пароля, после которых УЗ будет заблокирована:

set system login retry-options attemps-before-block <number>

где <number> - количество попыток. Возможно указать значение в диапазоне от «1» до «100».

Примечание

Для повышения безопасности и снижения эффективности брутфорс-атак рекомендуется ограничить количество попыток ввода пароля для учётных записей пользователей.

  1. Указать время блокировки УЗ после превышения количества попыток ввода пароля:

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 Стена действуют независимо от используемого метода аутентификации.

Назначение прав доступа пользовательским учётным записям

Для ограничения прав пользовательских учётных записей используются классы.

Класс представляет собой перечень разрешённых команд для использования в ARMA Стена.

В системе ARMA Стена по умолчанию предусмотрено четыре класса (см. Таблица «Список классов по умолчанию»).

Таблица «Список классов по умолчанию»

Класс

Описание

Список разрешённых команд

NGFW_Super_Administrators

Специальный класс

для встроенной

УЗ admin

ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:

  • полный доступ.

КОНФИГУРАЦИОННЫЙ РЕЖИМ:

  • полный доступ.

NGFW_Administrators

Группа

администраторов

с полными правами

ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:

  • полный доступ, за исключением

команды пересчёта контрольной

суммы (integrity-control).

КОНФИГУРАЦИОННЫЙ РЕЖИМ:

  • полный доступ, за исключением

команды редактирования - edit

и выключения блокировки

сетевых интерфейсов в аварийном

режиме - emergency remove-nics.

Network_Administrators

Группа

администраторов

сети

ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:

  • clear

  • force

    • arp

    • ipv6-nd

    • ipv6-rd

    • mtu

    • ntp

    • openconnect-server

    • owping

    • twping

    • vrf

  • generate

    • interfaces

    • ipsec

    • macsec

    • openconnect

    • openvpn

    • pki

    • public-key-command

    • ssh

    • system

    • tech-support

    • wireguard

  • import

  • monitor

  • mtr

  • ping

  • poweroff

  • reboot

  • release

  • renew

  • reset

  • restart

  • set

    • pppoe-server

  • show

    • arp

    • babel

    • bfd

    • bgp

    • bridge

    • conntrack

    • conntrack-sync

    • date

    • dhcp

    • dhcpv6

    • dns

    • evpn

    • host

    • interfaces

    • ip

    • ipoe-server

    • ipv6

    • isis

    • l2tp-server

    • lldp

    • logging

      • conntrack-sync

      • dhcp

      • dhcpv6

      • dns

      • https

      • ipoe-server

      • lldp

      • nat

      • ntp

      • pppoe

      • pppoe-server

      • snmp

      • ssh

      • vpn

      • vrrp

      • webproxy

    • monitoring

    • mpls

    • nat

    • nat66

    • nhrp

    • ntp

    • openconnect-server

    • openvpn

    • pki

    • policy

    • poweroff

    • pppoe-server

    • pptp-server

    • protocols

    • reboot

    • reverse-proxy

    • route-map

    • rpki

    • segment-routing

    • sflow

    • snmp

    • ssh

    • sstp-server

    • table

    • tech-support

    • version

    • vpn

    • vrf

    • vrrp

    • wan-load-balabce

    • webproxy

    • zebra

  • telnet

  • traceroute

  • update

  • wake-on-lan

КОНФИГУРАЦИОННЫЙ РЕЖИМ:

  • comment

  • copy/delete/rename/set/show

    • high-availability

    • interfaces

    • load-balancing

    • nat

    • nat64

    • nat66

    • policy

    • protocols

    • pki

    • qos

    • service

      • active-sync-proxy

      • broadcast-relay

      • dhcp-relay

      • dhcp-server

      • dhcpv6-relay

      • dhcpv6-server

      • dns

      • event-handler

      • https

      • ipoe-server

      • lldp

      • mdns

      • ndp-proxy

      • ntp

      • pppoe-server

      • router-advert

      • snmp

      • ssh

      • stunnel

      • tftp-server

      • webproxy

    • system

      • conntrack

      • flow-accounting

      • frr

      • ip

      • ipv6

      • logging

      • name-server

      • proxy

      • sflow

      • static-host-mapping

    • vpn

    • vrf

Security_Engineers

Группа инженеров

безопасности

ЭКСПЛУАТАЦИОННЫЙ РЕЖИМ:

  • generate

    • firewall

  • monitor

  • ping

  • poweroff

  • reboot

  • show

    • date

    • conntrack

    • firewall

    • flow-accounting

    • host

    • interfaces

    • logging

      • firewall

      • idps

      • nat

    • nat

    • nat66

    • pki

    • poweroff

    • reboot

    • tech-support

    • version

  • suricata

  • telnet

  • traceroute

  • update

КОНФИГУРАЦИОННЫЙ РЕЖИМ:

  • comment

  • copy/delete/rename/set/show

    • nat

    • nat64

    • nat66

    • pki

    • service

      • event-handler

      • ids

    • suricata

    • system

      • conntrack

      • logging

Примечание

Класс пользователя «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@ngfwos:~$ show permissions

Пример вывода списка разрешённых команд для учётной записи test:

test@ngfwos:~$ show permissions

==================================================
Current user permissions
==================================================

 Configuration commands
------------------------------
  commit
  commit-check
  commit-confirm
  confirm
  discard
  exit
  run configure
  run exit
  run show permissions
  save

Operational commands
------------------------------
  configure
  exit
  show permissions

==================================================
test@ngfwos:~$

Примечание

Встроенной учётной записи «admin» запрещено изменять класс, удалять или отключать её.

Примечание

При отсутствии назначенного класса доступа или наличии класса с пустым набором разрешённых команд, пользователь получает доступ к минимальному набору команд. Данный механизм обеспечивает необходимый минимум функционала для взаимодействия с системой в условиях отсутствия явных прав доступа.

Список разрешённых команд в эксплуатационном режиме:

  • configure - войти в режим настройки;

  • show permissions - вывести список разрешённых команд для данной УЗ;

  • exit - выйти из системы.

Список разрешённых команд в конфигурационном режиме:

  • commit - зафиксировать текущий набор изменений;

  • commit-check - команда, предназначенная для анализа текущих конфигурационных изменений с целью выявления потенциальных ошибок или противоречий перед их фактическим применением;

  • commit-confirm - зафиксировать текущий набор изменений с обязательным «подтверждением»;

  • confirm - подтвердить предыдущую фиксацию - подтвердить;

  • discard - отменить незафиксированные изменения;

  • exit - выход с этого уровня конфигурации;

  • run configure - выполнить команду эксплуатационного режима configure;

  • run exit - выполнить команду эксплуатационного режима exit;

  • run show permissions - выполнить команду эксплуатационного режима show permissions;

  • 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 timeout <time>

где <time> - значение времени, выраженное в секундах, которое определяет период бездействия пользовательского сеанса. Возможно указание значения в диапазоне от «5» до «604800». По истечении указанного времени учётная запись пользователя автоматически разлогинивается. Отсчёт времени бездействия начинается с момента выполнения последней команды пользователем.

Примечание

На сессии, находившиеся в активном состоянии до применения данной команды, блокировка по тайм-ауту применяться не будет.

Блокирование доступа пользователя

При необходимости блокирования доступа пользователя следует ввести следующую команду:

set system login user User1 disable

Работа с пользовательскими сессиями

Просмотр списка УЗ, авторизовывавшихся в системе.

Для вывода списка всех пользователей, которые когда-либо производили авторизацию в системе ARMA Стена, используется следующая команда эксплуатационного режима:

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:~$

Завершение пользовательской сессии.

Для завершения текущей сессии пользователя в эксплуатационном режиме следует выполнить команду:

admin@ngfwos:~$ exit

Аутентификация RADIUS

RADIUS (Remote Authentication Dial-In User Service) — это сетевой протокол, который обеспечивает централизованную аутентификацию, авторизацию и учёт пользователей.

Система ARMA Стена поддерживает RADIUS-серверы в качестве серверной части для пользовательской аутентификации.

Атрибут «cisco-avpair = shell:priv-lvl» в Radius-сервере предназначен для определения уровня привилегий учётных записей. В системе ARMA Стена реализованы два уровня доступа для учётных записей Radius-сервера:

Таблица «Список разрешённых команд для УЗ RADIUS-сервера с ограниченным доступом»

Режим работы

Команда

Краткое описание

Эксплуатационный

exit

Выход из системы

Эксплуатационный

monitor

Мониторинг системной информации

Эксплуатационный

ping

Отправить запрос эха ICMP

Эксплуатационный

show

Просмотр настроек и журнала событий системы

Эксплуатационный

telnet

Telnet к узлу

Эксплуатационный

traceroute

Трассировка сетевого пути к узлу

Перед началом настройки внешнего Radius-сервера необходимо убедиться в наличии сетевого доступа к данному серверу.

Примечание

При обнаружении идентичных учётных записей в локальной базе данных пользователей и в Radius-сервере, система ARMA Стена осуществляет аутентификацию посредством локальной учётной записи. Данный механизм приоритезации не применяется в случае установки режима безопасности «mandatory», который принудительно использует аутентификацию через Radius-сервер, игнорируя наличие дублирующих учётных записей в локальной базе данных.

Добавление внешнего Radius-сервера

Для добавления внешнего Radius-сервера необходимо выполнить следующие настройки:

  1. Указать 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> - значение ключа, который используется для шифрования.

  2. Указать порт, через который будет осуществляться доступ к 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» до «50». По умолчанию используется значение «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).

../../../_images/ngfw.ra.access-control_4.1.1.png

Рисунок – Схема стенда для настройки Multifactor Radius Adapter - Windows

Для получения доступа необходимо выполнить следующие шаги:

  1. Настроить ARMA Стена.

  2. Настроить Windows Server.

  3. Проверка работы службы.

Настройка 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
../../../_images/ngfw.ra.access-control_4.1.1.1.1.png

Рисунок – Назначенные 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
  1. Открыть окно «Сетевые подключения». Для этого необходимо нажать сочетание клавиш «Win+R» и в открывшемся окне «Выполнить» ввести команду «ncpa.cpl».

  2. Нажать ПКМ по сетевому адаптеру, выбрать пункт меню «Свойства» и в открывшемся окне «Свойства» перейти в параметры «IP версии 4 (TCP/IPv4)» двойным нажатием ЛКМ (см. Рисунок – Окно свойств сетевого адаптера). Изменить динамические параметры IP и DNS на статические и ввести необходимые значения.

../../../_images/ngfw.ra.access-control_4.1.2.1.1.1.png

Рисунок – Окно свойств сетевого адаптера

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.2.png

Рисунок – Изменение имени хоста

После применения настроек необходимо перезагрузить компьютер.

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.3.png

Рисунок – Выбор целевого сервера

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.4.png

Рисунок – Роли сервера

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.5.png

Рисунок – Настройка Active Directory

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.6.png

Рисунок – Конфигурация Active Directory

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.7.png

Рисунок – Пароль для службы восстановления каталогов

  1. Мастер настройки предложит создать делегирование DNS. Однако в данном случае это не требуется, поэтому можно пропустить этот этап.

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

../../../_images/ngfw.ra.access-control_4.1.2.1.1.8.png

Рисунок – Имя домена NetBIOS

  1. Выполнить настройку доменных служб Active Directory в соответствии с инструкциями мастера, не изменяя параметры по умолчанию. По завершении настройки перезагрузить компьютер.

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

../../../_images/ngfw.ra.access-control_4.1.2.1.2.1.png

Рисунок – Настройка пользователей Active Directory

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

../../../_images/ngfw.ra.access-control_4.1.2.1.2.2.png

Рисунок – Добавление пользователя

  1. Откроется окно «Новый объект - Пользователь». Заполнить поля: «Имя», в примере используется имя «User(6)01»; «Имя входа пользователя», в примере используется - «user01». По завершению ввода параметров, нажать кнопку «Далее». Ввести пароль для создаваемого пользователя и установить флажок в чекбокс «Срок действия пароля не ограничен».

  2. По аналогии с созданием пользователей, для создания группы пользователей необходимо нажать ПКМ по директории «Users», выбрать «Создать», после чего выбрать «Группа».

  3. В открывшемся окне «Новый объект - Группа» ввести название группы.

  4. Для добавления пользователей в созданную группу необходимо нажать ПКМ по необходимой группе. В контекстном меню выберите пункт «Добавить в группу…» и в открывшемся окне найти и добавить требуемых пользователей.

Подготовка Radius адаптера
  1. Необходимо скачать актуальную версию утилиты Radius адаптер с официального сайта https://multifactor.ru. Для этого в пункте «Теория» перейти во вкладку «RADIUS адаптер» и затем во вкладку «Windows версия», далее перейти по ссылке «сборка» (см. Рисунок – Документация Radius адаптера).

../../../_images/ngfw.ra.access-control_4.1.2.2.1.png

Рисунок – Документация Radius адаптера

  1. После загрузки, распаковать скачанный архив и поместить его в корневую папку диска С в Windows Server.

Добавление Multifactor Radius Adapter
  1. Перейти на сайт https://admin.multifactor.ru/account/login и зарегистрироваться (см. Рисунок – Регистрация на сайте Multifactor).

../../../_images/ngfw.ra.access-control_4.1.2.3.1.png

Рисунок – Регистрация на сайте Multifactor

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

../../../_images/ngfw.ra.access-control_4.1.2.3.2.png

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

../../../_images/ngfw.ra.access-control_4.1.2.3.3.png

Рисунок – Расширенные настройки

  1. После добавления способа аутентификации необходимо подтвердить вход в панель администратора с помощью выбранного ранее способа.

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

../../../_images/ngfw.ra.access-control_4.1.2.3.4.png

Рисунок – Добавление ресурсов

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

../../../_images/ngfw.ra.access-control_4.1.2.3.5.png

Рисунок – Настройка ресурса

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

../../../_images/ngfw.ra.access-control_4.1.2.3.6.png

Рисунок – Параметры добавленного ресурса

Конфигурирование Radius адаптера
  1. Открыть директорию с ранее извлечёнными из архива файлами Radius адаптера. Скопировать файл «cisco with ad.config.template», расположенный в папке «Clients» и переименовать его в «arma with ad.config.template». Удалить расширение «.template», чтобы получилось «arma with ad.config». Таким образом, из предустановленного шаблона получится файл для конфигурации подключения адаптера к ARMA Стена.

  2. Открыть полученный файл «arma with ad.config» для редактирования с помощью программы «Блокнот» и внести следующие изменения в файле (см. Рисунок – Исходный шаблон конфигурации):

  1. установить IP-адрес ARMA Стена;

  2. ввести придуманный секретный ключ, который будет использоваться при настройке Radius-сервера в ARMA Стена;

  3. внести имя домена Active Directory, по которому будет проводиться аутентификация;

  4. указать группу, которой предоставляется доступ без второго фактора аутентификации;

  5. указать группу, у которой будет запрашиваться второй фактор аутентификации;

  6. ввести NAS Identifier, полученный на сайте Multifactor;

  7. ввести Shared Secret, полученный на сайте Multifactor.

../../../_images/ngfw.ra.access-control_4.1.2.4.1.png

Рисунок – Исходный шаблон конфигурации

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

../../../_images/ngfw.ra.access-control_4.1.2.4.2.png

Рисунок – Пример конфигурационного файла

Запуск Radius адаптера

Компонент может работать как в режиме консоли, так и в качестве службы операционной системы Windows. Для запуска компонента в режиме консоли достаточно запустить приложение.

Для установки Radius адаптера в качестве службы Windows необходимо перейти в папку с файлами адаптера и выполнить команду с ключом «/i» от имени администратора: «MultiFactor.Radius.Adapter.exe /i».

Для удаления Radius адаптера необходимо выполнить команду от имени администратора: «sc delete MFRadiusAdapter».

Проверка работы службы

Примечание

Перед началом работы необходимо отключить брандмауэр Windows!

При входе в NGFW и аутентификации с использованием учётных данных из группы, указанной в поле «active_directory_2fa_group» при настройке адаптера, система предложит зарегистрировать второй фактор аутентификации для пользователя (если он ещё не был зарегистрирован). В случае, если второй фактор уже зарегистрирован, система проверит его (см. Рисунок – Аутентификация):

../../../_images/ngfw.ra.access-control_4.1.3.1.png

Рисунок – Аутентификация

Multifactor Radius Adapter - Linux

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

../../../_images/ngfw.ra.access-control_4.2.1.png

Рисунок – Схема стенда для настройки 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». Однако при выполнении этой команды может возникнуть ошибка (см. Рисунок – Возможная ошибка).

../../../_images/ngfw.ra.access-control_4.2.1.1.png

Рисунок – Возможная ошибка

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

../../../_images/ngfw.ra.access-control_4.2.1.2.png

Рисунок – Репозитории по умолчанию

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

../../../_images/ngfw.ra.access-control_4.2.1.3.png

Рисунок – Комментирование имеющихся зеркал

После этих действий команда «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

Возможные ошибки

  1. В случае возникновения ошибки «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».

  1. В случае возникновения ошибки «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».