Ikev2 windows server 2016 настройка

Обновлено: 02.07.2024

Управляем VPN-соединениями в Windows при помощи PowerShell

Управление VPN-подключениями в последних версиях Windows трудно назвать понятным и удобным. Часть настроек производится через современное приложение Параметры, другая часть, как и прежде, находится в Панели управления. Какие-то шаги к упорядочению этой ситуации сделаны только в Windows 11, но практического опыта работы с ней еще недостаточно. Но есть гораздо более простой и удобный способ управления VPN-соединениями - это PowerShell, его можно использовать как в интерактивном режиме, так и для написания скриптов автоматизации, которые будут производить настройку подключения в один клик.

Тема VPN является номером один для системных администраторов второй год, сложная эпидемиологическая обстановка диктует свои условия и требует обеспечить простой и безопасный способ удаленной работы для пользователей. И если с созданием VPN-сервера особых проблем нет - на выбор большое количество протоколов и технологий, то с клиентскими устройствами все намного сложнее.

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

Для управления VPN-соединениями мы будем использовать PowerShell, данные возможности поддерживаются начиная с Windows 8 и Windows Server 2012.

Создание VPN-соединения

Для того, чтобы создать новое VPN-подключение используется командлет Add-VpnConnection, использовать который достаточно просто, обязательных параметров всего два: имя подключения и адрес сервера. Но это, конечно же, не наш метод, если возможности позволяют выполнить тонкую настройку, а они позволяют, то ее нужно выполнить. Поэтому давайте изучим доступные параметры, которые могут нам пригодиться:

  • Name - имя подключения, произвольная строка
  • ServerAddress - адрес VPN сервера, можно указать как IP, так и FQDN
  • TunnelType - тип туннеля, доступные значения: Pptp, L2tp, Sstp, Ikev2, Automatic
  • EncryptionLevel - уровень шифрования данных, можно использовать: NoEncryption, Optional, Required, Maximum
  • AuthenticationMethod - способ проверки подлинности, доступно: Pap, Chap, MSChapv2, Eap, MachineCertificate
  • L2tpPsk - только для L2TP - предварительный общий ключ
  • SplitTunneling - отключает перенаправление всего трафика в туннель, аналогично снятию флага Использовать основной шлюз в удаленной сети
  • RememberCredential - запоминать учетные данные пользователя
  • UseWinlogonCredential - использовать для VPN-подключения учетные данные для входа в систему
  • AllUserConnection - создать подключение для всех пользователей

Также нам пригодятся два служебных параметра:

  • PassThru - выводит на экран результат выполнения команды
  • Force - подавляет вывод запросов и некритичных ошибок, в запросах применяется действие по умолчанию

Ниже мы рассмотрим команды для создания подключений всех поддерживаемых типов.

Устаревший и небезопасный протокол, то один из самых быстрых типов подключения, все еще продолжает использоваться там, где не предъявляются высокие требования к защите данных, либо для этого используются иные механизмы, например, SSL/TLS. В качестве способа аутентификации следует использовать MS-CHAP v2, а уровень шифрования не ниже Required, что соответствует параметру Обязательное (отключиться если нет шифрования) в графическом интерфейсе.

Также мы добавили опции для отключения перенаправления трафика в туннель и разрешили запоминать учетные данные.

powershell-vpnconnection-management-001.jpg

Если вы указали параметр PassThru, то на экране появятся свойства созданного подключения, как на рисунке выше, без указания этого параметра вывод у команды отсутствуют.

L2TP/IPsec

В качестве L2TP будем рассматривать подключение с общим ключом, также используем MS-CHAP v2 и уровень шифрования Required и выше.

powershell-vpnconnection-management-002.jpg

Обратите внимание, что в данной команде мы использовали ключ Force, чтобы предотвратить появление запроса о том, что подтверждаем ли мы передачу общего ключа в открытой форме. Также, как и с PPTP-подключением мы отключили шлюз в VPN-сети и разрешили запоминать учетные данные.

