пятница, 22 февраля 2013 г.

Настройка Site-to-Site IPsec VPN между VMware vCloud Director и Microsoft Windows Server

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

Неотъемлемой частью "облачных" инфраструктур, построенных на продуктах VMware vCloud, является VMware Edge, входящий в состав VMware vCloud Networkin & Security, также известный как VMware vShield).

VMware Edge предоставляет возможность организации IPSec Site-to-Site VPN туннелей как с другими серверами Edge, так и с программным обеспечением и оборудованием сторонних производителей, например, Cisco ASA или Microsoft TMG. Однако, в некоторых случаях, функции VPN сервера может взять на себя и обычный сервер с установленной ОС Windows Server.

В качестве примера рассмотрим настройку VPN туннеля между двумя сайтами (site1 и site2). В первом сайте используется подсеть 192.168.10.0 / 24 и установлен выделенный сервер Windows Server 2008 R2 с доступом в Интернет (в примере подсеть 192.168.1.0 / 24). Во втором сайте используется подсеть 192.168.20.0 / 24 и развернут сервер VMware Edge, у которого также есть прямой доступ в Интернет.

Настройка Edge сервера

При развертывании Edge сервера в виртуальном ЦОД организации все настройки VPN туннелей должны выполняется только из консоли vCloud Director, т.к. настройки, выполняемые из vShield Manager, не синхронизируются с БД vCloud Director и могут быть перезаписаны.

Откройте консоль управления vCloud Director. Войдите в систему в качестве системного администратора или администратора организации. Перейдите во вкладку администрирования (Administration), в списке слева выберите нужный виртуальный ЦОД (Virtual Datacenters) и перейдите на вкладку Edge Gateways.

Выберите нужный сервер Edge, щелкните правой кнопкой мыши и выберите Edge Gateway Services.

Перейдите на вкладку VPN и включите поддержку VPN на сервере, выбрав Enable VPN.

Нажмите кнопку Add для создания нового VPN туннеля.

В окне Add a Site-to-Site VPN configuration задайте имя (Name) туннеля, а также описание (Description).

В списке Establish VPN to выберите a remote network.

В списке Local Networks выберите локальную сеть, подключенную к серверу Edge, для которой требуется организовать VPN туннель.

В поле Peer Networks укажите в формате CIDR (например, 192.168.10.0/24) удаленную сеть, подключенную к Windows Server, до которой требуется организовать VPN туннель.

Если сервер Edge подключен к нескольким внешним (External) сетям, то в списке Local Endpoint выберите внешнюю сеть, через которую Edge будет подключаться к серверу Windows Server.

В поле Local ID укажите IP адрес внешнего интерфейса Edge сервера.

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

В поле Peer ID укажите IP адрес внешнего интерфейса Windows Server.

Примечание: В некоторых случаях удаленный Windows Server может быть подключен к Интернет не напрямую, а находиться за NAT устройством, которое осуществляет проброс необходимых портов для организации VPN. В любом случае, в данном поле указывается IP адрес внешнего интерфейса Windows Server'а сервера, неважно, из публичного или из частного диапазона. 

В поле Peer IP задайте IP адрес внешнего интерфейса Windows Server.

Примечание: В случае, если удаленный сервер находится за NAT устройством, данном поле потребуется ввести IP адрес внешнего интерфейса NAT устройства.

В списке Encryption protocol выберите протокол шифрования. Edge сервер поддерживает протоколы шифрования AES-256 (256 бит), AES (128 бит) и 3DES (192 бита). В качестве примера здесь и далее используется протокол шифрования 3DES.

Выберите Show key для показа общего ключа. Скопируйте общий ключ, т.к. он потребуется при настройке Windows Server.

При необходимости измените значение MTU во избежание фрагментации пакетов из-за ограничений внешнего канала.

Нажмите OK для создания VPN туннеля.

Нажмите OK еще раз для сохранения настроек. Если все все было сделано правильно, то после повторного открытия окна Edge Gateway Services на вкладке VPN появится новый туннель.

