VPN-Zugriff bei Vodafone Cable (DS-Lite) mit Wireguard (2024)

L

lukas12342

Cadet 3rd Year
Dabei seit
Dez. 2016
Beiträge
38
  • 19. Januar 2023
  • #17

@Darkghost
Kannst dir auch irgendeine andere Anleitung raussuchen aber ich würde folgendes tun:

1. Den Raspberry Pi auf NetworkManager umstellen. (geht über raspi-config [1])

This launches the configuration tool. Go into option 6, Advanced Options, and then into option AA, Network Config – choose option 2, NetworkManager, and then reboot when prompted.

2. Anschließend dies tun und natürlich dabei eigene Keys verwenden (wg genkey)

Code:

nmcli device show eth0root@PI:~# nmcli cNAME UUID TYPE DEVICE Wired connection 1 ce0d5fd2-a690-3a37-8a71-dec2a6244882 ethernet eth0nmcli c mod "Wired connection 1" ipv6.ip6-privacy 2nmcli c mod "Wired connection 1" ipv6.addr-gen-mode eui64nmcli c mod "Wired connection 1" ipv6.token ::1234nmcli c down "Wired connection 1"nmcli c up "Wired connection 1"

Danach sollte das Interface zwei GUA-IPv6 Adressen haben. Eine sich zeitlich ändernde IPv6-Adresse für Ausgehende Verbindungen und ein mit den festen Suffix 1234.

Code:

root@PI:~# ip -c -6 a s eth077: eth0@if78: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0 inet6 2001:DB8::a92a:6442:2f78:9066/64 scope global temporary dynamic valid_lft 6932sec preferred_lft 1042sec inet6 2001:DB8::1234/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 6932sec preferred_lft 1042sec inet6 fe80::216:3eff:fe46:90f3/64 scope link noprefixroute valid_lft forever preferred_lft forever

Folgende Datei anlegen /etc/wireguard/wg0.conf:

Code:

# cd /etc/wireguard/# wg genkey | (umask 0077 && tee peer_A.key) | wg pubkey > peer_A.pub# cat peer_A.key kBRZQQCQ7aGMVGtjD14Yy9XY25Q7FNxSnhOzYqlNGXs=# cat peer_A.pub mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=/etc/wireguard/wg0.conf[Interface]Address = 192.168.42.1/24ListenPort=51871PrivateKey = kBRZQQCQ7aGMVGtjD14Yy9XY25Q7FNxSnhOzYqlNGXs=[Peer]PublicKey = LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw=AllowedIPs = 192.168.42.2/32

Code:

/etc/sysctl.d/99-sysctl.confnet.ipv4.ip_forward = 1

Firewall einrichten:

Code:

apt install ufwufw limit 22ufw enableufw allow in on eth0 to any port 51871 proto udpufw route allow in on wg0 out on eth0sysctl -w net.ipv4.ip_forward=1# Firewall Config Ausgebenroot@PI:~# ufw status verbose Status: activeLogging: on (low)Default: deny (incoming), allow (outgoing), deny (routed)New profiles: skip To Action From-- ------ ----51871/udp on eth0 ALLOW IN Anywhere 22 LIMIT IN Anywhere 51871/udp (v6) on eth0 ALLOW IN Anywhere (v6) 22 (v6) LIMIT IN Anywhere (v6) Anywhere on eth0 ALLOW FWD Anywhere on wg0 Anywhere (v6) on eth0 ALLOW FWD Anywhere (v6) on wg0root@PI:~# sysctl net.ipv4.ip_forwardnet.ipv4.ip_forward = 1root@PI:~# wg-quick up wg0root@PI:~# wginterface: wg0 public key: mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic= private key: (hidden) listening port: 51871 peer: LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw= allowed ips: 192.168.42.2/32

## Client

Als Test Client würde ich entweder ein weiteres Linux System verwenden oder ein Windows-System. In beiden Fällen zu Testzwecken mal IPv4 auf den normal Interface/Netzwerk-Adapter dort deaktivieren.
Dann kann sich der Client erstmal innerhalb des Heimnetzes befinden und es muss noch keine Portfreigabe in der FritzBox erfolgen.

Code:

/etc/wireguard/wg0.confAddress = 192.168.42.2/32PrivateKey = KGFPMLZx4mFSZhQ5mu9fIHrxFZOGLTylGOiYzsllKVQ=[Peer]PublicKey = mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=AllowedIPs = 192.168.42.0/24,192.168.178.0/24Endpoint = [2001:DB8::1234]:51871

Code:

wg-quick up wg0# PI Tunnel-IP pingenroot@testWG:~# ping 192.168.42.1PING 192.168.42.1 (192.168.42.1) 56(84) bytes of data.64 bytes from 192.168.42.1: icmp_seq=1 ttl=64 time=0.697 ms# ungenutzte Tunnel-IP pingen# Wenn Unreachable ausgegeben wurde dann wurde der sysctl und Firewall auf den PI richtig eingestellt.root@testWG:~# ping 192.168.42.3PING 192.168.42.3 (192.168.42.3) 56(84) bytes of data.From 192.168.42.1 icmp_seq=1 Destination Host Unreachable

### QR-Code

Anstatt auf einen Client die Datei /etc/wireguard/wg0.conf zu erstellen kannst du auch eine Temporäre Datei nutzen und dies anschließend als QR-Code "exportieren"

Code:

touch /tmp/wg0.confchmod 600 /tmp/wg0.conf/tmp/wg0.confAddress = 192.168.42.2/32PrivateKey = KGFPMLZx4mFSZhQ5mu9fIHrxFZOGLTylGOiYzsllKVQ=[Peer]PublicKey = mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=AllowedIPs = 192.168.42.0/24,192.168.178.0/24Endpoint = [2001:DB8::1234]:51871apt install qrencodeqrencode -t ansiutf8 -r /tmp/wg0.conf

## PI

Dammit nun auch der ping auf 192.168.178.1 von 192.168.42.2 aus klappt muss jetzt entweder auf dem PI noch NAT (MASQUERADE) durchgeführt werden oder es wird in der FritzBox eine statische Route einrichtet.
Für die statische Route sollte aber erstmal auch eine statische IPv4 für den Pi vergeben werden. Einfach die bisherige durch DHCP vergeben zu einer statischen IPv4 machen:

Code:

root@PI:~# ip -c -4 a s eth075: eth0@if76: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link-netnsid 0 inet 192.168.178.60/24 brd 192.168.178.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever

Code:

nmcli c mod "Wired connection 1" ipv4.addresses "192.168.178.60/24"nmcli c mod "Wired connection 1" ipv4.gateway "192.168.178.1"nmcli c mod "Wired connection 1" +ipv4.routes "192.168.178.0/24 0.0.0.0"nmcli c mod "Wired connection 1" ipv4.dns "8.8.8.8"nmcli c mod "Wired connection 1" ipv4.method manualnmcli c down "Wired connection 1"nmcli c up "Wired connection 1"