Для использования SSTP вам потребуется импортировать корневой CA-сертификат центра сертификации, выдавшего сертификат серверу в локальное хранилище компьютера, а также использовать в качестве адреса сервера FQDN-имя, указанное в его сертификате. В остальном все несложно, соединение создается уже привычной командой:

powershell-vpnconnection-management-003.jpg

Комментировать здесь мы ничего не будем, если вы внимательно читали статью, то все параметры будут вам понятны.

IKEv2

А вот здесь уже интереснее, мы будем настраивать соединение с аутентификацией по сертификатам. Здесь вам также потребуется импортировать сертификаты в хранилище компьютера: сертификат CA и сертификат пользователя. А для настройки соединения используем следующую команду:

powershell-vpnconnection-management-004.jpg

Обращает внимание новый метод аутентификации MachineCertificate и отсутствие параметра RememberCredential, в данном случае пользователю не нужно вводить никаких учетных данных, поэтому и запоминать тут нечего. В качестве имени сервера используем FQDN или IP, в зависимости от того, что указано в Common Name сертификата сервера.

Изменение параметров VPN-соединения

Создавать подключения мы уже научились, но как быть, когда нам требуется что-то в них изменить? На помощь придёт командлет Set-VpnConnection, он использует все те же параметры что и Add-VpnConnection и позволяет изменить любой из них, для указания подключения используется параметр Name. Скажем, мы хотим изменить адрес сервера для PPTP подключения, нет ничего проще, указываем имя подключения, требуемый параметр и его новое значение:

Например, включим разрешение запоминать учетные данные:

Для отключения введите:

powershell-vpnconnection-management-005.jpg

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

Получение информации о VPN-соединении

Для получения информации о настроенных VPN-соединениях мы можем использовать командлет Get-VpnConnection, из параметров он поддерживает только Name и AllUserConnection, что позволяет отобразить параметры конкретного соединения и уточнить, что мы хотим видеть соединения всех пользователей, а не только текущего.

Чтобы увидеть все VPN-соединения выполните:

Для получения данных о конкретном соединении:

powershell-vpnconnection-management-006.jpg

Возможностей у командлета немного, но со своей работой он справляется.

Удаление VPN-соединения

Для удаления соединения используется командлет, ему достаточно передать единственный параметр - Name, также можно дополнительно указать Force, если вы не хотите подтверждать запрос об удалении соединения.

powershell-vpnconnection-management-007.jpg

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

Добавление маршрута при подключении

Автоматическое добавление маршрутов при установлении VPN-подключения - больная тема для пользователей Windows, но PowerShell позволяет решить и этот вопрос, для этих целей есть отдельный командлет Add-VpnConnectionRoute, он весьма прост в использовании, вам нужно указать имя соединения в параметре ConnectionName и сеть назначения в параметре DestinationPrefix.

Например, добавим маршрут к сети 192.168.111.0/24 через подключение L2TP PS:

Автоматизация создания VPN-соединения

Для автоматического создания соединения важно чтобы конечный пользователь совершал минимум необходимых действий. В целях безопасности PowerShell скрипты нельзя запустить двойным кликом, поэтому будем использовать старый добрый CMD, в котором уже будем запускать PS и передавать ему нужные команды.

Ниже пример простого командного файла, который создает VPN-соединение и прописывает маршрут для него:

Обратите внимание, что команда полностью берется в двойные кавычки, а все двойные кавычки внутри команды заменены на одинарные. Данное содержимое вносим в Блокнот и сохраняем с расширением .bat или .cmd, для создания подключения не требуется повышения прав.

powershell-vpnconnection-management-009.jpg

Если вам нужно внести какие-либо изменения в параметры подключения, вы точно также можете создать новый командный файл, в котором будете использовать командлет Set-VpnConnection.

В целом PowerShell предоставляет достаточно широкие возможности по простому и удобному управлению VPN-соединениями на компьютере и позволяет решать множество связанных с этим задач в один клик, используя скрипты и командные файлы.

VPN L2TP & IKEv2

У IKEv2 такой проблемы нет, поэтому это единственный вариант подключить Windows Phone к корпоративной сети.
В данной статье я буду рассматривать не самую сложную сетевую инфраструктуру. Все роли можно объеденить на одном сервере, но я отделю роль NPS, для демонстрации настройки RADIUS клиентов. Тестовый стенд:


DC1 - 2016 TP5, контроллер домена, AD CS для сертификатов, RAS для VPN, DHCP
NPS1 - 2016 TP5, сервер сетевый политик для RADIUS сервера
NAT - 2012 R2, для эмуляции роутера
Windows 10 как клиент VPN

Для чего нужен RADIUS сервер. Без него мы можем лишь разрешать или запрещать VPN подключение. С ним мы можем указывать каким группам пользователей можно подключаться, к каким ресурсам в сети они имеют доступ.

Роль AD CS нужна для выдачи сертификата серверу VPN, который будет использоваться для IKEv2. L2TP будет работать по упрощённой схеме с общим секретным ключом. С сертификата и начнём.

Для начала необходимо создать новый шаблон на основании шаблона "Компьютер". Делается это в оснастке Certification Authority:



В который мы вносим два обязательных изменения: Subject Name и IP security IKE intermediate.


Необязательное изменение, необходимое только если VPN сервер установлен на контроллере домена: Право на выдачу сертификата для контроллеров домена.


Выпускаем новый шаблон:


Открываем оснастку Certificates и запрашиваем персональный сертификат для сервера.


В сертификате указываем имя, по которому будет подключаться клиент. Будет проще, если FQDN сервер будет совпадать с общедоступным именем VPN сервера.


В итоге должно выглядеть так:


В свойствах VPN сервера выбираем этот сертификат:


На изображении выше видно, что нельзя выбрать провайдеров аутентификации. Это будет только в том случае, когда NPS роль установлена на тот же сервер, где установлена роль RAS. Теперь перейдём к настройке RADIUS сервера. Для начала надо определить клиентов RADIUS (когда NPS установлен на отдельном сервере):


И указать VPN серверу в оснастке RRAS, что аутентификация будет проходить через RADIUS сервер (когда NPS установлен на отдельном сервере):



Возвращаемся в оснастку NPS и создаём сетевую политику доступа:

Определям на какую группу будет распространятся политика:


Разрешаем подключение:


Определяем методы Аутентификации, в том числе и порядок:


Задаём уровень шифрования. Я выбираю максимальный:


Всё. Политика настроена, теперь лишь нужно в ней включить игнорирование настроек пользоватильской учётной записи.


Закончим настройку VPN сервера, разрешив использование сертификата для IKEv2, а так же задав общий секретный ключ для L2TP:


По умолчанию Клиент VPN получит IP адрес от доменного DHCP сервера.


Если задать выдачу VPN адресов не из DHCP, то тогда на каждом клиенте необходимо будет добавить статические маршруты в другие сети, которые используются в доменной сети. С DHCP это гораздо проще. Нужно лишь заполнить опцию 121 (которая, к сожалению, криво работает c Debian 8):


Теперь настроим NAT на проброс портов для L2TP и IKEv2. На Windows Server это делается так:


Далее необходимо создать VPN подключение на клиенте. Для этого я буду использовать PowerShell:

Каждое подключение создаётся для всех пользователей компьютера. Нужно это для одновременного входа в систему и подключения VPN. Если этого не надо, то удалите ключ -AllUserConnection .

Если нужно, чтобы весь трафик, включая интернет, шёл через VPN сервер, то удалите ключ -SplitTunneling . Для IKEv2 необходимо использование только имени сервера, с IP адресом работать не будет (хотя можно попытаться засунуть IP адрес в CN сертификата). На клиенте задаём вручную общий секретный ключ и перезагружаем клиент, если была произведена правка реестра:






