S3-WG: Сегментированная Архитектура Site-to-Site VPN на WireGuard: Контроль и Изоляция

Введение
WireGuard представляет собой мощный инструмент для организации виртуальных частных сетей (VPN), отличающийся своей простотой, скоростью и современными криптографическими алгоритмами. Однако, интеграция WireGuard в корпоративную среду требует особого подхода, учитывающего строгий контроль над сетевым трафиком и высокий уровень изоляции различных сегментов инфраструктуры. Настоящий документ описывает архитектуру реализации WireGuard site-to-site VPN, ориентированную на следующие ключевые принципы:
Строгая изоляция транспортных и пользовательских сетей друг от друга.
Централизованная проверка всего трафика, проходящего через файрволлы.
Высокая гибкость масштабирования и прозрачное управление инфраструктурой.
Главной особенностью предлагаемого решения является принцип обязательной проверки каждого пакета на обоих концах туннеля, а также полное разделение технических и пользовательских сегментов сети.
Сценарий и требования
Рассмотрим типичный сценарий интеграции двух офисов корпорации, расположенных удаленно друг от друга:
Головной офис: сеть пользователей — 10.0.0.0/16.
Удаленный офис: сеть пользователей — 192.168.0.0/24.
Основные задачи:
Обеспечение безопасной коммуникации между двумя офисами.
Весь межофисный трафик должен проходить исключительно через центральные файрволлы (FW1 и FW2), обеспечивающие дополнительный уровень защиты.
Необходимо исключить возможность прямого доступа к транспортному уровню со стороны пользовательских сетей.
Требования:
Безопасная связь между офисами.
Весь трафик проходит через центральные фаерволы (FW1, FW2).
Пользовательские сети не имеют доступа к транспортному уровню.
Архитектура: сегментация и изоляция
Трехуровневая модель на P2P-сетях /31
:
Сегмент | Назначение | Участники | IP-адреса |
---|---|---|---|
Транспорт 1 | FW1 ↔ WG1 | Головной офис |
|
Транспорт 2 | WG1 ↔ WG2 (туннель) | Защищённый канал |
|
Транспорт 3 | WG2 ↔ FW2 | Удалённый офис |
|

Принцип работы:
Трафик от пользователей проверяется фаерволом FW1.
Шлюз WG1 шифрует данные и передаёт через туннель WG1 ↔ WG2.
В удалённом офисе WG2 расшифровывает трафик.
Фаервол FW2 повторно проверяет данные перед подачей в сеть.
⚠️ Устройства в пользовательских подсетях не имеют прямого доступа к транспортным интерфейсам.
Пример маршрутизации
# FW1 (головной офис)
ip route add 192.168.0.0/24 via 10.10.1.3 # Весь трафик в удалённый офис → WG1
# WG1
ip route add 192.168.0.0/24 via 172.16.1.3 # Трафик в удалённый офис → туннель
# WG2
ip route add 10.0.0.0/16 via 172.16.1.2 # Трафик в головной офис → туннель
# FW2 (удалённый офис)
ip route add 10.0.0.0/16 via 192.168.1.3 # Весь трафик в головной офис → WG2
Преимущества архитектуры
🔒 Двойная инспекция трафика
Политики безопасности применяются до и после прохождения туннеля.🚧 Полная изоляция сетей
Пользовательские устройства отделены от транспортной инфраструктуры.💡 Меньшая площадь атаки
Для межузловых соединений используется маска /31, позволяющая минимизировать площадь атаки - исключая широковещание и ограничивая количество доступных IP на интерфейсе ровно до необходимого минимума.📋 Чёткое разделение ролей
Фаерволы: политики доступа
WireGuard: шифрование
P2P-сети: связность сегментов
⚙️ Упрощённая диагностика
Изолированные компоненты упрощают поиск проблем.📈 Масштабируемость
Поддержка новых офисов и резервных узлов.
Конфигурация WireGuard
wg0.conf
для WG1 (головной офис):
[Interface]
PrivateKey = <ключ_WG1>
Address = 172.16.1.2/31
ListenPort = 51820
[Peer]
PublicKey = <ключ_WG2>
AllowedIPs = 172.16.1.3/32 # Только P2P-адрес WG2!
Endpoint = <public_IP_WG2>:51820
wg0.conf
для WG2 (удалённый офис):
[Interface]
PrivateKey = <ключ_WG2>
Address = 172.16.1.3/31
ListenPort = 51820
[Peer]
PublicKey = <ключ_WG1>
AllowedIPs = 172.16.1.2/32 # Только P2P-адрес WG1!
Endpoint = <public_IP_WG1>:51820
Дополнение: Защита WireGuard от несанкционированного доступа
Рекомендации по усилению безопасности
Для защиты от сканирования портов и атак типа DDoS критически важно:
Смена стандартного порта WireGuard (51820/UDP)
Ограничение доступа к порту только доверенным IP-адресам
Настройка фаервола (nftables на FW1)

table inet filter {
chain forward {
type filter hook forward priority 0;
# Разрешить RELATED/ESTABLISHED
ct state established,related accept
# Разрешить транзит: головной → удалённый
ip daddr 192.168.0.0/24 oif "p2p-wg" accept
# Разрешить транзит: удалённый → головной
ip saddr 192.168.0.0/24 iif "p2p-wg" accept
# Логировать и отбрасывать остальное
counter log prefix "FW1 DROP: " drop
}
chain input {
type filter hook input priority 0;
# Разрешить только служебный трафик
ip saddr 10.10.1.3 accept # WG1
tcp dport {22, 80, 443} accept # Управление
# Блокировать доступ из пользовательских сетей
ip saddr 10.0.0.0/16 drop
}
}
Критические правила безопасности
✖️ Доступ к сегментам
10.10.0.0/16
,172.16.0.0/16
,192.168.1.0/24
из пользовательских сетей запрещён.✅ Транзитный трафик разрешён только между
10.0.0.0/16
↔192.168.0.0/24
.⚠️ IP-форвардинг включён на узлах WireGuard, но:
На WG-нодах настроен фаервол, запрещающий любой трафик, кроме транзитного между
p2p-wg
↔wg0
.Управляющие порты WireGuard (51820/udp) закрыты для пользовательских сетей.
Поэтапная настройка
Сетевые интерфейсы
# FW1 (10.10.1.2) ip link add p2p-fw type veth peer name p2p-wg ip addr add 10.10.1.2/31 dev p2p-fw ip link set p2p-fw up
Установка WireGuard
apt install wireguard wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey wg-quick up wg0
Создание P2P-сетей
FW1 ↔ WG1:
10.10.1.2/31
WG1 ↔ WG2:
172.16.1.2/31
WG2 ↔ FW2:
192.168.1.2/31
Маршрутизация
Используйте команды из раздела Пример маршрутизации.Безопасность
Включите строгий фаервол на всех узлах.
На WG-нодах:
sysctl -w net.ipv4.ip_forward=1 # Включить форвардинг sysctl -w net.ipv4.conf.all.rp_filter=2 # Защита от спуфинга
Проверка
# Диагностика туннеля wg show # Проверка связности ping -c 4 192.168.0.1 -I 10.0.0.100 # Анализ маршрута traceroute -n 192.168.0.100
Сценарии отказа
Событие | Последствия | Восстановление |
---|---|---|
Сбой WG1 | Обрыв связи | VRRP + Keepalived для резервирования |
Сбой FW1 | Блокировка трафика | Кластер фаерволов в active/passive |
Обрыв P2P-линка | Потеря сегмента | BFD + динамическая маршрутизация (BGP) |
Отказ WG2 | Изоляция удалённого офиса | Резервный канал через 4G/LTE |
Заключение: инженерные выводы
Представленная архитектура обеспечивает высочайший уровень безопасности и контроля в корпоративных инфраструктурах, придерживаясь следующих принципов:
Безопасность превыше всего. Сегментация и изоляция снижают потенциальные угрозы атакам.
Минимальная зона доверия. Применение маленьких сегментов типа /31 сокращает возможные атаки.
Упростить диагностику. Благодаря разделению задач на компоненты диагностика становится значительно проще.
Масштабируемость. Система поддерживает расширение и интеграцию новых решений, таких как IDS/IPS, централизованное ведение журналов, автоматизацию деплоймента.
Предлагаемые рекомендации включают внедрение:
централизованной аутентификации (PKI),
автоматизации развертывания (Ansible/Terraform),
сбора логов (Loki/Grafana).
Для удобства дальнейших ссылок предлагаю назвать данную архитектуру S3-WG — Segmented Secure Site-to-Site на WireGuard. Метод ориентирован на строгую сегментацию сетей, централизованную фильтрацию трафика и эффективное использование IP-пространства.
Лицензия: CC BY 4.0
Автор: iTamako