Многофакторная авторизация Azure в среде Cisco и FortiGate

VPN с одним паролем в 2022-м уже не проходил аудит — а прямой «FortiGate → Azure MFA» без промежуточного RADIUS-сервера в экосистеме Microsoft не существует. Рабочая схема, которую я разворачивал не раз: FortiGate как NAS, Cisco ISE как policy/RADIUS proxy, два Microsoft NPS с Azure MFA Extension, AD для первого фактора, Azure MFA для второго. Ниже — пошаговый runbook без воды.

Архитектура

Схема взаимодействия Cisco ISE и Azure MFA

Цепочка запросов:

  1. VPN-клиент отправляет credentials на FortiGate.
  2. FortiGate шлёт RADIUS Access-Request на Cisco ISE.
  3. ISE проксирует запрос на Microsoft NPS (можно зарегистрировать два NPS для HA).
  4. NPS проверяет логин/пароль в Active Directory (первичная аутентификация).
  5. NPS через Azure MFA Extension инициирует второй фактор; Azure MFA общается с пользователем напрямую (Authenticator, SMS, звонок).
  6. При успехе Access-Accept идёт обратно: NPS → ISE → FortiGate → клиент получает туннель.

Два NPS лучше ставить в разные ДЦ — если один падает, RADIUS продолжает работать через второй. На ISE оба регистрируются как external RADIUS servers.

Общая логика Azure MFA: документация Microsoft.

Что понадобится

Компонент Минимум
Azure AD Лицензии с MFA (или Security Defaults / P1/P2)
Windows Server 2× NPS в разных ДЦ (можно VM)
Cisco ISE PSN с RADIUS; лицензия Advantage или выше
FortiGate SSL-VPN или IPsec VPN, RADIUS client
Сеть FortiGate → ISE → NPS: UDP/1812 (auth), при accounting — 1813

Шаг 1. Azure AD и MFA

  1. В Azure PortalAzure Active DirectorySecurityMFA — включите MFA для нужных пользователей (per-user или через Conditional Access).
  2. Убедитесь, что учётные записи VPN-пользователей синхронизированы (Azure AD Connect) или созданы в cloud-only AD.
  3. Зарегистрируйте методы MFA (Microsoft Authenticator предпочтительнее SMS).

Без зарегистрированного метода второй фактор зависнет — пользователь получит reject или timeout.

Шаг 2. Microsoft NPS + Azure MFA Extension

На каждом сервере NPS (повторить на втором):

2.1. Роль NPS

Install-WindowsFeature NPAS -IncludeManagementTools

2.2. Azure MFA NPS Extension

  1. Скачайте NPS Extension for Azure MFA с сайта Microsoft.
  2. Установите на сервер NPS.
  3. Запустите конфигурацию от имени администратора:
cd 'C:\Program Files\Microsoft\Azure MFA\Config'
.\AzureMfaNpsExtn.ps1

Скрипт запросит credentials Azure AD (Global Admin или Application Admin) и зарегистрирует extension.

2.3. RADIUS clients (FortiGate / ISE)

В NPSRADIUS Clients and ServersRADIUS Clients добавьте:

Client Secret Назначение
IP Cisco ISE (PSN) общий secret ISE проксирует запросы от FortiGate
IP FortiGate (опционально) тот же или отдельный если ISE не проксирует, а FortiGate бьёт напрямую

В типовой схеме клиентом NPS является ISE, не FortiGate.

2.4. Политики NPS

  1. Connection Request Policies — разрешить запросы от ISE (Calling Station ID / Client Friendly Name).
  2. Network Policies — аутентификация через Windows Authentication (AD), grant access.
  3. В Azure MFA Extension registry (HKLM\SOFTWARE\Microsoft\AzureMfa) проверьте BypassMFADUoT и REQUIRE_USER_MATCH — для VPN обычно REQUIRE_USER_MATCH=1.

Перезапустите службу Network Policy Server после установки extension.

Шаг 3. Cisco ISE

3.1. External RADIUS servers (NPS)

AdministrationNetwork ResourcesExternal RADIUS Servers:

Поле Значение
Name NPS-DC1, NPS-DC2
Host IP каждого NPS
Shared Secret тот же, что в NPS RADIUS Clients
Authentication Port 1812
Timeout 30–60 сек (MFA!)
Connection Attempts 2–3

Добавьте оба сервера в RADIUS Server Sequence для failover.

3.2. Network Device (FortiGate)

Work CentersNetwork AccessNetwork Devices:

  • Name: FGT-VPN
  • IP Address: management/source IP FortiGate для RADIUS
  • Shared Secret: secret для FortiGate ↔ ISE
  • Device Type: Fortinet:FortiGate

3.3. Policy Set

Создайте Policy Set для VPN/RADIUS:

  1. Conditions: Device IP Equals FGT-VPN (или RADIUS Service-Type).
  2. Authentication PolicyUse → External RADIUS Server Sequence (NPS).
  3. Authorization — профиль доступа (VLAN, dACL, или PermitAccess для VPN).

В Live LogsRADIUS включите мониторинг до первого успешного логина.

Шаг 4. FortiGate

4.1. RADIUS server

config user radius
    edit "ISE-RADIUS"
        set server "10.x.x.x"
        set secret ENC <encrypted>
        set auth-type pap
    next
end

auth-typepap или mschapv2 в зависимости от того, что принимает ISE/NPS. Для большинства VPN-клиентов MS-CHAPv2; если ISE настроен на PAP proxy — используйте PAP.

4.2. User group

config user group
    edit "VPN-RADIUS"
        set member "ISE-RADIUS"
    next
end

4.3. VPN portal / IPsec

VPNSSL-VPN Settings (или IPsec tunnel):

  • Authentication/Portal Mapping или Peer Options → группа VPN-RADIUS.
  • Убедитесь, что клиент запрашивает username/password (не certificate-only, если MFA на user credentials).

Шаг 5. Таймауты — критично для MFA

По умолчанию FortiGate ждёт ответ RADIUS 5 секунд. Push в Authenticator занимает 15–60 секунд — без правки таймаута VPN стабильно падает с timeout.

Параметр remoteauthtimeout на FortiGate

GUI: System → Settings → remoteauthtimeout60–90 (диапазон 1–300, default 5).

CLI:

config system global
    set remoteauthtimeout 90
end

Согласуйте таймауты на всех звеньях:

Узел Параметр Рекомендация
FortiGate remoteauthtimeout 60–90 сек
Cisco ISE External RADIUS timeout ≥ 60 сек
NPS не ниже FortiGate default часто достаточен
VPN-клиент idle timeout не обрывать до завершения MFA

Проверка

  1. FortiGate: diagnose debug application radiusd -1 + diagnose debug enable — видны Access-Request/Accept.
  2. ISE: Live Log — запрос от FGT, proxy к NPS, result Accept/Reject.
  3. NPS: Event Viewer → Custom ViewsServer RolesNetwork Policy and Access Services.
  4. Azure: Sign-in logs — MFA requirement satisfied.

Тестовый сценарий: пользователь с зарегистрированным Authenticator → VPN login → push → Accept → туннель up.

Типовые проблемы

Симптом Куда смотреть
Timeout через ~5 сек remoteauthtimeout на FortiGate
Access-Reject без MFA NPS policy, AD credentials, extension не running
MFA не приходит пользователь не enrolled; проверьте Azure MFA Extension logs
ISE видит запрос, NPS — нет shared secret, firewall UDP/1812, wrong NAS IP
Работает через один NPS, второй — нет RADIUS Server Sequence priority, secret на втором NPS

Итог

Схема не самая короткая, зато переиспользует ISE как единую точку policy для VPN и проводного доступа, а Azure MFA остаётся там, где ему место — на NPS Extension. Главный практический вывод: увеличьте RADIUS timeout на FortiGate до 90 секунд до первого теста, иначе будете отладку MFA проводить вслепую.

Рубрика: Azure, Cisco, Fortinet, Microsoft, Office 365, Security | Метки: , , , , , , , , , , | Оставить комментарий

Интеграция WebEx с Microsoft OneDrive и SharePoint Online

Этап первый — настройка на стороне управления сервисом (Control Hub)

Ключевой момент, так как инструкцию самостоятельно по нему найти не смог, но если функционал отключен, то и в интеграциях клиента он не появится 🙂

Настройки управления контентом Control Hub / Services / Messaging
Настройки управления контентом Services / Messaging / CM
Настройки управления контентом Services / Messaging / CM / Settings

Этап второй — настройка на стороне клиента (WebEx)

Пошаговая инструкция от вендора и ключевые точки (ниже):

Управление интеграциями в приложении WebEx
Выбор сервиса для интеграции с приложением WebEx
Как добавить файл из OneDrive / SharePoint Online

Рубрика: Cisco, Microsoft, Office 365, Unified Communications, WebEx | Метки: , , | Оставить комментарий

Cisco Identity Services Engine 3.0

Cisco ISE 3.0 Login Page

Вышел Cisco ISE 3.0, подробности о новинке здесь. Обновление согласно инструкции от производителя прошло гладко и без запинок. Политики (RADIUS, Tacacs+) и сетевые устройства перенеслись, pxGrid подписчики информацию получают (FortiManger и Cisco Stealthwatch). Смотрим, изучаем — подробности позже.

Рубрика: Cisco, Fortinet | Метки: , , , | Оставить комментарий

Инициативы Cisco по поддержке в условиях COVID-19

На данный момент Cisco сможет помочь вашей компании работать удаленно и безопасно с помощью различных технологий и сервисов. Главная задача позволить бизнесу работать удаленно и безопасно в карантин, не производя дополнительных затрат. Для этого компания расширила стандартный пробный период до 90 дней.

WebEx — это облачные сервисы для проведения конференций и совещаний онлайн с аудио, видеосвязью и инструментами совместной работы над документами. Запросить расширенный Trial и дополнительную информацию можно здесь.

Cisco Expressway — безопасный межсетевой экран для передачи голоса и видео и поддерживает множество функций, таких как B2B вызовы и мобильный и удаленный доступ (MRA), а также возможности сервера TURN(Traversal Using Relay NAT). Получить расширенный Trial можно на сайте выдачи временных лицензий (здесь).

Unified Communications Products — представляет собой набор продуктов, которые обеспечивают потребителя единым интерфейсом и возможностью доступа к услугам на различным коммуникационных устройствах (стационарный телефон, мобильный телефон, компьютер, ноутбук и др.). Информация о предложение доступна здесь, а расширенный Trial можно найти на сайте выдачи временных лицензий.

AppDynamics — комплексный, Enterprise уровня, продукт по управлению производительностью веб и мобильных приложений, инфраструктуры и сети. Запросить расширенный Trial и дополнительную информацию можно здесь.

AnyConnect — упрощает реализацию безопасного доступа с различных устройств и обеспечивает необходимую защиту организации. UTM/AMP клиент компании Cisco, разработанный для сетевого оборудования корпорации. Информация о предложение доступна здесь, а расширенный Trial можно найти на сайте выдачи временных лицензий.

Cisco Umbrella — это облачный сервис обеспечения безопасности для межсетевых экранов нового поколения Cisco, который защищает сотрудников, когда они подключаются к сети, не используя VPN. Запросить расширенный Trial и дополнительную информацию можно здесь.

ISR 4400 Boost License — у вас вырастала нагрузка на маршрутизаторы и требуется большая производительность? Расширенный Trial можно найти на сайте выдачи временных лицензий.

Вся информация доступна публично на ресурсе производителя.

От себя лично, хотел бы выразить благодарность за поддержку бизнеса и партнеров в столь непростое для всего человечества время.

И главное: обращайтесь к профессионалам за помощью в развертывании решения, если вам она нужна. Мы рядом 🙂 Бизнес должен развиваться.

Рубрика: Cisco, Quick Tip, Security, Unified Communications | Метки: , , , , , , , , , | Оставить комментарий

Внешние DNS записи для Cisco Expressway

Столкнулся с проблемой связи Microsoft Skype for Business и Cisco Expressway, которые возникли у одного из наших заказчиков. Решение оказалось простым — добавить SRV запись в домен партнера, который поленился при внедрении прочитать всю документацию по продукту на сайте Cisco (она часто разбита на части, и в пошаговую инструкцию по развертыванию просто не входят дополнительные функции или возможности).

