1 (edytowany przez raczosak11 2023-09-20 18:06:33)

Temat: klient Wireguard VPN na routerze - nie ma połączenia RX

klient Wireguard VPN na routerze B (z OpenWrt) nie pobiera danych RX (tx działa), mimo że działa na innym urządzeniu - a na routerze B działa interfejsy innych klientów Wireguard-a.

1. internet jest dostarczany na router A (tp-link) - IP: 192.168.0.1 (włączonym DHCP)
2. mam ustawiony serwer VPN Wireguard na Raspberry pi 4, podłączonym przez LAN do routera A o ip: 192.168.0.101
3. mam router B (z systemem OpenWrt) o własnej podsieci 192.168.2.1 (włączonym DHCP), podłączonym przez LAN do routera A pod ip: 192.168.0.104

Konfiguracja na routerze A (tp-link IP: 192.168.0.1):
1. Otworzyłem port 51820 pod adres ip serwera VPN na na Raspberry pi 4 (192.168.0.101)
2. nie wiem czy potrzebnie, ale utworzyłem static rout pod router B z Destination IP: 192.168.2.0 oraz Gateway 192.168.0.104

Konfiguracja na routerze B (OpenWrt 192.168.2.1):
1. Podłączyłem klienta Wireguard i nie ma internetu
2. Reguły Firewall-e pod VPN zrobione tak jak WAN albo jakbym konfigurował innego operatora VPN - np. Surfshark czy NordVpn - u nich to działa.
3. Nie otwierałem żadnych portów ani nie robiłem static route bo jest klientem VPN


Teraz klinet VPN z serwera Raspberry działa mi na komputerze lub telefonie ale nie na routerze B- brak pobierania danych RX .
- Identyczna konfiguracja na routerze B zapór ogniowych i innych umożliwia np. działanie interfejsu NordVpn lub Surfsark, a nie mojego z Raspberry.

Skoro wszędzie i wszystko inne działa, to może ma na to wpływ fakt, że wszytskie dane przechodzą na tym samym łączu internet. Może jakiś endpoint w PEER klienta Wireguarda trzeba zmienić.

Nie mam pojęcia jak za tego wybrnąć.

2

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

Jak się nie kręci jeden z liczników to w 99% jest to po prostu brak połączenia z drugą stroną, albo przez złe klucze (pomylone, wpisane odwrotnie, literówka czy dodatkowy znak) albo przez dnsy/firewalle i blokadę połączenia. Sprawdź wszystko jeszcze raz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

Cezary napisał/a:

albo przez złe klucze (pomylone, wpisane odwrotnie, literówka czy dodatkowy znak)

- Sprawdzałem, identyczna konfiguracja działa na komputerze i Androidzie - nie działa tylko na routerze
- Sprawdzałem to z OpenWRT i DD-Wrt i Garygole

Cezary napisał/a:

albo przez dnsy/firewalle i blokadę połączenia

- identycznie ustawione firewalle działają pod inne interfejsy z SurfShark lub Nordvpn
- w router B dnsy w PEER Clienta Wireguard ustawione prawidłowo
- w router B WAN dnsy ustawione pod PEER Clienta Wireguard
- router A ma inne DNS-y, ale tam są porty otworzone

4

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

Ciężko ogarnąć, co chcesz osiągnąć, mam wrażenie. WG jako klient na routerze B (192.168.0.51) łączy się do WG na RPi (192.168.0.50)? Czy chcesz z B wejść na RPi, ale używając adresu publicznego z A, gdzie masz przekierowanie portu 51820 na RPi?
To że dns są ustawione na poszczególnych maszynach jakoś, to póki co to chyba nie jest istotne, skoro nie masz podstawowej łączności.
To że działa na komputerze czy androidzie - ale skąd, z lanu, czy ze świata?
Że na B działają Ci inne klienty VPN, których serwery stoją gdzieś w świecie, to daje tylko takie info, że masz wyjście na świat z B.
Jeśli sprawdzałeś na B z openwrt, gargoyle i ddwrt, to znaczy tyle, że raczej nie jest to problem klienta.

Popatrz raczej na to, jak masz zrobione wejście do wg na RPi i jak się tam próbujesz dostawać z B.

5 (edytowany przez raczosak11 2023-09-21 06:36:11)

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

Docelowo router B ma być klientem Wireguard z serwera VPN na Rapsberry. Przy czym router A daje przez LAN internet do routera B (przez WAN). A Rapsberry z serwerem VPN też jest podłączone pod router A (przez LAN)

Zrobiłem screeny oraz zmieniły się adresy IP urządzeń.

Dane do Klienta Wireguard

[Interface]
PrivateKey = 2HxxxkI=
Address = 10.yyy.2/24
DNS = 9.9.9.9, 149.112.112.112

[Peer]
PublicKey = p7xxxTQ=
PresharedKey = ZExxx4o=
Endpoint = 84.yyy.100:51820
AllowedIPs = 0.0.0.0/0, ::0/0

Konfiguracja z routera B

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.xxx.1'
        option netmask '255.xxx.0'

config globals 'globals'
        option packet_steering '1'
        option ula_prefix 'fde8:xxx3::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.2.1'

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'

config interface 'wg0'
        option proto 'wireguard'
        list dns '9.9.9.9'
        list dns '149.112.112.112'
        option auto '0'
        option private_key '2xxxkI='
        list addresses '10.yyy.2/24'

config wireguard_wg0
        option description 'something'
        option route_allowed_ips '1'
        option endpoint_port '51820'
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::0/0'
        option endpoint_host '84.xxx.100'
        option public_key 'p7xxxTQ='


1 Router A - Fowarding and Static
PunBB bbcode test

5a Router B - Firewall 1
PunBB bbcode test

5b Router B - Firewall 2
PunBB bbcode test

6

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

Te zrzuty ekranu ciężko się ogląda, łatwiej byłoby spojrzeć na konfigurację z konsoli (oczywiście poza samym A, gdzie masz orig od tplink)
1. "Zmieniły się adresy IP" - się zmieniły, czy sam zmieniłeś względem pierwszego posta? Jeśli "same" to ustaw na sztywno IP w dhcp na tym A, żeby przynajmniej adresacja w lanie 192.168.0.0/24 była stabilna. I ew. popraw pierwszy post, żeby to już spójne było względem obecnej adresacji.
2. Uderzasz z klienta na 192.168.0.104 do serwera stojącego na 192.168.0.101, robisz to przez adres publiczny na A (84....100), skoro oba są w jednym lanie?
3a. B ma interfejs wg0 z adresacją 10......3/24. Czy Rpi jako serwer wie, że peer z określonym klucze ma mieć takie IP?
3b. Pokaż może konfigurację serwera na RPi, zwłaszcza jesli chodzi o kawałek związany z peerem B

7 (edytowany przez raczosak11 2023-09-21 06:21:18)

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

sqoorch napisał/a:

1. "Zmieniły się adresy IP" - się zmieniły, czy sam zmieniłeś względem pierwszego posta? I ew. popraw pierwszy post, żeby to już spójne było względem obecnej adresacji.

Sam zmieniłem względem pierwszego posta, już go poprawiłem ku spójności.

sqoorch napisał/a:

to ustaw na sztywno IP w dhcp na tym A, żeby przynajmniej adresacja w lanie 192.168.0.0/24 była stabilna

Zarezerwowałem wcześniej dzierżawę IP routera B (192.168.0.104) oraz IP Raspberry PI z serwerem VPN (192.168.0.101). O to chodziło ?

sqoorch napisał/a:

2. Uderzasz z klienta na 192.168.0.104 do serwera stojącego na 192.168.0.101, robisz to przez adres publiczny na A (84....100), skoro oba są w jednym lanie?

Czyli mam ustawić endpoint w PEER klienta Wireguarda mam ustawić na IP routera A? Czy Allow Ip jeszcze jakieś dodać prócz 0.0.0.0/0 ?

sqoorch napisał/a:

3a. B ma interfejs wg0 z adresacją 10......3/24. Czy Rpi jako serwer wie, że peer z określonym klucze ma mieć takie IP?

Chyba wie patrząc po serwerze:

=============================================
::::  Server configuration shown below   ::::
[Interface]
PrivateKey = server_priv
Address = 10.yyy.1/24
MTU = 1420
ListenPort = 51820
### begin testClient ###
[Peer]
PublicKey = testClient_pub
PresharedKey = testClient_psk
AllowedIPs = 10.yyy.2/32
### end testClient ###

 

sqoorch napisał/a:

Te zrzuty ekranu ciężko się ogląda, łatwiej byłoby spojrzeć na konfigurację z konsoli [...]
3b. Pokaż może konfigurację serwera na RPi, zwłaszcza jesli chodzi o kawałek związany z peerem B

Tutaj cała konfiguracja z sesji debugowania PIVPN -d zrobiona na Raspberry:

=============================================
::::        Installation settings        ::::
PLAT=Raspbian
OSCN=bullseye
USING_UFW=0
pivpnforceipv6route=1
IPv4dev=eth0
IPv4addr=192.168.0.101/24
IPv4gw=192.168.0.1
install_user=xxx
install_home=/home/xxx
VPN=wireguard
pivpnPORT=51820
pivpnDNS1=9.9.9.9
pivpnDNS2=149.112.112.112
pivpnHOST=REDACTED
INPUT_CHAIN_EDITED=0
FORWARD_CHAIN_EDITED=0
INPUT_CHAIN_EDITEDv6=
FORWARD_CHAIN_EDITEDv6=
pivpnPROTO=udp
pivpnMTU=1420
pivpnDEV=wg0
pivpnNET=10.yyy.0
subnetClass=24
pivpnenableipv6=0
ALLOWED_IPS="0.0.0.0/0, ::0/0"
UNATTUPG=1
INSTALLED_PACKAGES=(dnsutils grepcidr bsdmainutils iptables-persistent wireguard-tools qrencode unattended-upgrades)


=============================================
::::  Server configuration shown below   ::::
[Interface]
PrivateKey = server_priv
Address = 10.yyy.1/24
MTU = 1420
ListenPort = 51820
### begin testClient ###
[Peer]
PublicKey = testClient_pub
PresharedKey = testClient_psk
AllowedIPs = 10.yyy.2/32
### end testClient###

=============================================
::::  Client configuration shown below   ::::
[Interface]
PrivateKey = testClient
Address = 10.yyy.2/24
DNS = 9.9.9.9, 149.112.112.112

[Peer]
PublicKey = server_pub
PresharedKey = testClient_psk
Endpoint = REDACTED:51820
AllowedIPs = 0.0.0.0/0, ::0/0


=============================================
::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [OK] Iptables MASQUERADE rule set
:: [OK] WireGuard is running
:: [OK] WireGuard is enabled
(it will automatically start on reboot)
:: [OK] WireGuard is listening on port 51820/udp
=============================================

8

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

raczosak11 napisał/a:
sqoorch napisał/a:

2. Uderzasz z klienta na 192.168.0.104 do serwera stojącego na 192.168.0.101, robisz to przez adres publiczny na A (84....100), skoro oba są w jednym lanie?

Czyli mam ustawić endpoint w PEER klienta Wireguarda mam ustawić na IP routera A? Czy Allow Ip jeszcze jakieś dodać prócz 0.0.0.0/0 ?

Nie do końca rozumiem jaki jest cel tego ćwiczenia, żeby host B w lanie był klientem serwera RPi stojącego w tej samej sieci...
Ale jeśli są w tej samej sieci, to B może uderzać do endpointu na 192.168.0.101, z pominięciem routera A i tym samym konieczności przekierowania portu tamże. Przynajmniej ja tak to rozumiem, że dwa hosty w tej samej podsieci mogą się skomunikować zupełnie z pominięciem routera i jego adresacji publicznej. Natomiast nadal otwarte jest pytanie, czemu to ma służyć.

raczosak11 napisał/a:
sqoorch napisał/a:

3a. B ma interfejs wg0 z adresacją 10......3/24. Czy Rpi jako serwer wie, że peer z określonym klucze ma mieć takie IP?

Chyba wie patrząc po serwerze:

..
[Peer]
..
AllowedIPs = 10.yyy.2/32
..

Na tyle co ja rozumiem wg, to właśnie jest ten problem do rozwiązania w pierwszej kolejności. Serwer oczekuje klienta o innym IP, niż mu ustawiłeś. Zmień na B adres interfejsu wg0 na to 10.yyyy.2/32.

9 (edytowany przez raczosak11 2023-09-21 07:13:36)

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

sqoorch napisał/a:

Nie do końca rozumiem jaki jest cel tego ćwiczenia

Takie cel mniej więcej jak na obrazu, router B ma być klientem VPN i szyfrować ruch podłączonych do niego urządzeń:
Internet --> router A --> Rapsberry --> klient Wireguard na routerze B --> inne urządzenia, które już będą szyfrowane ruchem z routera B
PunBB bbcode test

sqoorch napisał/a:

Ale jeśli są w tej samej sieci [...]

Na obu routerach jest włączone DHCP, każdy ma swoją podsieć A (192.168.0.1) i daje internet routerowi B przez 192.168.0.104. Zaś ogólnie router B u siebie w LAN ma podsieć 192.168.2.1, a więc inną niż A.
To chyba nie ma zastosowania, tak?

sqoorch napisał/a:

Na tyle co ja rozumiem wg, to właśnie jest ten problem do rozwiązania w pierwszej kolejności. Serwer oczekuje klienta o innym IP, niż mu ustawiłeś. Zmień na B adres interfejsu wg0 na to 10.yyyy.2/32.

Źle zedytowałem gdy wklejałem wyżej wskazane konfiguracje (już poprawiłem), było kilku klientów, zostawiłem jednego z którym openwrt jest obecnie skonfigurowany. Mógłbyś jeszcze raz spojrzeć na całość ?

::::  Client configuration shown below   :::: 
[Peer]
PublicKey = testClient_pub
PresharedKey = testClient_psk
AllowedIPs = 10.yyy.2/32
### end testClient ###

