VPN

VPN (Virtual Private Network) — це шифрований тунель між двома точками через недовірену мережу (інтернет). В UMTC ми використовуємо WireGuard — сучасний, швидкий і простий VPN протокол.

💡 Чому WireGuard?
- **Швидкий** — написаний на C, 4000 рядків коду vs 100000+ в OpenVPN - **Простий** — один конфіг файл замість десятків налаштувань - **Криптостійкий** — сучасні алгоритми (ChaCha20, Curve25519) - **Вбудований в Linux** — є в ядрі з версії 5.6

Архітектура WireGuard mesh UMTC

flowchart TB
    subgraph public["Публічний інтернет"]
        CLOUD["☁️ Oracle Cloud<br/>vps1.umtc"]
    end

    subgraph field["Польові сайти"]
        SITE_A["📡 Site A<br/>10.10.1.0/24"]
        SITE_B["📡 Site B<br/>10.10.2.0/24"]
        SITE_C["📡 Site C<br/>10.10.3.0/24"]
    end

    subgraph clients["Клієнти"]
        LAPTOP["💻 Laptop"]
        PHONE["📱 Phone"]
    end

    CLOUD <-->|"wg0"| SITE_A
    CLOUD <-->|"wg0"| SITE_B
    CLOUD <-->|"wg0"| SITE_C
    SITE_A <-.->|"direct link"| SITE_B

    LAPTOP -->|"road warrior"| CLOUD
    PHONE -->|"road warrior"| CLOUD

    style public fill:#dbeafe
    style field fill:#d1fae5
    style clients fill:#fef3c7

Типи VPN з'єднань

Тип Опис Коли використовувати
Site-to-Site Постійне з'єднання двох мереж Між серверами/роутерами
Road Warrior Клієнт → сервер Мобільні пристрої, ноутбуки
Mesh Кожен з кожним Розподілена інфраструктура

Матеріали розділу

Стаття Опис Рівень
WireGuard mesh Базова mesh-мережа: конфіги, маршрутизація Середній
WireGuard advanced Криптографія, NAT traversal, MTU, оптимізація Просунутий

Швидкий приклад

Сервер (vps1.umtc)

[Interface]
PrivateKey = <server_private_key>
Address = 10.10.0.1/24
ListenPort = 51820

[Peer]
# Site A
PublicKey = <site_a_public_key>
AllowedIPs = 10.10.0.2/32, 10.10.1.0/24

[Peer]
# Laptop (road warrior)
PublicKey = <laptop_public_key>
AllowedIPs = 10.10.0.100/32

Клієнт (laptop)

[Interface]
PrivateKey = <laptop_private_key>
Address = 10.10.0.100/24
DNS = 10.10.0.1

[Peer]
PublicKey = <server_public_key>
Endpoint = vps1.umtc.example.com:51820
AllowedIPs = 10.10.0.0/16
PersistentKeepalive = 25
⚠️ AllowedIPs — це важливо
`AllowedIPs` визначає не тільки звідки приймати пакети, а й куди маршрутизувати. `0.0.0.0/0` — весь трафік через VPN (full tunnel). Конкретні мережі — split tunnel.

Step-by-Step інструкції

Інструкція Що отримаєте
WireGuard: з'єднання нод Site-to-site між серверами
WireGuard: клієнт VPN на телефон/ноутбук
MikroTik WireGuard MikroTik в mesh

Типові проблеми

Проблема Причина Рішення
Handshake не проходить Неправильні ключі Перевірте public/private key пари
Немає з'єднання Firewall блокує UDP 51820 Відкрийте порт
Повільна швидкість MTU проблеми Зменшіть MTU до 1400
З'єднання зникає NAT timeout Додайте PersistentKeepalive = 25

Пов'язані теми

Шлях: networking/vpn/index.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications