← Назад на сайт

WireGuard site-to-site VPN між офісами: практичний посібник

WireGuard site-to-site VPN між офісами: практичний досвід налаштування

Привіт! Об’єднання кількох офісів, складів чи торгових точок у спільну мережу — це класична задача, з якою до мене часто звертаються власники малого та середнього бізнесу. Коли компанія розвивається, виникає логічна потреба надати працівникам із філій безпечний доступ до локальних ресурсів головного офісу. Це може бути сервер бази даних, мережеві папки з документами, принтери чи внутрішня IP-телефонія.

Раніше для побудови таких каналів зв’язку (site-to-site VPN) зазвичай використовували важкі та складні в налаштуванні протоколи на кшталт IPsec або OpenVPN. Проте сьогодні все частіше моїм вибором як практичного системного адміністратора стає WireGuard. Він простий, швидкий і працює там, де інші протоколи починають “сипатися”.

У цій статті я поділюся власним досвідом налаштування WireGuard для об’єднання офісів, розберу типові проблеми, з якими стикаюся на практиці, та розповім, як зробити так, щоб мережа працювала стабільно і без постійних втручань адміністратора.

Коротко

WireGuard site-to-site VPN — це сучасний, надзвичайно легкий протокол для створення захищеного тунелю між двома або більше віддаленими локальними мережами. Він працює значно швидше за застарілі аналоги, майже не навантажує процесор на роутерах і миттєво відновлює з’єднання при зміні IP-адрес чи короткочасних обривах інтернету. Це чудове рішення для малого бізнесу, яке дозволяє об’єднати офіси навіть на бюджетному обладнанні без втрати швидкості.

Кому актуально

У моїй практиці потреба в об’єднанні мереж через VPN найчастіше виникає у таких життєвих сценаріях:

  • Зв’язок між офісом та складом. На складі працюють комірники, у них є термінали збору даних (ТСД), комп’ютери для обліку та принтери етикеток. Усі ці пристрої мають працювати безпосередньо з базою даних, яка фізично розміщена на сервері в головному офісі.
  • Мережа роздрібних магазинів або кав’ярень. Кожна торгова точка повинна мати захищений доступ до центрального сервера для синхронізації продажів, роботи з фіскальними реєстраторами або оновлення залишків товарів у реальному часі.
  • Спільне використання локальних ресурсів. Коли в одному з офісів встановлено мережеве сховище (NAS) з робочими файлами, локальна IP-АТС або дорогий плотер, а співробітникам з іншого офісу потрібен прямий доступ до них, ніби вони сидять в одній кімнаті.
  • Робота з термінальними серверами. Якщо в головному офісі розгорнуто термінальний сервер для роботи з бухгалтерією, віддаленим філіям потрібен стабільний та швидкий канал для RDP-сесій. Якщо вам актуальне це питання, рекомендую звернути увагу на мою послугу налаштування Windows Server, RDS та M.E.Doc.

Типові симптоми

Часто в компаніях уже якось налаштовано зв’язок між офісами, але працює він неідеально. Ось типові симптоми того, що ваша поточна схема VPN (наприклад, на базі застарілих PPTP, L2TP або важкого OpenVPN) працює погано і її варто перевести на WireGuard:

  • Повільне копіювання файлів. Швидкість інтернету в обох офісах за тарифом становить 100 Мбіт/с, але при спробі скопіювати файл з одного офісу в інший швидкість не перевищує 5-10 Мбіт/с. Це часто пов’язано з тим, що старий протокол VPN працює в user-space (просторі користувача) і створює великі затримки.
  • Зависання RDP-сесій. Співробітники на складі скаржаться, що термінальний сервер постійно “перепідключається”, картинка замерзає, а робота стає нестерпною при найменшому коливанні якості зв’язку.
  • Роутер сильно гріється або зависає. Процесор роутера (особливо якщо це бюджетний MikroTik або TP-Link) завантажується на 100% під час передачі даних через VPN. Через це починає гальмувати інтернет у всьому офісі, а сам роутер доводиться періодично перезавантажувати по живленню.
  • Тунель не піднімається сам після збою. Якщо у провайдера відбулися технічні роботи або змінилася динамічна IP-адреса, VPN-з’єднання “зависає” в напіввідкритому стані. Доводиться заходити в адмінку роутера і вручну вимикати/вмикати інтерфейс.

