惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Help Net Security
Help Net Security
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
爱范儿
爱范儿
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
Cisco Talos Blog
Cisco Talos Blog
Google DeepMind News
Google DeepMind News
T
Tor Project blog
T
Tenable Blog
Forbes - Security
Forbes - Security
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
NISL@THU
NISL@THU
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
F
Full Disclosure
雷峰网
雷峰网
N
News and Events Feed by Topic
T
Threatpost
TaoSecurity Blog
TaoSecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
Hacker News: Ask HN
Hacker News: Ask HN
S
Secure Thoughts
S
Security @ Cisco Blogs
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
P
Privacy International News Feed
H
Heimdal Security Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
V
Visual Studio Blog
C
Check Point Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
有赞技术团队
有赞技术团队
B
Blog
Microsoft Security Blog
Microsoft Security Blog
S
Schneier on Security
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
U
Unit 42
Jina AI
Jina AI

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
MFA для VPN в UserGate NGFW: как поднять удаленный доступ для Windows и macOS
BogudanDan ( · 2026-05-12 · via Все публикации подряд на Хабре

MFA для VPN в UserGate — штука полезная: никакого RADIUS, без дополнительных лицензий, всё — из коробки. Одна проблема: фирменный клиент есть только под Linux. При этом еще далеко не все российские компании целиком перешли на отечественные ОС. 

Конечно, можно дождаться, пока вендор выпустит клиент под все платформы. Или можно взять L2TP/IPsec, штатные VPN-клиенты ОС, пару скриптов, немного покопаться в реестре Windows и собрать рабочее решение прямо сейчас. Именно это мы сегодня и сделаем.


Архитектура стенда

Для начала соберем типовую схему, которая часто встречается в компаниях: UserGate последней стабильной версии (на момент написания статьи это 7.4.2.390439R) в ней выступает пограничным устройством. За ним находится внутренний сервер, к которому нужно организовать удаленный доступ. Пользователь подключается снаружи через канал, имитирующий интернет.

IP-адресация такая:

  • 192.168.1.10 — внешний интерфейс UserGate. В реальной среде здесь будет белый IP-адрес или серый адрес за NAT провайдерского роутера.

  • 172.30.252.0/24 — виртуальная подсеть, из которой VPN-клиенты получают адреса при подключении.

  • 172.168.100.0/24 — целевая внутренняя подсеть с защищенным сервером. Маршрут до нее мы будем отдавать авторизованному клиенту.

В демонстрации я использую локальных пользователей, а не AD или LDAP, но на механику работы VPN это не влияет. При использовании доменных учетных записей добавятся два дополнительных шага: интеграция с LDAP и настройка доменной авторизации на корпоративном портале. Однако настройка доменных политик — отдельная тема. В этой демонстрации оставим локальных пользователей и сконцентрируемся на том, как работает связка L2TP/IPsec и MFA.

Настройка серверной части NGFW

Remote Access VPN со вторым фактором в UserGate работает через взаимодействие нескольких сущностей, которые нужно правильно связать между собой.

Шаг 1. Сетевые интерфейсы и маршрутизация

Сначала определяем, через какой интерфейс будут приходить удаленные подключения и куда именно мы будем пускать пользователей после аутентификации. Для этого на внешнем интерфейсе (в нашем случае — 192.168.1.10) нужно разрешить два сервиса на уровне зоны: VPN и Веб-портал. 

Без VPN туннель просто не поднимется, а без Веб-портала пользователь не сможет зайти на веб-портал и получить QR-код для привязки второго фактора.

Далее создаем профиль сети VPN. В нем задаем пул адресов для клиентов, например, 172.30.250.2-172.30.250.254, и маску 255.255.255.0.

В соседней вкладке задаем маршрут до целевой внутренней подсети 172.168.100.0/24.

После этого поднимаем туннельный интерфейс (допустим, tunnel1), включаем его, переводим в статический режим и назначаем адрес из VPN-подсети, например, 172.30.250.1/255.255.255.0. Это будет клиентский шлюз внутри туннеля.

Шаг 2. Параметры IKE и IPsec

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

В основных свойствах указываем:

  • Протокол: IPsec/L2TP.

  • Режим IKE: Основной (Main mode).

  • Тип идентификации: Отсутствует.

  • Общий ключ (Preshared Key / PSK): надежный пароль (например, TestRMVPN123!), который потребуется ввести на устройствах пользователей при первичной настройке.

На этом этапе сертификаты не используем. Для демонстрационного стенда достаточно аутентификации сервера по общему ключу.

Далее отдельно задаем параметры для IKE Фаза 1 и Фаза 2. 

Первая фаза отвечает за создание защищенного канала для служебного обмена (аутентификация, согласование алгоритмов). Вторая — за создание ключей для шифрования самого трафика.

В первой фазе выставляем время жизни ключа 24 часа, отключаем Dead Peer Detection в рамках демо и добавляем наборы шифрования. Из разумного минимума стоит оставить SHA256/AES256 и SHA1/AES256. Связку SHA1/3DES имеет смысл использовать только ради совместимости со старыми клиентскими устройствами. Если можно обойтись без 3DES, лучше так и поступить.

Время жизни ключей в Фаза 2 обычно меньше, чтобы обеспечить более частую ротацию. Поэтому для IPsec SA задаем 12 часов и аналогично выбираем алгоритмы аутентификации и шифрования.

Шаг 3. Профиль MFA

Теперь включаем то, ради чего все и затевалось. В интерфейсе UserGate нет отдельной кнопки формата «включить 2FA для VPN». Настройка делается через профиль MFA. Создаем профиль и задаем в нем логику второго фактора:

  • MFA через: TOTP.

  • Инициализация TOTP: выбираем «Показать ключ на странице captive-портала». Эта настройка заставит шлюз сгенерировать QR-код, когда пользователь впервые придет логиниться через браузер.

  • Показывать QR-код: галочка обязательна.

  • Содержимое: можно оставить текст по умолчанию, объясняющий пользователю назначение одноразового кода.

Теперь при первом входе на веб-портал шлюз покажет пользователю QR-код для приложения-аутентификатора. В UserGate есть и другие способы доставки второго фактора. Например, отправка кода на email или СМС. Но TOTP — самый надежный: один раз отсканировал, и дальше коды генерируются прямо на смартфоне, без задержек на доставку.

Шаг 4. Связываем все вместе

Теперь у нас есть туннель, криптография и профиль MFA. Осталось собрать их в одну рабочую схему.

Сначала создаем профиль аутентификации. В нем выбираем созданный MFA-профиль, а во вкладке методов аутентификации добавляем «Локальный пользователь» или доменный метод, если вы настраиваете продуктовую среду. Дальше создаем пользователя, например, user1, задаем логин, пароль и добавляем его в группу VPN users.

Переходим к созданию пользователей. В разделе «Пользователи» заводим user1. Задаем логин, сложный пароль и помещаем в группу VPN users.

После этого создаем серверное правило VPN. В нем указываем:

  • профиль безопасности VPN;

  • сеть VPN с пулом адресов;

  • профиль аутентификации с привязанным TOTP;

  • интерфейс tunnel1.

Во вкладках «Источник» и «Назначение» можно разрешить подключения с любых адресов, а доступ ограничить группой VPN users или конкретным пользователем. 

Все, серверная часть готова. Теперь шлюз знает: где принимать подключения, как шифровать трафик и кому выдавать адреса.

Клиентская настройка: Windows, реестр и немного боли

На этом этапе нас ждут неочевидные костыли. Встроенный Windows-клиент для L2TP/IPsec плохо переносит сценарии подключения с участием NAT, а домашние устройства сотрудников, как правило, располагаются именно за NAT. Windows по умолчанию считает такое соединение небезопасным и сбрасывает попытку построения туннеля с невнятной ошибкой. Это лечится правкой реестра.

Правка реестра для NAT Traversal

  1. Открываем regedit.

  2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent — в этом разделе создаем параметр DWORD (32 бита) с именем AssumeUDPEncapsulationContextOnSendRule и значением 2.

  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters — в этом разделе меняем значение параметра AllowL2TPWeakCrypto на 1.

  4. Перезагружаем компьютер.

Значение «2» означает, что сервер находится за NAT, и нужно использовать UDP-инкапсуляцию для ESP-пакетов.

Для справки: при работе L2TP/IPsec через NAT стандартные порты IKE (500) и ESP (50) могут блокироваться. Механизм NAT Traversal (NAT-T) инкапсулирует ESP-пакеты в UDP на порт 4500, что позволяет обходить эти ограничения. Правка реестра как раз включает этот механизм на стороне Windows.

Настройка подключения в Windows

  1. Параметры → Сеть и Интернет → VPN → Добавить VPN-подключение.

  2. В поле поставщика услуг VPN выбираем Windows (встроенные).

  3. Задаем имя подключения, например, UserGateVPN.

  4. Указываем адрес сервера 192.168.1.10.

  5. Выбираем тип VPN L2TP/IPsec с общим ключом.

  6. Указываем PSK из серверного профиля, например, TestRMVPN123!.

  7. В качестве типа данных для входа выбираем Имя пользователя и пароль.

Сразу убираем галочку «Запомнить мои данные для входа». В данном случае она только вредит. Дело в том, что в нашей конфигурации одноразовый TOTP-код вводится прямо в поле пароля через двоеточие в формате «пароль:одноразовый код».

После создания подключения открываем свойства адаптера UserGateVPN. На вкладке «Безопасность» включаем «Незашифрованный пароль (PAP)». Без этого аутентификация не пройдет.

На вкладке «Сеть для IPv4» открываем дополнительные параметры и снимаем «Использовать основной шлюз в удаленной сети». Иначе отправите весь домашний трафик пользователя в корпоративный туннель, хотя вам нужен только маршрут до 172.168.100.0/24.

А теперь то же самое через скрипты

Весь этот процесс можно автоматизировать. Для этого потребуются два скрипта. 

Первый скрипт отвечает за правку реестра и создает тот самый параметр, который заставляет Windows использовать UDP-инкапсуляцию для ESP-пакетов при подключении через NAT. 

Скрипт-редактор реестра:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent]
"AssumeUDPEncapsulationContextOnSendRule"=dword:00000002

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters]
"AllowL2TPWeakCrypto"=dword:00000001