Dammit die FritzBox die IP`192.168.178.60` nicht an jemand andere vergibt diese für den PI Reserveserien (https://avm.de/service/wissensdaten...che-IP-Adresse-von-FRITZ-Box-zuweisen-lassen/).

Am Ende sollte die NetworkManager-Config in etwa so aussehen:

Code:

root@PI:~# cat /etc/NetworkManager/system-connections/Wired\ connection\ 1.nmconnection [connection]id=Wired connection 1uuid=ce0d5fd2-a690-3a37-8a71-dec2a6244882type=ethernetautoconnect-priority=-999interface-name=eth0permissions=timestamp=1674164726 [ethernet]mac-address-blacklist= [ipv4]address1=192.168.178.60/24,192.168.178.1dns=8.8.8.8;dns-search=method=manualroute1=192.168.178.0/24 [ipv6]addr-gen-mode=eui64dns-search=ip6-privacy=2method=autotoken=::1234 [proxy]

### Statische Route in der FritzBox

Code:

IPv4-Netzwerk: 192.168.42.0Subnetzmaske: 255.255.255.0Gateway: 192.168.178.60

## Client

Code:

root@testWG:~# wginterface: wg0 public key: LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw= private key: (hidden) listening port: 45091 peer: mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic= endpoint: [2001:DB8::1234]:51871 allowed ips: 192.168.42.0/24, 192.168.178.0/24 latest handshake: 1 minutes, 8 seconds ago transfer: 220 B received, 308 B sent root@testWG:~# ping 192.168.178.1PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.64 bytes from 192.168.178.1: icmp_seq=7 ttl=63 time=241 msroot@testWG:~# curl 192.168.178.1 <!DOCTYPE html>

## Ende

Abschließend wenn alles bisher geklappt hat die PI Wireguard Config Persistent machen mit:

Code:

systemctl enable wg-quick@wg0.service

Dann einmal den PI reboot und testen ob noch alles klappt.

Jetzt wäre auch der Zeitpunkt in der FritzBox den Zugang aus den Internet auf den PI zuzulassen.

Code:

Gerät: PIIPv4-Adresse: 192.168.178.60IPv6 Interface-ID: 0:0:0:1234PING6 freigeben.Freigabe anlegen Andere Anwendung Internetzugriff über IPv6 UDP Port an Gerät: 51871-51871

Mit der Konfiguration ist erstmal nur der Zugriff auf das Heimnetz möglich.

Nächste möglichen Schritte wären:
1. DDNS (Präfix ändert sich der Suffix bleibt bei ::1234)
2. alles nach Hause zu tunneln
3. über ein gemieteten Server den PI auch aus IPv4-Only Umgebungen erreichbar machen
4. statt wg-quick auch für Wireguard den NetworkManager verwenden

Insights, advice, suggestions, feedback and comments from experts

Based on the provided text, it appears to be a forum post discussing the setup of a Raspberry Pi with Wireguard VPN. The post includes instructions on configuring the Raspberry Pi with NetworkManager, generating keys, creating a Wireguard configuration file, setting up a firewall, and configuring a client.

Raspberry Pi Setup with Wireguard VPN

To set up a Raspberry Pi with Wireguard VPN, you can follow the instructions provided in the forum post. Here is a summary of the steps mentioned:

  1. Switch the Raspberry Pi to use NetworkManager by using the raspi-config command and selecting option 6 (Advanced Options) and then option AA (Network Config). Choose option 2 (NetworkManager) and reboot when prompted. [[1]]

  2. Configure the network interface by running the following commands:

    nmcli device show eth0
    nmcli c mod "Wired connection 1" ipv6.ip6-privacy 2
    nmcli c mod "Wired connection 1" ipv6.addr-gen-mode eui64
    nmcli c mod "Wired connection 1" ipv6.token ::1234
    nmcli c down "Wired connection 1"
    nmcli c up "Wired connection 1"

    After these commands, the interface should have two GUA-IPv6 addresses. One is a time-changing IPv6 address for outgoing connections, and the other has the fixed suffix 1234. [[1]]

  3. Create the Wireguard configuration file /etc/wireguard/wg0.conf with the following content:

    [Interface]
    Address = 192.168.42.1/24
    ListenPort = 51871
    PrivateKey = kBRZQQCQ7aGMVGtjD14Yy9XY25Q7FNxSnhOzYqlNGXs=
    
    [Peer]
    PublicKey = LbCVJ54zqyCArQBp/QDyIJJrgGWK8ukWjXQpvlm0aCw=
    AllowedIPs = 192.168.42.2/32

    This configuration sets the IP address, port, and keys for the Wireguard interface. [[1]]

  4. Set up the firewall using the following commands:

    apt install ufw
    ufw limit 22
    ufw enable
    ufw allow in on eth0 to any port 51871 proto udp
    ufw route allow in on wg0 out on eth0
    sysctl -w net.ipv4.ip_forward=1

    These commands install and configure the firewall to allow incoming connections on port 51871 and enable IP forwarding. [[1]]

  5. Set up the client by creating a Wireguard configuration file on the client machine with the following content:

    [Interface]
    Address = 192.168.42.2/32
    PrivateKey = KGFPMLZx4mFSZhQ5mu9fIHrxFZOGLTylGOiYzsllKVQ=
    
    [Peer]
    PublicKey = mB+HVbXLmbEl8goVNK+YHjs2/QjKCeOxImlakInfeic=
    AllowedIPs = 192.168.42.0/24,192.168.178.0/24
    Endpoint = [2001:DB8::1234]:51871

    This configuration sets the IP address, keys, allowed IPs, and endpoint for the client. [[1]]

  6. Test the connection by pinging the Wireguard tunnel IP and the unused tunnel IP. If the ping is successful, the configuration is correct. [[1]]

  7. Optionally, you can generate a QR code for the Wireguard configuration file using the qrencode command. This can be useful for easily sharing the configuration with other devices. [[1]]

  8. Additional steps that can be considered include setting up DDNS, tunneling all traffic through the VPN, making the Raspberry Pi accessible from IPv4-only environments, and using NetworkManager for Wireguard instead of wg-quick. [[1]]

Please note that the instructions provided are based on the information in the forum post and should be verified and adapted to your specific setup.

VPN-Zugriff bei Vodafone Cable (DS-Lite) mit Wireguard (2024)
Top Articles
Latest Posts
Article information

Author: Sen. Emmett Berge

Last Updated:

Views: 5634

Rating: 5 / 5 (60 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Sen. Emmett Berge

Birthday: 1993-06-17

Address: 787 Elvis Divide, Port Brice, OH 24507-6802

Phone: +9779049645255

Job: Senior Healthcare Specialist

Hobby: Cycling, Model building, Kitesurfing, Origami, Lapidary, Dance, Basketball

Introduction: My name is Sen. Emmett Berge, I am a funny, vast, charming, courageous, enthusiastic, jolly, famous person who loves writing and wants to share my knowledge and understanding with you.