Що перевірити

Перед тим як приступати до налаштування WireGuard site-to-site VPN, варто перевірити кілька критично важливих технічних параметрів. Це вбереже вас від ситуації, коли робота виконана, але нічого не працює.

  1. Адресація локальних мереж (Subnets). Це найпоширеніша проблема. Локальні підмережі в офісах, які ви плануєте об’єднати, не повинні збігатися. Якщо в офісі А мережа має стандартний діапазон 192.168.88.0/24 (дефолтний для MikroTik) або 192.168.1.0/24, і в офісі Б налаштовано точно так само, то побудувати класичний маршрутизований тунель не вийде. Комп’ютери просто не розумітимуть, що за адресою 192.168.1.50 потрібно звертатися в інший офіс, і шукатимуть її у своїй локалці. Перед змінами варто перевірити та заздалегідь переналаштувати один з офісів на іншу підмережу, наприклад, 192.168.10.0/24 та 192.168.20.0/24.
  2. Наявність публічної IP-адреси. Для встановлення з’єднання хоча б один із роутерів (який буде виконувати роль умовного “сервера”) повинен мати публічну (“білу”) IP-адресу від провайдера. Бажано, щоб вона була статичною. Якщо в обох офісах інтернет працює через “сірі” IP-адреси (за NAT провайдера, що часто буває при використанні 4G-модемів або в бізнес-центрах), напряму з’єднати їх через WireGuard не вдасться. У такому разі доведеться орендувати невеликий віртуальний сервер (VPS) з публічним IP для координації тунелів.
  3. Версія прошивки роутерів. Переконайтеся, що ваше обладнання підтримує WireGuard на рівні операційної системи. Наприклад, у популярних роутерах MikroTik підтримка WireGuard з’явилася лише в RouterOS версії 7. Якщо ваші пристрої працюють на старій 6-й версії, їх потрібно буде оновити, що іноді потребує додаткової перевірки сумісності конфігурації.
  4. Дозволи у Firewall провайдера. Деякі провайдери (особливо мобільні оператори) можуть блокувати або обмежувати нестандартний UDP-трафік. Перевірте, чи відкритий порт, який ви плануєте використовувати для WireGuard (зазвичай це UDP 51820).

Типові помилки

Навіть досвідчені фахівці іноді припускаються помилок при налаштуванні WireGuard, оскільки цей протокол має свою специфіку порівняно з класичними VPN-рішеннями. Ось що я найчастіше бачу в малому бізнесі під час аудитів:

  • Неправильне розуміння параметра AllowedIPs. У WireGuard цей параметр є ключовим. Він виконуве роль не лише фільтра дозволених адрес, а й автоматично створює маршрути в системі. Якщо на роутері Офісу А в налаштуваннях Peer (Офісу Б) вказати в AllowedIPs лише IP-адресу самого тунелю (наприклад, 10.0.0.2/32), то трафік до локальної мережі Офісу Б (192.168.20.0/24) просто не потрапить у тунель. Там обов’язково мають бути вказані обидва діапазони: 10.0.0.2/32, 192.168.20.0/24.
  • Ігнорування параметра PersistentKeepalive. Оскільки WireGuard не підтримує постійне з’єднання в режимі очікування (він stateless), за відсутності трафіку тунель “засинає”. Якщо роутер Офісу Б знаходиться за NAT (має сіру IP-адресу), то через деякий час проміжний роутер провайдера закриє транзитний порт. У результаті Офіс А не зможе першим ініціювати зв’язок з Офісом Б. Щоб цього не відбувалося, на стороні “клієнта” обов’язково потрібно прописувати PersistentKeepalive = 25. Це змусить роутер кожні 25 секунд відправляти пусті пакети для підтримки сесії.
  • Забуті правила у Firewall. Створення інтерфейсу WireGuard та прописування маршрутів — це лише половина справи. Часто забувають дозволити проходження цього трафіку в налаштуваннях безпеки роутера. Потрібно явно дозволити вхідні UDP-пакети на порт WireGuard на зовнішньому інтерфейсі, а також дозволити пересилання пакетів (Forward) між локальною мережею та інтерфейсом VPN.
  • Проблими з розміром пакету (MTU). За замовчуванням WireGuard встановлює MTU на рівні 1420 байт (щоб залишити місце для заголовків шифрування в стандартному кадрі Ethernet 1500 байт). Проте, якщо провайдер використовує додаткові протоколи (наприклад, PPPoE або L2TP), реальний MTU фізичного каналу може бути меншим. Це призводить до фрагментації пакетів, через що “важкі” сайти не відкриваються, а RDP-сесії постійно рвуться. Краще заздалегідь перевірити та за потреби знизити MTU на інтерфейсі WireGuard до 1360 або 1400.

Як краще зробити

Для того, щоб побудувати надійний та швидкий тунель між двома офісами, я рекомендую дотримуватися наступного практичного алгоритму. Розглянемо приклад, де Офіс А має статичну публічну IP-адресу (виступає умовним “сервером”), а Офіс Б підключається до нього (може мати динамічну або сіру IP-адресу).

Крок 1. Планування адресного простору

Визначимо схему адресації, щоб уникнути конфліктів:

  • Офіс А: Локальна мережа 192.168.10.0/24, IP-адреса роутера 192.168.10.1. Публічна IP-адреса: 1.2.3.4.
  • Офіс Б: Локальна мережа 192.168.20.0/24, IP-адреса роутера 192.168.20.1.
  • VPN-мережа (транзитна): Виділимо невелику підмережу 10.10.10.0/30. Роутер А отримає всередині тунелю IP 10.10.10.1, а Роутер Б — 10.10.10.2.

Крок 2. Генерація ключів

WireGuard базується на обміні публічними ключами (як SSH). На кожному роутері потрібно згенерувати свою пару ключів (Private Key та Public Key). Приватний ключ нікому не показуємо і не передаємо, а публічними ключами роутери мають обмінятися.

Крок 3. Налаштування Офісу А (Сервер)

На роутері в Офісі А виконуємо такі дії:

  1. Створюємо новий інтерфейс WireGuard. Вказуємо порт слухання (Listen Port), наприклад, 51820.
  2. Призначаємо створеному інтерфейсу IP-адресу 10.10.10.1/30.
  3. Додаємо новий Peer (це буде наш Офіс Б):
    • Вставляємо Public Key, згенерований на роутері Офісу Б.
    • У полі AllowedIPs прописуємо адреси, які ми очікуємо від цього піра: 10.10.10.2/32, 192.168.20.0/24. Це дозволить роутеру А знати, що мережа Офісу Б знаходиться за цим тунелем.
    • Поля Endpoint та Port залишаємо порожніми, оскільки Офіс Б може змінювати свою IP-адресу. Роутер А автоматично підхопить актуальну адресу при першому ж підключенні від Офісу Б.

Крок 4. Налаштування Офісу Б (Клієнт)

На роутері в Офісі Б налаштування виглядає схожим чином, але з важливими деталями:

  1. Створюємо інтерфейс WireGuard (порт можна не вказувати або залишити дефолтний).
  2. Призначаємо інтерфейсу IP-адресу 10.10.10.2/30.
  3. Додаємо Peer (Офіс А):
    • Вставляємо Public Key роутера Офісу А.
    • У полі AllowedIPs прописуємо: 10.10.10.1/32, 192.168.10.0/24.
    • У полі Endpoint обов’язково вказуємо публічну IP-адресу Офісу А та порт, наприклад: 1.2.3.4:51820.
    • Прописуємо параметр PersistentKeepalive зі значенням 25. Це змусить клієнта регулярно надсилати пусті пакети, щоб проміжні пристрої (NAT) не закривали сесію.

Крок 5. Налаштування маршрутизації та правил безпеки