А вот так выглядят подключения в оснастке RRAS:


Клиент "а" подключился дважды, по этому для подключения по IKEv2 отбражается его IP адрес, полученный с подключением по L2TP.
Тип аунтентификации EAP - это Windows клиенты. MS CHAP V2 - Apple OS X.

Хотите знать кто, когда и откуда подключался к VPN сервера? Тогда вам в эту тему.
Хотите кластер из VPN? Тогда вам в эту тему. С её помощью я настраивал свой первый VPN, а потом всё резюмировал в свой статье.

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

IKEv2 — это туннельный протокол VPN, описанный в статье запрос принудительного запроса задачи по инженерам Интернета для комментариев 7296. Основное преимущество IKEv2 заключается в том, что оно допускает прерывания в базовом сетевом подключении. Например, если подключение временно потеряно или пользователь переместит клиентский компьютер из одной сети в другую, IKEv2 автоматически восстанавливает VPN-подключение при переустановке сетевого подключения — без вмешательства пользователя.

Настройте сервер RRAS для поддержки подключений IKEv2 при отключении неиспользуемых протоколов, что снижает объем безопасности сервера. Кроме того, настройте сервер для назначения адресов VPN-клиентам из статического пула адресов. Вы можете феасибли назначать адреса из пула или DHCP-сервера. Однако использование DHCP-сервера повышает сложность проектирования и предоставляет минимальные преимущества.

Установите два сетевых адаптера Ethernet на физическом сервере. При установке VPN-сервера на виртуальной машине необходимо создать два внешних виртуальных коммутатора, по одному для каждого физического сетевого адаптера. Затем создайте два виртуальных сетевых адаптера для виртуальной машины, каждый из которых подключен к одному виртуальному коммутатору.

Установите сервер в сети периметра между пограничным и внутренним брандмауэрами с одним сетевым адаптером, подключенным к внешней сети периметра, и одним сетевым адаптером, подключенным к внутренней сети периметра.

Установка удаленного доступа в качестве VPN-сервера шлюза RAS

В этой процедуре вы устанавливаете роль удаленного доступа как VPN-сервер шлюза RAS одного клиента. Дополнительные сведения см. в разделе Удаленный доступ.

Установка роли удаленного доступа с помощью Windows PowerShell

откройте Windows PowerShell от имени администратора.

Введите и выполните следующий командлет:

Установка роли удаленного доступа с помощью диспетчер сервера

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

На VPN-сервере в диспетчер сервера выберите Управление и щелкните Добавить роли и компоненты.

Откроется мастер добавления ролей и компонентов.

На странице перед началом выполнения нажмите кнопку Далее.

На странице Выбор типа установки выберите вариант установки на основе ролей или компонентов и нажмите кнопку Далее.

На странице Выбор целевого сервера выберите из пула серверов параметр выбрать сервер .

В разделе пул серверов выберите локальный компьютер и нажмите кнопку Далее.

На странице Выбор ролей сервера в области роли выберите Удаленный доступ, а затем Далее.

На странице Выбор компонентов нажмите кнопку Далее.

На странице удаленный доступ нажмите кнопку Далее.

На странице Выбор службы роли в службах ролей выберите DirectAccess и VPN (RAS).

Откроется диалоговое окно Мастер добавления ролей и компонентов .

В диалоговом окне Добавление ролей и компонентов выберите Добавить компоненты , а затем нажмите кнопку Далее.

На странице роль веб-сервера (IIS) нажмите кнопку Далее.

На странице Выбор служб ролей нажмите кнопку Далее.

На странице Подтверждение выбора установки просмотрите выбранные параметры и нажмите кнопку установить.

По завершении установки нажмите кнопку Закрыть.

Настройка удаленного доступа в качестве VPN-сервера

В этом разделе вы можете настроить VPN удаленного доступа, разрешающее подключения по протоколу IKEv2 VPN, запретить подключения от других протокола VPN и назначить пул статических IP-адресов для выдачи IP-адресов для подключения разрешенных VPN-клиентов.

