[Frage] FB Wireguard - PIVPN

lil-ac

Neuer User
Mitglied seit
10 Jul 2009
Beiträge
82
Punkte für Reaktionen
0
Punkte
6
Hallo,

ich versuche, nun seit längerem eine Verbindung zwischen einer FB7590 und einem Raspberry Pi mit PIVPN eine LAN zu Lan Kopplung hinbekommen.. leider kriege ich, wenn ich die config Datei vom PIVPN in die FB hochladen, die Meldung das die config keine Dauerhafte Einstellung besitzt. Was muss ich um ändern, damit ich eine lan zu lan Verbindung hinkriege?

Ich danke schon mal. :)
 
Mach es andersrum, das ist einfach. Und bei PIVPN nicht die Peers einrichten, sondern manuell in die wg.conf schreiben.
 
@lil-ac
Am Ende der Datei in [Peer] diese Zeile?
PersistentKeepalive = 25
 
Mach es andersrum, das ist einfach. Und bei PIVPN nicht die Peers einrichten, sondern manuell in die wg.conf schreiben.
Guten Morgen, dann erstelle ich einfach die „Verbindungs“Config per Hand und trage dort die ganzen Sachen ein? Werde ich später mal ausprobieren.
 
Du erstellst die Verbindung in der Fritzbox und lädst die von der Fritzbox dabei erstellte Konfig-Datei für die Gegenseite auf Deinen PC. Diese Datei enthält schon die wichtigsten Punkte für die wg.conf auf Deinem Raspberry, die mußt du nur noch dort eintragen, natürlich angepasst auf die gewünschten Parameter. hier mal meine wg0.conf vom Raspberry:
Code:
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Address = 192.168.20.2/24
MTU = 1300
ListenPort = 51902

# Anger
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy=
AllowedIPs = 192.168.20.3/32, 192.168.2.0/24

# Moto
[Peer]
PublicKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz=
AllowedIPs = 192.168.20.13/32

# SamA53
[Peer]
PublicKey = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=
AllowedIPs = 192.168.20.15/32

# SamJ5
[Peer]
PublicKey = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb=
AllowedIPs = 192.168.20.14/32

# 7520
[Peer]
PublicKey = ccccccccccccccccccccccccccccccccccccccccccc=
PresharedKey = ddddddddddddddddddddddddddddddddddddddddddd=
AllowedIPs = 192.168.22.0/24
Bei mir ist der Raspberry die einzige Gegenstelle, die eine öffentlich erreichbare IP hat, deshalb stehen da keine Dyndns-Adressen drin und kein keep-alive
 
Zuletzt bearbeitet:
  • Like
Reaktionen: prisrak1
Guten Morgen,

ich habe nun Zeit für die Einrichtung. Aber entweder ich bin zu doof, oder ich habe irgendwo einen Fehler...

Code:
Fritzbox - Config
[Interface]
PrivateKey = tewerargadfgagadgadgadfadfadf
Address = 10.0.1.0/23
DNS = 10.0.2.1
DNS = fritz.box

[Peer]
PublicKey = zrtzdhgdfghdfghdjgfhsfghsfdghshsdh
PresharedKey = jghertjghakfdghjaeruitghaiurhgaihghjk
AllowedIPs = 10.0.2.0/23
Endpoint = dyn.dns.de:58065
PersistentKeepalive = 25

Code:
Wireguard:
[Interface]
PrivateKey = gadsfgdfgsdfhsdfhsdfhgsdfgsdfgsfg
Address = 10.50.152.1/24
ListenPort = 56201

[Peer]
PublicKey = sfdgsdfhsghfghfgfs
AllowedIPs = 10.0.2.0/23
Endpoint = dyn.dns.de:58065
PersistentKeepalive = 25

Ich danke schon mal.
 
Woher hast Du denn diese beiden Konfigurationsdateien? Die sehen halt aus "wie handgemacht"? Nach welcher Anleitung bist Du dabei vorgegangen?
 
Die obere hat mir die FB erstellt und die untere hat mir PiVPN erstellt und ich habe dann nur die Peer Daten eingefügt.
 
WIE wurde die Konfiguration in der FRITZ!Box GENAU erstellt? WAS ist das Ziel, also welche Peers sollen daran beteiligt sein?

"Ich habe nun die Zeit …" klingt vjelleicht so, als hättest Du das schon zuvor irgendwo hier beschrieben - dann verlinke auf diesen "ersten Anlauf", denn nur sehr wenige werden sich die Mühe machen, das selbst zu suchen, wenn das obendrein nur eine Vermutung ist.

Die Angaben passen jedenfalls nicht für eine Verbindung zwischen diesen beiden Peers - also hast Du entweder etwas fundamental falsch verstanden oder Dein Ziel ist ein anderes. Und ehe ich da jetzt weiter herumrate (anderen dürfte es auch nicht besser gehen), ist es einfacher, Du erklärst das Ziel noch einmal richtig, inkl. IP-Konfiguration der zu verbindenden Standorte bzw. "Einzelgeräte" (wobei das ja mehr nach dem Versuch der Kopplung zweier Netzwerke aussieht).

OK, das ist ja "Dein" Thread - dennoch fehlen die Angaben zur IP-Konfiguration und die von mir nachgefragte "Anleitung" ist dann ja hoffentlich die von @erik gezeigte Konfiguration weiter oben.

Du verwendest tatsächlich in Deiner FRITZ!Box Adressen mit 10.0.1.0/23? Das wird schon per se eine schlechte Idee sein, weil alle Prozesse bei bei der automatischen Einrichtung von einer /24-Maske ausgehen und Abweichungen nach oben oder nach unten zu Problemen führen.Besser erst einmal mit einer /24-Maske konfigurieren und danach anpassen - was im FRITZ!OS nur mit Handarbeit an der Exportdatei möglich ist, denn nachträgliche Änderungen an WG-Einstellungen sind nicht vorgesehen.
 
Mit Zeit war eigentlich gemeint, dass ich vor einigen Tagen hier ja schon geschrieben habe und nachgefragt habe wie ich das umsetzen soll. Also am 29.01 :)

Genau mein Ziel ist es ein Kopplung via zwei Netzwerken, mehr nicht.
Standort A: (PiVPN) Dyndns - 10.0.1.0 / 255.255.254.0 und Standort B: (Fritzbox) Dyndns 10.0.2.0 / 255.255.254.0
Ich habe in der Fritzbox via dem Wizard -> Benutzerdefinierte Einrichtung -> beide Fragen mit Nein und Handelt es sich um ein Einzelgerät (Laptop, Smartphone, Tablet) oder um einen WireGuard®-fähigen Router ( z.B. eine FRITZ!Box)? mit WireGuard-fähigen Router beantwortet: Und bei entferntest Netzwerk: dann die IP 10.0.1.0 und Subnetz 255.255.254.0 eingetragen und mir die Config runtergeladen und dort die Peer rauskopiert.
 
Ich entschuldige mich noch einmal für meinen falschen Eindruck. Ich hatte diesen Thread in meiner Liste mit neuen Beiträgen auf dem Tablet und bin wohl versehentlich auf einem falschen Link gelandet (das geht bei Touch eben schnell) und anstatt in einem anderen Thread aus der Liste, eben in diesem hier. Dann noch eine kurze Ablenkung in Form einer Frage von der Seite (im richtigen Leben) und mir fiel gar nicht mehr auf, daß das (a) gar kein sehr langer und (b) gar kein Thread war, in dem ich bisher irgendetwas geschrieben hatte. Bis ich wieder an einem "ordentlichen PC" sitze, halte ich mich zurück - die "Arbeit" mit dem Tablet ist eher nervig und war meinerseits nur als Überbrückung von Leerlauf gedacht.



Wenn ich das richtig lese, besteht bei Dir ein Mißverständnis hinsichtlich des Inhalts der wg_config.conf, die Dir von der FRITZ!Box angeboten wird. Das ist eigentlich die Konfigurationsdatei für einen "frischen" Peer und der Teil im "Interface"-Abschnitt ist für dessen WG-Interface-Konfiguration. Da kann man also nicht nur die Angaben zum Peer (das ist dann die FRITZ!Box selbst) herauskopieren - denn "PrivateKey" (das ist der von der FRITZ!Box für den Peer(!) erzeugte Schlüssel) im "Interface"-Abschnitt muß schon zu dem passen, was in der FRITZ!Box (die Konfiguration kann man sich dort unter "WireGuard-Einstellungen anzeigen" ja auch ansehen) für den Peer unter "PublicKey" hinterlegt wurde (auch wenn das unterschiedliche Zeichenketten sind, bilden die ein "Schlüsselpaar" für eine asymmetrische Verschlüsselung) und auch der "PresharedKey" muß passen (das sagt ja schon der Name), denn der wird von beiden Peers GEMEINSAM genutzt - daher stimmt der auch in der FRITZ!Box-Konfiguration und in der für den Peer (jeweils in einem Abschnitt "Peer" zu finden) überein.

