Сегодня мы посмотрим на возможности настройки VPN, которые предлагает нам NSX Edge.
В целом мы можем разделить VPN-технологии на два ключевых вида:
Site-to-site VPN. Чаще всего используется IPSec для создания защищенного туннеля, например, между сетью главного офиса и сетью на удаленной площадке или в облаке.
Remote Access VPN. Используется для подключения отдельных пользователей к частным сетям организаций с помощью ПО VPN-клиента.
NSX Edge позволяет нам использовать оба варианта.
Настройку будем производить с помощью тестового стенда с двумя NSX Edge, Linux-сервера с установленным демоном racoon и ноутбука с Windows для тестирования Remote Access VPN.
IPsec
В интерфейсе vCloud Director переходим в раздел Administration и выделяем vDC. На вкладке Edge Gateways выбираем нужный нам Edge, кликаем правой кнопкой и выбираем Edge Gateway Services.
В интерфейсе NSX Edge переходим во вкладку VPN-IPsec VPN, далее – в раздел IPsec VPN Sites и жмем +, чтобы добавить новую площадку.
Заполняем необходимые поля:
Enabled – активирует удаленную площадку.
PFS – гарантирует, что каждый новый криптографический ключ не связан с любым предыдущим ключом.
Local ID и Local Endpoint – внешний адрес NSX Edge.
Local Subnets – локальные сети, которые будут использовать IPsec VPN.
Peer ID и Peer Endpoint – адрес удаленной площадки.
Peer Subnets – сети, которые будут использовать IPsec VPN на удаленной стороне.
Все готово, site-to-site IPsec VPN настроен и работает.
В этом примере мы использовали PSK для аутентификации пира, но возможен также вариант с аутентификацией по сертификатам. Для этого нужно перейти во вкладку Global Configuration, включить аутентификацию по сертификатам и выбрать сам сертификат.
Кроме того, в настройках сайта необходимо будет поменять метод аутентификации.
Отмечу, что количество IPsec-туннелей зависит от размера развернутого Edge Gateway (об этом читайте в нашей первой статье).
SSL VPN
SSL VPN-Plus – один из вариантов Remote Access VPN. Он позволяет отдельным удаленным пользователям безопасно подключаться к частным сетям, находящимся за шлюзом NSX Edge. Зашифрованный туннель в случае SSL VPN-plus устанавливается между клиентом (Windows, Linux, Mac) и NSX Edge.
Приступим к настройке. В панели управления сервисами Edge Gateway переходим во вкладку SSL VPN-Plus, затем к Server Settings. Выбираем адрес и порт, на котором сервер будет слушать входящие соединения, включаем логирование и выбираем необходимые алгоритмы шифрования.
Здесь же можно изменить сертификат, который будет использовать сервер.
После того как все готово, включаем сервер и не забываем сохранить настройки.
Далее нам необходимо настроить пул адресов, которые мы будем выдавать клиентам при подключении. Эта сеть отделена от любой существующей подсети в вашей среде NSX, ее не нужно настраивать на других устройствах в физических сетях, за исключением маршрутов, которые на нее указывают.
Переходим во вкладку IP Pools и жмем +.
Выбираем адреса, маску подсети и шлюз. Здесь же можно изменить настройки для DNS и WINS серверов.
Получившийся пул.
Теперь добавим сети, доступ к которым будет у подключающихся к VPN пользователей. Перейдем во вкладку Private Networks и нажмем +.
Заполняем:
Network — локальная сеть, к которой будет доступ у удаленных пользователей.
Send traffic, у него два варианта:
— over tunnel – отправлять трафик к сети через туннель,
— bypass tunnel – отправлять трафик к сети напрямую в обход туннеля.
Enable TCP Optimization – отмечаем, если выбрали вариант over tunnel. Когда оптимизация включена, можно указать номера портов, для которых необходимо оптимизировать трафик. Трафик для оставшихся портов этой конкретной сети не будет оптимизирован. Если номера портов не указаны, трафик для всех портов оптимизируется. Подробнее об этой функции читайте здесь.
Далее переходим на вкладку Authentication и жмем +. Для аутентификации будем использовать локальный сервер на самом NSX Edge.
Здесь мы можем выбрать политики для генерирования новых паролей и настроить опции по блокировке пользовательских аккаунтов (например, количество повторных попыток при неправильном вводе пароля).
Так как мы используем локальную аутентификацию, необходимо создать пользователей.
Помимо базовых вещей вроде имени и пароля, здесь можно, например, запретить пользователю изменять пароль или, наоборот, заставить его поменять пароль при следующем входе.
После того, как все необходимые пользователи добавлены, перейдем на вкладку Installation Packages, нажмем + и создадим сам инсталлятор, который скачает для установки удаленный сотрудник.
Нажимаем +. Выбираем адрес и порт сервера, к которому будет подключаться клиент, и платформы, для которых нужно сгенерировать установочный пакет.
Ниже в этом окне можно указать параметры клиента для Windows. Выбираем:
start client on logon – VPN-клиент будет добавлен в автозагрузку на удаленной машине;
create desktop icon – создаст иконку VPN-клиента на рабочем столе;
server security certificate validation – будет валидировать сертификат сервера при подключении.
Настройка сервера завершена.
Теперь скачаем созданный нами в последнем шаге установочный пакет на удаленный ПК. При настройке сервера мы указывали его внешний адрес (185.148.83.16) и порт (445). Именно по этому адресу нам необходимо перейти в веб-браузере. В моем случае это 185.148.83.16:445.
В окне авторизации необходимо ввести учетные данные пользователя, которого мы создали ранее.
После авторизации перед нами появляется список созданных установочных пакетов, доступных для загрузки. Мы создали только один – его и скачаем.
Кликаем по ссылке, начинается скачивание клиента.
Распаковываем скачанный архив и запускаем инсталлятор.
После установки запускаем клиент, в окне авторизации нажимаем Login.
В окне проверки сертификата выбираем Yes.
Вводим учетные данные для ранее созданного пользователя и видим, что подключение завершено успешно.
Проверяем статистику VPN-клиента на локальном компьютере.
В командной строке Windows (ipconfig /all) видим, что появился дополнительный виртуальный адаптер и связность с удаленной сетью есть, все работает:
И напоследок – проверка из консоли Edge Gateway.
L2 VPN
L2VPN понадобится в том случае, когда нужно объединить несколько географически
распределенных сетей в один broadcast-домен.
Это может быть полезно, например, при миграции виртуальной машины: при переезде ВМ на другую географическую площадку машина сохранит настройки IP-адресации и не потеряет связность с другими машинами, находящимися в одном L2-домене с ней.
В нашей тестовой среде соединим друг с другом две площадки, назовем их, соответственно, A и B. У нас есть два NSX и две одинаково созданные маршрутизируемые сети, привязанные к разным Edge. Машина A имеет адрес 10.10.10.250/24, машина B – 10.10.10.2/24.
В vCloud Director переходим на вкладку Administration, заходим в нужный нам VDC, переходим на вкладку Org VDC Networks и добавляем две новые сети.
Выбираем тип сети routed и привязываем эту сеть к нашему NSX. Ставим чекбокс Create as subinterface.
В итоге у нас должно получиться две сети. В нашем примере они называются network-a и network-b с одинаковыми настройками gateway и одинаковой маской.
Теперь перейдем в настройки первого NSX. Это будет NSX, к которому привязана сеть A. Он будет выступать в качестве сервера.
Возвращаемся в интерфейс NSx Edge/ Переходим на вкладку VPN —> L2VPN. Включаем L2VPN, выбираем режим работы Server, в настройках Server Global указываем внешний IP-адрес NSX, на котором будет слушаться порт для туннеля. По умолчанию, сокет откроется на 443 порту, но его можно поменять. Не забываем выбрать настройки шифрования для будущего туннеля.
Переходим во вкладку Server Sites и добавляем пир.
Включаем пир, задаем имя, описание, если нужно, задаем имя пользователя и пароль. Эти данные нам понадобятся позже при настройке клиентского сайта.
В Egress Optimization Gateway Address задаем адрес шлюза. Это нужно для того, чтобы не происходил конфликт IP-адресов, ведь шлюз у наших сетей имеет один и тот же адрес. После чего нажимаем на кнопку SELECT SUB-INTERFACES.
Здесь выбираем нужный сабинтерфейс. Сохраняем настройки.
Видим, что в настройках появился только что созданный клиентский сайт.
Теперь перейдем к настройке NSX со стороны клиента.
Заходим на NSX стороны B, переходим в VPN —> L2VPN, включаем L2VPN, устанавливаем L2VPN mode в клиентский режим работы. На вкладке Client Global задаем адрес и порт NSX A, который мы указывали ранее как Listening IP и Port на серверной стороне. Также необходимо выставить одинаковые настройки шифрования, чтобы они согласовались при поднятии туннеля.
Проматываем ниже, выбираем сабинтерфейс, через который будет строиться туннель для L2VPN.
В Egress Optimization Gateway Address задаем адрес шлюза. Задаем user-id и пароль. Выбираем сабинтерфейс и не забываем сохранить настройки.
Собственно, это все. Настройки клиентской и серверной стороны практически идентичны, за исключением нескольких нюансов.
Теперь можем посмотреть, что наш туннель заработал, перейдя в Statistics —> L2VPN на любом NSX.
Если сейчас зайдем в консоль любого Edge Gateway, то увидим на каждом из них в arp-таблице адреса обеих VM.
На этом про VPN на NSX Edge у меня все. Спрашивайте, если что-то осталось непонятным. Также это последняя часть из серии статей по работе с NSX Edge. Надеемся, они были полезны 🙂