На VPN-сервере в диспетчер сервера выберите флаг уведомлений .

В меню задачи выберите команду открыть мастер начало работы .

Откроется мастер настройки удаленного доступа.

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

Выберите вариант развернуть только VPN.

Откроется консоль управления Microsoft (MMC) Маршрутизация и удаленный доступ.

Щелкните правой кнопкой мыши VPN-сервер, а затем выберите настроить и включить маршрутизацию и удаленный доступ.

Откроется мастер установки сервера маршрутизации и удаленного доступа.

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

В окне Конфигурация выберите Настраиваемая конфигурация, а затем нажмите кнопку Далее.

В окне Настраиваемая конфигурация выберите VPN-доступ, а затем нажмите кнопку Далее.

Откроется окно Завершение работы мастера установки сервера маршрутизации и удаленного доступа.

Выберите запустить службу , чтобы запустить удаленный доступ.

В консоли управления для удаленного доступа щелкните правой кнопкой мыши VPN-сервер и выберите пункт Свойства.

В окне Свойства перейдите на вкладку Безопасность и выполните следующие действия.

а. Выберите поставщик проверки подлинности и выберите Проверка подлинности RADIUS.

Откроется диалоговое окно Проверка подлинности RADIUS.

c. Выберите Добавить.

Откроется диалоговое окно Добавление сервера RADIUS.

d. В поле имя сервера введите полное доменное имя (FQDN) сервера политики сети в вашей организации или корпоративной сети.

д) В окне общий секрет выберите изменить.

Откроется диалоговое окно изменение секрета.

е) В поле новый секрет введите текстовую строку.

ж. В поле Подтверждение нового секрета введите ту же текстовую строку, а затем нажмите кнопку ОК.

Сохраните эту текстовую строку. При настройке сервера политики сети в организации или корпоративной сети этот VPN-сервер будет добавлен в качестве RADIUS-клиента. Во время этой конфигурации вы будете использовать тот же общий секрет, чтобы серверы NPS и VPN могли обмениваться данными.

В окне Добавление сервера RADIUS проверьте параметры по умолчанию для.

Время ожидания

Первоначальная оценка

порт.

При необходимости измените значения в соответствии с требованиями для вашей среды и нажмите кнопку ОК.

Проверьте настройку регистратора.

Перейдите на вкладку IPv4 и выполните следующие действия.

а. Выберите статический пул адресов.

b. Выберите Добавить , чтобы настроить пул IP-адресов.

Пул статических адресов должен содержать адреса из внутренней сети периметра. Эти адреса находятся на внутреннем сетевом подключении на VPN-сервере, а не в корпоративной сети.

c. В поле начальный IP-адрес введите начальный IP-адрес в диапазоне, который вы хотите назначить VPN-клиентам.

d. В поле конечный IP-адрес введите конечный IP-адрес в диапазоне, который вы хотите назначить VPN-клиентам или в поле число адресов введите номер адреса, который необходимо сделать доступным. Если вы используете DHCP для этой подсети, убедитесь, что на DHCP-серверах настроено соответствующее исключение адресов.

д) Используемых Если вы используете DHCP, выберите адаптер и в списке результатов выберите адаптер Ethernet, подключенный к внутренней сети периметра.

Используемых При настройке условного доступа для VPN-подключения из раскрывающегося списка Сертификат в разделе привязка SSL-сертификата выберите аутентификацию сервера VPN.

Используемых Если вы настраиваете условный доступ для VPN-подключения, в консоли управления "NPS" разверните узел политики политики \ сети и выполните следующие действия.

а. Правой кнопкой мыши щелкните подключения к сетевой политике сервера маршрутизации и удаленного доступа Майкрософт и выберите свойства.

b. Выберите доступ с предоставлением доступа. Предоставить доступ, если запрос на подключение соответствует этому параметру политики.

