Налаштування WireGuard VPN між двома маршрутизаторами Keenetic

Починаючи з KeeneticOS 3.3, з'явилася  підтримка WireGuard VPN для поточної лінійки продукції.

Розглянемо приклад налаштування безпечного VPN-з’єднання за протоколом WireGuard між двома маршрутизаторами Keenetic. Ми детально покажемо налаштування VPN-сервера (очікує підключення) і VPN-клієнта (ініціює підключення).

NOTE: Важливо! Якщо ви плануєте налаштувати маршрутизатор Keenetic як VPN-сервер, спочатку переконайтеся, що він має публічну IP адресу та, якщо ви використовуєте сервіс KeenDNS, що він працює в режимі "Прямий". Якщо ви не виконаєте будь-яку з цих умов, ви не зможете підключитися до такого сервера з Інтернету.

Давайте подивимося на схему підключення:

 wg-en.png

Є роутер Keenetic з публічною IP-адресою для виходу в Інтернет. Цей маршрутизатор діятиме як VPN-сервер, а його публічна адреса використовуватиметься для підключення іншого Keenetic (як VPN-клієнта) з IP-адресою з приватного діапазону на інтерфейсі WAN.

Необхідно надати хостам кожного маршрутизатора доступ до віддаленої локальної мережі через VPN-тунель. Така схема з’єднання також називається «Site-to-Site VPN» (наприклад, міжофісне з’єднання для розширення інфраструктури мережі).

wg-01-en.png

NOTE: Важливо! Ми рекомендуємо налаштовувати WireGuard VPN з одного пристрою (наприклад, комп’ютера або смартфона), оскільки під час створення з’єднання вам потрібно буде обмінюватися відкритими ключами з обох боків VPN-тунелю. Отже, вам потрібно забезпечити одночасний доступ до налаштувань сервера та клієнта.

У прикладі сервер і клієнт є маршрутизаторами Keenetic, тому відкрийте два веб-інтерфейси у своєму браузері в різних вкладках одночасно.

На обох пристроях виконайте такі дії:

Перейдіть на сторінку «Інші підключення» та в розділі «WireGuard» натисніть «Додати підключення». Ви побачите сторінку налаштувань, де ви можете вказати назву тунелю. У нашому прикладі імена «WG-S» для сервера та «WG-CL1» для клієнта.

Натисніть кнопку «Згенерувати ключі», щоб згенерувати приватний і відкритий ключі. Далі нам знадобляться лише публічні ключі по обидва боки VPN-тунелю. Вам потрібно буде вказати ключ до VPN-сервера в налаштуваннях VPN-клієнта і навпаки.

wg-s-00-en.png

NOTE: Важливо! Не закривайте вкладки браузера підключень WireGuard для сервера та клієнта. Вам потрібно буде перемикатися між ними під час процесу налаштування.

Тепер давайте детально розглянемо налаштування кожного роутера.

Налаштування сервера WireGuard VPN

Введіть внутрішню IP-адресу тунелю у форматі IP/бітової маски (у нашому прикладі 172.16.82.1/24) у налаштуваннях підключення WireGuard у полі «Адреса». Ви можете використовувати будь-яку підмережу в приватному діапазоні, яка не використовується на стороні сервера та клієнта.

У полі Listening port введіть номер порту, який буде використовуватися під час налаштування клієнта VPN (у нашому прикладі це порт 16632). Цей порт клієнт використовуватиме під час налаштування тунелю. Маршрутизатор автоматично відкриє цей порт на всіх інтерфейсах, щоб дозволити проходити вхідні з’єднання. Немає необхідності додавати дозвільні правила міжмережевого екрану.

 wg-s-01-en.png

Натисніть кнопку «Додати пір», щоб створити параметри підключення клієнта.

Тимчасово перемкніть свій браузер на вкладку веб-інтерфейсу клієнта VPN і натисніть «Копіювати відкритий ключ у буфер обміну» в налаштуваннях підключення WireGuard («WG-CL1»).

Поверніться на вкладку налаштувань сервера VPN. Введіть ім’я вузла (у нашому прикладі це «WG-CL1») і в полі «Публічний ключ» вставте відкритий ключ VPN-клієнта з буфера обміну. У полях «Дозволені IP-адреси» потрібно вказати адреси, з яких віддалена сторона може надсилати трафік і на які віддалена сторона може отримувати трафік. Як правило, це внутрішня адреса віддаленого кінця тунелю та віддаленої мережі (локальної мережі клієнта VPN).