Второй скрипт создает готовое VPN-подключение. Он формирует ярлык на рабочем столе, в котором уже прописаны все настройки: адрес сервера; тип VPN (L2TP/IPsec с общим ключом); общий ключ (PSK); отключенная галочка «Запомнить мои данные»; включенный протокол PAP; отключенный «Основной шлюз в удаленной сети».

Полный скрипт настройки подключения (проверен на Windows 11):

$adapterName = "UserGateVPN"
$serverAddress = "192.168.1.10"
$vpnType = "L2tp"
$sharedKey = "TestRMVPN123!"

# Сборка параметров подключения
$vpnParams = @{
    Name                = $adapterName
    ServerAddress       = $serverAddress
    TunnelType          = $vpnType
    L2tpPsk             = $sharedKey
    AuthenticationMethod = "Pap"
    SplitTunneling      = $true
    RememberCredential  = $false
    Force               = $true
}

# 1. Создание VPN соединения
Add-VpnConnection @vpnParams

# 2. Создание ярлыка на рабочем столе
$shell = New-Object -ComObject WScript.Shell
$desktop = [System.Environment]::GetFolderPath("Desktop")
$shortcut = $shell.CreateShortcut("$desktop\$adapterName.lnk")
$shortcut.TargetPath = "rasphone.exe"
$shortcut.Arguments = "-d $adapterName"
$shortcut.IconLocation = "shell32.dll,135"
$shortcut.Save()