c. В разделе Тип сервера сетевого доступа выберите сервер удаленного доступа (VPN-подключение) в раскрывающемся списке.

В консоли MMC «Маршрутизация и удаленный доступ» щелкните правой кнопкой мыши элемент порты и выберите пункт свойства.

Откроется диалоговое окно Свойства портов.

Выберите Минипорт WAN (SSTP) и щелкните Configure (настроить). Откроется диалоговое окно Настройка мини-порта устройства WAN (SSTP).

а. Снимите флажки подключения удаленного доступа (только входящие) и подключения с маршрутизацией вызовов по требованию (входящие и исходящие) .

b. Щелкните ОК.

Выберите Минипорт WAN (L2TP) и щелкните Configure (настроить). Откроется диалоговое окно Настройка мини-порта устройства WAN (L2TP).

а. В поле Максимальное число портов введите количество портов в соответствии с максимальным количеством одновременных VPN-подключений, которые требуется поддерживать.

b. Щелкните ОК.

Выберите Минипорт WAN (PPTP) и щелкните Configure (настроить). Откроется диалоговое окно Настройка мини-порта устройства WAN (PPTP).

а. В поле Максимальное число портов введите количество портов в соответствии с максимальным количеством одновременных VPN-подключений, которые требуется поддерживать.

b. Щелкните ОК.

Выберите Минипорт WAN (IKEv2) и щелкните Configure (настроить). Откроется диалоговое окно Настройка мини-порта устройства WAN (IKEv2).

а. В поле Максимальное число портов введите количество портов в соответствии с максимальным количеством одновременных VPN-подключений, которые требуется поддерживать.

b. Щелкните ОК.

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

Следующий шаг

Шаг 4. установка и настройка сервера политики сети (nps). на этом шаге вы устанавливаете сервер политики сети (nps) с помощью Windows PowerShell или мастера диспетчер сервера добавление ролей и компонентов. Вы также настраиваете NPS для обработки всех операций проверки подлинности, авторизации и учета для запросов на подключение, получаемых от VPN-сервера.


Сейчас все вокруг настраивают VPN для удаленных сотрудников. Мне больно смотреть, как люди устанавливают монструозные глючные программы, настраивают какие-то сертификаты, устанавливают драйвера TUN/TAP и делают множество сложных операций, в то время как лучшее решение уже встроено в операционную систему.

IKEv2 — это современный протокол VPN, разработанный Microsoft и Cisco. Он используется по умолчанию для новых VPN-подключений в Windows, macOS, iOS. Он быстрее и безопаснее большинства VPN-протоколов и может легко настраиваться на стороне клиента в два клика без использования сторонних программ.

Я считаю, что IPsec IKEv2 отлично подходит не только для соединения серверов, но и для обычных VPN-подключений конечных пользователей. В этом посте я постараюсь убедить вас использовать IPsec IKEv2 для обычных домашних пользователей вместо OpenVPN.

IKEv2 быстрее

При прочих равных условиях, IKEv2 будет всегда быстрее OpenVPN. Это особенно заметно на маломощных системах с медленной памятью, например на роутерах или одноплатных компьютерах.

Дело в том, что IPsec работает в контексте ядра операционной системы, а OpenVPN в контексте пользователя (userspace), и на обработку каждого пакета происходит переключение контекста между процессами ядра и процессами пользователя. Это влияет как на пропускную способность, так и на задержки.



Сравнение задержек для разных протоколов VPN.

Скриншот выше показывает разницу в задержке в два раза между IPsec и OpenVPN. Разумеется, разницу в 1мс невозможно заметить на глаз, но при нагрузке на систему эти значения могут значительно изменяться. Кроме того, реальные показатели сильно зависят от характеристик конкретной системы, поэтому я не буду приводить абсолютные цифры для сравнения двух протоколов. Задержки очень важны при использовании голосовой и видеосвязи через VPN.