Після того як тунель піднявся, потрібно пояснити роутерам, куди відправляти трафік для сусідніх мереж. На роутері А додаємо статичний маршрут: мережа призначення 192.168.20.0/24 доступна через шлюз 10.10.10.2. На роутері Б робимо навпаки: мережа 192.168.10.0/24 доступна через шлюз 10.10.10.1.

Також у Firewall обох роутерів потрібно дозволити проходження трафіку (Forward) між локальними інтерфейсами та інтерфейсом WireGuard. На роутері А додатково відкриваємо вхідний UDP-порт 51820 на зовнішньому інтерфейсі (WAN).

Коли звертатись до адміністратора

Хоча на перший погляд налаштування WireGuard виглядає простим, у реальних умовах часто виникають підводні камені, які важко вирішити без глибокого розуміння мережевих технологій. Ось кілька ситуацій, коли краще не витрачати свій час та нерви, а звернутися до мене як до досвідченого системного адміністратора:

  • У вас складна топологія мережі. Наприклад, потрібно об’єднати не два, а п’ять чи десять офісів за схемою “зірка” (Hub-and-Spoke) або створити повнозв’язну мережу (Full Mesh), де кожен офіс може спілкуватися з кожним напряму.
  • Обидва офіси мають “сірі” IP-адреси. Якщо провайдери не надають публічних адрес, я допоможу розгорнути та налаштувати проміжний координаційний сервер у хмарі, який зв’яже ваші точки в єдину мережу.
  • Використовується обладнання різних брендів. Наприклад, в одному офісі стоїть MikroTik, в іншому — Keenetic, а на складі — старенький роутер на OpenWrt. Налаштування сумісності та оптимізація MTU на різних платформах часто потребує специфічних знань.
  • Потрібно налаштувати пріоритезацію трафіку (QoS). Щоб під час копіювання великих файлів через VPN не заїкалася IP-телефонія та не гальмували RDP-сесії, необхідно правильно налаштувати черги та маркування пакетів.
  • Ви боїтеся порушити роботу поточної мережі. Якщо в офісі вже працює бухгалтерія, каси та склади, будь-яка помилка в маршрутизації може зупинити роботу бізнесу. Я виконаю всі роботи акуратно, заздалегідь підготувавши план відкату.

Якщо вам потрібна допомога з налаштуванням стабільного зв’язку між вашими філіями, ви завжди можете звернутися до мене. Я проаналізую вашу інфраструктуру, підберу оптимальне обладнання та налаштую все так, щоб мережа працювала непомітно для користувачів.

FAQ

Чи можна використовувати WireGuard, якщо в одному з офісів динамічний IP?

Так, звичайно. Для цього достатньо, щоб хоча б один із офісів (наприклад, головний) мав статичну публічну IP-адресу. Інший офіс буде виступати в ролі клієнта і підключатися до нього. Навіть якщо у клієнта зміниться IP-адреса, WireGuard миттєво та непомітно для користувачів оновить з’єднання.

Чи буде працювати 1С через такий VPN-тунель?

Так, працювати буде. Проте, якщо у вас використовується файлова версія 1С, запускати її безпосередньо через VPN-канал вкрай не рекомендується через високі вимоги до швидкості дискових операцій та ризик пошкодження бази даних при найменшому збої зв’язку. У такому разі краще налаштувати термінальний сервер (RDS) у головному офісі, а користувачі філій будуть працювати через RDP всередині захищеного тунелю WireGuard.

Чи сильно WireGuard навантажує роутер?

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

Чи безпечно об’єднувати офіси через WireGuard?

Так, це абсолютно безпечно. WireGuard використовує найсучасніші криптографічні протоколи (Noise protocol framework, Curve25519, ChaCha20, Poly1305). Він має набагато менший обсяг коду порівняно з OpenVPN, що значно знижує ймовірність наявності прихованих уразливостей.

Для серверів із бухгалтерськими базами також варто окремо перевірити резервні копії та базову безпеку.

Потрібна допомога з цією задачею? Опишіть проблему в Telegram — підкажу, чи краще робити разово, через пакет годин або в межах абонентської IT-підтримки офісу. @anton_dzhun