Wenn Dein PiVPN bereits konfiguriert sein sollte und Verbindungen zu weiteren Peers vorhanden sind, würde ich beim Anlegen einer LAN-LAN-Verbindung die erste "Frage" mit "Ja" beantworten - dann landet man in einem Dialog, wo man die passende Konfiguration IN die FRITZ!Box importieren kann.

Weiter schreibe ich jetzt erst einmal nicht (die Leerlaufzeit ist vorbei) - erst später am PC wieder.
 
Vielen Dank. Ach kann doch mal passieren. Hatte gerade nur selber einen schrecken bekommen, dass ich evtl. schon einen Thread übersehen habe. Aber wir machen ja alle Fehler und somit ist alles ok. :)

Das Problem ist, wenn ich die config Datei von PIVPN "hochlade" bekomme ich über die FB folgende Fehlermeldung:
Ihre Einstellungen konnten leider nicht erfolgreich übernommen werden.
Importierte Konfigurationsdatei passt nicht zu den erweiterten Einstellungen (Gesamter Datenverkehr).
Klicken Sie auf „Schließen“, um zur WireGuard®-Übersicht zu gelangen und erstellen Sie die WireGuard®-Verbindung bitte erneut.

Und dabei habe ich keine Einstellungen wie Gesamter Datenverkehr oder NetBios ausgewählt. Ich würde das auch lieber über PiVPN laufen lassen, da die FB bei meinen Eltern steht. Und ich mehr Kontrolle über den PI hier hätte.
 
Soo ... nun noch einmal in Ruhe und mit System.

Das Problem bei einer LAN-LAN-Kopplung zwischen einer FRITZ!Box und einer Installation auf Basis von PiVPN über WireGuard®-Verbindungen ist es im Grunde genommen, daß jeder der beiden Peers sich für "tonangebend" hält und das, obwohl beide unterschiedliche Konzepte hinsichtlich der Konfiguration der Interfaces verfolgen.

PiVPN konfiguriert sich ein Interface wg0 mit einem eigenen Transportnetz und benutzt dann iptables, um eingehende Datenpakete so zu transformieren (NAT/Masquerading), daß die Antwortpakete, die nach der Weiterleitung ins LAN auf dieser Seite der Verbindung von den "angeschriebenen" Host kommen, auch auf dem Rückweg wieder die PiVPN-Installation passieren müssen, wo die Zieladressen der Antworten dann wieder in die des ursprünglichen Absenders eines Pakets (bzw. "Requests") umgewandelt werden.
Rich (BBCode):
pi@pi4:~ $ sudo pivpn clients
[2023-02-07T14:08:28+0100]: ::: There are no clients to list
pi@pi4:~ $ sudo cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey = GDkmK14hVhQ9LoG6NwF1prUTOYj6M7ddfYSXwPwZYlc=
Address = 10.28.248.1/24
MTU = 1420
ListenPort = 51820
pi@pi4:~ $ sudo sed -n -e "s|^PrivateKey = \([A-Za-z0-9/+=]*\).*|\1|p" /etc/wireguard/wg0.conf | tee /proc/self/fd/2 | wg pubkey
GDkmK14hVhQ9LoG6NwF1prUTOYj6M7ddfYSXwPwZYlc=
04OwYGmC6mvyOV7XEaldxmx17xdwe1RhZXRXfCAdPlo=
pi@pi4:~ $
Bisher sind keine Clients in PiVPN definiert, das Interface wg0 (denn das ist der Name der Konfigurationsdatei -> daraus leitet WireGuard® auch den Interface-Namen ab) hat ein Transportnetz mit dem Segment 10.28.248.0/24 definiert und darin für sich selbst die Adresse vorgesehen, die im letzten Tupel die 1 hat.

Andere Peers, die über dieses Interface mit dem Gerät, auf dem PiVPN läuft (nennen wir es mal "Server"), kommunizieren wollen, müssen den zum verwendeten PrivateKey (blau markiert) passenden PublicKey (rot markiert) in einem separaten Peer-Abschnitt ihrer Konfiguration haben. Den Rest (die MTU und auch den Port) ignorieren wir erst einmal, das hat nichts mit den unterschiedlichen Ansichten des FRITZ!OS und von PiVPN zu tun.

Fügt man jetzt im PiVPN einen "Client" hinzu, sieht das zunächst mal so aus:
Rich (BBCode):
pi@pi4:~ $ sudo pivpn add -n FB7590
::: Client Keys generated
::: Client config generated
::: Updated server config
::: WireGuard reloaded
======================================================================
::: Done! FB7590.conf successfully created!
::: FB7590.conf was copied to /home/pi/configs for easytransfer.
::: Please use this profile only on one device and create additional
::: profiles for other devices. You can also use pivpn -qr
::: to generate a QR Code you can scan with the mobile app.
======================================================================
pi@pi4:~ $
So weit, so gut ... nur was hat(te) das jetzt für Auswirkungen auf die Konfiguration und welche Dateien wurden hier für den "Client" erzeugt?
Rich (BBCode):
pi@pi4:~ $ sudo pivpn clients
::: Connected Clients List :::
Name        Remote IP      Virtual IP       Bytes Received      Bytes Sent      Last Seen
FB7590      (none)         10.28.248.2      0B                  0B              (not yet)
::: Disabled clients :::
pi@pi4:~ $ sudo cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey = GDkmK14hVhQ9LoG6NwF1prUTOYj6M7ddfYSXwPwZYlc=
Address = 10.28.248.1/24
MTU = 1420
ListenPort = 51820
### begin FB7590 ###
[Peer]
PublicKey = irSyJSohlhUafs9hN2+5DnJC/1GVDs/VAxx08Mj7yEA=
PresharedKey = A0wgzF2cdnyI3sFL+ip+Io4aI1lycnRByce9AUkDnxw=
AllowedIPs = 10.28.248.2/32
### end FB7590 ###
pi@pi4:~ $ sudo cat /etc/wireguard/configs/FB7590.conf
[Interface]
PrivateKey = YNfxPLXftIWDvl/PLth0rDY0W4iDWJHr65Mj42c7AGA=
Address = 10.28.248.2/24
DNS = 192.168.168.254

[Peer]
PublicKey = 04OwYGmC6mvyOV7XEaldxmx17xdwe1RhZXRXfCAdPlo=
PresharedKey = A0wgzF2cdnyI3sFL+ip+Io4aI1lycnRByce9AUkDnxw=
Endpoint = pivpn.home.domain.de:51820
AllowedIPs = 0.0.0.0/0, ::0/0
pi@pi4:~ $ sudo ip route show
default via 192.168.168.254 dev eth0
default via 192.168.168.254 dev eth0 proto dhcp src 192.168.168.236 metric 202
10.28.248.0/24 dev wg0 proto kernel scope link src 10.28.248.1
192.168.128.254 via 192.168.168.254 dev eth0
192.168.168.0/24 dev eth0 proto dhcp scope link src 192.168.168.236 metric 202
192.168.168.254 dev eth0 scope link
pi@pi4:~ $ sudo iptables-save
# Generated by iptables-save v1.8.7 on Tue Feb  7 15:51:32 2023
*nat
:PREROUTING ACCEPT [405:76532]
:INPUT ACCEPT [173:23875]
:OUTPUT ACCEPT [137:10628]
:POSTROUTING ACCEPT [137:10628]
-A POSTROUTING -s 10.28.248.0/24 -o eth0 -m comment --comment wireguard-nat-rule -j MASQUERADE
COMMIT
# Completed on Tue Feb  7 15:51:32 2023
# Warning: iptables-legacy tables present, use iptables-legacy-save to see them
pi@pi4:~ $ sudo wg show
interface: wg0
  public key: 04OwYGmC6mvyOV7XEaldxmx17xdwe1RhZXRXfCAdPlo=
  private key: (hidden)
  listening port: 51820

peer: irSyJSohlhUafs9hN2+5DnJC/1GVDs/VAxx08Mj7yEA=
  preshared key: (hidden)
  allowed ips: 10.28.248.2/32
pi@pi4:~ $
Es wurde also ein neuer Peer (als "Client") mit Namen FB7590 eingerichtet, der als Host im Transportnetz die Adresse 10.28.248.2 verwenden soll und im Übrigen dann per Masquerading die Adressen aus dem entfernten Netzwerk "verstecken" und durch die eigene IP als Absender ersetzen soll.

In der Konfigurationsdatei FÜR diesen Peer wird aber mit dem AllowedIPs-Eintrag festgelegt, daß JEDER Traffic über das dort einzurichtende WireGuard®-Interface an den Peer (also die PiVPN-Installation) zu übertragen ist. DAS ist vermutlich auch der Punkt, an dem das FRITZ!OS so nicht mitspielen will.