По моим субъективным ощущениям IKEv2 на Windows 10 работает заметно отзывчивее чем OpenVPN. Ведь реальное использование десктопного компьютера сильно отличается от синтетических тестов VPN-протоколов. Нагрузка на процессор и память непостоянная, пользователь может запускать ресурсоемкие программы, все это будет влиять на показатели.

IKEv2 проще в настройке

Все современные операционные системы (кроме Android) поддерживают IPsec IKEv2 прямо из коробки. Не нужно устанавливать никакие программы, драйвера виртуальных адаптеров TUN/TAP и прочее. Всё управление VPN происходит из системного меню.

При этом настройку на клиенте можно упростить до трех строчек:

  • Домен — для IPsec домен обязателен, так как для него выпускается SSL-сертификат
  • логин
  • пароль

Настройка на Windows 10

Мастер настройки VPN вызывается из меню подключения к WiFi. С настройкой одного окна справится пользователь любой квалификации. Созданное подключение активируется из меню со списком WiFi-сетей.



Интерфейс настройки нового IKEv2 подключения в Windows 10

В macOS поддерживается IKEv2 начиная с версии 10.11 (El Capitan). Создание подключения происходит через меню настроек сети.

image

Добавляем новое подключение. В качестве имени подключения задаем любое произвольное имя.

image

Для проверки подлинности сертификата, нужно указать доменное имя. При этом в поле «Server Address» можно указать IP-адрес сервера, а домен только в «Remote ID», тогда для подключения не будет выполняться DNS-резолв, и оно будет происходить чуть быстрее.

image

Логин и пароль пользователя указываем из файла /etc/ipsec.secrets

image

Настройку iOS можно выполнить вручную через мастер, но намного удобнее использовать профиль автоконфигурации mobileconfig.

Ручная настройка по смыслу аналогична десктопной macOS:

Настройки -> VPN -> Добавить конфигурацию VPN

IKEv2 это безопасно


Клиент устанавливает защищенный SSL-тоннель с сервером, и уже внутри него передается логин-пароль. По умолчанию в Windows и macOS для передачи пароля используется алгоритм mschapv2. Таким образом с помощью SSL-сертификата клиент проверяет подлинность сервера, а по логину-паролю сервер проверяет подлинность клиента.

Сервер IKEv2 может использовать один и тот же сертификат вместе с веб-сервером, например от популярного Let's Encrypt. Это сильно упрощает управлением сертификатами.

Такая же модель используется в OpenVPN, и при желании в нем можно использовать сертификат от Lets Encrypt, однако администратору в любом случае потребуется передать пользователю файл для настройки VPN.

Настраиваем IKEv2 сервер

Развернуть свой IKEv2 сервер можно за пару минут с помощью скриптов автоматической установки или используя готовые контейнеры. Использовать docker не рекомендуется, так как его сетевая подсистема снижает производительность IPsec на дешевых тарифах VPS. Вы также можете настроить IKEv2-сервер вручную, на Хабре есть статьи с примерами настройки сервера Strongswan.

Шаг 1: Выбор сервера

Для запуска VPN сервера нам потребуется VDS. Подойдет самая простая конфигурация с одним ядром процессора. Скрипт из нашего примера лучше всего протестирован на Ubuntu 18.04, поэтому при создании сервера выбираем этот образ ОС.


Ждем окончания установки сервера и копируем реквизиты для подключения. Пароль root придет на почту, либо его можно задать вручную через веб-интервейс. Далее все команды мы вводим


Шаг 2: Установка Strongswan

Подключаемся SSH-клиентом и запускаем скрипт установки:

Шаг 3: Настройка клиента

Введенные реквизиты пользователя VPN теперь нужно использовать для настройки на клиенте. Важно использовать именно то доменное имя, которое вы вводили в Hostname for VPN.

Шаг 4: Добавление новых пользователей

Чтобы добавить нового пользователя в уже созданный сервер, отредактируйте файл /etc/ipsec.sectes.


