Как поднять свой vpn сервер windows server 2012
Перейти к содержимому

Как поднять свой vpn сервер windows server 2012

Записки IT специалиста

Настраиваем PPTP или L2TP VPN-сервер при помощи RRAS в Windows Server

  • Автор: Уваров А.С.
  • 13.11.2020

PPTP-L2TP-VPN-Windows-RRAS-000.pngПлатформа Windows Server остается одной из наиболее популярных серверных платформ, в том числе и для реализации решений удаленного доступа. Служба маршрутизации и удаленного доступа (RRAS) позволяет быстро и достаточно просто развернуть VPN-сервер практически для любых нужд. Сегодня мы еще раз вернемся к этому вопросу и рассмотрим, как создать на базе Windows Server PPTP или L2TP сервер для удаленного доступа, как наиболее востребованный сценарий на сегодняшний день.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

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

Оптимальным вариантом будет использование L2TP/IPsec подключения, которое сочетает в себе простоту, поддержку практически любыми клиентскими ОС и устройствами вместе с неплохим уровнем безопасности, обеспечиваемым IPsec. А так как настройка сервера для этих видов подключений практически идентична, то мы решили объединить их в одну статью.

Установка и настройка службы маршрутизации и удаленного доступа

Для начала работы с VPN в среде Windows Server вам потребуется установить роль Удаленный доступ, это делается стандартными средствами и не должно вызвать затруднений.

PPTP-L2TP-VPN-Windows-RRAS-001.png

В Службах ролей выбираем Маршрутизация, роль DirectAccess и VPN (RAS) будет добавлена автоматически.

PPTP-L2TP-VPN-Windows-RRAS-002.png

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

PPTP-L2TP-VPN-Windows-RRAS-003.png

В появившемся окне выбираем пункт Развернуть только VPN.

PPTP-L2TP-VPN-Windows-RRAS-004.png

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

PPTP-L2TP-VPN-Windows-RRAS-005.png

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

PPTP-L2TP-VPN-Windows-RRAS-006.png

В следующем окне достаточно поставить галочку Доступ к виртуальной частной сети (VPN) и завершить работу мастера.

PPTP-L2TP-VPN-Windows-RRAS-007.png

После завершения работы мастера служба Маршрутизации и удаленного доступа будет запущена и можно приступить к настройке сервера удаленного доступа. Если же данная служба у вас уже установлена и настроена в иной конфигурации, то щелкните правой кнопкой по строке сервера и выберите Свойства, в открывшемся окне на закладке Общие установите опции: IPv4-маршрутизатор локальной сети и вызова по требованию и IPv4-сервер удаленного доступа.

PPTP-L2TP-VPN-Windows-RRAS-008.pngНастройка PPTP и/или L2TP сервера удаленного доступа

Откроем оснастку Маршрутизация и удаленный доступ и перейдем к свойствам сервера через одноименный пункт в меню правой кнопки мыши, прежде всего убедимся, что настройки на закладке Общие соответствуют приведенным на скриншоте выше. Затем переключимся на закладку Безопасность и убедимся, что в качестве Поставщика службы проверки подлинности стоит Windows — проверка подлинности, а Поставщик учетаWindows-учет, еще ниже установим флаг Разрешить пользовательские политики IPsec для L2TP- и IKEv2-подключения и в поле Общий ключ укажите парольную фразу для предварительного ключа.

PPTP-L2TP-VPN-Windows-RRAS-009.png

Нажав на кнопку Методы проверки подлинности откроем окно, в котором выберем только Протокол EAP и Шифрованная проверка (Microsoft, версия 2, MS-CHAP v2), остальные протоколы не являются безопасными и должны быть отключены.

PPTP-L2TP-VPN-Windows-RRAS-010.png

На закладке IPv4 укажем опцию Назначение IPv4-адресовСтатический пул адресов и добавим новый пул для выдачи адресов из него удаленным клиентам. Количество адресов должно быть не менее количества клиентов плюс один адрес, так как первый адрес из пула присваивается серверу. Что касается самого диапазона адресов, то его выбор зависит от конфигурации сети, если вы будете использовать маршрутизацию, то он не должен пересекаться с локальной сетью, если же хотите использовать ProxyARP, то наоборот, должны выделить принадлежащий локальной сети диапазон. В нашем случае используется второй вариант.

PPTP-L2TP-VPN-Windows-RRAS-011.png

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

PPTP-L2TP-VPN-Windows-RRAS-012.png

Также не забудьте проверить настройки брандмауэра, чтобы убедиться, что правила Маршрутизация и удаленный доступ GRE-входящий, PPTP-входящий (для PPTP) и L2TP-входящий (для L2TP) включены.

