Доступ к портам клиента Wireguard с отдельного узла локальной сети.

Вопрос или проблема

У меня есть виртуальная машина (VM), работающая в локальной сети с IP-адресом 192.168.1.99.

Эта виртуальная машина использует Wireguard в качестве клиента, подключенного к удаленному серверу ProtonVPN (настроил wg через Proton). VPN-соединение работает хорошо.

На этой же виртуальной машине размещены различные сервисы с веб-интерфейсами, доступными на локальных портах. Например, простой веб-сайт на порту 8080.

Когда я останавливаю сервис wg-quick на виртуальной машине, то с другого узла в сети (например, с моего ноутбука с IP 192.168.1.15) я могу без проблем получить доступ к локальному сайту по адресу 192.168.1.99:8080. Однако, когда я запускаю сервис wg-quick, я больше не могу получить доступ к порту 8080 на моей виртуальной машине. Это только один пример, но есть много таких портов, к которым мне нужно получить доступ, 8080, 8888, 8443 и т.д.

Мой файл wg0.conf выглядит примерно так:

[Interface]
PrivateKey = ############
Address = 10.2.0.2/32
DNS = 10.2.0.1

[Peer]
PublicKey = ############
AllowedIPs = 0.0.0.0/0
Endpoint = x.x.x.x:51820

Я не настраивал никакие конкретные правила для фаервола или NAT.

Могу ли я обновить мой wg0.conf так, чтобы разрешить доступ к сервисам/портам на моей виртуальной машине через LAN? В противном случае, какие шаги мне нужно предпринять, чтобы получить доступ к этим сервисам?

Ответ или решение

Для решения проблемы доступа к портам Wireguard-клиента с отдельного узла в локальной сети, необходимо учитывать несколько ключевых аспектов, включая особенности маршрутизации и конфигурацию сети. Рассмотрим эту задачу подробнее.

Теория

Когда вы подключаетесь через VPN, ваш компьютер/устройство начинает передавать весь сетевой трафик через этот туннель, и все запросы от локальных адресов (например, 192.168.1.99) становятся недоступными другим устройствам в вашей локальной сети (например, вашему ноутбуку с IP 192.168.1.15). Это происходит из-за того, что конфигурация Wireguard направляет весь трафик через туннель, игнорируя локальные маршруты.

Строка AllowedIPs = 0.0.0.0/0 в файле конфигурации wg0.conf указывает на то, что весь трафик направляется через VPN. Это включает как исходящий, так и входящий трафик, что может препятствовать доступу к вашим локальным сервисам с веб-интерфейсом другими устройствами на вашей LAN.

Пример

Рассмотрим следующий пример конфигурации wg0.conf и как возможно изменить его для достижения поставленной цели:

[Interface]
PrivateKey = ############
Address = 10.2.0.2/32
DNS = 10.2.0.1

[Peer]
PublicKey = ############
AllowedIPs = 0.0.0.0/0
Endpoint = x.x.x.x:51820

Как вы указали, при активации wg-quick, трафик, включая запросы к вашим локальным сервисам, перестает достигать VM. Это потому, что маршрутизирующий протокол Wireguard передаёт весь трафик в туннель, и, следовательно, как только интерфейс Wireguard включен, запросы от локальных IP (например, 192.168.1.15:8080) становятся недоступными.

Применение

Чтобы обеспечить доступ к вашим сервисам, работающим на VM через Wireguard, вам необходимо будет сделать следующее:

  1. Изменение конфигурации Wireguard для маршрутизации локального трафика.

    Для этого, измените строку AllowedIPs в вашем файле конфигурации. Вместо 0.0.0.0/0 укажите адрес локальной подсети, которую необходимо маршрутизировать вне туннеля. Например:

    AllowedIPs = 0.0.0.0/0, 192.168.1.0/24

    Это позволит трафику, направленному к вашей локальной сети (например, 192.168.1.0/24), обходить туннель Wireguard, предоставляя доступ вашим устройствам на LAN к сервисам.

  2. Проверка правил брандмауэра:

    Убедитесь, что брандмауэр на вашей VM позволяет входящие соединения с вашей локальной сети. Вы можете использовать iptables или ufw для обеспечения того, что соединения от устройств внутри вашей LAN разрешены. Например, в случае iptables:

    sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 8080 -j ACCEPT
  3. Возможности для NAT (если необходимо):

    В зависимости от настройки ваших маршрутизаторов и маскарадного NAT, возможно, вам придется добавить и другие правила, чтобы корректно маршрутизировать внешний трафик.

Реализовав эти изменения, вы должны иметь возможность доступа к сервисам на вашей VM, даже когда Wireguard активен. Это позволит вашим устройствам в локальной сети оставаться видимыми и достигать VM через стандартные IP-пакеты, не проходящие через VPN-туннель.

Важно учитывать, что изменение конфигурации VPN может повлиять на безопасность вашей сети, поэтому убедитесь, что все подключенные устройства защищены и доступны только доверенным пользователям.

Оцените материал
Добавить комментарий

Капча загружается...