Write-Host "VPN '$adapterName' успешно настроен с SplitTunneling и PAP." -ForegroundColor Cyan

Шаг 0. Проверяем версию ОС

Если на компьютере установлена Windows 11, то перед запуском скриптов нужно совершить одно дополнительное действие — открыть PowerShell от имени администратора и выполнить:

Set-ExecutionPolicy Bypass 

Эта команда разрешает выполнение неподписанных скриптов в текущей сессии. Без нее операционная система не даст запустить скрипты, сославшись на политику безопасности.

Шаг 1. Правим реестр

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

Шаг 2. Создаем VPN-подключение

После перезагрузки запускаем второй скрипт с помощью PowerShell и подтверждаем выполнение.

После успешного выполнения на рабочем столе появится ярлык с именем UsergateVPN. Все настройки подключения уже прописаны внутри — ничего дополнительно настраивать не нужно.

Онбординг пользователя

Технически все уже готово, но настроить инфраструктуру — только полдела. Остается самое интересное: объяснить пользователю, как это все использовать.

Инициализация второго фактора

Перед первым подключением пользователь должен открыть Captive-портал, например: https://192.168.1.10:4443/.

Дальше пользователь вводит свой логин и пароль (те самые, что вы создали на шлюзе или в AD) и получает QR-код и текстовый секрет TOTP.

В качестве приложения-аутентификатора подойдут Google Authenticator, Microsoft Authenticator, FreeOTP, браузерные расширения вроде 2FA Authenticator. Если ориентироваться на российские реалии, лучше использовать «Яндекс.Ключ». Для самого шлюза разницы нет — алгоритм TOTP стандартизирован, но с учетом политики импортозамещения и потенциальных ограничений зарубежных сервисов отечественное решение выглядит предпочтительнее.

Привязка второго фактора хранится внутри UserGate. Так, если пользователь потеряет телефон, администратор сможет сбросить привязку через веб-консоль, что довольно удобно.

Подключение к VPN

Для подключения на Windows удобно использовать rasphone. В окне ввода учетных данных пользователь указывает логин, а в поле пароля вводит уже не обычный пароль, а строку в таком формате:

ПарольОтУчетки:КодИзПриложения

Например:

MySuperSecretPass:123608

Нужно отметить, что тут пользователи часто совершают ошибки: вводят только пароль, забывая двоеточие и код; пропускают двоеточие; не успевают ввести код до его обновления (коды меняются каждые 30 секунд). Поэтому если вы хотите внедрить такую схему авторизации на практике, вам точно потребуется написать четкую и понятную инструкцию.

Если учетные данные введены правильно, соединение поднимается. Проверить маршрут можно командой route print — в таблице маршрутизации должен появиться путь до подсети 172.168.100.0 через туннель.

Опыт использования

Таким образом можно получить полноценный Remote Access VPN со вторым фактором на базе штатных средств ОС и встроенного функционала UserGate, но опыт использования этой схемы авторизации различается на разных платформах.

На macOS не нужно править реестр, и L2TP поднимается проще, но удобнее от этого не становится. Динамический код все так же нужно дописывать к паролю. К тому же macOS любит сохранять учетные данные в Keychain, из-за чего после сна или переподключения система подставляет старый пароль, и пользователь вынужден лезть в настройки, чтобы исправить составную строку. Формально все работает, но пользоваться такой авторизацией на постоянной основе очень неудобно.

На Android и iOS связка L2TP/IPsec с такой механикой второго фактора и вовсе не похожа на нормальный пользовательский сценарий.

На Linux подключение через Network Manager тоже поднимается, если установить необходимые пакеты, но стабильность сильно зависит от конкретной сборки и набора плагинов. На тестовых стендах работает хорошо, но в реальной эксплуатации могут случаться спонтанные обрывы. 

Если говорить о распространенных технических проблемах при настройке такого подключения, то в 90% случаев виновата одна из трех вещей:

  1. Профили собраны неправильно. MFA-профиль не привязан к профилю аутентификации, пользователь не попал в нужную группу или правило VPN указывает не на те объекты.

  2. На внешней зоне забыли включить VPN и Веб-портал. Без этого туннель просто не поднимется, а пользователь не получит QR-код.

  3. Сбои на фазе IKE или на участке с NAT Traversal. Для пользователя это выглядит как «оно просто не подключается», хотя реальная проблема глубже.

К счастью, в актуальных версиях UserGate диагностика VPN-сессий стала заметно удобнее: логи теперь показывают, на какой фазе произошел обрыв и по какой причине. Разобраться с ошибками стало намного проще.

Итоги

Если оценивать эту схему по балансу безопасности и удобства, я бы поставил ей 6 из 10. Почему так мало? Потому что L2TP/IPsec в такой роли — откровенно компромиссная реализация с довольно кривым UX.

Почему не ниже? Потому что встроенный MFA в UserGate действительно полезен. Он не требует отдельного RADIUS-сервера, не просит дополнительных лицензий и в базовом варианте закрывает потребность в защищенном соединении.

Кому это подойдет? Тем, у кого уже стоит UserGate, нет бюджета или пространства для отдельного VPN-шлюза, а потребность во втором факторе возникла уже сейчас. 

Чего здесь действительно не хватает, так это отлаженного клиента под все популярные платформы. Когда вендор закроет эту потребность, вся схема сразу станет заметно удобнее и полезнее.

И последнее. Самая хрупкая часть этой конструкции — не криптография и не маршруты, а пользователь. Если вы внедряете такую удаленку, не экономьте на инструкции. Покажите на скриншотах, где взять QR-код, куда его сканировать, почему пароль теперь вводится через двоеточие и почему его нельзя сохранять, как раньше. Это как раз тот случай, когда хорошая инструкция экономит нервы и пользователям, и техподдержке.

Удачного развертывания, и да пребудет с вами аптайм!


PURP — Telegram-канал, где кибербезопасность раскрывается с обеих сторон баррикад

t.me/purp_sec — инсайды и инсайты из мира этичного хакинга и бизнес-ориентированной защиты от специалистов Бастиона