LINUX.ORG.RU
решено ФорумAdmin

Как пробросить сетевой поток данных с «Вайргард-сервера» на «Вайргард-клиент» внутри ПК?

 


0

1

Привет, ребята! Кто-нибудь знает каким образом можно пробросить сетевой поток данных с «Вайргард-сервера» на «Вайргард-клиент» туда и обратно внутри одной вычислительной машины?

Схема подключения следующая:

телефон (172.16.0.2) -> интернет -> роутер (IP: 123.456.789.012:12345; eth0: 192.168.1.1) -> Вайргард-сервер (eth0: 192.168.1.44; wg1: 172.16.0.1) -> Вайргард-клиент (eth0: 192.168.1.44; wg0: 10.0.0.21) -> интернет -> Вайргард-сервер-2 (IP: 111.222.333.444:12345; wg0: 10.0.0.1)

Настройки «Вайргард-сервера»:

ubuntu@gateway:~$ cat /etc/wireguard/wg1.conf 
[Interface]
Address = 172.16.0.1/24

ListenPort = 12345

PrivateKey = YYYY=

PostUp = echo 1 > /proc/sys/net/ipv4/ip_forward;iptables -A FORWARD -i wg1 -j ACCEPT; iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
PostDown = echo 0 > /proc/sys/net/ipv4/ip_forward;iptables -D FORWARD -i wg1 -j ACCEPT; iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE

# Phone
[Peer]
PublicKey = XXXXXX=
AllowedIPs = 172.16.0.2/32

Настройки «Вайргард-клиента»:

[Interface]
PrivateKey = UUUUUU=
Address = 10.0.0.21/24
DNS = 8.8.8.8

[Peer]
PublicKey = AAAAAA=
AllowedIPs = 0.0.0.0/0
Endpoint = 111.222.333.444:12345

Таблица маршрутизации:

ubuntu@gateway:~$ ip route list
default via 192.168.1.1 dev eth0 proto dhcp src 192.168.1.44 metric 100 
10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.21 
172.16.0.0/24 dev wg1 proto kernel scope link src 172.16.0.1 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.44 metric 100 
192.168.1.1 dev eth0 proto dhcp scope link src 192.168.1.44 metric 100

Телефон подключается к «Вайргард-серверу» успешно, сам шлюз с «Вайргард-сервером» и «Вайргард-клиентом» внутри тоже подключается к удалённому «Вайргард-серверу-2».

ubuntu@gateway:~$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.44  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ba27:ebff:fe0f:db33  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:0f:db:33  txqueuelen 1000  (Ethernet)
        RX packets 7234  bytes 371142 (371.1 KB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 377  bytes 51930 (51.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 12  bytes 1290 (1.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1290 (1.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 10.0.0.21  netmask 255.255.255.0  destination 10.0.0.21
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 39  bytes 11380 (11.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 48  bytes 5436 (5.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg1: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 172.16.0.1  netmask 255.255.255.0  destination 172.16.0.1
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 4  bytes 592 (592.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 368 (368.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Задача в том, чтобы с телефона получать и отправлять данные через удалённый «Вайргард-сервер-2» через промежуточную цепь устройств у меня дома. Если у кого-либо имеются какие-либо мысли или необходимо выложить результат отработки каких-то команд в «Терминале», пишите. Сетевой порт 12345 на роутере проброшен на шлюз (eth0: 192.168.1.44). Буду рад совету.

Я никогда не пользовался вайргуардом но насколько я слышал он создаёт обычные сетевые интерфейсы и настройки делаются так же как для обычного транзита пакетов через комп (таблицами роутинга и файрволловым натом если он нужен).

firkax ★★★★★
()

Тебе нужно почитать хотя бы серию статей «Сети для самых маленьких»: https://habr.com/ru/articles/133453/

Не смотря на название, материал довольно хорош и даёт знания.

Что я понял из твоей схемы:

Есть некоторый ПК с белым IP, к котрому подключаешься с телефона, он подключается через wireguard соединение к другому ПК, а на том ещё одно wireguard соединение, но уже другое.

Если упростить, то схема такая:

PC1 <--NET1--> GW1 <--NET2--> GW2 <--NET3--> PC2

Так вот, чтобы PC2 мог обращаться к PC1 и обратно надо либо прописать маршруты либо в некоторых местах сделать NAT.

А ещё в случае wireguard должны быть маршруты правильно прописаны в конфигурациях сервера и клиента, т.к. эти маршруты фильтруются драйвером, если ты маршрут добавишь руками WG на клиенте, но эта сеть не будет объявлена в конфигурации WG сервера, то ходить ничео не будет.

Поэтому читай указанную серию статей и разбирайся.

anonymous
()

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

Enthusiast ★★★
() автор топика