Ping nach außen schlägt fehl - aber per Wireguard komme ich drauf.

henfri

Lieutenant
Registriert
Juni 2020
Beiträge
522
Hallo,

ich habe ein komisches Problem: Ich habe einen Debian Rechner bei den Schwiegereltern (zwecks Backup).
Zu dem kann ich per Wireguard Tunnel und ssh eine Shell öffnen.
Auf dieser Shell funktioniert aber ein ping zu 8.8.8.8 (und andere) nicht.

Aber die Internetverbindung funktioniert ja. Sonst ginge der Wireguard Tunnel nicht.
Code:
ip route show
default via 192.168.188.1 dev eth0
10.192.1.0/24 dev wg0test proto kernel scope link src 10.192.1.3
192.168.188.0/24 dev eth0 proto kernel scope link src 192.168.188.24

Wenn ich es richtig sehe, soll der Internet-Traffic ja NICHT über das Wireguard-VPN gehen, oder?
Wobei ich mir doch nicht mehr so sicher bin:
Code:
[Interface]
Address = 10.192.1.3/24
PrivateKey = dashättetihrwohlgerne
DNS = 192.168.177.1,fd00::xx:xx:fefd:3a69

[Peer]
PublicKey = dashättetihrwohlgerne
PresharedKey = dashättetihrwohlgerne
Endpoint = x.myonlineportal.net:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepAlive = 25

192.168.188.1 ist die Fritz Box zu der (und auch der .24) funktioniert ein Ping.

Tracert kommt nicht mal zur Fritzbox:
Code:
traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *

Woran kann das liegen?

Gruß,
Hendrik

Gruß,
Hendrik
 
Hallo,

danke für die flotte Antwort.
Nein, aber das war es auch nicht:
Code:
cat /proc/sys/net/ipv4/ip_forward
0

echo 1 > /proc/sys/net/ipv4/ip_forward

root@openmediavault:/home/henfri# cat /proc/sys/net/ipv4/ip_forward
1


root@openmediavault:/home/henfri# ping welt.de

root@openmediavault:/home/henfri# mcedit /etc/sysctl.conf

Gruß,
Hendrik
 
Und wo ist der DNS? Die "AllowedIPs"-Einstellung jagt erst einmal alles durch den Tunnel. Eigentlich.
Da passen aber deine Routen irgendwie nicht?
 
Du hast vergessen, die IPv6 Informationen (Adressen, Routen) zu zeigen. Wenn du IPv6 im Wireguard Tunnel nutzt, ist das relevant.

Bei IPv4 passt aber auch so einiges nicht.

henfri schrieb:
default via 192.168.188.1 dev eth0
Ok, offenbar ist das lokale Subnetz 192.168.188.0/24

henfri schrieb:
DNS = 192.168.177.1,fd00::xx:xx:fefd:3a69
Warum ist dann der DNS Server auf 192.168.177.1? Der sollte normalerweise direkt im LAN erreichbar sein.

henfri schrieb:
AllowedIPs = 0.0.0.0/0
Laut VPN zeigt die Default-Route aufs VPN, laut Routenanzeige nicht. Da passt also auch was nicht.
 
Hallo,

der 192.168.177.1 ist bei mir zuhause. Die :3a69 könnte meine alte Fritzbox sein.
Ich möchte den Internet-Verkehr nicht durch den Tunnel schicken. Dann brauche ich den DNS = Eintrag ja nicht, oder?

Mein Netz hier ist die 177.. Das Netz dort ist die 188.

AllowedIPs müsste ich dann also anpassen, oder? Auf 192.168.177.0/24, richtig?

Also:
Code:
[Interface]
Address = 10.192.1.3/24
PrivateKey = dashättetihrwohlgerne
#DNS = 192.168.177.1,fd00::xx:xx:fefd:3a69

[Peer]
PublicKey = dashättetihrwohlgerne
PresharedKey = dashättetihrwohlgerne
Endpoint = x.myonlineportal.net:51820
AllowedIPs = 192.168.177.0/24
PersistentKeepAlive = 25

Edit: Hat geklappt. Vielen Dank!

Gruß,
Hendrik
 
Zuletzt bearbeitet:
Hm... Dafür kann ich jetzt nicht mehr per ssh auf den Rechner zugreifen.

ein ping vom entfernten Rechner auf 192.168.177.1 funktioniert.
wg show auf dem entfernen Rechner:
Code:
[Interface]
Address = 10.192.1.3/24
PrivateKey = dashättetihrwohlgerne
#DNS = 192.168.177.1,fd00::xx:xx:fefd:3a69

[Peer]
PublicKey = dashättetihrwohlgerne
PresharedKey = dashättetihrwohlgerne
Endpoint = x.myonlineportal.net:51820
AllowedIPs = 192.168.177.0/24
PersistentKeepAlive = 25

wg show
interface: wg0test
  public key: x=
  private key: (hidden)
  listening port: 37812

peer: x
  preshared key: (hidden)
  endpoint: [2a00:1f:fd00:a201:f849:bff:x:x]:51820
  allowed ips: 192.168.177.0/24
  latest handshake: 1 minute, 2 seconds ago
  transfer: 692 B received, 1.31 KiB sent
  persistent keepalive: every 25 seconds

Lokal sieht es so aus:
Code:
[Interface]
Address = 10.192.1.254/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wgnet1 -j ACCEPT; iptables -A FORWARD -o wgnet1 -j ACCEPT; iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wgnet1 -j ACCEPT; iptables -D FORWARD -o wgnet1 -j ACCEPT; iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE
ListenPort = 51820
PrivateKey = x=

[Peer]
PublicKey = x=
PresharedKey = IislbgXG+x=
AllowedIPs = 10.192.1.3/32
Endpoint = [2a00:6020:48ac:5800:ca0a:a9ff:x:x]:58038
PersistentKeepalive = 25

wg show
interface: wgnet1
  public key: x=
  private key: (hidden)
  listening port: 51820

peer: =
  preshared key: (hidden)
  endpoint: [2a00:6020:48ac:5800:ca0a:a9ff:x:x]:37812
  allowed ips: 10.192.1.3/32
  latest handshake: 42 seconds ago
  transfer: 27.55 KiB received, 9.66 KiB sent
  persistent keepalive: every 25 seconds

Ich bin mit den IPs noch nicht so im Reinen.
Ist die fett markierte Stelle richtig?

Gruß,
Hendrik
 
Hallo,

ich habe leider nicht dokumentiert, warum ich die Nat-Regeln hinzugefüght habe. Aber ohne ging es nicht - ist sehr lange her.
Die allowed ips habe ich damals aus irgendeinem Beispiel übernommen. Ich dachte, ich würde damit die IP des Servers im Docker-Netzwerk festlegen?

Gruß,
Hendrik
 
henfri schrieb:
ich habe leider nicht dokumentiert, warum ich die Nat-Regeln hinzugefüght habe. Aber ohne ging es nicht - ist sehr lange her.
Dann fehlen statische Routen in deinem Heimnetz. Durch NAT sperrst du dich jedenfalls vom Zugriff auf die andere Seite aus.


henfri schrieb:
Ich dachte, ich würde damit die IP des Servers im Docker-Netzwerk festlegen?
Docker? Das ist eine IP aus dem VPN Transportnetz.
 
Sorry, wollte nicht Docker, sondern Wireguard schreiben.

Dann fehlen statische Routen in deinem Heimnetz. Durch NAT sperrst du dich jedenfalls vom Zugriff auf die andere Seite aus.
Hm, komsich. Es lief ja bis vor kurzem. Dann kam auf dieser Seite eine neue Fritzbox, danach stimmte die IPv6 nicht mehr, die ich als DNS angegeben hatte (auf der anderen Seite).

Wie auch immer:
Dein Vorschlag wäre jetzt die NAT Regeln zu löschen, richtig?
Was gebe ich für die Allowed IPs an?

Gruß,
Hendrik
 
Hallo,

das ist eine Brücke auf meine Netzwerkkarte. Die benötige ich, damit virtuelle Maschinen (kvm) eine eigene IP bekommen.

Gruß,
Hendrik
 
Und VPN läuft auf dem Host und darf dann für die gesamte Bridge mal eben über NAT und nicht NAT entscheiden - inkl. aller VMs?
 
Das VPN soll meine Mobilgeräte mit der VM und dem Host - also dem gesamten Heimnetz verbinden.

Und das VPN soll das entfernte Netz mit dem Heimnetz verbinden.

Warum entscheidet das VPN über NAT?

Gruß,
Hendrik
 
Mal ein anderer Gedanke. Was für einen Router haben deine Schwiegereltern? Wenn es eine Fritzbox ist, kannst du auch recht einfach eine Wireguard Verbindung zu der aufbauen.
Auch wenn es natürlich eine interessante Frage ist, was bei deinem Setup verbogen ist.
 
Hallo,

ja, da hast du recht. Das ist der Plan. Mit der alten Fritzbox hatten wir ein VPN. Aber seit ich die neue habe, läuft das nicht mehr -ich nehme an, es wird nicht (korrekt) übertragen.
Wenn wir das nächste mal da sind, wird die 7430 in Rente geschickt und wireguard2wireguard per Fritzbox verbunden...

Gruß,
Hendrik
 
henfri schrieb:
Das VPN soll meine Mobilgeräte mit der VM und dem Host - also dem gesamten Heimnetz verbinden.
Ich dachte, das VPN ist für ein Backup? Sollte man das nicht besser trennen?

henfri schrieb:
Warum entscheidet das VPN über NAT?
Weil in der VPN Konfiguration die NAT Regeln stehen. D.h. im Zweifel werden sie vom VPN auch entfernt.

Jedenfalls verhinderst du damit den Zugriff aus deinem Heimnetz ins Netz deiner Eltern. Nur umgekehrt ist möglich.
 
Log dich zwei Mal mit SSH ein und lass tcpdump laufen (mit entsprechenden Ausnahmeregeln: Wireguard, sshd, etc), um zu sehen, was genau passiert (vielleicht so: tcpdump -i any -s 0 -v -n not port 22 and not port 51820).

Ich bin mir nicht sicher, ob ich die Topologie richtig verstanden habe, aber wenn Du per SSH eingeloggt bist, sollte der Weg dorthin (via Wireguard) eigentlich irrelevant sein. Du bist dann der entsprechende User in einer Shell. Das heißt natürlich nicht, dass die Aktivierung von Wireguard nicht grundsätzlich irgendwas kaputt konfiguriert hat.

Funktioniert der Ping lokal am Rechner (wenn Du "in persona" am Rechner sitzt)? Auch wenn eine Wireguard/SSH Verbindung steht?
 
Zurück
Oben