Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

VPN-WG-SPLIT-012 Сетевое оборудование и VPN

Развертывание WireGuard Remote Access: настройка разделения трафика Split Tunneling

Обновлено: 25.08.2026 · Официальная документация ↗

При настройке удаленного доступа сотрудников через WireGuard возникают проблемы маршрутизации:

  • При включении VPN у клиента пропадает доступ к локальным ресурсам (домашний роутер, сетевые принтеры, LAN-шары).
  • Весь развлекательный трафик клиента (YouTube, торренты) идет через корпоративный сервер, перегружая канал компании.
  • Утечки корпоративных DNS-запросов в сеть локального провайдера клиента (DNS Leaks).
  • Конфликты IP-адресации, если домашняя сеть сотрудника совпадает с офисной подсетью (например, 192.168.1.0/24).

1. Принцип раздельного туннелирования (Split vs Full Tunneling)

  • Full Tunneling: В конфигурации клиента указано AllowedIPs = 0.0.0.0/0, ::/0. Абсолютно весь трафик и DNS направляются в туннель.
  • Split Tunneling: В конфигурации клиента явно перечислены только корпоративные подсети: AllowedIPs = 10.0.0.0/8, 172.16.0.0/12, 192.168.10.0/24. Весь интернет-трафик идет напрямую через домашнего провайдера.

2. Конфигурация сервера WireGuard (/etc/wireguard/wg0.conf)

[Interface]
Address = 10.200.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIV_KEY

# Включение NAT только для внутренних корпоративных сетей:
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -d 10.0.0.0/8 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -d 10.0.0.0/8 -j MASQUERADE

# Клиент 1 (Инженер)
[Peer]
PublicKey = CLIENT1_PUB_KEY
AllowedIPs = 10.200.0.2/32

3. Конфигурация клиентского профиля со Split Tunneling

[Interface]
PrivateKey = CLIENT1_PRIV_KEY
Address = 10.200.0.2/32
# Корпоративный DNS-сервер (будет использоваться только для VPN):
DNS = 10.10.0.5

[Peer]
PublicKey = SERVER_PUB_KEY
Endpoint = vpn.company.com:51820
# МАРШРУТИЗИРУЮТСЯ ТОЛЬКО ОФИСНЫЕ РЕСУРСЫ:
AllowedIPs = 10.200.0.0/24, 10.10.0.0/16, 172.20.0.0/16
PersistentKeepalive = 25

4. Защита от пересечения одинаковых подсетей (Overlapping Subnets)

Если корпоративная сеть использует популярную подсеть 192.168.1.0/24, переведите офис на адресацию из пула 10.x.x.x или используйте сетевой 1:1 NETMAP транслятор на VPN-шлюзе:

iptables -t nat -A PREROUTING -i wg0 -d 10.250.1.0/24 -j NETMAP --to 192.168.1.0/24
💡 Практика специалистов: При создании корпоративных стандартов никогда не используйте адресные пространства 192.168.0.0/24 и 192.168.1.0/24 внутри офиса. Переход на редкие диапазоны RFC 1918 (например, 10.147.0.0/16) навсегда исключит конфликты маршрутизации у удаленных сотрудников.

Частые вопросы (FAQ)

Как при Split Tunneling заставить резолвиться внутренние домены company.local?

В клиентских приложениях WireGuard для Windows/macOS/Linux параметр DNS = 10.10.0.5 подставляет DNS-сервер для всей системы либо использует Split-DNS (в связке со сгенерированными доменами в systemd-resolved).

Почему при Split Tunneling все равно не открываются локальные домашние устройства?

Если в AllowedIPs случайно добавлен диапазон, включающий домашнюю сеть (например, 192.168.0.0/16), WireGuard перехватывает трафик локального интерфейса. Указывайте более точные префиксы (/24).

Безопасен ли Split Tunneling для корпоративной безопасности?

Split Tunneling несет риск: если компьютер сотрудника заражен, злоумышленник может использовать его как шлюз (Pivot Point) для проникновения в офисную сеть. Для минимизации рисков настраивают строгие правила Firewall на VPN-сервере.

Зачем нужен PersistentKeepalive = 25 в конфигурации клиента?

Поскольку клиент обычно находится за домашним NAT/роутером, исходящие UDP-сессии закрываются через 30-60 секунд неактивности. Keepalive пакет каждые 25 секунд удерживает трансляцию портов в таблице NAT роутера открытой.

Полезные материалы
Рекомендуем