ubuntuusers.de

Wireguard: Problem mit Weiterleitung bzw. kein Zugriff auf Geräte

Status: Ungelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

shopmin

Anmeldungsdatum:
12. Juni 2010

Beiträge: Zähle...

Hallo zusammen,

Da ein Familienmitglied je zur Hälfte in Great Britain (zahlt dort auch Steuern) und in Deutschland wohnt, habe ich wegen des leidigen Geoblockings der BBC einen VPN-Server auf einem gemieteten, virtuellen Server (Ubuntu 22.04) eingerichtet, und zwar nach dieser Anleitung: https://adminforge.de/linux-allgemein/vpn/wireguard-vpn-server-mit-web-interface-einrichten/.

Das funktioniert auch sehr gut. Nun dachte ich mir dass ich wenn ich schon einen VPN-Server habe, diesen auch anderweitig Nutzen kann. Beispielsweise um auf meine heimische Homeassistant-Installation oder mein NAS zuzugreifen.

Ich kann mich von jedem Endgerät aus (Ubuntu 22.04-Rechner, Homeassistant, Handys und Tablet...) wunderbar zum Server verbinden, eine Verbindung von einem Gerät zum anderen funktioniert jedoch leider nicht.

In der /etc/sysctl.conf ist "net.ipv4.ip_forward=1" und "net.ipv6.conf.all.forwarding=1" gesetzt. Bei der Suche im Forum bin ich leider nicht fündig geworden, zumindest nicht konkret auf meinen Fall bezogen.

Für eine Hilfestellung bin ich sehr dank.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

shopmin schrieb:

... eine Verbindung von einem Gerät zum anderen funktioniert jedoch leider nicht.

Was hast Du auf dem WG-Server und auf den WG-peers, bei AllowedIPs eingetragen bzw. konfiguriert? Wie sind auf dem Server und auf den peers, die Ausgaben von:

sudo iptables -nvx -L -t nat
ip a s wg0  # oder gleichwertig

?

shopmin

(Themenstarter)

Anmeldungsdatum:
12. Juni 2010

Beiträge: Zähle...

Hallo, danke für deine schnelle Reaktion!

Auf dem Server wird dies ausgegeben:

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    1703   235204 LIBVIRT_PRT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain LIBVIRT_PRT (1 references)
    pkts      bytes target     prot opt in     out     source               destination         
      23     2284 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
       0        0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
       0        0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
      19     8709 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
       0        0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24   

Und auf meinem Ubunturechner zuhause - wenn er mit dem VPN verbunden ist, dies:

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    1703   235204 LIBVIRT_PRT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain LIBVIRT_PRT (1 references)
    pkts      bytes target     prot opt in     out     source               destination         
      23     2284 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
       0        0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
       0        0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
      19     8709 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
       0        0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24   

Bei Allowed IP ist jeweils 0.0.0.0/0 eingetragen.

Ergänzend poste ich auch mal die wg0.conf des Servers:

 This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wi>
# Please don't modify it manually, otherwise your change might get replaced.

# Address updated at:     2023-01-04 15:24:32.95030174 +0000 UTC
# Private Key updated at: 2022-10-16 09:13:40.780308847 +0000 UTC
[Interface]
Address = 10.252.1.0/24
ListenPort = 51820
PrivateKey = privater schlüssel
MTU = 1450
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o>
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING >


# ID:           blablubb
# Name:         admin (PC)
# Email:        
# Created at:   2022-10-16 09:24:24.959871018 +0000 UTC
# Update at:    2022-10-16 09:24:24.959871018 +0000 UTC
[Peer]

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

shopmin schrieb:

Bei Allowed IP ist jeweils 0.0.0.0/0 eingetragen.

Ergänzend poste ich auch mal die wg0.conf des Servers:

[Interface]
Address = 10.252.1.0/24
[Peer]

Die wg0.conf vom Server ist nicht richtig bzw. nicht wollständig.

Als Adresse hast Du das Subnetz, statt eine Adresse, eingetragen:

Address = 10.252.1.1/24

In der Section [Peer] musst Du die Daten vom WG-Client eintragen. Bei AllowedIPs musst Du beim Client 10.252.1.0/24 eintragen

AllowedIPs = 10.252.1.0/24

und auf dem WG-Server, in der Section [Peer] die WG-IP-Adresse vom WG-Client

AllowedIPs = 10.252.1.2/32  # wenn der WG-Client diese IP-Adresse hat.

Für source-NAT (MASQUERADE), auf Server und Client konfigurieren:

sudo iptables -t nat -I POSTROUTING 1 -o eth0 -j MASQUERADE
sudo iptables -t nat -I POSTROUTING 2 -o wg0 -j MASQUERADE

(oder gleichwertig). Hinweis: Diese iptables-Regeln sind nicht persistent. Wenn die Konfiguration/Änderung wirksam ist, auf Server und Client testen mit z. B.:

sudo tcpdump -c 30 -vvveni wg0 icmp
ip r g 10.252.1.2
ip r g 10.252.1.1
ping -c 3 10.252.1.2
ping -c 3 10.252.1.1

(oder gleichwertig). Evtl. muss/kann noch die MTU im WG-VPN-Subnetz, optimiert werden.

shopmin

(Themenstarter)

Anmeldungsdatum:
12. Juni 2010

Beiträge: 35

Uff - das muss ich jetzt als Ahnungsloser erstmal verdauen 😲

Mit der Adresse 10.252.1.0 rufe ich das Webinterface meines VPN-Servers auf wenn ich mit meinem heimischen PC via VPN verbunden bin. Ich bin jetzt etwas ängstlich dass ich bei einer Änderung den Server nicht mehr aufrufen kann und ggf. VPN nicht mehr läuft. Für den Fall würde ich ganz schrecklich haue von meiner Frau bekommen 😉

Und dann - Asche auf mein Haupt - hatte ich versehentlich nur einen Teil der wg0.conf des Servers gezeigt. Hier nochmal etwas vollständiger. Die Geräte werden darin genannt.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
 This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui)
# Please don't modify it manually, otherwise your change might get replaced.

# Address updated at:     2023-01-04 15:24:32.95030174 +0000 UTC
# Private Key updated at: 2022-10-16 09:13:40.780308847 +0000 UTC
[Interface]
Address = 10.252.1.0/24
ListenPort = 51820
PrivateKey = privater schlüssel
MTU = 1450
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE


# ID:           cd5sri660r2o3mdd8bb0
# Name:         admin (PC)
# Email:        
# Created at:   2022-10-16 09:24:24.959871018 +0000 UTC
# Update at:    2022-10-16 09:24:24.959871018 +0000 UTC
[Peer]
PublicKey = blablubb
PresharedKey = blablubb
AllowedIPs = 10.252.1.1/32

# ID:           cd5tjsu60r2o82j7gg50
# Name:         erster-PC
# Email:        
# Created at:   2022-10-16 10:16:19.286766977 +0000 UTC
# Update at:    2022-10-16 10:16:19.286766977 +0000 UTC
[Peer]
PublicKey = blablubb
PresharedKey = blablubb
AllowedIPs = 10.252.1.2/32

# ID:           cd5ub5m60r2os07kahig
# Name:         iPad-zuhause
# Email:        
# Created at:   2022-10-16 11:05:58.437444439 +0000 UTC
# Update at:    2022-10-16 11:05:58.437444439 +0000 UTC
[Peer]
PublicKey = blablubb
PresharedKey = blablubb
AllowedIPs = 10.252.1.3/32

Bei meinem Rechner zuhause wird die Verbindung durch den Network-Manager verwaltet, hier der Inhalt:

[connection]
id=admin
uuid=82b3d326-5ff7-4c44-a3b9-76b399d16a3b
type=wireguard
interface-name=admin

[wireguard]
private-key= privater schlüssel

[wireguard-peer.blablubb]
endpoint=37.10.71.30:51820
preshared-key=blablubb
preshared-key-flags=0
persistent-keepalive=15
allowed-ips=0.0.0.0/0;

[ipv4]
address1=10.252.1.1/32
dns=176.9.93.198;176.9.1.117;
dns-search=~;
method=manual

[ipv6]
addr-gen-mode=stable-privacy
method=disabled

[proxy]

Dann müsste ich hier also statt

allowed-ips=0.0.0.0/0;
allowed-ips=10.252.1.0/24;

eintragen. - Richtig?

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

shopmin schrieb:

Mit der Adresse 10.252.1.0 rufe ich das Webinterface meines VPN-Servers auf ...

BTW:

:~$ ipcalc --nocolor 10.252.1.0/24
Address:   10.252.1.0           00001010.11111100.00000001. 00000000
Netmask:   255.255.255.0 = 24   11111111.11111111.11111111. 00000000
Wildcard:  0.0.0.255            00000000.00000000.00000000. 11111111
=>
Network:   10.252.1.0/24        00001010.11111100.00000001. 00000000
HostMin:   10.252.1.1           00001010.11111100.00000001. 00000001
HostMax:   10.252.1.254         00001010.11111100.00000001. 11111110
Broadcast: 10.252.1.255         00001010.11111100.00000001. 11111111
Hosts/Net: 254                   Class A, Private Internet

shopmin schrieb:

Ich bin jetzt etwas ängstlich dass ich bei einer Änderung den Server nicht mehr aufrufen kann und ggf. VPN nicht mehr läuft. Für den Fall würde ich ganz schrecklich haue von meiner Frau bekommen

Damit so etwas nicht passieren kann, muss man noch einen 2. (evtl. auch nur temporären) unabhängigen Zugang (z. B. per ssh) haben.

shopmin schrieb:

... eintragen. - Richtig?

Ja, aber wie ich geschrieben habe, die "IP" 10.252.1.0/24 für den Server, ist nicht richtig (... auch wenn es jetzt bei dir damit funktioniert).

shopmin

(Themenstarter)

Anmeldungsdatum:
12. Juni 2010

Beiträge: 35

Damit so etwas nicht passieren kann, muss man noch einen 2. (evtl. auch nur temporären) unabhängigen Zugang (z. B. per ssh) haben.

Habe ich! 😀

Ja, aber wie ich geschrieben habe, die "IP" 10.252.1.0/24 für den Server, ist nicht richtig (... auch wenn es jetzt bei dir damit funktioniert).

OK. verstehe ich zwar nicht, bin aber auch nicht vom Fach. Also könnte ich dort beispielsweise jetzt 10.252.1.10/24 vergeben und müsste bei allen Clients die Verbindung ändern bzw. löschen und neu einrichten.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

shopmin schrieb:

Also könnte ich dort beispielsweise jetzt 10.252.1.10/24 vergeben und müsste bei allen Clients die Verbindung ändern bzw. löschen und neu einrichten.

Nur dann und dort bei den Clients ändern/löschen, wenn Du irgendwo die 10.252.1.0/24 als IP des Servers eingetragen hast. Wenn Du bei den Clients die 10.252.1.0/24 als WG-VPN-Subnetz eingetragen hast, darfst Du das nicht ändern/löschen.

shopmin

(Themenstarter)

Anmeldungsdatum:
12. Juni 2010

Beiträge: 35

Wenn Du bei den Clients die 10.252.1.0/24 als WG-VPN-Subnetz eingetragen hast, darfst Du das nicht ändern/löschen.

Dieses ganze "Subnetz-Thema" verstehe ich (noch) nicht. Aber egal, ich fummele mich da ein. Heute werde ich es wohl nicht mehr schaffen, aber sofern die Sonne nicht scheint und der Garten ruft, voraussichtlich am nächsten Wochenende. - Ich werde berichten! Jedenfalls vielen Dank vorab für die Wegweiser.

Antworten |