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

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

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

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

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

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

Примечание

Для досрочной разблокировки УЗ необходимо ввести команду «sudo pam_tally2 -u <user> –reset» под УЗ «admin».

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

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

Класс представляет собой перечень разрешённых команд для использования в 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» запрещено изменять класс, удалять или отключать её.

Примечание

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

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

  • 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-сервера:

Таблица «Список разрешённых команд для УЗ 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» до «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).

../../../_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».