WireGuard VPN налаштування для віддаленого доступу співробітників — наша спеціалізація. Уявіть: 50 співробітників працюють віддалено, а корпоративна мережа побудована на OpenVPN — гальмує, клієнти постійно відвалюються, ліцензії коштують грошей. Рішення — WireGuard. Ми розгортаємо VPN-сервер WireGuard для безпечного віддаленого доступу до корпоративної інфраструктури. За 5 років реалізували проєкти для 50+ компаній, від стартапів до enterprise з сотнями співробітників. WireGuard — сучасний протокол, вбудований у ядро Linux, який обходить OpenVPN та IPSec за продуктивністю та простотою.
Чому ми обираємо WireGuard замість застарілих VPN?
Наші інженери давно перейшли на WireGuard. Причина — кодова база: ~4000 рядків проти 400 000 у OpenVPN. Це не тільки безпека (менша поверхня атаки), але й швидкість. WireGuard швидше OpenVPN у 6-7 разів на однаковому обладнанні. WireGuard працює в просторі ядра, використовує ChaCha20-Poly1305 та Curve25519 — на сучасних серверах дає до 2 Гбіт/с на одному ядрі. Для порівняння: OpenVPN на тих самих ресурсах — близько 300 Мбіт/с. Результат: користувачі не помічають затримок при роботі з 1С, Bitrix24 або файловими сховищами. Економія на ліцензіях комерційних VPN-рішень сягає 70%. Наприклад, для компанії з 50 співробітників, економія на ліцензіях OpenVPN може становити до $750 на місяць.
Як ми налаштовуємо VPN-сервер WireGuard під ключ
Встановлення та генерація ключів
# Ubuntu 20.04+, Debian 11+
apt install wireguard
# Генерація ключів сервера
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
chmod 600 /etc/wireguard/server.key
# Ключі для першого клієнта
wg genkey | tee /etc/wireguard/client1.key | wg pubkey > /etc/wireguard/client1.pub
Конфігурація сервера
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = <вміст server.key>
# Увімкнути форвардинг та NAT для клієнтів (якщо потрібен вихід в інтернет)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
# Клієнт 1
[Peer]
PublicKey = <вміст client1.pub>
AllowedIPs = 10.10.0.2/32
# Клієнт 2
[Peer]
PublicKey = <вміст client2.pub>
AllowedIPs = 10.10.0.3/32
# Увімкнути IP forwarding
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/99-wg.conf
sysctl -p /etc/sysctl.d/99-wg.conf
# Підняти інтерфейс та додати в автозапуск
systemctl enable --now wg-quick@wg0 Конфігурація клієнта
# /etc/wireguard/wg0.conf (на клієнті)
[Interface]
Address = 10.10.0.2/32
PrivateKey = <вміст client1.key>
DNS = 10.10.0.1 # DNS через VPN (опційно)
[Peer]
PublicKey = <вміст server.pub>
Endpoint = 203.0.113.1:51820
AllowedIPs = 0.0.0.0/0 # Весь трафік через VPN
# Або тільки корпоративна підмережа:
# AllowedIPs = 10.0.0.0/8, 172.16.0.0/12
PersistentKeepalive = 25 # Тримати NAT-отвір відкритим
PersistentKeepalive = 25 важливий для клієнтів за NAT (ноутбуки, мобільні пристрої). Без нього з'єднання рветься під час простою — NAT-запис застаріває.
Управління пірами без перезапуску
# Додати нового клієнта на льоту
wg set wg0 peer <pubkey-нового-клієнта> allowed-ips 10.10.0.10/32
# Зберегти зміни в конфіг
wg-quick save wg0
# Видалити клієнта
wg set wg0 peer <pubkey> remove
# Статус всіх підключень
wg showwg show виводить останній час handshake для кожного піра — зручно зрозуміти, хто підключений прямо зараз.
Як автоматизувати масове розгортання клієнтів WireGuard?
Ми використовуємо скрипти для генерації конфігурацій на основі шаблонів. Для сотні співробітників готуємо Ansible-плейбук: він створює ключі, формує конфіги та відправляє їх на пошту або в корпоративний портал. Процес виглядає так:
- Інвентаризація — список співробітників з їхніми підмережами.
- Генерація ключів —
for i in $(cat users.txt); do wg genkey | tee ${i}.key | wg pubkey > ${i}.pub; done. - Складання конфігурацій — підстановка публічного ключа сервера та приватного ключа клієнта в шаблон.
- Розповсюдження — через внутрішній Git-репозиторій або скрипт розсилки.
Це скорочує ручні операції до мінімуму та виключає помилки при копіюванні ключів. Конфігурації зберігаємо в Git, що дозволяє відстежувати зміни та відкочувати при помилках — фактично GitOps для VPN. Для інтеграції з Active Directory використовуємо скрипти, що генерують ключі на основі груп користувачів.
Як моніторити WireGuard через Prometheus?
Для збору метрик використовуємо експортер wg_exporter. Він віддає кількість пірів, обсяг переданих даних, час останнього handshake. В Grafana налаштовуємо дашборд: зелені піри (handshake < 2 хвилин), жовті (2–5 хвилин), червоні (>5 хвилин). Це дає миттєву видимість стану VPN. Налаштовуємо alertmanager на основі SLO: якщо handshake не пройшов за 2 хвилини — спрацьовує alert, MTTR скорочується до 5 хвилин завдяки підготовленому runbook. Якщо вам потрібен моніторинг VPN, зв'яжіться з нами — налаштуємо Prometheus та Grafana під ваші завдання.
Типові проблеми та їх вирішення
Клієнти за NAT втрачають з'єднання — додаємо PersistentKeepalive = 25 та перевіряємо iptables FORWARD. Повільна швидкість на великих обсягах — рекомендуємо увімкнути MTU 1420 та перевірити завантаження CPU на сервері. Конфлікт підмереж — якщо корпоративна мережа використовує 10.0.0.0/8, змінюємо VPN-мережу на іншу, наприклад 172.16.0.0/12. Для Kubernetes використовуємо sidecar-контейнери з WireGuard для безпечного доступу до API-сервера.
Що входить в роботу з налаштування WireGuard
| Компонент | Опис |
|---|---|
| Аудит поточної мережі | Перевірка маршрутизації, Firewall, NAT — виключаємо конфлікти |
| Встановлення та конфігурація сервера | WireGuard, форвардинг, фаєрвол, автозапуск |
| Генерація ключів та скриптів | Для масового створення клієнтів (сотні співробітників) |
| Клієнтські конфіги | Налаштування всіх пристроїв: Linux, Windows, macOS, Android, iOS |
| Документація та навчання | Інструкції для користувачів та адмінів, runbook для підтримки |
| Моніторинг та алертинг | Prometheus + Grafana + Alertmanager (опційно) |
| Гарантія працездатності | Перевірка підключення, тести швидкості, моніторинг через Prometheus |
Оцінюємо проєкт за 1 робочий день. Терміни: від 2 годин до 2 днів залежно від масштабу. Замовте консультацію — інженер проаналізує вашу інфраструктуру та запропонує оптимальне рішення.
Терміни
| Задача | Срок |
|---|---|
| Сервер + декілька клієнтів | 2–4 години |
| Серверна частина + скрипти генерації клієнтів | 4–8 годин |
Вартість розраховується індивідуально після аудиту інфраструктури. Отримайте консультацію — ми надішлемо точну оцінку.