to mam 10.yyy.2/32 wpisać w "AllowedIPs" Peer klienta na routerze B? Czy w adresie na interfejsie wg0 ?

Wygenerowane dane do klienta Wireguarda

[Interface]
PrivateKey = 2HxxxkI=
Address = 10.yyy.2/24
DNS = 9.9.9.9, 149.112.112.112

Bo w interfejsie mam 10.yyy.2/24 czyli to co wygenerował VPN serwer dla klienta

10

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

tak jak pisał @sqoorch, najpierw musisz zrobić ruch klienta VPN do serwera VPN po prywatnych adresach, skoro masz tak jak na obrazku.

na routerze B musisz zrobić forward między vpn <-> wan bo klient VPN musi wyjść swoim WAN-em, żeby dostać się do serwera VPN.

Na routerze B oczywiście musi być maskarada na porcie WAN, ale martwi mnie Twoje stwierdzenie z posta #1:

raczosak11 napisał/a:

3. mam router B (z systemem OpenWrt) o własnej podsieci 192.168.2.1 (włączonym DHCP), podłączonym przez LAN do routera A pod ip: 192.168.0.104

jaki LAN ?
po stronie LAN masz mieć sieć 192.168.2.0/24 a po stronie WAN - sieć 192.168.0.0/24

klient VPN musi szukać serwera po adresie 192.168.0.101, a serwer VPN musi dostać zapytanie, które przychodzi z adresu 192.168.0.104 a nie z 192.168.2.1.
oczywiście, można też ustawić routing na RPI żeby zapytania bez maskarady od klienta z sieci ...2.0/24 wysyłał odpowiedzi przez bramę ...0.104/24 ale to na tym etapie zaciemni sytuację. bo inaczej RPI będzie pchał odpowiedź do swojego routera A bo nie zna sieci ...2.0/24.
Podsumowując: podłącz router B do portu WAN a na drugim końcu ma być router A podłączony do portu LAN.

Wyjście na świat to inna pra kaloszy bo serwer VPN jest schowany w sieci LAN routera A jako klient LAN a więc albo instruujesz router A że pewne rzeczy przechodzą przez klienta LAN o adresie  ...0.101/24 albo ustawiasz maskaradę na porcie LAN serwera VPN żeby zapytania zawsze wychodziły z adresu 0.101/24

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

11

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

mar_w napisał/a:

tak jak pisał @sqoorch, najpierw musisz zrobić ruch klienta VPN do serwera VPN po prywatnych adresach, skoro masz tak jak na obrazku.

na routerze B musisz zrobić forward między vpn <-> wan bo klient VPN musi wyjść swoim WAN-em, żeby dostać się do serwera VPN.
Na routerze B oczywiście musi być maskarada na porcie WAN

Zrobiłem drogę z interfejsu WG0 na VPN oraz dodatkową z VPN na WG0.
Niestety dalej nic, nawet jak zmieniłem endpoint w PEER klienta na IP Raspberry 192.168.0.101 niewiele to zmienia.

mar_w napisał/a:

po stronie LAN masz mieć sieć 192.168.2.0/24 a po stronie WAN - sieć 192.168.0.0/24

Może źle to sformułowałem ale jest tak jak piszesz. Jest LAN routera B (192.168.2.0/24) a WAN routera B (192.168.0.0/24), poniżej screen jak to wygląda:
PunBB bbcode test

12 (edytowany przez mar_w 2023-09-21 12:51:48)

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

na początek zajmij się częścią schematu połączenia: Router B <-> RPI.

Router B ustaw tak jak domyślnie ustawiony jest tradycyjny router Openwrt z portem WAN i portami (portem) LAN.
Tradycyjny firewall itd.

zrób poprawny konfig VPN z kluczami i innymi pierdołami jak adresy itd...

ponieważ to klient VPN nawiązuje połączenie z serwerem VPN, to na routerze B zrób konfig zwykłego klienta VPN dla którego "światowy" publiczny adres IP serwera VPN do którego musi się połączyć ma oznaczenie 192.168.0.101

Jeżeli RPI ma port w tradycyjnej strefie LAN, to dobrze bo ta strefa jest otwarta na połączenia przychodzące i jest wewnątrz LANu routera A a więc nie jest bezpośrednio wystawiona na świat. 

sprawdź komunikację po VPN. i dalej po trochu będziesz dokładał co potrzeba.

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

13

Odp: klient Wireguard VPN na routerze - nie ma połączenia RX

sqoorch napisał/a:

2. Uderzasz z klienta na 192.168.0.104 do serwera stojącego na 192.168.0.101, robisz to przez adres publiczny na A (84....100), skoro oba są w jednym lanie?

Udało się, wystarczyło w routerze B zmienić u klienta Wireguard w PEER endpoint na adres podsieci serwera w 192.168.0.101.

Dziękuje za pomoc !