Не забудьте настроить брандмауэр Edge на вкладке Firewall. Для тестовых целей вы можете разрешить весь входящий и исходящий трафик, выбрав Default action: Allow, или отключив брандмауэр.

На этом настройки со стороны Edge сервера закончены.

Настройка Windows Server

Для корректной маршрутизации трафика между внутренней сетью и виртуальным интерфейсом на сервере Windows Server должна быть установлена роль Network Policy and Access Services.

Сделать это можно из консоли Server Manager или из командной строки, выполнив команды:
dism /online /enable-feature /featurename:RasServerAll 
dism /online /enable-feature /featurename:RasRoutingProtocols


Откройте оснастку управления Routing and Remote Access. Щелкните по имени сервера правой кнопкой мыши и выберите Configure and Enable Routing and Remote Access.

В мастере настройки в главном окне нажмите Next.

В окне Configuration выберите Custom configuration и нажмите Next.

В окне Custon Configuration выберите LAN routing и нажмите Next.

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

Запустите службу, нажав Start service.

Настройки IPsec VPN туннелей в Windows Server выполняются из оснастки Windows Firewall with Advanced Security или командной строки.

Запустите оснастку.

Щелкните по корню Windows Firewall with Advanced Security on Local Computer правой кнопкой мыши и в контекстном меню выберите Properties.

В открывшемся окне перейдите на вкладку IPsec Settings и в области IPsec defaults нажмите кнопку Customize.

В окне Customize IPsec Settings в области Key exchange (Main Mode) выберите Advanced и нажмите кнопку Customize.

С помощью кнопки Remove удалите все существующие варианты согласования, а затем с помощью кнопки Add добавьте режим со следующими настройками:
Integrity algorithm: SHA-1
Encryption algorithm: 3DES
Key exchange algorithm: Diffie-Hellman Group 2
Остальные настройки оставьте по умолчанию.


Примечание: Алгоритмы шифрования на Windows Server и сервере Edge должны совпадать.

Нажмите OK для сохранения настроек.

В окне Customize IPsec Settings в области Data Protection (Quick Mode) выберите Advanced и нажмите кнопку Customize.

В окне Customize Data Protection Settings выберите Require encryption for all connection security rules that use these settings.

С помощью кнопки Remove удалите все существующие варианты согласования, а затем с помощью кнопки Add добавьте режим со следующими настройками:
Protocol: ESP
Encryption algorithm: 3DES
Integrity algorithm: SHA-1
Остальные настройки оставьте по умолчанию.



Примечание: Алгоритмы шифрования на Windows Server и сервере Edge должны совпадать.

Нажмите OK для сохранения настроек.


Нажмите OK для сохранения настроек еще раз.

Нажмите OK в третий раз.

Щелкните правой кнопкой мыши по Connection Security Rules и в контекстном меню выберите New Rule.

В мастере создания правил на главной странице выберите Tunnel и нажмите Next.

На странице Tunnel Type выберите Custom configuration и No. Send all network traffic that matches this connection security rule through the tunnel. Нажмите Next.

На странице Requirements выберите Require authentication for inbound and outbound connections. Нажмите Next.

На странице Tunnel Endpoints в списке Which computers are in Endpoint 1 с помощью кнопки Add добавьте локальную сеть, подключенную к Windows Server, для которой требуется организовать VPN туннель.

Помните, что конфигурация Windows Server является зеркальным отражением конфигурации Edge и здесь локальные и удаленные IP адреса и подсети меняются местами.

В поле What is the local tunnel endpoint с помощью кнопки Edit укажите IP адрес внешнего интерфейса Windows Server.

В поле What is the remote tunnel endpoint с помощью кнопки Edit укажите IP адрес внешнего интерфейса сервера Edge.

в списке Which computers are in Endpoint 2 с помощью кнопки Add добавьте удаленную сеть, подключенную к серверу Edge, до которой требуется организовать VPN туннель.

Нажмите Next.

На странице Authentication Method выберите режим Advanced и нажмите кнопку Customize.