Дело в том, что система OCS / Lync / S4B при вызове ищет узел связи путем запроса записи _sipfederationtls и если в домене она не указана, то соединение не установится. Ниже есть две ссылки на ресурсы производителей, которые объясняют процесс для технических специалистов и инженеров (Microsoft и Cisco).

Как промежуточный вариант, возможно добавить федеративный домен в ручном режиме на стороне Skype for Business / Teams, указав в качестве сервера DNS адрес шлюза Expressway.

Тип ЗаписьОписание
srv_collab-edge._tls.example.comCollaboration Services, TLS
srv_sip._tcp.example.comSession Establishment, TCP
srv_sip._udp.example.comSession Establishment, UDP
srv_sips._tcp.example.comSession Establishment, TLS
srv_sipfederationtls._tcp.example.comSkype for Business, TLS
srv_xmpp-server._tcp.example.comJabber, XMPP
ajoin.example.com Guest account client URI, SSL

Посмотреть записи удобно здесь: https://www.incosolutions.com/uc-lookup.php

Рубрика: Cisco, Lync, Microsoft, OCS, Office 365, Quick Tip, Skype For Business, Unified Communications | Метки: , , , , , | Оставить комментарий

CTS-Test-Server

После обновления Cisco ISE 2.6 до версии 2.7 коммутаторы компании с включенным TrustSec перестали определять «живость» управляющего CTS сервера, и статус сервера постоянно был «DEAD».

Статус окружения можно посмотреть с помощью CLI команд:
sh cts environment-data и sh cts server-list.

В логах (ISE -> Operations -> RADIUS -> Live Logs) появились сообщения «5405 RADIUS Request dropped» по причине «The user is not found», и как итог «AuthenticationResult : Error». С учетом периодичности тестов живых серверов RADIUS со стороны коммутаторов, журнал наполняется очень быстро и «радует» глаз пестрящей краснотой.

Так как не смог найти решение на стороне Cisco, реши пойти простым путем и создал пользователя CTS-Test-Server во внутреннем банке ISE ( Administration -> Identity Management -> Identities -> Users) с генерированным, там же, паролем.

Проблема была решена и более не наблюдалась, сервера на коммутаторах перешли в статус «ALIVE».

Рубрика: Cisco, Quick Tip, Security | Метки: , , , | Оставить комментарий

Change the IP Address of a Cisco ISE Appliance

Before version 2.4 quick way was:

  1. Log in to the Cisco ISE CLI (you can use VM console or SSH).
  2. Enter the following commands:
    application stop ise
    configure terminal
    interface GigabitEthernet 0
    ip address new_ip_address new_subnet_mask
    The system prompts you for the IP address change. Enter Y…
  3. Enter Y to restart the system.

In version 2.4 and higher way is:

  1. Log in to the Cisco ISE CLI (you can use VM console or SSH).
  2. Enter the following commands:
    application stop ise
    reset-config

ISE 2.4: Common System Maintenance Tasks

Рубрика: Cisco, Quick Tip, Security | Метки: , | Оставить комментарий

Атака Cisco Smart Install порядок действий для защиты

