LINUX.ORG.RU
ФорумAdmin

Настройка Wireguard на роутере ( клиенты не видят друг друга )

 


0

2

Ребят всем привет.

Я уже сломал всю голову, есть подозрения что проблема где-то на уровне сервера Wireguard на роутере.

Данная проблема тут поднималась несколько раз, обсуждалась, но в моем случае все что там дано не работает.

Суть проблемы клиенты Wireguard не видят друг друга. Сервер видит всех.

Есть сервер с белым статичным IP к которому подключаются клиенты. Сервер на базе роутера Asus RT-AX58U Клиенты на базе роутеров Keenetic

Сервер 10.6.0.1 - с сетью 192.168.1.0/24
Клиент N1 10.6.0.9 - с сетью 192.168.2.0/24
Клиент N2 10.6.0.10 - с сетью 192.168.4.0/24

У всех клиентов AllowedIP заполнены правильно, маршруты прописаны и до сервера все летает без проблем.

Клиент N1 AllowedIP 10.6.0.9/32, 192.168.1.0/24, 192.168.4.0/24
Клиент N2 AllowedIP 10.6.0.10/32, 192.168.1.0/24, 192.168.2.0/24

cat /proc/sys/net/ipv4/ip_forward Возвращает «1» что означает что он включен

Межсетевые экраны настроены на обоих клиентах.

С клиентов я полностью вижу сеть за сервером ( 192.168.1.0 )

С сервера я полностью вижу сети за клиентами ( 192.168.2.0 и 192.168.4.0 )

Но я не не вижу с клиентов сети друг друга т.е.
с 192.168.2.0 я не вижу сеть 192.168.4.0
с 192.168.4.0 я не вижу сеть 192.168.2.0

Я перепробовал кучу разных вариантов AllowedIP, как на клиентах так и не сервере, но я не могу никак получить доступ к сети от одного клиента к другому. Трассировка показывает что запрос уходит на 10.6.0.1 ( сервер ) и на этом все умирает.

У меня есть сильное подозрение что проблема где-то в настройках серверной части wireguard

Route на сервере выдает следующее:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         95x78x156x254.s 0.0.0.0         UG    0      0        0 eth4
5.3.3.3         95x78x156x254.s 255.255.255.255 UGH   1      0        0 eth4
10.6.0.3        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.4        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.5        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.6        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.7        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.8        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.9        *               255.255.255.255 UH    0      0        0 wgs1
10.6.0.10       *               255.255.255.255 UH    0      0        0 wgs1
91.144.132.3    95x78x156x254.s 255.255.255.255 UGH   1      0        0 eth4
95.78.156.0     *               255.255.255.0   U     0      0        0 eth4
95.78.156.254   *               255.255.255.255 UH    0      0        0 eth4
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.2.0     *               255.255.255.0   U     0      0        0 wgs1
192.168.4.0     *               255.255.255.0   U     0      0        0 wgs1
239.0.0.0       *               255.0.0.0       U     0      0        0 br0

Файл настроек Wireguard который я нашел на роутере имеет следующий вид:

#!/bin/sh

iptables -t nat -A LOCALSRV -p udp --dport 51820 -j ACCEPT
iptables -A WGSI -p udp --dport 51820 -j ACCEPT
ip6tables -A WGSI -p udp --dport 51820 -j ACCEPT
iptables -A WGSI -i wgs1 -j ACCEPT
ip6tables -A WGSI -i wgs1 -j ACCEPT
iptables -I WGSF -i wgs1 -j ACCEPT
iptables -I WGSF -o wgs1 -j ACCEPT
ip6tables -I WGSF -i wgs1 -j ACCEPT
ip6tables -I WGSF -o wgs1 -j ACCEPT
iptables -t mangle -I PREROUTING -i wgs1 -j MARK --or 0x1
iptables -t mangle -I POSTROUTING -o wgs1 -j MARK --or 0x1
ip6tables -t mangle -I PREROUTING -i wgs1 -j MARK --or 0x1
ip6tables -t mangle -I POSTROUTING -o wgs1 -j MARK --or 0x1

Возможно надо чтото в нем настроить чтобы клиенты начали видеть друг друга?

Прошу не ругаться, если что написал не правильно, я не спец в линуксе и его синтаксисе команд. Подскажите что возможно надо поправить в таблице маршрутизации сервера чтоб клиенты начали видеть друг друга?

Если надо какие то другие параметры предоставить, напишите, сделаем. Заранее спасибо



Последнее исправление: PavelNismo (всего исправлений: 3)
Ответ на: комментарий от NyXzOr

Я пробовал указывать 10.6.0.0/24 - результата нету никакого.

Маршруты указаны верно, файрволы настроены.

Дело 100% в настройке таблицы маршрутизации на сервере.

После дня поиска нашел в интернете статью: https://www.reddit.com/r/Ubiquiti/comments/1e308bk/wireguard_clients_not_reaching_eachother/

В ней нашел что надо надо на сервере настроить вот этими командами таблицу:

sudo iptables -A FORWARD -i wg0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o <external_interface> -j MASQUERADE

В моём случае это выглядело так:

iptables -A FORWARD -i wgs1 -j ACCEPT 
iptables -t nat -A POSTROUTING -o wgs1 -j MASQUERADE

Как только я ввел эти команды у меня появилась связь м/у клиентами.

Вопрос, правильно ли я сделал? или нужно чтото еще дописать или как то поправить?

Сейчас я могу пинговать из сети 192.168.2.0 - сеть 192.168.4.0

PavelNismo
() автор топика

давай ещё сверим правильно ли я понял как у тебя прописаны allowed ips:

На сервере:

#Клиент1
[Peer]
PublicKey = zzzz
AllowedIPs = 10.6.0.9/32, 192.168.2.0/24
#Клиент2
[Peer]
PublicKey = zzzy
AllowedIPs = 10.6.0.10/32, 192.168.4.0/24

На клиенте1:

#server
[Peer]
PublicKey = xxxx
AllowedIPs = 10.6.0.0/24, 192.168.1.0/24, 192.168.4.0/24
Endpoint = 11.22.33.44:12345
PersistentKeepalive = 30

На клиенте2:

#server
[Peer]
PublicKey = xxxx
AllowedIPs = 10.6.0.0/24, 192.168.1.0/24, 192.168.2.0/24
Endpoint = 11.22.33.44:12345
PersistentKeepalive = 30
NyXzOr ★★★★
()
Ответ на: комментарий от NyXzOr

Я прошу прощения, но я наверное как обезьяна, просто скопировал тот что было там написано, без понимания вообще что оно делает.

Я реально не до конца понимаю как все работает, мне бы было бы хорошо если мне напишут что писать.

Просто у роутера синтаксис команд немного разный с обычным Linux и мне приходится исправлять команды чтобы роутер принял их, на это тоже трачу время (

PavelNismo
() автор топика
Ответ на: комментарий от NyXzOr

Клиент 1

#server
[Peer]
PublicKey = xxxx
AllowedIPs = 10.6.0.9/32, 192.168.1.0/24, 192.168.4.0/24
Endpoint = 11.22.33.44:12345
PersistentKeepalive = 25

Клиент 2

#server
[Peer]
PublicKey = xxxx
AllowedIPs = 10.6.0.10/32, 192.168.1.0/24, 192.168.2.0/24
Endpoint = 11.22.33.44:12345
PersistentKeepalive = 25
PavelNismo
() автор топика
Ответ на: комментарий от NyXzOr

Да нет там никакой инструкции. Все делается через Web доступ к роутеру.

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

А я с линукс и с таблицей маршрутизации - на ВЫ )

PavelNismo
() автор топика
Ответ на: комментарий от NyXzOr

Вот так выдает.

admin@RT-AX58U-2340:/tmp/home/root# wg showconf wgs1
[Interface]
ListenPort = 51820
PrivateKey = ********

[Peer]
PublicKey = ********
AllowedIPs = 10.6.0.9/32, 192.168.2.0/24
Endpoint = 111.111.111.111:53767 ( адрес изменен )

[Peer]
PublicKey = *******
AllowedIPs = 10.6.0.10/32, 192.168.4.0/24
Endpoint = 111.111.111.111:45244 ( адрес изменен )
admin@RT-AX58U-2340:/tmp/home/root# 
PavelNismo
() автор топика
Ответ на: комментарий от PavelNismo

В общем в этой команде 100% гдето у меня ошибка

iptables -t nat -A POSTROUTING -o wgs1 -j MASQUERADE

После того как я применяю эту команду я начинаю видеть сеть 192,168,4,0 из сети 192,168,2,0 Но я перестаю видеть сеть 192,168,2,0 с сервера ))

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

PavelNismo
() автор топика