В окне Customize Advanced Authentication Methods с помощью кнопки Remove удалите все существующие варианты аутентификации, а затем с помощью кнопки Add добавьте режим со следующими настройками:

Select the credential to use for first authentication: Preshared key

Укажите общий ключ, сохраненный ранее при настройке сервера Edge.


Примечание: Общий ключ на Windows Server и сервере Edge должен совпадать.

Нажмите OK для сохранения настроек.


Нажмите Next.

На странице Profile нажмите Next.

На странице Name задайте имя (Name) и описание (Description) создаваемого правила.

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

Осталось сделать самую малость.

Для всех туннелей, создаваемых на сервере Edge, по умолчанию включен perfect forward secrecy. В свою очередь, для туннелей, создаваемых в Windows Server режим perfect forward secrecy выключен. По этой причине два сервера не могут согласовать настройки безопасности на второй фазе (Quick Mode). Исправить это можно, включив PFS на Windows Server.

Для этого откройте консоль CMD. Вам потребуется отредактировать созданное правило, используя команду netsh. Формат команды:
netsh advfirewall consec set rule name="Tunnel to vCloud" new qmpfs=dhgroup2
, где  "Tunnel to vCloud" - имя правила.
qmpfs=dhgroup2 - включает режим PFS.

Посмотреть имя правила можно в оснастке Windows Firewall или с помощью команды:
netsh advfirewall consec show rule name=all

Настройки закончены, можно приступать к проверке.

Проверка работы

.Для проверки можно использовать клиентские машины, развернутые в каждом из сайтов и утилиту ping.

Перед проверкой, убедитесь, что на клиентах и на сервере Edge настроен брандмауэр и разрешен трафик ICMP.

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

Все работает.

В оснастке управления Windows Firewall в Security Associations Main Mode и Quick Mode должны появиться записи о первой и второй фазах IPsec.

Примечание: Если на Windows Server в RRAS включить функцию NAT сервера, то перестает корректно работать маршрутизация трафика через VPN туннель.

8 комментариев:

  1. А как быть если VPN соединение не устанавливается и SA не появляются. Как диагностировать, в журнале событий Windows Server ничего не нашел?

    ОтветитьУдалить
  2. SA даже в Main Mode не устанавливаются?

    О том как включить ведение журнала на Windows Server написано тут:
    http://technet.microsoft.com/en-us/library/cc754714(v=ws.10).aspx#BKMK_Proc3

    ОтветитьУдалить
    Ответы
    1. Да, SA не появляются даже в Main Mode.

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

      Удалить
    2. Туннель заработал, SA появляются проблема была у провайдера.
      Но пинг с самого сервера не проходит до сети на другом конце, а если пинговать не с сервера, а с ноутбука на котором прописан статический маршрут в сторону сервера то все работает.
      Теперь вот над этим голову ломаю.

      Удалить
    3. С помощью Wireshark выяснилось, что когда пингуешь с сервера то пакеты не хотят уходить в туннель.

      Удалить
  3. не хочет на этапе netsh advfirewall consec set rule name="Tunnel to vCloud" new qmpfs=dhgroup2
    Qmpfs cannot be specified when qmsecmethods is set to default.

    ОтветитьУдалить
    Ответы
    1. В Windows Server 2012 формат команды поменялся и теперь требуется добавлять параметр qmsecmethods= в команду netsh advfirewall conset set rule и указывать параметры безопасности QuickMode. Есть вы задавали эти настройки в IPSec defaults, то можно просто скопировать эти настройки из существующего правила из поля QuickModeSecMethods, выполнив команду netsh advfirewall consec show rule name=.

      Кстати, возможно, что в Windows Server 2012 PFS включен по умолчанию, и вводить команду не требуется, но проверить это нет возможности.

      Удалить
    2. Спасибо большое, настраиваю на 2k8R2 Ent тоже на 12-й проверить нет возможности!
      Также не понятно как включить PFS если правило приходит групповой политикой (включить его при создании политики)

      Удалить