NOTE: Важливо! Області адрес дозволених підмереж у однорангових вузлах в межах одного інтерфейсу не повинні перекриватися. У нашому прикладі адреса віддаленого кінця тунелю 172.16.82.2/32. На стороні клієнта VPN трафік у тунелі проходитиме з адресою джерела 172.16.82.2, тому тут ми вказуємо адресу хоста (з маскою /32). А 192.168.100.0/24 визначено як віддалена мережа (ми повинні забезпечити тунельний доступ до цієї мережі).

У полі «Persistent keepalive» вкажіть інтервал спроб перевірки однорангової активності (це внутрішня перевірка доступності віддаленої сторони підключення). У нашому прикладі встановлено 15 секунд.

wg-s-02-en.png 

Натисніть кнопку "Зберегти".

Налаштування з’єднання WireGuard на сервері VPN завершено, але вам також потрібно налаштувати правила міжмережевого екрану та маршрутизацію на Keenetic. Вам потрібно дозволити вхідний трафік і вказати статичний маршрут до віддаленої мережі для створеного інтерфейсу WireGuard.

Відкрийте сторінку «Міжмережевий екран». Додайте та увімкніть дозволяюче правило для протоколу IP для інтерфейсу WireGuard (у нашому прикладі це «WG-S»). Це необхідно, тому що за замовчуванням для інтерфейсів тунелю встановлено публічний рівень безпеки, і вхідний трафік заборонено. Ви повинні виконати відповідні налаштування на обох маршрутизаторах Keenetic, щоб запити з віддалених мереж могли проходити через тунель.

wg-s-04-en.png

wg-s-05-en.png

Вам потрібно додати статичний маршрут, щоб надсилати трафік до віддаленої мережі через тунель. Перейдіть на сторінку «Маршрутизація», натисніть «Додати маршрут» і вкажіть такі статичні параметри маршруту:

У полі «Тип маршруту» виберіть параметр «Маршрут до мережі»; у полі «Мережева адреса призначення» вкажіть віддалену підмережу (у нашому прикладі це 192.168.100.0). А в полі «Інтерфейс» виберіть назву раніше створеного інтерфейсу WireGuard (у нашому випадку це «WG-S») і увімкніть опцію «Додавати автоматично».

wg-cl1-07-en.png 

Тепер налаштування VPN-сервера завершено, і ви можете переходити до налаштувань VPN-клієнта. Але спочатку відкрийте сторінку «Інші підключення», клацніть на записі створеного підключення WireGuard (у нашому прикладі це «WG-S»), а потім натисніть «Копіювати публічний ключ у буфер обміну». Нам знадобиться цей ключ, щоб налаштувати все на стороні клієнта VPN.

NOTE: Важливо! Часто на маршрутизаторі, який діє як VPN-сервер, адміністратор додатково налаштовує міжмережевий екран, щоб забороняти всі вхідні підключення до інтерфейсу WAN і дозволяти підключення лише з певних IP-адрес. Якщо у вас є такі налаштування, додайте правило для брандмауера на інтерфейсі WAN для вхідних підключень до сервера WireGuard. У дозволеному правилі ви повинні вказати номер порту прослуховування сервера WireGuard для протоколу UDP (у нашому прикладі це порт 16632). Якщо цього не зробити, VPN-тунель не буде встановлено.

Налаштування клієнта WireGuard VPN

Введіть внутрішню IP-адресу тунелю з тієї ж підмережі, що й VPN-сервер, у налаштуваннях підключення WireGuard у полі «Адреса». Введіть IP-адресу у форматі IP/бітової маски (у нашому прикладі 172.16.82.2/24, оскільки адреса на віддаленому кінці тунелю 172.16.82.1/24).

wg-cl1-01-en.png

Натисніть кнопку «Додати пір», щоб створити налаштування підключення до сервера.

Вкажіть ім’я вузла (у нашому прикладі це «WG-S») і в полі «Публічний ключ» вставте публісний ключ сервера VPN із буфера обміну.

У полі «Кінцева точка» у форматі IP:порт або ім’я:порт введіть публічну IP-адресу або доменне ім’я маршрутизатора, який виконує функцію сервера VPN, відповідно, а через двокрапку —  порт (порт прослуховування). який було зазначено під час налаштування тунелю на сервері). У нашому прикладі це ****.keenetic.link:16632

NOTE: Важливо! Коли використовується сервіс KeenDNS, переконайтеся, що він працює в режимі прямого доступу. Ви не зможете підключитися до VPN-сервера з Інтернету в режимі хмарного доступу.

