Wireguard auf dem Raspberry Pi installieren

Kernel-Headers installieren

Als erstes installieren wir die Kernel-Headers

 sudo apt update
 sudo apt full-upgrade
 sudo apt install raspberrypi-kernel-headers

wireguard installieren

In raspbian "buster" sind die wireguard Pakete schon direkt verfügbar und können direkt installiert werden:

 sudo apt install wireguard

IP forwarding aktivieren

Zum aktivieren des IPv4 Forwarding erstellen wir die Datei /etc/sysctl.d/97-custom.conf mit folgendem Inhalt:

 ## Turn on bbr ##
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

## for IPv4 ##
net.ipv4.ip_forward = 1

## Turn on basic protection/security ##
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_syncookies = 1

## for IPv6 ##
#net.ipv6.conf.all.forwarding = 1

und aktivieren die Einstellungen sofort mit

  sudo sysctl -p /etc/sysctl.d/97-custom.conf

Schlüssel erstellen

Jetzt können wir die Schlüssel erstellen. Da das Verzeichnis /etc/wireguard nur für den root-User zugänglich ist wechseln wird den Benutzer:

  sudo su
  cd /etc/wireguard
  umask 077; wg genkey | tee privatekey | wg pubkey > publickey

PSK erstellen

mit wg genpsk > presharedkey kann auch ein Pre-Shared-Key für die VPN Konfiguration erstellt werden.

Konfigurationsdatei erstellen

für die PostUp und PostDown Konfigurationen erstellen wir noch ein Verzeichnis helpers

  mkdir /etc/wireguard/helpers

und erstellen die Datei wg0.conf mit folgendem Inhalt

[Interface]
PrivateKey = <geheimer PrivateKey>
Address = 10.100.200.5/24  # IP-Adresse in unserem VPN-subnet
# ListenPort = 27836            # optional, wird sonst zufällig vergeben
#DNS = 1.1.1.1                    # optional, wenn ein spezieller DNS Server verwendet werden soll
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <Publick Key des Peer mit dem wir uns verbinden wollen>
AllowedIPs = 0.0.0.0/0   # Der komplette Traffic wird durch den Tunnel geschickt 
Endpoint = 78.47.140.145:31194
PersistentKeepalive = 15

Nun wird die Verbindung eingerichtet:

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo systemctl status wg-quick@wg0

WLAN

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

QR Code

sudo apt install qrencode

Jetzt kann die Konfiguration angezeigt werden

qrencode -t ansiutf8 < mobile.conf