PPTP-L2TP-VPN-Windows-RRAS-013.pngProxy ARP

Сетевое взаимодействие в пределах одной IP-сети осуществляется на канальном (L2) уровне, в сетях Ethernet для этого используются MAC-адреса устройств. Для того, чтобы выяснить MAC-адрес узла по его IP применяется протокол ARP (Address Resolution Protocol), использующий широковещательные запросы, на которые отвечает только обладатель указанного IP-адреса. Выдавая удаленным клиентам адреса из диапазона основной сети мы как бы помещаем их в общую IP-сеть, но так как VPN — это соединение точка-точка, ARP-запросы от удаленных клиентов в сеть попадать не будут, единственный узел который их получит — сам VPN-сервер.

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

VPN-сервер за NAT

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

Начнем с PPTP, прежде всего клиент устанавливает управляющее TCP-соединение на порт 1723, затем, после успешной аутентификации создается соединение для передачи данных с использованием протокола GRE.

Таким образом для работы PPTP-сервера за NAT нужно:

  • пробросить порт 1723 TCP
  • разрешить прохождение GRE-трафика

С первым понятно, а вот с GRE могут возникнуть затруднения. Если вы используете маршрутизатор на базе Linux, то обратитесь к следующей нашей статье, если оборудование Mikrotik, настроенное по нашей инструкции, то достаточно пробросить только 1723 TCP, прохождение GRE будет разрешено конфигурацией брандмауэра, в остальных случаях следует обратиться к документации на свою модель маршрутизатора.

С L2TP сложнее, точнее не с ним самим, а с IPsec, который не поддерживает NAT. Для обхода этих ограничений используется протокол NAT-T, который инкапсулирует пакеты IPsec в UDP, позволяя успешно проходить через NAT. Поддержка данного протокола включена по умолчанию практически во всех ОС, кроме Windows. Для включения поддержки NAT-T следует внести изменения в реестр, найдите ветку:

И создайте в ней параметр DWORD c именем AssumeUDPEncapsulationContextOnSendRule и значением 2.

Это можно быстро сделать при помощи PowerShell:

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

При установлении L2TP/IPsec соединения между узлами прежде всего создается зашифрованный IPsec-канал, для этого используется протокол обмена ключами IKE (порт 500 UDP) и протокол NAT-T (порт 4500 UDP), затем уже внутри безопасного IPsec-соединения поднимается L2TP-туннель на порт 1701 UDP и происходит аутентификация пользователя.

Обратите внимание, аутентификация пользователя в L2TP, в отличии от PPTP, происходит внутри защищенного IPsec-канала, что делает данный тип соединения более безопасным.

Таким образом для работы L2TP/IPsec сервера за NAT нужно:

  • пробросить порт 500 UDP
  • пробросить порт 4500 UDP
  • внести изменения в реестр для включения NAT-T как на сервере, так и на клиенте (только для Windows)

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

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

С одной стороны это простой вопрос, с другой — имеются определенные тонкости, на которые мы как раз и обратим внимание. В Windows 10 для первичной настройки VPN-подключения служит современное приложение, которое предельно простое и не охватывает дополнительных настроек.

PPTP-L2TP-VPN-Windows-RRAS-014.png

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

PPTP-L2TP-VPN-Windows-RRAS-015.png

Затем на закладке Безопасность установите в Шифрование данныхобязательное, а в пункте Проверка подлинности выберите Протокол расширенной проверки подлинности (EAP).

PPTP-L2TP-VPN-Windows-RRAS-016.png

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

PPTP-L2TP-VPN-Windows-RRAS-017.png

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

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

В данной части нашего материала мы будем рассматривать настройку клиентских Linux-систем при помощи графического окружения и Network Manager, настройка серверных систем выходит за рамки текущей статьи. В качестве примера мы будем использовать Ubuntu, но все сказанное будет справедливо для любых основанных на Debian систем, а с некоторыми уточнениями — для любых дистрибутивов.

Поддержка PPTP присутствует практически в любом дистрибутиве по умолчанию. Достаточно перейти в Настройки — Сеть и добавить новое VPN-подключение.

PPTP-L2TP-VPN-Windows-RRAS-018.png

Заполняем основные настройки: адрес сервера, имя и пароль пользователя.

PPTP-L2TP-VPN-Windows-RRAS-019.png

Затем нажимаем кнопку Дополнительно и в открывшемся окне в разделе Аутентификация оставляем только MSCHAPv2, обязательно включаем Использовать шифрование MPPE и выбираем ниже 128 бит (наиболее защищенное), также устанавливаем флаг Включить Stateful Encryption для уменьшения накладных расходов на шифрование. Флаги сжатия оставляем включенными.

PPTP-L2TP-VPN-Windows-RRAS-020.png

Закрываем данное окно с сохранением данных и переходим на закладку IPv4, где в разделе Маршрутизация устанавливаем флаг Использовать это подключение только для ресурсов этой сети, в противном случае в туннель пойдет весь трафик узла.

PPTP-L2TP-VPN-Windows-RRAS-024.png

На этом настройка подключения завершена, можно подключаться.

Для работы с L2TP потребуется установить дополнительные пакеты:

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

PPTP-L2TP-VPN-Windows-RRAS-021.png

Затем откроем Настройки PPP, в разделе Аутентификация также выберем только MSCHAPv2, а вот опции шифрования оставляем выключенными, так как чистый L2TP шифрования не использует, для защиты канала здесь применяется IPsec. Флаги сжатия также оставляем установленными по умолчанию.

PPTP-L2TP-VPN-Windows-RRAS-022.png

Затем переходим в Настройки IPsec, это наиболее сложная и ответственная часть настроек, так как от них напрямую зависит безопасность соединения. В поле Pre-shared key введите Общий ключ, а ниже потребуется указать используемые шифры. Большинство материалов в сети интернет копируют друг у друга откровенно старые и слабые наборы шифров, что не соответствует реалиям сегодняшнего дня, хотя соединение с такими значениями будет работать. Мы же будем использовать максимально безопасные значения, для этого в поле Phase1 Algorithms укажите aes256-sha1-ecp384, а в поле Phase2 Algorithmsaes256-sha1.

Также имеет смысл установка флага Enforce UDP Encapsulation, который принудительно включает NAT-T, в случае если вы точно знаете, что ваш сервер находится за NAT, без этой опции протокол включается автоматически при обнаружении первого устройства с NAT.

PPTP-L2TP-VPN-Windows-RRAS-023.png

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

PPTP-L2TP-VPN-Windows-RRAS-025.png

На этом настройка закончена, можно подключаться.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Дополнительные материалы:

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Записки IT специалиста

В данной статье представлена инструкция по развертыванию простейшего VPN-сервера на базе Windows Server 2012 R2. По моему личному мнению поднимать VPN на базе Windows можно в случае использования небольшой офисной сети с потребностью удаленного подключения для нескольких сотрудников. В случае же организации VPN между филиалами компании с достаточно обширной инфраструктурой, следует использовать технологию DirectAccess либо VPN на базе аппаратных решений (например Cisco).

Перейдем к установке и настройке:

  1. Открываем Server Manager — Dashboard, нажимаем «Add roles and features» (Рис.1):

2. Выбираем «Role-based or feature-based installation» и нажимаем Next (Рис.2):

3. Далее попадаем на страницу выбора сервера (в моем случае он один), выбираем сервер и нажимаем Next (Рис.3):

4. Далее выбираем роль «Remote Access» и нажимаем Next (Рис.4):

5. На последующий страницах мастера нажимаем два раза Next. В окне выбора служб ролей (Select role services) выбираем «DirectAcces and VPN (RAS)». Откроется окно «Add features», нажимаем кнопку «Add Features» (Рис.5 и 6):

6. Затем откроется окно «Web Server Role», нажимаем Next (Рис.7):

7. В окне «Select role services» нажимаем Next (Рис.8):

8. В окне подтверждения нажимаем Install (Рис.9):

9. После окончания установки нажимаем «Open the Getting Started Wizzard» (Рис.10):

10. Откроется окно «Configure Remote Access», нажимаем «Deploy VPN only» (Рис.11):

11. Откроется консоль «Routing and Remote Access». Нажимаем правой кнопкой мыши на нашем сервер и выбираем «Configure and Enable Routing and Remote Access» (Рис.12):

12. Откроется мастер настройки, нажимаем Next (Рис.13):

13. В окне Configuration выбираем «Remote Access (dial-up orVPN)» и нажимаем Next (Рис.14):

14. На следующей странице выбираем VPN и нажимаем Next (Рис.15):

15. Далее выбираем сетевой адаптер, имеющий доступ в Интернет и нажимаем Next (Рис.16):

16. В следующем окне можно выбрать, каким образом будут выдаваться IP-адреса vpn-клиентам: с помощью DHCP или из специального пула, выбираем второй вариант и нажимаем Next (Рис.17):

18. В окне «Address Range Assignment» нажимаем кнопку New (Рис.18):

