Настройка FortiGate для двухфакторной аутентификации через NPS Radius Extension
Автор Dmitry Bukreev, Last modified by Dmitry Bukreev на 22 июля 2026 05:25 PM

Настройка FortiGate для двухфакторной аутентификации через NPS Radius Extension

Введение

В данном руководстве описана настройка VPN-доступа на базе FortiGate с двухфакторной аутентификацией через Microsoft NPS с расширением Indeed AM. Используется протокол IPsec IKEv1 Aggressive Mode с XAuth.

Поддерживаемые методы аутентификации:

NPS Radius Extension поддерживает протоколы PAP, CHAP, MS-CHAP, MS-CHAP-v2. В связке с Indeed AM в данном сценарии работают следующие методы второго фактора:

  • Indeed Key Push — работает без ограничений
  • MFA One-string — работает без ограничений
  • TOTP — не поддерживается в данном сценарии

1. Предварительные требования

  • Установленный и настроенный Indeed Access Manager 9.4 и выше
  • Установленный и настроенный Indeed Key Server 9.4 и выше
  • Установленный и настроенный Indeed AM NPS Radius Extension 9.4 и выше
  • Настроенные провайдеры аутентификации
  • Windows Server 2019 и выше с установленной ролью NPS
  • FortiGate с FortiOS 8.0 и выше

1.1 Требования к Windows Server

FortiOS 8.0 требует наличие атрибута Message-Authenticator в RADIUS ответах. Поддерживается Windows Server 2019 и выше. Для Windows Server 2019 необходимо установить накопительное обновление за июль 2024 или новее (KB5040268 и выше). Windows Server 2022 поддерживает данный атрибут после установки актуальных обновлений.

Проверьте установленные обновления:

Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10

Без актуальных патчей FortiGate будет отклонять ответы NPS с ошибкой No Message-Authenticator attribute

1.2 Настройки со стороны MC

Для регистрации FortiGate в качестве приложения выполните следующие шаги в Консоли Администратора:

  • Войдите в Консоль Администратора Indeed AM (https://<server_fqdn>/am/mc)
  • Перейдите в раздел ПриложенияСоздать приложение, введите название приложения и нажмите Создать

  • Перейдите на вкладку RADIUS, укажите IP-адрес (или подсеть) FortiGate и нажмите Сохранить

  • Перейдите в Политики → выберите нужную политику → ПриложенияДобавить приложение → выберите созданное приложение → Добавить

  • Откройте созданное приложение, выберите метод аутентификации из доступных и нажмите Сохранить


2. Настройка FortiGate

Все настройки выполняются через CLI FortiGate. Доступ к CLI осуществляется через веб-интерфейс (кнопка >_ в правом верхнем углу) или по SSH.

2.1 Добавление Radius сервера

config user ldap edit "NPS_RADIUS" set server "192.168.10.50" set secret "RadiusSecret" set auth-type pap next end

При добавлении RADIUS сервера указывается его IP адрес (set server) и общий секрет (set secret).

Параметр auth-type определяет протокол аутентификации между FortiGate и RADIUS сервером. Доступные значения: pap, chap, ms_chap, ms_chap_v2. В данной инструкции используется pap.

Проверьте подключение к Radius серверу:

diagnose test authserver radius NPS_RADIUS <username> <password>

2.2 Создание группы пользователей

config user group
    edit "VPN_users"
        set member "NPS_RADIUS"
    next
end

2.3 Настройка IPsec Phase 1 (IKEv1 Aggressive + XAuth)

config vpn ipsec phase1-interface edit "RA_VPN" set type dynamic set interface "port1" set ike-version 1 set mode aggressive set peertype any set net-device disable set mode-cfg enable set proposal des-md5 des-sha1 set dpd on-idle set dpd-retryinterval 10 set dpd-retrycount 3 set keylife 28800 set dhgrp 20 set xauthtype auto set authusrgrp "VPN_users" set ipv4-start-ip 10.10.10.100 set ipv4-end-ip 10.10.10.200 set ipv4-netmask 255.255.255.0 set dns-mode auto set unity-support disable set psksecret "YourPSKSecret" next end

Примечание: алгоритмы шифрования ограничены бесплатной (Evaluation) лицензией FortiGate.

При наличии полной лицензии рекомендуется использовать более стойкие алгоритмы, например aes256-sha256.

2.4 Настройка IPsec Phase 2

config vpn ipsec phase2-interface
    edit "RA_VPN_p2"
        set phase1name "RA_VPN"
        set pfs enable
        set dhgrp 20
        set keylifeseconds 3600
    next
end

2.5 Создание сетевой политики

config firewall policy
    edit 0
        set name "VPN_policy"
        set srcintf "RA_VPN"
        set dstintf "port1"
        set srcaddr "all"
        set dstaddr "all"
        set action accept
        set schedule "always"
        set service "ALL"
        set groups "VPN_users"
        set nat enable
    next
end

3. Настройка FortiClient (десктоп)

Создайте новое VPN подключение типа IPsec VPN со следующими параметрами:

Основные:

  • Удалённый шлюз: <IP адрес FortiGate>
  • Метод аутентификации: Общий ключ (Pre-shared Key)
  • Ключ: значение из psksecret
  • Аутентификация (XAuth): Запрашивать

Расширенные настройки → IKE:

  • Версия: Version 1
  • Encapsulation: IKE UDP Port 500

Фаза 1:

  • Шифрование: DES, Аутентификация: MD5
  • Шифрование: DES, Аутентификация: SHA1
  • DH Группа: 20

Фаза 2:

  • Шифрование: DES, Аутентификация: SHA1
  • PFS: включён, DH Группа: 20


4. Проверка подключения

После подключения через FortiClient пользователю будет предложено ввести логин и пароль (XAuth). Indeed AM NPS Extension обработает запрос и в зависимости от настроенного второго фактора:

  • Push — пользователь получит уведомление на телефон и подтвердит вход
  • MFA One-string — пользователь вводит пароль и OTP через разделитель в поле пароля (например: Пароль,123456). Символ разделителя настраивается в Indeed AM.

События MC при удачном подключении к Fortigate VPN

Проверка активных туннелей:
get vpn ipsec tunnel summary
diagnose vpn tunnel list

Диагностика аутентификации:
diagnose debug reset
diagnose debug app ike 255
diagnose debug app fnbamd 255
diagnose debug enable

После попытки подключения:
diagnose debug disable

(0 голос(а))
Эта статья полезна
Эта статья бесполезна