Denn schaut man sich das jetzt auf der Seite des FRITZ!OS an (ich benutze dazu meine 7590, die ich ohnehin nur für Software-Entwicklung und -Tests brauche - für das unten Kommende braucht man schon einen Shell-Zugang), sieht das deutlich anders aus.
Rich (BBCode):
# cat /var/media/ftp/YourFritz/getsect
#! /bin/sh
[ -z "$2" ] && printf "Usage: $0 <section> <file>\n" && exit 1
file="$2"
section="$1"
fl="$(sed -n -e "/^[[:space:]]*$section[[:space:]]{\$/=" <"$file")"
[ -z "$fl" ] && printf "'%s' not found.\n\a" "$section" 1>&2 && exit 1
sp="$(sed -n -e "${fl}s|^\([[:space:]]*\)$section.*|\1|p" <"$file")"
pl=$(( fl - 1 ))
ll="$(sed -e "1,${pl}d" <"$file" | sed -n -e "/^${sp}}/=" | sed -n -e 1p)"
[ -z "$ll" ] && printf "Format error in '%s'.\n\a" "$file" 1>&2 && exit 1
ll=$(( ll + pl ))
sed -n -e "${fl},${ll}p" <"$file"
# sh /var/media/ftp/YourFritz/getsect global /var/flash/vpn.cfg
        global {
                wg_listen_port = 0;
        }
#
Das verwendete getsect ist also nur ein kleines Skript zur Anzeige von Teilen einer Konfigurationsdatei - damit muß man nicht immer erst davor oder dahinter löschen und sogar beim Namen (der eigentlich für get section stehen soll) habe ich "gespart".

Wie man sieht, hat die FRITZ!Box noch gar keine Konfiguration für ihr eigenes WireGuard®-Interface - und sie löscht diese Einstellungen auch immer wieder, wenn die letzte konfigurierte Verbindung entfernt wurde. Man kann also nicht einfach in der FRITZ!Box die letzte Verbindung entfernen und danach dennoch weiterhin den bisher funktionierenden PublicKey der FRITZ!Box in irgendwelchen Konfigurationen auf Peers verwenden.

Mit der ersten Konfiguration einer WireGuard®-Verbindung richtet die FRITZ!Box neue Einstellungen für ihr eigenes wg0-Interface ein.
Rich (BBCode):
[Interface]
PrivateKey = 6Fw1lHvxGCplChfRSyq+olEkPYEOwMUCfx4lggvxSGc=
ListenPort = 54388
Address = 192.168.132.1/24
DNS = 192.168.132.1,192.168.134.1
DNS = fritz.box

[Peer]
PublicKey = zppDEzKqVwnxpduTPBh/QB76snxRSrZ9RYP9xgmIdjU=
PresharedKey = keEbf+3sn16mPw46a3IB/oElzw3eq+rnbp1epqXQgJo=
AllowedIPs = 192.168.134.0/24
und die dazugehörige Konfiguration für den Peer ist:
Rich (BBCode):
[Interface]
PrivateKey = MPbXQ0pG2MauvgIaEjwfyVfM5bjkGPhZOWniVUd8g2U=
Address = 192.168.134.1/24
DNS = 192.168.132.2,192.168.132.1
DNS = fritz.box

[Peer]
PublicKey = Zywu+Vs2SGsN3yXqOWMGQY4vzCSyARjza2g1zW3vumw=
PresharedKey = keEbf+3sn16mPw46a3IB/oElzw3eq+rnbp1epqXQgJo=
AllowedIPs = 192.168.132.0/24
Endpoint = <masked>.myfritz.net:54388
PersistentKeepalive = 25
Löscht man jetzt diese (einzige) Verbindung wieder und legt dann eine neue an, ändern sich auch die eigenen Einstellungen der FRITZ!Box:
Rich (BBCode):
[Interface]
PrivateKey = UO4kioijzC7tWv/XTHYhsdTAJzb/KvBW3kx7revEB1E=
ListenPort = 57620
Address = 192.168.132.1/24
DNS = 192.168.132.1,192.168.134.1
DNS = fritz.box

[Peer]
PublicKey = XuvYh2yE6wZqFA6r0YpBTbFnlqiRJY/JWMcjyg6ZgEc=
PresharedKey = NVLnIqjHCHY5s8zHmuFm6sst6jPfpp38HopgGKgJZzs=
AllowedIPs = 192.168.134.0/24
PersistentKeepalive = 25
und die Konfiguration für Peer2:
Rich (BBCode):
[Interface]
PrivateKey = sDsgHY4vqNggT4fNxpB8Nt3UqovsPtn3kdWRB0owSX8=
Address = 192.168.134.1/24
DNS = 192.168.132.2,192.168.132.1
DNS = fritz.box

[Peer]
PublicKey = 8mWDL0lqjHzGf8ThVp+8JoOKdB/FCq/08eqk7qZ5kSY=
PresharedKey = NVLnIqjHCHY5s8zHmuFm6sst6jPfpp38HopgGKgJZzs=
AllowedIPs = 192.168.132.0/24
Endpoint = <masked>.myfritz.net:57620
PersistentKeepalive = 25

Das ist also auch ein Punkt, den man beim WireGuard® in der FRITZ!Box berücksichtigen muß: Löscht man die letzte konfigurierte Verbindung, generiert das FRITZ!OS beim Anlegen der nächsten Verbindung neue Einstellungen für das Interface. Will man das also vermeiden, muß man sich ggf. irgendeine Dummy-Verbindung einrichten, so daß die Einstellungen für das Interface ERHALTEN bleiben.

Intern sieht das dann so aus:
Rich (BBCode):
# sh /var/media/ftp/YourFritz/getsect global /var/flash/vpn.cfg
        global {
                wg_private_key = "$$$$LTMPJBBTB4AENMSI6ZN2242Z563IUDR21VZVMCZMOZF5VEDEGXJPI3CFJACSB1WRSP666YBLWEYN2GKUB43YWWZAAJ5CJ1J6RDMISTRKLIPTPSJLIVOWNCXID32VFSRM";
                wg_public_key = "8mWDL0lqjHzGf8ThVp+8JoOKdB/FCq/08eqk7qZ5kSY=";
                wg_listen_port = 57620;
        }
# aicmd vpnd wireguard extended

Extended wireguard device:
  Public-Key:  8mWDL0lqjHzGf8ThVp+8JoOKdB/FCq/08eqk7qZ5kSY=
  Listen-Port: 57620
  Domain-Name: fritz.box:
  -------------------------------------------------------------------------------------------------------------------------------------------
    Peer                                                                     Meta
  -------------------------------------------------------------------------------------------------------------------------------------------
    Nr.   Public-Key           Allowed-IPs       TX     RX    Hand    Keep   Name    Imp    State    RT        DNS               Our
                                                             shake   alive           ort            [s]       Server            DynDNS
  -------------------------------------------------------------------------------------------------------------------------------------------
    0     XuvYh2yE6wZqFA6   192.168.134.0/24   0.00   0.00     0 s      25   Peer2   (R)     not     0    192.168.134.1   <masked>.
          r0YpBTbFnlqiRJY                        KB     KB                                 active    0                       myfritz.net
          /JWMcjyg6ZgEc=
  -------------------------------------------------------------------------------------------------------------------------------------------

  (R) = Repaired, (A) = Added, (RA) = Re-added
# ip address show dev wg0
79: wg0: <POINTOPOINT,NOARP,PROMISC,UP,LOWER_UP> mtu 1392 qdisc noqueue state UNKNOWN group default qlen 1
    link/none
    inet 192.168.132.1/24 scope global wg0
       valid_lft forever preferred_lft forever
# ip address show dev lan
13: lan: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 2c:91:ab:f7:ca:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.132.1/24 brd 192.168.132.255 scope global lan
       valid_lft forever preferred_lft forever
    inet 169.254.1.1/16 brd 169.254.255.255 scope global lan:0
       valid_lft forever preferred_lft forever
    inet6 fd00::2e91:abff:fef7:cafe/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::2e91:abff:fef7:cafe/64 scope link
       valid_lft forever preferred_lft forever
#
Hier wird also ein zusätzliches Interface (wg0) mit derselben Adresse wie das LAN-Interface konfiguriert und es findet kein Masquerading der Pakete beim Peer statt (zumindest ist das die Ansicht der FRITZ!Box).



Mit diesen Erkenntnissen ausgerüstet, wäre es jetzt sogar schlauer, wenn man dafür sorgt, daß sich die beiden Philosophien nicht ins Gehege kommen können ... eine Option dafür wäre es, auf dem Gerät, wo auch die PiVPN-Installation erfolgte, einfach ein zweites Interface für die Verbindung zur FRITZ!Box zu verwenden. Dazu braucht man nur die von der FRITZ!Box erzeugte Konfigurationsdatei für den Peer auf der anderen Seite in das Verzeichnis /etc/wireguard zu kopieren - der Name, den man der Datei dabei gibt, ist gleichzeitig der Name des Interfaces, was erzeugt wird, wenn man diese Verbindung dann aktivieren läßt (wie man die Konfigurationsdatei in das richtige Verzeichnis kriegt, sollte jeder wissen - und wenn nicht, sich "erarbeiten"):
Rich (BBCode):
pi@pi4:~ $ sudo cat /etc/wireguard/fritzbox.conf
[Interface]
PrivateKey = sDsgHY4vqNggT4fNxpB8Nt3UqovsPtn3kdWRB0owSX8=
Address = 192.168.134.1/24
DNS = 192.168.132.2,192.168.132.1
DNS = fritz.box

[Peer]
PublicKey = 8mWDL0lqjHzGf8ThVp+8JoOKdB/FCq/08eqk7qZ5kSY=
PresharedKey = NVLnIqjHCHY5s8zHmuFm6sst6jPfpp38HopgGKgJZzs=
AllowedIPs = 192.168.132.0/24
#Endpoint = <masked>.myfritz.net:57620
Endpoint = 192.168.168.73:57620 # die WAN-Adresse der dev7590
PersistentKeepalive = 25
pi@pi4:~ $ wg-quick up fritzbox
[#] ip link add fritzbox type wireguard
[#] wg setconf fritzbox /dev/fd/63
[#] ip -4 address add 192.168.134.1/24 dev fritzbox
[#] ip link set mtu 1420 up dev fritzbox
[#] resolvconf -a fritzbox -m 0 -x
[#] ip -4 route add 192.168.132.0/24 dev fritzbox
pi@pi4:~ $ sudo wg show
interface: wg0
  public key: 04OwYGmC6mvyOV7XEaldxmx17xdwe1RhZXRXfCAdPlo=
  private key: (hidden)
  listening port: 51820

peer: irSyJSohlhUafs9hN2+5DnJC/1GVDs/VAxx08Mj7yEA=
  preshared key: (hidden)
  allowed ips: 10.28.248.2/32

interface: fritzbox
  public key: XuvYh2yE6wZqFA6r0YpBTbFnlqiRJY/JWMcjyg6ZgEc=
  private key: (hidden)
  listening port: 42689

peer: 8mWDL0lqjHzGf8ThVp+8JoOKdB/FCq/08eqk7qZ5kSY=
  preshared key: (hidden)
  endpoint: 192.168.168.73:57620
  allowed ips: 192.168.132.0/24
  latest handshake: 7 seconds ago
  transfer: 124 B received, 180 B sent
  persistent keepalive: every 25 seconds
pi@pi4:~ $ ip route show
default via 192.168.168.254 dev eth0
default via 192.168.168.254 dev eth0 proto dhcp src 192.168.168.236 metric 202
10.28.248.0/24 dev wg0 proto kernel scope link src 10.28.248.1
192.168.128.254 via 192.168.168.254 dev eth0
192.168.132.0/24 dev fritzbox scope link
192.168.134.0/24 dev fritzbox proto kernel scope link src 192.168.134.1
192.168.168.0/24 dev eth0 proto dhcp scope link src 192.168.168.236 metric 202
192.168.168.254 dev eth0 scope link
pi@pi4:~ $ ping -c 2 192.168.132.1
PING 192.168.132.1 (192.168.132.1) 56(84) bytes of data.
64 bytes from 192.168.132.1: icmp_seq=1 ttl=64 time=2.31 ms
64 bytes from 192.168.132.1: icmp_seq=2 ttl=64 time=2.26 ms

--- 192.168.132.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 2.258/2.282/2.307/0.024 ms
pi@pi4:~ $
Damit gibt es also ein weiteres Interface auf dem Gerät und wie man oben auch sehen kann, fließen tatsächlich Daten zwischen der FRITZ!Box und dem PiVPN. Die notwendigen Einträge in der Routing-Table wurden beim Start der Verbindung auch erzeugt. Ein ping-Kommando ist auch erfolgreich (damit stimmt auch die Datenübertragung in BEIDE Richtungen) und auch zu anderen Hosts im Netz der FRITZ!Box sollte es keine Verbindungsprobleme geben (auch wenn das hier nur die Box selbst zeigt - es gibt keine Clients im LAN dieser Box, die ich zeigen könnte).

Das wäre also der simpelste Weg - aber er skaliert zugegebermaßen nicht sehr gut, wenn man noch weitere FRITZ!Boxen an das Gerät mit PiVPN anbinden will.

Ich mache hier erst einmal Schluß - vermutlich kriege ich nicht mal das bisher Geschriebene als einzelnen Beitrag ins Board und scheitere wieder am Zeichenlimit.

EDIT:
Nein ... hat doch geklappt. Fortsetzung folgt (irgendwann), bei der dann auch der Weg, wie die PiVPN-Installation tonangebend sein kann, thematisiert werden soll.
 
Zuletzt bearbeitet:
@lil-ac:
Wenn Du mit /23-Maske arbeitest, ist - nur nebenbei bemerkt - eine Angabe von 10.0.1.0/23 ein HOST und keine (wirkliche) Segment-Adresse. Diese wäre hier stattdessen 10.0.0.0/23, darin sind dann die Adressen von 10.0.0.1 bis 10.0.1.254 verfügbar (die 10.0.1.255 wäre die (IPv4-)Broadcast-Adresse).
 
wenn ich die config Datei von PIVPN "hochlade" bekomme ich über die FB folgende Fehlermeldung
Nix hochladen. Laß die Fritzbox machen und schreib alles, was die Fritzbox für den Peer vorgibt dort ab für die wg.conf im Raspberry.
 
Guten Morgen,

vielen Dank erstmal für die ausführliche Antwort @PeterPawn. Ich habe gestern die FRITZbox.conf in PIVPN reingezogen und habe dann wg up FRITZbox.conf und dann war der PI nicht mehr erreichbar.
Muss ich mir heute Abend noch mal anschauen.

@erik: Habe ich versucht, aber der PIVPN baut keine Verbindung auf..
 
aber der PIVPN baut keine Verbindung auf
Du kannst die von der Fritzbox erzeugte Datei natürlich nicht so verwenden, wie sie die Fritzbox liefert. Aber die Schlüssel und die beim Raspberry gewünschte, zur Fritzbox passende IP-Konfiguration muß man aus der von der Fritzbox erzeugten Datei entnehmen. Da die Fritzbox bei jeder neuen Einrichtung eine neue Konfiguration erzeugt, muß man auch den von der Fritzbox gelieferten PrivateKey für den Raspberry dort übernehmen, weil der dazugehörige PublicKey schon in der Fritzbox hinterlegt ist und nicht mehr separat verändert werden kann.
 
Ich glaube ich habe irgendwo einen Denkfehler @erik ...
Ich habe jetzt noch mal alles neu aufgesetzt und die Submask auf 24 geändert. Dann habe ich in der FB eine neue Verbindungsconfig erstellt. Jetzt würde ich alles was unter Peer steht, in die wg0.conf Datei eintragen, oder? Also so wie ich es jetzt schon im "Bespiel" gemacht habe.

Tut mir gerade echt leid, dass ich so auf dem Schlauch stehe.

Code:
Fritzbox Config Datei
[Interface]
PrivateKey = ichbinderprivatekeyfritzbox
Address = 10.0.1.1/24
DNS = 10.0.2.1
DNS = fritz.box

[Peer]
PublicKey = ichbinderpublickeyfritzbox
PresharedKey = ichbinirgendeinkeyfritzbox
AllowedIPs = 10.0.2.0/24
Endpoint = dyndns.de:51908
PersistentKeepalive = 25

PiVPN wg0.conf

[Interface]
PrivateKey = ichbinderprivatkeyvonpivpn
Address = 10.249.84.1/24
MTU = 1420
ListenPort = 51820

[Peer]
PublicKey = ichbinderpublickeyfritzbox
PresharedKey = ichbinirgendeinkeyfritzbox
AllowedIPs = 10.0.2.0/24
Endpoint = dyndns.de:51908
PersistentKeepalive = 25
 
Das geht so nicht.
[Peer] PublicKey = ichbinderpublickeyfritzbox
dort muß der Public von Pi rein
Endpoint = dyndns.de:51908
51820
AllowedIPs = 10.0.2.0/24
falsche IP. Ich denke die Fritz hat 10.0.1.x? Wenn ich nachher Zeit habe werde ich die Konfig von Fritzbox und Pi von mir zeigen und dabei die anderen Peers rausnehmen.
 
Zuletzt bearbeitet:
Ok, aber die FB hat die 10.0.2.x und das PiVPN Netzwerk hat die 10.0.1.x.
Den Port hat mir die FB so erstellt. Da habe ich nichts umgeändert.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.