19. Задаем начальный и конечный адреса диапазона и нажимаем Ок (возвращаемся на предыдущую страницу и нажимаем Next (Рис.19):

20. Далее выбираем метод аутентификации клиентов: с помощью RRAS или RADIUS. Выбираем первый вариант и нажимаем Next (Рис.20):

21. После успешной настройки нажимаем Finish (Рис.21):

22. Если нам нужен VPN PPTP, то настройки на этом завершены. Если нам нужен VPN L2TP, в консоли «Routing and Remote Access» открываем свойства нашего сервера (Рис.22):

23. На вкладке Securuty задаем «Preshared Key» (ставим галку «Allow custom IPsec policy for L2TP/IKEv2 connection») (Рис.23):

24. Далее в консоли RRAS открываем свойства портов, выбираем «WAN miniport (L2TP)» и ограничиваем количество портов (Рис.24):

25. Чтобы дать пользователю доступ к VPN, открываем свойства нужного нам пользователя и переходим на вкладку Dial-in, в разделе Network Access Permission выбираем «Allow Access» и нажимаем Apply (Рис.25):

Как поднять свой vpn сервер windows server 2012

Перед настройкой служб и соединений на сервере и клиентских машин необходимо установить на них КриптоПро CSP и КриптоПро IPSec!

Открываем оснастку Server Manager и через мастер добавления ролей выбираем тип установки на основе ролей — Role-based or feature-based installation.

image

Далее выбираем сервер из пула серверов.

image

На шаге выбора ролей выбираем роль Remote Access.

image

Шаг Features пропускаем без внесения изменений. На шаге выбора служб включаемой роли выберем службу DirectAccess and VPN (RAS).

image

После выбора службы откроется окно добавления дополнительных компонент связанных с выбранной службой. Согласимся с их установкой нажав Add Features.

image

Роль Web Server Role (IIS) будет при этом добавлена в мастер добавления ролей. Соответствующий появившийся шаг мастера Web Server Role (IIS) и зависимые опции Role Services пропускаем с предложенными по умолчанию настройками и запускаем процесс установки, по окончании которого будет доступна ссылка на мастер первоначальной настройки служб Remote Access – Open the Getting Started Wizard.

image

Мастер настройки RAS можно вызвать щёлкнув по соответствующей ссылке здесь, либо позже из оснастки Server Manager:

image

Так как настройка DirectAccess в контексте нашей задачи не нужна, в окне мастера выбираем вариант только VPN – Deploy VPN only.

image

Настройка службы Routing and Remote Access

Из Панели управления открываем оснастку Administrative Tools \ Routing and Remote Access, выбираем имя сервера и открываем контекстное меню. Выбираем пункт Configure and Enable Routing and Remote Access.

image

Так как нам нужен только VPN выбираем.

image

image

Дальше указываем внешний интерфейс, имеющий выход в Интернет, к которому будут подключаться удаленные клиенты.

image

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

image
image

Укажем что не используем RADIUS сервер.

image

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

image

Выпускаем ГОСТовые сертификаты в КриптоПро УЦ 2.0 для VPN.

Для того чтобы IPSec у нас работал нам нужно:

  • Корневой сертификат УЦ
  • Серверный сертификат
  • Клиентский сертификат

И так, создадим два шаблона IPSec client IPSec server в Диспетчере УЦ.

image

В настройка шаблона IPSec client добавим параметр Client Authentication (1.3.6.1.5.5.7.3.2). IP security IKE intermediate (1.3.6.1.5.5.8.2.2).

image

Шаблон IPSec server такой же но с параметром Server Authentication (1.3.6.1.5.5.7.3.1).

image

После проделанной работы в Консоли управления ЦР создаем пользователей для запроса и формирования сертификата.

image

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

image

Выберем место хранения (контейнер) для закрытого ключа.

image

После нервного дерганья мышкой (это необходимо для СПЧ) задаем пароль для контейнера.
Теперь нам необходимо экспортировать сертификат в закрытый контейнер.

image

После копирования сертификата необходимо скопировать весь контейнер в файл для переноса на АРМ удаленного клиента. Экспортируем с помощью КриптоПро CSP в формате pfx.

image

По такому же алгоритму создаем сертификат для сервера только по другому шаблону и устанавливаем их с помощью оснастки Сертификаты КриптоПро CSP. Не забываем про корневой сертификат который должен быть в Доверенных корневых центры сертификации.

Настройка политики IP-безопасности на сервере

image

image

image

На вкладке «Методы проверки подлинности» добавляем Корневой сертификат.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *