Что такое SSTP и почему он используется для VPN
SSTP (Secure Socket Tunneling Protocol) — проприетарный VPN-протокол, разработанный Microsoft и впервые представленный в Windows Vista SP1 и Windows Server 2008. Его ключевая особенность — работа поверх HTTPS-соединения на 443-м порту, что делает трафик неотличимым от обычного защищённого веб-трафика. Это позволяет обходить большинство файрволов и прокси-серверов, которые блокируют другие VPN-протоколы, такие как PPTP или L2TP/IPsec.
SSTP использует SSL/TLS для шифрования данных и PPP для аутентификации. Технически это означает, что соединение устанавливается в несколько этапов: сначала клиент создаёт TCP-соединение с сервером на порт 443, затем происходит рукопожатие TLS, в рамках которого клиент проверяет сертификат сервера. После этого инициируется HTTPS-сессия, внутри которой уже работает SSTP-протокол и передаются PPP-кадры. Такой подход обеспечивает надёжную защиту от прослушивания и атак типа «человек посередине» за счёт механизма cryptographic binding, связывающего SSL- и PPP-аутентификацию.
Протокол поддерживает шифрование на всех уровнях: и данные пользователя, и управляющие пакеты SSTP передаются только внутри зашифрованного SSL-канала. Для аутентификации клиента могут использоваться MS-CHAPv2, EAP-TLS, PEAP-MSCHAPv2 и другие методы, аналогичные PPTP, но в отличие от PPTP обмен происходит внутри уже защищённого соединения.
Где SSTP-сервер доступен нативно: Windows Server vs клиентские версии
Главный вопрос, который возникает при попытке поднять SSTP VPN сервер на Windows, — это поддержка на различных редакциях ОС. Серверная часть SSTP встроена в Windows Server, начиная с версии 2008. В Windows Server роль удалённого доступа (Remote Access) включает поддержку SSTP наряду с PPTP, L2TP/IPsec и IKEv2. Настройка осуществляется через оснастку Routing and Remote Access (RRAS) и сервер политики сети (NPS), что позволяет централизованно управлять политиками аутентификации и учётными записями.
Что касается клиентских версий Windows — 10, 11, а также более ранних Vista, 7, 8 — в них нет встроенной роли VPN-сервера, и SSTP-сервер поднять штатными средствами не получится. Это подтверждается и практикой: в ответ на вопрос о поднятии SSTP на Windows 11 Pro опытные администраторы отмечают, что «нативно только на версии Windows Server всё работает», а на клиентских ОС «никакой реализации PPP серверов не предусмотрено». Даже Windows 11 Pro, несмотря на наличие Hyper-V и некоторых серверных функций, не включает компонент RRAS, поэтому SSTP-сервер из коробки недоступен.
Таким образом, если вы планируете использовать именно Windows в качестве сервера SSTP, необходимо разворачивать Windows Server (2008 и новее, включая актуальные версии 2016, 2019, 2022). Альтернативой является использование стороннего ПО или других платформ, о чём пойдёт речь далее.
Как работает SSTP: технические детали соединения
Понимание внутреннего устройства SSTP помогает правильно диагностировать проблемы и выбирать настройки. Протокол SSTP версии 1.0 — единственная реализация, и она практически не менялась с момента появления. Стек протоколов выглядит так: данные пользователя инкапсулируются в PPP, затем в SSTP, затем в HTTPS (SSL/TLS) и наконец в TCP. На каждом уровне добавляются заголовки, но шифрование применяется только на уровне SSL.
Установка соединения происходит в несколько шагов. Клиент открывает TCP-соединение на 443 порт сервера. Затем выполняется SSL/TLS-рукопожатие, в ходе которого клиент проверяет подлинность сервера по его сертификату. После успешного TLS клиент отправляет HTTPS-запрос, внутри которого начинает работать SSTP. Клиент посылает Call Connect Request, указывая номер протокола (обычно PPP). Сервер отвечает Call Connect Acknowledge, включая случайное число ClientNonce и список поддерживаемых хэш-функций (SHA1, SHA256). Далее происходит PPP-аутентификация, в рамках которой клиент и сервер вырабатывают общий секрет. На финальном этапе клиент отправляет Call Connected сообщение, подписанное с использованием этого секрета и ClientNonce, а также хэша сертификата сервера. Это и есть механизм cryptographic binding, защищающий от MITM-атак.
Для поддержания соединения стороны периодически обмениваются Echo Request, если в течение 60 секунд не было передачи данных. Если ответ не получен в течение следующих 60 секунд, соединение разрывается. Это позволяет быстро обнаруживать обрывы связи. Завершение соединения происходит путём обмена специальными управляющими сообщениями.
Требования к серверу SSTP: сертификаты, порты и сетевая инфраструктура
Для работы SSTP-сервера требуется выполнение ряда условий. Прежде всего необходим действующий SSL-сертификат, доверенный клиентами. Так как клиент проверяет сертификат сервера при установлении TLS-соединения, использование самоподписанных сертификатов приведёт к ошибкам на стороне клиента, если не импортировать их в доверенные корневые центры. Рекомендуется использовать сертификаты от публичных центров сертификации или развернуть собственный корпоративный CA и распространить его среди клиентов.
Сервер должен быть доступен из интернета по TCP-порту 443, который по умолчанию используется SSTP. Если сервер находится за NAT, необходимо настроить проброс порта 443 на внутренний адрес сервера. Важно, что SSTP работает поверх HTTPS, поэтому стандартный порт 443 может конфликтовать с веб-сервером, если он уже используется. В этом случае можно перенастроить SSTP на другой порт, но тогда клиенты должны быть настроены на нестандартный порт.
Также необходимо обеспечить корректную маршрутизацию и настройку файрвола. Для Windows Server, где разворачивается RRAS, потребуется настроить правила брандмауэра, разрешающие входящие соединения на порт 443, а также, возможно, на другие порты для управления. Кроме того, важно предусмотреть, что клиенты должны иметь возможность разрешать имена сервера — обычно используется полное доменное имя (FQDN), соответствующее сертификату.
Почему не стоит использовать Windows 10/11 для SSTP-сервера: ограничения и риски
Несмотря на то что технически Windows 10/11 содержит клиент SSTP, использование этих ОС в качестве сервера наталкивается на серьёзные ограничения. Как уже упоминалось, в клиентских версиях отсутствует роль RRAS, что делает невозможным создание VPN-сервера стандартными средствами. Некоторые администраторы пытаются обойти это с помощью сторонних реализаций SSTP-сервера, но такие решения часто нестабильны, требуют постоянной настройки и могут не поддерживать все функции протокола.
Дополнительно клиентские Windows не оптимизированы для роли сетевого шлюза: у них могут быть ограничения на количество одновременных подключений, отсутствуют механизмы маршрутизации и управления политиками, свойственные серверным редакциям. Например, Windows 11 Pro имеет лимит на количество одновременных входящих подключений (обычно не более 20), что неприемлемо для корпоративного использования. Кроме того, автоматические обновления и перезагрузки клиентской ОС могут неожиданно прерывать VPN-сервис, что критично для постоянно работающего сервера.
Использование клиентской Windows в качестве VPN-сервера также создаёт риски безопасности: она менее защищена, чем Windows Server, и не имеет специализированных инструментов для управления доступом, таких как NPS. Поэтому, если вы рассматриваете Windows как платформу, выбор должен быть в пользу Windows Server.
Пошаговая настройка SSTP-сервера на Windows Server
Хотя в рамках данной статьи мы не можем дать полную инструкцию (она потребовала бы отдельного руководства), опишем ключевые этапы настройки SSTP-сервера на Windows Server. Этот процесс требует прав администратора и включает несколько шагов.
- Установка роли Remote Access. Откройте Server Manager, выберите «Add roles and features», установите роль Remote Access. В процессе установки включите службы роли DirectAccess и VPN (RAS) и Routing.
- Настройка RRAS. После установки откройте оснастку Routing and Remote Access. Щёлкните правой кнопкой по серверу и выберите «Configure and Enable Routing and Remote Access». В мастере выберите опцию «VPN access» или «Custom configuration» с включением VPN.
- Выбор протокола SSTP. В свойствах RRAS в разделе «IPv4» или «IPv6» настройте пул адресов для VPN-клиентов. Затем в разделе «SSTP» укажите порт (по умолчанию 443) и выберите сертификат, который будет использоваться для SSL. Сертификат должен быть установлен в хранилище компьютера.
- Настройка NPS. Для аутентификации клиентов используется Network Policy Server. Создайте политику сетевого доступа, которая разрешает подключения SSTP и определяет методы аутентификации (например, MS-CHAPv2 или EAP). Убедитесь, что пользователи имеют право на удалённый доступ (свойства пользователя в AD или локальной базе).
- Настройка файрвола. В брандмауэре Windows разрешите входящие соединения на порт 443. Если используется встроенный брандмауэр, правила создаются автоматически при установке роли, но их стоит проверить.
- Проверка подключения. С клиентской машины (Windows) создайте новое VPN-подключение, указав адрес сервера (FQDN, соответствующее сертификату). Тип VPN выберите SSTP (в Windows автоматически выбирается, если указан порт 443). После ввода учётных данных проверьте подключение.
Альтернативные платформы для SSTP-сервера: MikroTik, VyOS и Linux
Если использование Windows Server невозможно или нецелесообразно, SSTP-сервер можно развернуть на других платформах. Одним из популярных решений является RouterOS от MikroTik. Как отмечают пользователи на форумах, MikroTik CHR (Cloud Hosted Router) — это полноценный образ для виртуальных машин, который легко разворачивается и поддерживает SSTP. Настройка осуществляется через WinBox или командную строку. Однако следует учесть, что бесплатная версия MikroTik CHR имеет ограничение скорости до 1 Мбит/с, если не зарегистрировать лицензию. После окончания пробного периода (обычно 60 дней) скорость ограничивается, но функциональность остаётся. Зарегистрировавшись на сайте MikroTik и привязав аккаунт, можно получить бесплатную лицензию уровня P1 или P10, которая снимает ограничение скорости, но требует обновления каждые 3 месяца, либо приобрести платную лицензию.
Другая альтернатива — операционная система VyOS, которая поддерживает SSTP-сервер из коробки. VyOS — это сетевая ОС на базе Linux, предназначенная для маршрутизаторов и шлюзов. В документации VyOS есть раздел «SSTP Server — SSL VPN через порт 443», который описывает настройку SSTP в качестве сервера. VyOS может быть установлена на физическое оборудование или в виртуальную среду. Это решение подходит для тех, кто предпочитает open-source инструменты и имеет опыт работы с Linux CLI.
Также можно использовать чистый Linux с такими реализациями, как SoftEther VPN, Accel-PPP или OpenSwan (для L2TP). Однако для SSTP именно SoftEther является наиболее известным, поскольку поддерживает протокол SSTP в дополнение к OpenVPN и L2TP. Важно отметить, что использование альтернативных платформ может потребовать более глубоких знаний сетевых технологий, но зачастую обеспечивает большую гибкость и стабильность по сравнению с клиентской Windows.
Практические рекомендации: когда SSTP, а когда другие протоколы
Выбор SSTP как VPN-протокола оправдан в нескольких сценариях. Во-первых, если в вашей организации используются преимущественно Windows-клиенты, и вам необходимо обеспечить доступ к корпоративным ресурсам через интернет, где могут быть заблокированы другие порты. Благодаря использованию 443 порта SSTP легко проходит через большинство файрволов и корпоративных прокси, так как трафик выглядит как обычный HTTPS.
Во-вторых, SSTP хорошо подходит для удалённого доступа, когда клиент находится за строгим NAT или в сети с ограничениями. В отличие от L2TP/IPsec, который требует настройки NAT-T на клиенте (хотя современные версии Windows справляются автоматически), SSTP использует один TCP-порт, что упрощает проброс.
Однако у SSTP есть недостатки: он работает только через TCP, что может приводить к снижению производительности на сетях с высокими потерями пакетов (TCP поверх TCP). Для мобильных пользователей, часто переключающихся между Wi-Fi и сотовыми сетями, более предпочтительным может оказаться IKEv2, который устойчив к обрывам и быстрее восстанавливает соединение. Также SSTP не поддерживается нативно на многих не-Windows клиентах (например, Android и iOS), хотя сторонние приложения могут добавить поддержку.
Если вы выбираете протокол для новой инфраструктуры, стоит рассмотреть современные альтернативы, такие как WireGuard, которые обеспечивают высокую скорость и простоту настройки. Но если стоит задача строго использовать встроенные средства Windows, SSTP остаётся разумным выбором, особенно при наличии Windows Server.
Часто задаваемые вопросы о SSTP-сервере на Windows
Можно ли поднять SSTP-сервер на Windows 10 или 11 Pro?
Нет, на клиентских версиях Windows (10/11) отсутствует роль Routing and Remote Access, необходимая для работы SSTP-сервера. Нативно SSTP-сервер доступен только в Windows Server. Если вы пытаетесь настроить его на Windows 10/11, вам потребуется использовать стороннее ПО или рассмотреть альтернативные платформы, такие как MikroTik или VyOS.
Какие порты использует SSTP?
По умолчанию SSTP использует TCP-порт 443, который обычно занят HTTPS-трафиком. Этот порт выбран, чтобы трафик VPN был неотличим от обычного веб-трафика и мог обходить файрволы. Вы можете перенастроить SSTP на другой порт, но тогда клиенты должны указывать нестандартный порт при подключении.
Нужен ли сертификат для SSTP-сервера?
Да, обязателен. SSTP использует SSL/TLS, и клиент проверяет подлинность сервера по его сертификату. Рекомендуется использовать сертификат от доверенного центра сертификации. Если вы используете самоподписанный сертификат, его необходимо установить в доверенные корневые центры на каждом клиенте.
В чём отличие SSTP от OpenVPN?
SSTP — проприетарный протокол Microsoft, работающий только поверх HTTPS. OpenVPN — открытый протокол, который также может использовать TLS, но поддерживает как TCP, так и UDP. OpenVPN более гибкий и кроссплатформенный, в то время как SSTP нативно поддерживается только в Windows. SSTP легче настраивается в среде Windows, но менее производителен на нестабильных сетях.
Можно ли использовать SSTP на Linux или маршрутизаторах?
Да, существуют реализации SSTP для Linux и маршрутизаторов, например, в VyOS, MikroTik RouterOS, а также сторонние серверы, такие как SoftEther. Однако клиентская часть на Linux может быть ограничена. Для обеспечения совместимости с Windows-клиентами SSTP-сервер на Linux должен правильно реализовывать протокол.
Как защищён SSTP от атак?
SSTP использует SSL/TLS для шифрования и аутентификации, что защищает от прослушивания. Механизм cryptographic binding предотвращает атаки типа «человек посередине», связывая SSL- и PPP-аутентификацию. Однако важно использовать надёжные методы аутентификации PPP, такие как MS-CHAPv2 или EAP-TLS; использование PAP или CHAP делает связку менее защищённой.
Вопросы и ответы
Можно ли поднять SSTP VPN сервер на Windows 11 Pro?
Нет, на Windows 11 Pro отсутствует роль Routing and Remote Access, необходимая для работы SSTP-сервера. Нативно SSTP-сервер доступен только в Windows Server (начиная с 2008). Для Windows 10/11 придётся использовать сторонние решения или перейти на Windows Server.
Какие требования для SSTP-сервера?
Основные требования: сервер под управлением Windows Server с ролью Remote Access, установленный SSL-сертификат, доступность порта 443 из интернета, настроенная политика NPS для аутентификации пользователей. Также важно, чтобы клиенты использовали FQDN сервера, совпадающее с сертификатом.
Чем SSTP отличается от L2TP/IPsec?
SSTP работает поверх HTTPS (порт 443) и использует SSL/TLS для шифрования, что упрощает прохождение через файрволы. L2TP/IPsec требует настройки NAT-T при работе за NAT и использует UDP-порты 500 и 4500. SSTP более совместим с Windows-средой, но менее производителен на нестабильных сетях.
Какие методы аутентификации поддерживает SSTP?
SSTP на уровне PPP поддерживает MS-CHAPv2, EAP-TLS, PEAP-MSCHAPv2, PEAP-TLS. Рекомендуется использовать методы, генерирующие ключи для cryptographic binding (MS-CHAPv2 и EAP), чтобы обеспечить защиту от MITM-атак. PAP и CHAP не рекомендуются, так как они не обеспечивают должной безопасности.
Можно ли использовать SSTP-сервер на MikroTik?
Да, MikroTik RouterOS поддерживает SSTP-сервер. Настройка выполняется через WinBox или CLI. Важно учитывать, что бесплатная версия CHR имеет ограничение скорости 1 Мбит/с, если не зарегистрировать лицензию. После регистрации и выбора лицензии P1 или P10 ограничение снимается.
Какие есть альтернативы SSTP для Windows-среды?
Альтернативы включают IKEv2 (поддерживается в Windows Server и клиентах), L2TP/IPsec, а также сторонние протоколы, такие как WireGuard или OpenVPN. Для Windows Server рекомендуется использовать IKEv2, так как он более устойчив к обрывам и поддерживает современные методы аутентификации.