Прямо сейчас все адреса в интернете сканирует бот, который использует свежую уязвимость (https://embedi.com/blog/cisco-smart-install-remote-code-execution/) в Cisco IOS, позволяющую удалённо выполнить команду на устройстве Cisco.

Похоже, что для атаки используется бот, сканирующий через поисковик интернета вещей Shodan или даже через собственную утилиту Cisco устройства на предмет наличия этой уязвимости и эксплуатирующий ее. Нашел очередной уязвимый коммутатор, переписал конфигурацию – вывел из строя сегмент сети. В результате целые дата-центры оказываются недоступными, что приводит и к недоступности многих популярных сайтов.

По данным Cisco Talos, в мире насчитывается более 168 000 устройств, подверженных этой уязвимости. Масштабы атаки пока не полностью ясны, но они могут быть очень серьезными. Судя по всему, злоумышленники атакуют в основном русскоязычный сегмент Интернета, хотя и другим явно тоже досталось.

Дополнительные источники информации: Cisco, Talos, CVE.

Что можно сделать сейчас для защиты и диагностики возможных проблем связанных с уязвимостью CVE-2018-0171.

  • Провести анализ подверженности своего оборудования вышеописанным уязвимостям. Сверить версии ПО для платформ с официально рекомендованными производителем как неуязвимые.
  • Провести анализ наличия взломанных устройств, фактов несанкционированного изменения конфигураций либо состояния устройств. Восстановить продуктивную конфигурацию, сменить пароли и ключи.
  • Отключить функционал Cisco Smart Install командой «no vstack».
  • Удалить пользователя по умолчанию «cisco».
  • Ограничить обработку пакетов с dst port UDP 18999, если dst ip принадлежит устройству.
  • Настроить мониторинг оборудования на предмет:
    — активации Cisco Smart Install (vstack) и порта TCP 4786;
    — активации порта UDP 18999 в системе (listening);
    — появления пользователя «cisco» в конфигурации.

Хотелось бы обратить внимание на важный момент, команда «no vstack» работает только на ПО вышедшем после обнаружения уязвимости, в случае старого ПО команда будет просить дополнительный аргумент, например «no vstack conf».

Если Smart Install выключен, то вывод «sh vstack conf» будет примерно следующим:

Не работает «no vstack» — обновите ПО.
Не используете Smart Install, закройте TCP 4786.

Рубрика: Cisco, Security | Метки: | Оставить комментарий

Безопасные DNS сервера

OpenDNS

IPv4: 208.67.222.222, 208.67.220.220

IPv6: 2620:119:35::35, 2620:119:53::53

Private DNS: doh.opendns.com

Fortiguard DNS

IPv4: 208.91.112.53, 208.91.112.52

Яндекс DNS

IPv4: 77.88.8.88, 77.88.8.2

IPv6: 2a02:6b8::feed:bad, 2a02:6b8:0:1::feed:bad

Google Public DNS

IPv4: 8.8.8.8, 8.8.4.4

IPv6: 2001:4860:4860::8888, 2001:4860:4860::8844

Cloudflare

IPv4: 1.1.1.1, 1.0.0.1

IPv6: 2606:4700:4700::1111, 2606:4700:4700::1001

Private DNS: 1dot1dot1dot1.cloudflare-dns.com

Рубрика: Cisco, Fortinet, Quick Tip, Security | Метки: , , , , , , | Оставить комментарий

Настройка туннеля до Azure на Fortigate

Пример настройки Site-to-Site туннеля до сервис провайдера Microsoft Azure на брандмауэрах Fortigate.

config firewall address
edit «azure-network»
set subnet 10.0.111.0 255.255.255.0
next
edit «internal»
set subnet 192.168.111.0 255.255.255.0
next
end
config vpn ipsec phase1-interface
edit «Azure»
set interface «port1»
set ike-version 2
set nattraversal disable
set keylife 56600
set proposal aes256-sha256
set dhgrp 2
set remote-gw 52.1.2.3
set psksecret key123key123key123
next
end
config vpn ipsec phase2-interface
edit «Azure»
set phase1name «Azure»
set proposal aes256-sha256
set dhgrp 14
set keepalive enable
set auto-negotiate enable
set src-addr-type name
set dst-addr-type name
set keylifeseconds 7200
set src-name «internal»
set dst-name «azure-network»
next
end
config system interface
edit «Azure»
set tcp-mss 1350
next
end
config router static
edit 2
set dst 10.0.111.0 255.255.255.0
set device «Azure»
next
end

Где:

port1 — интерфейс wan который будет инициализировать туннель
52.1.2.3 — адрес шлюза на стороне сервис провайдера
key123key123key123 — предварительный общий ключ
10.0.111.0 — локальная сеть на стороне сервис провайдера
192.168.111.0 — локальная сеть на вашей стороне

Кроме того, не забудьте настроить правила доступа (firewall rules), иначе туннель не будет работать (не поднимется). Пример можно посмотреть здесь.

Рубрика: Azure, Fortinet, Microsoft, Quick Tip | Метки: , | Оставить комментарий