Fritzbox VPN: IPs werden geändert

OP #7631459
Lesenswert?

Hallo

Ich habee folgendes Setup: VPN-Server [öffentliche feste IP] Ubuntu mit wireguard

1
[Interface]
2
Address = 10.20.30.40/32
3
ListenPort = 51820
4
PrivateKey = PrivateServer
5

6
PostUp = route add -net 192.168.178.0/24 wg0; iptables -A FORWARD -i wg0 -j ACCEPT
7
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
8

9
[Peer]
10
PublicKey = PublicFritz
11
AllowedIps = 0.0.0.0/0

FritzBox [wechselnde IP] Wireguard

1
[Interface]
2
Address = 10.20.30.41/32
3
PrivateKey = PrivateFritz
4

5
[Peer]
6
PublicKey = PublicServer
7
Endpoint = servername:51820
8
AllowedIps = 10.20.30.40/32
9
PersistentKeepalive = 25

Ich möchte vom VPN-Server aus die Client erreichen, die sich hinter der Fritzbox befinden. Prinzipiell funktioniert das auch. Wenn ich vom VPN-Server aus einen ping auf einen Client hinter der Fritzbox mache, z.B. ping 192.168.178.23, sehe ich auf dem Cleint mit wireshark, dass der ping ankommt. Quelladresse ist die 10.20.30.40. Ich sehe auch, dass der Client die Antwort an 10.23.30.40 schickt. Leider sehe ich auf dem VPN Server folgendes:

1
root@mail:~# ping 192.168.178.23
2
PING 192.168.178.23 (192.168.178.23) 56(84) bytes of data.
3
64 bytes from 10.20.30.41: icmp_seq=1 ttl=127 time=19.6 ms (DIFFERENT ADDRESS!)
4
64 bytes from 10.20.30.41: icmp_seq=2 ttl=127 time=10.8 ms (DIFFERENT ADDRESS!)
5
64 bytes from 10.20.30.41: icmp_seq=3 ttl=127 time=10.3 ms (DIFFERENT ADDRESS!)

Der output passt zu tcpdump -i wg0 icmp. Ich vermute, die Fritzbox schreib die Absendeadresse um. Weiß jemand, ob dem wirklich so ist bzw. wie ich das abstellen könnte?

Vielen Dank.

OP #7632255
Lesenswert?

Danke für deine Antwort.

Nein, eigentlich nicht. Die Fritzbox soll auch kein Nat sondern Routing machen. Daher würde dort meiner Meinung nach: AllowedIps = 10.20.30.40/32,192.168.178.0/24 hin gehören. Das Problem ist nur, dass die Fritzbox das nicht akzeptiert und eine Fehlermeldung ausspuckt, dass es einen Adresskonflikt gibt. Tatsächlich wäre am Tunnelende der Fritzbox nur eine Adresse erlaubt, die der Gegenstelle. Andere Teilnehmer gibt es im 10.20.30.40/24 Netz nicht.

Address = 10.20.30.0/24

Warum hast du diese Adresse für beide Seiten vorgeschlagen? Ist das nicht die IP, die das Interface auf der jeweiligen Seite bekommt?

Vielen Dank.

OP #7632607
Lesenswert?

Sorry, du hast recht 10.20.30.0/24 wäre für ein Netz richtig gewesen. Da habe ich mich verschrieben.

Ich verstehe deinen Vorschlag immer noch nicht. Wenn beide Enden des Tunnels keine IP bekommen, woher soll die Fritzbox wissen, wie geroutet werden soll? Wie erreiche ich den VPN Server aus dem 192.168.178.0/24 Netz hinter der Fritzbox?

/Edit: Mit der von dir vorgeschlagenen Änderung gehen gar keine Daten mehr durch den Tunnel, nichteinmal mehr mit falschem IP Absender.

Vielen Dank.

#7638453
Lesenswert?

Chris K. schrieb:

Da ich nicht 255.255.255.0 benutze gingen alle meine Versuche fehl,

Da man weder beim ipsec-VPN noch beim Wireguard-VPN festlegen kann, welche IP-Adressen für Clients verwendet werden, könnten Deine Probleme auch dadurch entstehen.

Bei aktivem DHCP werden für VPN-Clients willkürlich IP-Adressen aus dem Adressraum /oberhalb/ des DHCP-Adressraums vergeben. Ist aber kein DHCP aktiv, werden für VPN-Clients IP-Adressen /aus der Mitte/ des gesamten Adressraums vergeben.

Hat man beispielsweise ein /16-Netz, so bekommen in diesem Falle VPN-Clients Adressen ab x.y.128.0 zugewiesen.

Diese Adressen werden --zumindest beim alten ipsec-VPN-- auch in der Netzwerkübersicht (Heimnetzwerk -> Netzwerk) angezeigt.

Und wenn diese Adressen im lokalen Netzwerk schon anderweitig genutzt werden ... dann gibt es "lustige" Nebeneffekte.

In welcher unendlichen Weisheit sich AVM für diesen Weg der Adressvergabe entschieden hat, und warum verfickt nochmal man nicht einfach den genutzten Adressraum oder sogar die individuellen Adressen einstellen kann, entzieht sich vollständig jedweder Logik.

Man kann versuchen, das Problem mit Gefrickel anzugehen.

Konfigurationsdatei herunterladen, im Texteditor aufmachen, nach IP-Adresse suchen, ändern, abspeichern, Prüfsumme aktualisieren und wieder hochladen.

Das Aktualisieren der Prüfsumme geht mit Online-Tools (wie kann man nur auf so eine beknackte Idee kommen?!) - aber wenigstens das hier kann man auch lokal verwenden:

https://www.mengelke.de/Projekte/FritzBox-JSTool

(Unterhalb der Eingabebox Rechtsklick auf "Offline-Version speichern")

(Firma: 1984now) #7638764
Lesenswert?

Tilo schrieb:

Nein, eigentlich nicht. Die Fritzbox soll auch kein Nat sondern Routing machen.

Die WireGuard-Implementierung der Fritzbox ist stark kastriert. Die unterstützt ausschließlich das "Roadwarrior"-Szenario, sprich: einen einzelnen Rechner auf der Gegenseite. Und der bekommt eine einzelne Adresse nach Gusto der FB für das Tunnel-IF zugewiesen. Den (recht kruden) Mechanismus, nach dem das passiert, hat ja Harald K. bereits beschrieben.

Um mit einer FB und Wireguard das zu erreichen:

Ich möchte vom VPN-Server aus die Client erreichen, die sich hinter der Fritzbox befinden.

Wenn es wirklich nur darum geht, vom VPN-Server selber aus irgendwas im LAN der FB zu erreichen: das sollte kein Problem sein. Das entspricht ja dem von der FB unterstützten "Roadwarrior"-Szenario.

Was du willst, ist aber scheinbar ein "Site2Site"-Szenario. Dass also auch Rechner irgendwo "jenseits" deines VPN-Servers aud Geräte im LAN der FB zugreifen können.

Das geht mit der WireGuard-Implementierung der Fritzbox nur mit dem NAT-Trick. D.h.: Auf deinem VPN-Server musst du das Tunnel-IF mit NAT ausstatten. Aus Sicht der FB gibt es dann nach wie vor nur einen einzelnen Peer.

Für echtes "Site2Site" mußt du das IPSEC-VPN der FB benutzen. Da ist dieses Szenario vorgesehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren