1 (edytowany przez exeq17 2022-02-25 14:09:26)

Temat: wireguard klient

Cześć,
juz x godzin probuje to skonfigurowac. postawilem serwer wireguard u siebie w domu na raspberry. skonfigurowalem klientow, jeden to telefon drugi to router z gargoyle w drugiej lokalizacji. telefon dziala na configu od telefonu. telefon rowniez dziala na configu od drugiej lokalizacji. niestety przy wklejaniu configu do routera w drugiej lokalizacji ten pokazuje ze jest online ale niestety ciagle wysyla handshake;i:

[  +5.757296] wireguard: wg0: Receiving handshake initiation from peer 89 (89.23xxx:51820)
[  +0.000027] wireguard: wg0: Sending handshake response to peer 89 (89.230xxx:51820)
[  +0.000594] wireguard: wg0: Keypair 1568 destroyed for peer 89
[  +0.000008] wireguard: wg0: Keypair 1569 created for peer 89
[  +5.759732] wireguard: wg0: Receiving handshake initiation from peer 89 (89.2xxx235:51820)
[  +0.000027] wireguard: wg0: Sending handshake response to peer 89 (89.23xxx35:51820)
[  +0.000596] wireguard: wg0: Keypair 1569 destroyed for peer 89
[  +0.000008] wireguard: wg0: Keypair 1570 created for peer 89
[  +5.759343] wireguard: wg0: Receiving handshake initiation from peer 89 (89.2xxx235:51820)
[  +0.000028] wireguard: wg0: Sending handshake response to peer 89 (89.2xxx:51820)
[  +0.000607] wireguard: wg0: Keypair 1570 destroyed for peer 89

komenda wg z routera gargoyle:

root@Gargoyle:/etc/config# wg
interface: wg0
  public key: ciach
  private key: (hidden)
  listening port: 51820

peer: ciach
  endpoint: 89.231.xxxx:41194
  allowed ips: 192.168.1.0/24
  transfer: 0 B received, 5.78 KiB sent
komenda wg z serwera wireguard:
root@rpi:/etc/wireguard# wg
interface: wg0
  public key: xxxx
  private key: (hidden)
  listening port: 41194

peer: xxxx (to jest router gargoyle)
  preshared key: (hidden)
  endpoint: 89.2xxxxxx:51820
  allowed ips: 192.168.6.4/32
  latest handshake: 22 minutes, 39 seconds ago
  transfer: 24.14 KiB received, 64.27 KiB sent

peer: xxx (to jest telefon)
  preshared key: (hidden)
  endpoint: 37.47.2xx:4879
  allowed ips: 192.168.6.2/32
  latest handshake: 39 minutes, 39 seconds ago
  transfer: 199.72 KiB received, 913.50 KiB sent

ponizej konfigi z routera gargoyle (klient)

root@Gargoyle:/etc/config# cat firewall

config defaults
        option syn_flood '1'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'wan'
        list network 'wan'
        list network 'wan6'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option src_ip 'fc00::/6'
        option dest_ip 'fc00::/6'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config include
        option path '/etc/firewall.user'
        option reload '1'

config include
        option type 'script'
        option path '/usr/lib/gargoyle_firewall_util/gargoyle_additions.firewall'
        option family 'any'
        option reload '1'

config include 'wireguard_include_file'
        option path '/etc/wireguard.firewall'
        option reload '1'

config zone 'wg_zone'
        option name 'wg'
        option device 'wg0'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option mtu_fix '1'
        option masq '1'

config forwarding 'wg_lan_forwarding'
        option src 'lan'
        option dest 'wg'

config forwarding 'lan_wg_forwarding'
        option src 'wg'
        option dest 'lan'

config redirect 'redirect_enabled_number_0'
        option name 'ftp'
        option src 'wan'
        option dest 'lan'
        option family 'ipv4'
        option proto 'tcp'
        option src_dport '9988-9988'
        option dest_port '9988-9988'
        option dest_ip '172.16.1.10'

config redirect 'redirect_enabled_number_1'
        option name 'ftp'
        option src 'wan'
        option dest 'lan'
        option family 'ipv4'
        option proto 'udp'
        option src_dport '9988-9988'
        option dest_port '9988-9988'
        option dest_ip '172.16.1.10'
root@Gargoyle:/etc/config# cat network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd95:a904:84cf::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '172.16.1.1'
        option ip6ifaceid '::1'
        option dns '1.1.1.1 '

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'
        option ipv6 '0'
        option dns '1.1.1.1'
        option peerdns '0'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'none'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '1 2 3 4 0t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '5 6t'

config interface 'wg0'
        option proto 'wireguard'
        option private_key 'xxxx'
        option listen_port '51820'
        list addresses '192.168.6.4/32'

config wireguard_wg0 'wgserver'
        option public_key 'xxx='
        list allowed_ips '192.168.1.0/24'
        option route_allowed_ips '1'
        option endpoint_host 'xxx'
        option endpoint_port 'xxx'

powtarzam, config wygenerowany dla router gargoyle na telefonie dziala. problem jest tylko klient gargoyle. co moge jeszcze sprawdzic? w tcpdump serwera widac ze komunikacja wpada poprawnie. jest jakby jakis problem z wymiana kluczy.

2

Odp: wireguard klient

Tak, problem wygląda tak jak byś miał złe klucze wpisane w kliencie lub serwerze. Nie pomyliłeś kluczy prywatnych z publicznymi?
(wiem, czytałem że na telefonie działa, ale na telefonie nie masz konfiga w uci).

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

3 (edytowany przez exeq17 2022-02-25 14:33:34)

Odp: wireguard klient

raczej napewno nie smile
zrobilem teraz tak ze wygenerowalem na gui gargoyle klucze. pomylilem sie specjalnie przy wpisywaniu tych kluczy w konfiguracji serwera,restart wireguard serwer. dostawalem:

Invalid handshake initiation from 89.2xxx

czyli poprawnie.

jak poprawilem klucze na serwerze wireguard i zrobilem restart (wkleilem te wygenerowane z gui gargoyle) to znowu jakby loop na handshake:

[  +2.238708] wireguard: wg0: Receiving handshake initiation from peer 95 (8xxxx5:51820)
[  +0.000040] wireguard: wg0: Sending handshake response to peer 95 (89xxxx5:51820)
[  +0.001266] wireguard: wg0: Keypair 1574 created for peer 95
[  +2.761728] wireguard: wg0: No peer has allowed IPs matching 239.255.255.250
[  +2.503523] wireguard: wg0: Receiving handshake initiation from peer 95 (8xxx35:51820)
[  +0.000052] wireguard: wg0: Sending handshake response to peer 95 (89xxxx5:51820)
[  +0.001810] wireguard: wg0: Keypair 1574 destroyed for peer 95
[  +0.000023] wireguard: wg0: Keypair 1575 created for peer 95
[  +2.510174] wireguard: wg0: No peer has allowed IPs matching 239.255.255.250
[  +3.247448] wireguard: wg0: Receiving handshake initiation from peer 95 (xxx5:51820)
[  +0.000028] wireguard: wg0: Sending handshake response to peer 95 (xx35:51820)

no i widac ze juz chyab ktos probuje sie dobic do vpna smile

No peer has allowed IPs matching 239.255.255.250

co moge sprawdzic? nie widze nic w logach.

zastanawia mnie jedna rzecz, jak wklepiemy wg na router gargoyle widac ze received jest 0. czy ten port ktory slucha po stronie gargoyle router powinien byc otwarty?

4

Odp: wireguard klient

Nie masz innych logów, w sumie nie masz też żadnych bardziej szczegółowych.

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

5

Odp: wireguard klient

wg z router gargoyle:

transfer: 0 B received, 2.89 KiB sent

wg z serwer wireguard:

 transfer: 2.89 KiB received, 1.80 KiB sent

jakby nie docieralo te 1.80KiB do klienta.

6

Odp: wireguard klient

config wireguard_wg0 'wgserver'
        option public_key 'xxx='
        list allowed_ips '192.168.1.0/24' < tutaj masz błąd
        option route_allowed_ips '1'
        option endpoint_host 'xxx'
        option endpoint_port 'xxx'

7

Odp: wireguard klient

MrB napisał/a:

config wireguard_wg0 'wgserver'
        option public_key 'xxx='
        list allowed_ips '192.168.1.0/24' < tutaj masz błąd
        option route_allowed_ips '1'
        option endpoint_host 'xxx'
        option endpoint_port 'xxx'

A to nie tak jest ze allowuje temu klientowi dostep do sieci 192.168.1.x?bo tak ma w sumie byc.wg Ciebie dac 172.16.1.0/24¿

8

Odp: wireguard klient

Nie wiem co chcesz osiągnąć, jak korzystać z tunelu, czym jest ten router (patrząc na tą szczątkową konfigurację, raspberry jest podłączone pod ten router?)

Wprowadź tam 0.0.0.0/0

9

Odp: wireguard klient

glownym problemem jest to ze router z gargoyle nie moze sie podpiac do serwera wireguard.
wyglada to tak:
1. lokalizacja A:
router z fresh tomato z siecia 192.168.1.0/24
do tego routera podpiete rpi z serwerem wireguard
2. lokalizacja B:
router gargoyle z siecia 172.16.1.0/24 z klientem wireguard.

osiagnac chce tunel site to site.

mam zrobiony tunel site to site przez openvpn miedzy tymi lokalizacjami ale transfery sa niezadowolajace.

10

Odp: wireguard klient

Nijak bym tego S2S nie nazwał.

Konfiguracja serwera WG(ukryj klucze) bo dużo gadania a najważniejszej części nie ma.

11 (edytowany przez exeq17 2022-02-26 07:21:25)

Odp: wireguard klient

MrB napisał/a:

Nijak bym tego S2S nie nazwał.

Konfiguracja serwera WG(ukryj klucze) bo dużo gadania a najważniejszej części nie ma.

A to jak nazywa sie tunel ktory spina dwie sieci lokalne w dwoch odleglych lokalizacjach w jedna? wink
Tu nie chodzi o config serwera bo ten jak mniemam jest dobry. Spialem inna lokalizacje gdzie klientem jest ubuntu i dziala.tu chodzi o to czemu klient na routerze gargoyle nie laczy sie i wpada w loopa z handshakami. Tam gdzie jest ten router gargoyle jest rowniez pc z windowsem.zainstalowalem tam klienta wireguard i spial sie bez problemu z site A rpi.

ponizej config serwera na rpi:

## Set Up WireGuard VPN on Ubuntu By Editing/Creating wg0.conf File ##
[Interface]
## My VPN server private IP address ##
Address = 192.168.6.1/24
 
## My VPN server port ##
ListenPort = 

PostUp = echo WireGuard 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 = echo WireGuard PostDown iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
 
## VPN server's private key i.e. /etc/wireguard/privatekey ##
PrivateKey =


[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 192.168.6.2/32


[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 192.168.6.3/32, 172.16.1.0/24

12

Odp: wireguard klient

Na tym gargoyle nie masz forward wg-wan  i wan -wg

13

Odp: wireguard klient

ad2014 napisał/a:

Na tym gargoyle nie masz forward wg-wan  i wan -wg

Hm, ma to chyba sens.
czyli musialbym dodac cos takeigo:

config forwarding 'wg_wan_forwarding'
        option src 'wan'
        option dest 'wg'

config forwarding 'wan_wg_forwarding'
        option src 'wg'
        option dest 'wan'

?

14

Odp: wireguard klient

udalo sie polaczyc, wywalilem z konfiguracji serwera wireguard linijke presharedkey i poszlo. router gargoyle widzi sieci z drugiej lokalizacji, pingi i telnety na porty przechodza. niestety komputery za routerem gargoylem (czyli klientem wireguarda) nie widza (nie pinguja nie telnetuja) sieci z serwera wireguard.

15

Odp: wireguard klient

Nie masz ustawionych odpowiednich allowedip, czyli nie masz ustawionego routingu.

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

16 (edytowany przez exeq17 2022-02-26 21:17:06)

Odp: wireguard klient

w cliencie na gargoyle dodalem:

    list allowed_ips '192.168.1.0/24' <- to jest siec drugiej lokalizacji
    list allowed_ips '192.168.6.0/24' <- to jest siec klientow vpna

pingi z gargoyle do drugiej sieci ida:

oot@Gargoyle:~# ping 192.168.1.21
PING 192.168.1.21 (192.168.1.21): 56 data bytes
64 bytes from 192.168.1.21: seq=0 ttl=64 time=8.641 ms
64 bytes from 192.168.1.21: seq=1 ttl=64 time=9.138 ms

route'y sa poprawne jak mniemam:

root@Gargoyle:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx1    0.0.0.0         UG    0      0        0 eth0.2
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
xxx0    0.0.0.0         255.255.255.0   U     0      0        0 eth0.2
xxx5    8xxxx.1    255.255.255.255 UGH   0      0        0 eth0.2
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 br-lan
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wg0
192.168.6.0     0.0.0.0         255.255.255.0   U     0      0        0 wg0
root@Gargoyle:~# ip route show
default via xxx dev eth0.2  src 8xxxx
10.8.0.0/24 dev tun0 scope link  src 10.8.0.1 
8xxxxx.0/24 dev eth0.2 scope link  src xxxx
8xxxx5 via xxx dev eth0.2 
172.16.1.0/24 dev br-lan scope link  src 172.16.1.1 
192.168.1.0/24 dev wg0 scope link 
192.168.6.0/24 dev wg0 scope link 
root@Gargoyle:~# 

telnet/nc przechodza z routera gargoyle:

root@Gargoyle:~# nc 192.168.1.21 9910
220 "Welcome to rpi"
^C

te same komendy na kompie wpietym do gargoyle router nie przechodza.

17

Odp: wireguard klient

Zezwoliłeś na ruch wireguard<>lan?

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

18 (edytowany przez MrB 2022-02-26 21:40:38)

Odp: wireguard klient

w cliencie na gargoyle dodalem:

    list allowed_ips '192.168.1.0/24' <- to jest siec drugiej lokalizacji

A to client jest odpowiedzialny za takie zezwolenia?

W serwerze wg dla danego peer dodaj tą klasę.

19

Odp: wireguard klient

Tak. I to nie są zezwolenia tylko tak po prostu określa trasy routingu. Albo dajesz wszystko albo określone klasy adresowe które chcesz wrzucić przez vpna.

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

20

Odp: wireguard klient

MrB, tak w konfiguracji na kliencie sie dodaje jakie ipki/sieci ma widziec dany klient.
W kazdym badz razie, presharedkey usuniety z configa serwera wireguard i gargoyle laczy sie bez problemu.
z edytowalem plik config/network config/firewall i usunalem z nich wszystko co bylo od wg. zaladowalem z gui gargoyle plik konfiguracyjny wygenerowany z wg-web i wszystko dziala. wszystkie kompy sie widza miedzy lokalizacjami smile i transfery sa takie jakie byc powinny czyli maks lacze przy minimalnym zuzyciu cpu smile
dziekuje wszystkim za pomoc.