Рейтинг:0

Клиент Wireguard и перенаправление трафика VPN на ETH

флаг gw

У меня есть проект по созданию VPN-соединения между сайтами с wireguard и двумя Raspberry Pi 4.

Сайт A- UniFi UDM PRO - сервер Raspberry Pi WG ------ Сайт B UDM PRO Raspberry Pi WG клиент.

у Pi есть только одна сетевая карта, но я полагаю, что это не будет проблемой для сервера, для клиента я купил дополнительную сетевую карту (поверх HAT Pi).

Могу ли я перенаправить VPN-соединение (полный туннель), чтобы, если клиент подключается ко второму Ethernet-порту Raspberry Pi, он получал только WG VPN-соединение (и IP-адрес с сайта A)?

Рейтинг:2
флаг th

При подключении к серверу Wireguard на вашем компьютере с Linux открывается новый сетевой интерфейс, и весь трафик перенаправляется через него.

Обычно, чтобы соединить два интерфейса вместе, вы просто настроили мост и соединили два интерфейса между собой.

Однако мосты работают на уровне 2 OSI (пересылка кадров, которые направляются на MAC-адреса назначения), а Wireguard — это протокол уровня 3 (пересылка IP-пакетов с IP-адресами назначения) (больше информации).

Таким образом, вы не можете подключить интерфейс, работающий на L3, мостом. Итак, у вас есть несколько вариантов:

  1. Используйте туннель VPN уровня 2 (например, L2TP + IPSec) с возникающими трудностями при настройке.
  2. Настройте Raspberry Pi в качестве прокси-сервера Socks, который туннелирует трафик в Wireguard и передает полное интернет-соединение на подключенное устройство. Это будет означать трафик не будет пройти через VPN по умолчанию, что, скорее всего, не то, что вам нужно.
  3. Настройте Raspberry Pi в качестве маршрутизатора-шлюза и перенаправляйте IP-пакеты в VPN:

Для этого вам понадобится следующее:

  • Включите пересылку пакетов на клиенте Pi (установите сеть.ipv4.ip_forward=1 в /etc/sysctl.conf и обновить его с помощью sysctl -p
  • Настройте NAT на вашем клиенте Pi между обоими интерфейсами. Это будет пересылать пакеты из вашей подсети WG (т. 10.0.0.0/24 в новую подсеть, о которой позаботится ваш Raspberry Pi, и вы настроите DHCP-сервер (т.е. 10.10.0.0/24). Есть несколько способов настроить это, но в 2022 году, используя Ubuntu, вы должны дать Сетевой план попробовать, который позволяет интуитивно настроить все эти сети с файлом YAML. Есть пример на веб-сайте Netplan, достигнув именно этого.
  • Настройте raspberry pi в качестве DHCP-сервера (чтобы конфигурация IP была автоматической, а устройства без ручной настройки также перенаправляли трафик): установите опция роутера yourRaspberryPisWireguardIP; в /etc/dhcp/dhcpd.conf и выберите новую подсеть для назначения IP-адресов клиентам. гид. Вы должны подготовиться к совершению isc-dhcp-сервер играть хорошо с Сетевой план. Этот аскубунту ответ делает именно это.
  • Помните, что использование Netplan, вероятно, переопределит вашу настройку сети Wg-Quick, но это не проблема. Только добавьте свою конфигурацию клиента WG в том же файле Netplan в туннели: раздел.
  • Возможно, вы захотите настроить DNS-сервер на Raspberry Pi, который указывает на DNS вашего сервера WG, чтобы избежать утечек.

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


TLDR: Настройте клиентский туннель wg с помощью Netplan. Настраивать NAT с использованием Netplan между клиентским интерфейсом WG и дополнительным ethernet-интерфейсом, на котором вы планируете использовать своих клиентов. Настроить DHCP-сервер на вашем пи в отдельной подсети для ваших клиентов. По сути, создай свой роутер.

Kevin avatar
флаг gw
Большое спасибо за всю эту подробную информацию, это именно то, что я искал.

Ответить или комментировать

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