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

wireguard: доступ от клиента в сеть другого клиента

 


0

1

Помогите, пожалуйста, настроить сабж.

Вводные: Имеется VPS, на ней поднят wireguard, к которому подключаются несколько клиентов из разных мест. Один из клиентов - это роутер без белого IP, за которым есть локальная сеть. Нужно, чтобы другой клиент, подключившийся к wireguard-серверу поимел доступ к локальной сети, находящейся за клиентом-роутером.

Вот конфиг сервера:

[Interface]
Address = 10.0.0.1/24
PrivateKey = kjhkdjfhuerhkjnckwueiufhnwcniwuehfiunwcnj4= 
ListenPort = 51820
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
#Это клиент-роутер за которым сеть 192.168.1.0/24 (в нее должен получить доступ клиент, что ниже)
PublicKey = kljsdhfkjhskdjfhkjshdkjfhksjdhfkjh23jlk=
AllowedIPs = 10.0.0.2/32, 192.168.1.0/24

[Peer]
#Клиент, которому нужен доступ в подсеть
PublicKey = kjhdkfhksjdhfkjq3elkworwiouelcj8793= 
AllowedIPs = 10.0.0.3/32

Настройки wg на роутере (Keenetic) делаются через GUI, но примерно такие:

[Interface]
Address = 10.0.0.2/24
PrivateKey = kj876483658734695sdfkjhskjdhj4=
DNS = 8.8.8.8

[Peer]
#server
PublicKey = 98459849859594859485984958498ksdlkjlw23= 
AllowedIPs = 10.0.0.1/32
Endpoint = 185.105.106.107:51820

На этом этапе при поднятом туннеле с роутера на сервер пинги с сервера на клиент и в его подсеть идут нормально.
Т.е., на сервере:
ping 10.0.0.2 дает ответ
ping 192.168.1.1 дает ответ
ping 192.168.1.4 дает ответ

И вот подключается клиент, которому тоже надо в подсеть 192.168.1.0 за первым клиентом-роутером.

[Interface]
Address = 10.0.0.3/24
PrivateKey = k876543hdgsl8337sjsnx73737hxxh4=
DNS = 8.8.8.8

[Peer]
#server
PublicKey = 98459849859594859485984958498ksdlkjlw23= 
AllowedIPs = 0.0.0.0/0, 10.0.0.0/24, 192.168.0.0/24
Endpoint = 185.105.106.107:51820

Этот клиент подключается, может сидеть в интернете через туннель, но подсеть 192.168.1.0 не доступна для него. Как сделать доступной?


Ответ на: комментарий от MumiyTroll

На кинетике для этого интерфейса все разрешено во все стороны. Скрин.
С клиента, которому нужен доступ пингуется только сам сервер (10.0.0.1).
10.0.0.2 не пингуется Ну, и 192.168.1.1 не пингуется.

le_ ()
Ответ на: комментарий от le_

Другой вопрос

Подскажите еще, пожалуйста, почему при такой настройке не работает VNC (обычный x11vnc) c клиента из туннеля?
Пинги идут, traceroute с клиента показывает нормальный маршрут, могу подключаться по ssh к машинам внутри сети 192.168.1.0/24, могу просматривать сайты, которые хостятся в этой подсети, но по VNC подключиться не получается. The connection closed unexpectedly.

le_ ()

Добрый день. Столкнулся с похожей проблемой. С сервера все клиенты пингуются, сеть за роутером тоже. А с клиентов пингуется только сервер. Думаю что-то не так с настройками iptables на сервере. Можете поделиться своей конфигурацией iptables?

ar_22 ()
Ответ на: комментарий от ar_22

root@homelan3:~# ip rout

default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.206 metric 100

10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.206

10.6.0.0/24 dev wg0 proto kernel scope link src 10.6.0.1

169.254.0.0/16 dev ens3 proto dhcp scope link src 10.0.0.206 metric 100

172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

192.168.31.0/24 dev wg0 scope link

ar_22 ()