У полях «Доступні IP-адреси» вам потрібно вказати адреси, з яких віддалена сторона може надсилати трафік і на які віддалена сторона може отримувати трафік. Це внутрішня адреса віддаленого кінця тунелю та віддаленої мережі (локальної мережі сервера VPN). У нашому прикладі адреса віддаленого кінця тунелю — 172.16.82.1/32 (трафік від VPN-клієнта в тунелі надходитиме з адресою джерела 172.16.82.1, тому ми вказуємо тут адресу хоста), і віддалена мережа — 192.168.22.0/24 (потрібно забезпечити доступ до цієї мережі через тунель).

У полі «Persistent keepalive» виберіть інтервал спроб перевірити активність однорангового пристрою (це внутрішня перевірка доступності віддаленої сторони з’єднання). У нашому прикладі встановлено 15 секунд.

wg-cl1-02-en.png

Натисніть кнопку "Зберегти".

Тепер ми налаштуємо міжмережевий екран та маршрутизацію на Keenetic. Вам потрібно дозволити вхідний трафік і вказати статичний маршрут до віддаленої мережі для створеного інтерфейсу WireGuard.

Відкрийте сторінку «Міжмережевий екран». Додайте та увімкніть правило дозволу для протоколу IP для інтерфейсу WireGuard (у нашому прикладі це «WG-CL1»).

 wg-s-04-en.png

wg-s-07-en.png

Щоб відправити трафік у віддалену мережу через тунель, потрібно додати статичний маршрут. Перейдіть на сторінку «Маршрутизація», натисніть «Додати маршрут» і вкажіть такі статичні параметри маршруту:

У полі «Тип маршруту» виберіть параметр «Маршрут до мережі»; у полі «Мережева адреса призначення» вкажіть віддалену підмережу (у нашому прикладі це 192.168.22.0). І в полі «Інтерфейс» виберіть назву раніше створеного інтерфейсу WireGuard (в нашому випадку це «WG-CL1»), увімкніть опцію «Додавати автоматично».

wg-cl1-04-en.png

На цьому налаштування VPN-сервера та VPN-клієнта завершено.

Увімкніть підключення WireGuard, створені на обох маршрутизаторах. Якщо все налаштовано правильно, ви побачите зелений індикатор статусу в стовпці «Пір».

VPN сервер:

wg-s-03-en.png

VPN клієнт:

wg-cl1-03-en.png

Налаштування завершено.

Щоб перевірити функціювання VPN-тунелю з хостів або безпосередньо з маршрутизатора (з меню «Діагностика» у веб-інтерфейсі), перевірте ping віддаленого маршрутизатора або пристроїв за межами тунелю.

Наприклад, з хоста в локальній мережі клієнта VPN (з мережі 192.168.100.x) ми виконуємо команду ping IP-адреси сервера VPN (у нашому випадку це 172.16.82.1), а потім команду ping локальної IP-адреси Keenetic у віддаленій мережі за тунелем (у нашому прикладі це 192.168.22.1).

Перевірте веб-інтерфейс сервера (в нашому випадку це Keenetic з IP-адресою 192.168.22.1).

win-wg-13-en.png

TIP: Примітка:
1. Налаштування, показані в цій статті, встановлять Wireguard VPN, щоб надати доступ до віддаленої підмережі за VPN-тунелем. Місцевий провайдер забезпечить доступ до Інтернету для клієнтів. Але в деяких випадках клієнти, підключені до маршрутизатора Keenetic через WireGuard, потребують доступу до Інтернету через цей VPN-тунель. Отже, вам потрібно налаштувати з’єднання так, щоб увесь трафік спрямовувався від VPN-клієнта до тунелю WireGuard як для доступу до віддаленої мережі, так і до Інтернету. Для цього необхідно виконати додаткові налаштування на клієнті та сервері згідно з інструкцією 'Доступ в Інтернет через WireGuard VPN тунель'. Зверніть увагу, що в цьому випадку збільшиться навантаження на сам VPN-канал і на інтернет-канал, до якого підключений Keenetic (виконує роль VPN-сервера).

2. Якщо після налаштування VPN-тунелю для клієнтів Windows SMB-доступ усередині тунелю не працює , зазвичай причиною цього є Windows Defender або інший брандмауер, увімкнений на хостах. В цьому випадку, вимкніть міжмережевий екран Windows та перевірте роботу.
Або тонко налаштуйте міжмережевий екран або Windows Defender. Create allow rules in Windows Defender для TCP/UDP портів UDP/137, UDP/138, TCP/139, TCP/445.

Чи була ця стаття корисною?

156 з 166 вважають статтю корисною