Сьогодні ми подивимося на можливості налаштування VPN, які пропонує нам NSX Edge.
Загалом ми можемо розділити VPN-технології на два ключові види:
VPN типу «сайт-сайт». Найчастіше використовується IPSec для створення захищеного тунелю, наприклад, між мережею головного офісу та мережею на віддаленому майданчику або у хмарі.
Віддалений доступ VPN. Використовується для підключення окремих користувачів до приватних мереж організацій за допомогою програмного забезпечення VPN-клієнта.
NSX Edge дозволяє нам використовувати обидва варіанти.
Налаштування будемо проводити за допомогою тестового стенду з двома NSX Edge, Linux-сервера із встановленим демоном єнот та ноутбука з Windows для тестування Remote Access VPN.
IPsec
В інтерфейсі vCloud Director переходимо до розділу Administration і виділяємо vDC. На вкладці Edge Gateways вибираємо потрібний нам Edge, клацаємо правою кнопкою та вибираємо Edge Gateway Services.
В інтерфейсі NSX Edge переходимо у вкладку VPN-IPsec VPN, далі - в розділ IPsec VPN Sites і тиснемо +, щоб додати новий майданчик.
Заповнюємо необхідні поля:
включено – активує віддалений майданчик.
ПФС – гарантує, що кожен новий криптографічний ключ не пов'язаний із будь-яким попереднім ключем.
Local ID та Local Endpoint – зовнішня адреса NSX Edge.
Локальна підмережаs – локальні мережі, які використовуватимуть IPsec VPN.
Peer ID та Peer Endpoint – адреса віддаленого майданчика.
Peer Subnets – мережі, які використовуватимуть IPsec VPN на віддаленій стороні.
Алгоритм шифрування - Алгоритм шифрування тунелю.
Authentication - Як ми будемо аутентифікувати бенкет. Можна використовувати Pre-Shared Key або сертифікат.
Попередньо спільний ключ – вказуємо ключ, який використовуватиметься для аутентифікації та має збігатися з обох сторін.
Група Діффі-Хеллмана - Алгоритм обміну ключами.
Після заповнення необхідних полів натискаємо Keep.
Готово.
Після додавання майданчика переходимо на вкладку Activation Status та активуємо IPsec Service.
Після того як налаштування будуть застосовані, переходимо у вкладку Statistics -> IPsec VPN і перевіряємо статус тунелю. Бачимо, що тунель підвівся.
Перевіримо статус тунелю із консолі Edge gateway:
show service ipsec – перевірка стану сервісу.
show service ipsec site – інформація про стан сайту та узгоджені параметри.
show service ipsec sa – перевірка статусу Security Association (SA).
Перевірка зв'язності з віддаленим майданчиком:
root@racoon:~# ifconfig eth0:1 | grep inet
inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0
root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10
PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data.
64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms
--- 192.168.0.10 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 ms
Конфігураційні файли та додаткові команди для діагностики віддаленого Linux-сервера:
Все готово, 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. Сподіваємось, вони були корисні 🙂