После добавления пользователя выполните команду ipsec secrets чтобы Strongswan перечитал конфиг.

Заключение

Мы рассмотрели удобство IKEv2 со стороны пользователя. Администрирование такого сервера не сложнее, а иногда даже проще чем OpenVPN. Если вы только планируете организовать удаленный доступ для своих сотрудников, обязательно посмотрите в сторону IKEv2. Не заставляйте своих пользователей устанавливать лишние программы, если все необходимое уже есть на их компьютере. Это удобнее, безопаснее и намного прогрессивнее.

В этом кратком руководстве мы опишем процесс установки и настройке VPN-сервера на базе Windows Server. Все действия, описанные в этой статье, были выполнены на Windows Server 2016, но эта инструкция подходит для любой современной серверной операционной системы Windows, начиная с Windows Server 2008 R2 и заканчивая Windows Server 2016.

Итак, давайте начнем. Прежде всего нам нужно настроить роль удаленного доступа (Remote Access). Для этого в оснастке Server Manager запустите мастер добавления ролей и выберите роль Remote Access.

Remote Access - vpn role

DirectAccess and VPN (RAS)

В дополнение к роли удаленного доступа и средствам управления, также автоматически будут установлены веб-сервер IIS и внутренняя база данных Windows (WID). Полный список установленных функций можно просмотреть в окончательном окне мастера, появляющимся перед тем, как вы подтвердите установку.

install vpn role

Установить роль Remote Access вместе со всеми необходимыми опциями можно всего одной командой PowerShell:

Install-WindowsFeature -Name DirectAccess-VPN -IncludeAllSubFeature -IncludeManagementTools

В оснастке RRAS выберите имя сервера, щелкните правой кнопкой мыши и выберите «Настроить и включить маршрутизацию и удаленный доступ» (Configure and Enable Routing and Remote Access) в открывшемся меню.

Configure and Enable Routing and Remote Access

В мастере настройки выберите пункт Custom configuration.

Custom configuration

В списке служб выберите опцию VPN access.

VPN access

После этого система предложит вам запустить службу Маршрутизации и удаленного доступа.

start rras service

Служба VPN установлена и включена, теперь ее необходимо настроить. Снова откройте меню сервера и выберите пункт «Свойства».

vpn server svoystva

Перейдите на вкладку IPv4. Если у вас нет DHCP-серверов в сети, вам необходимо указать диапазон IP-адресов, которые будут получать клиенты при подключении к VPN-серверу.

ipv4-pool

l2tp shared password

И еще пара нужных моментов, которые следует иметь в виду при настройке VPN-сервера.

Во-первых, вам нужно указать пользователей, которых будет разрешено подключаться к этому VPN-серверу. Для автономного сервера настройка выполняется локально, в оснастке «Управление компьютером». Чтобы запустить оснастку, вам нужно выполнить команду compmgmt.msc, затем перейдите в раздел «Локальные пользователи и группы». Затем вам нужно выбрать пользователя, открыть его свойства, а на вкладке «Dial-In» отметьте пункт «Разрешить доступ» (Allow access). Если компьютер является членом домена Active Directory, те же настройки можно сделать из оснастки ADUC.

allow-access

Во-вторых, проверьте, открыты ли все необходимые порты на брандмауэре Windows и межсетевом экране, осуществляющим NAT-трансляцию. Теоретически, когда вы устанавливаете роль RRAS, соответствующие правила автоматически включаются, но на всякий случай проверьте их самостоятельно. Список разрешенных правил для входящего трафика:

rras-firewall-rules

Если ваш VPN-сервер находится за NAT, для корректной установки VPN-соединения по протоколу L2TP/ipsec, на стороне клиента необходимо в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent создать ключ с именем AssumeUDPEncapsulationContextOnSendRule и значением 2.

На этом все. Теперь, когда у вас имеется настроенный VPN-сервер, вы можете подключиться к нему с помощью VPN-клиента.

Читайте также: