MoinMoin Logo
  • Kommentare
  • Geschützte Seite
  • Menu
    • Navigation
    • AktuelleÄnderungen
    • SeiteFinden
    • ÜbersichtsKarte
    • Help
    • HilfeInhalt
    • HilfeZurMoinWikiSyntax
    • Anzeige
    • Dateianhänge
    • Info
    • Rohform
    • Druckansicht
    • Editieren
    • Laden
    • Speichern
  • Anmelden

Navigation

  • AktuelleÄnderungen
  • SeiteFinden
  • HilfeInhalt

Seiteninhalt hochladen

Sie können für die unten genannte Seite Inhalt hochladen. Wenn Sie den Seitennamen ändern, können Sie auch Inhalt für eine andere Seite hochladen. Wenn der Seitenname leer ist, leiten wir den Seitennamen vom Dateinamen ab.

Datei, aus der der Seiteninhalt geladen wird
Seitenname
Kommentar

Revision 26 vom 2022-01-03 17:19:24
  • wireguard installieren und konfigurieren

wireguard installieren und konfigurieren

0. Architektur

Annahme: Die zentrale Site ("Home Base") nutzt im LAN den IP-Adressbereich 192.168.1.0/24.

Die (verschlüsselte) Kommunikation zwischen (z.B. mobilen) Endgeräten und dem Server in der Home Base soll über das private Netzwerk 10.0.1.0/24 stattfinden.

1. Installation

apt-get update && apt-get install -y wireguard wireguard-tools iptables

2. IP Forwarding (auf dem Server) einschalten

cat >> /etc/sysctl.conf << "EOFSYS"
net.ipv4.ip_forward=1

EOFSYS

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

3. Schlüssel produzieren

cd /etc/wireguard
umask 077
wg genkey | sudo tee privatekey.server | wg pubkey | sudo tee pubkey.server
wg genpsk > psk.server
wg genkey | sudo tee privatekey.client1 | wg pubkey | sudo tee pubkey.client1
wg genpsk > psk.client1
wg genkey | sudo tee privatekey.client2 | wg pubkey | sudo tee pubkey.client2
wg genpsk > psk.client2
...

4. Service (auf dem Server) generieren

ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.1.1/24 # Server-Adresse
ip link set up dev wg0

wg set wg0 private-key /etc/wireguard/privatekey.server

touch /etc/wireguard/wg0.conf ; wg-quick save wg0

5. Clients beim Server bekannt machen

cat >> /etc/wireguard/wg0.conf << "EOFWGCONF"
DNS = 9.9.9.9   # oder welcher auch immer...

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
EOFWGCONF

echo "PublicKey = $(cat /etc/wireguard/pubkey.client1)" >> /etc/wireguard/wg0.conf
echo "AllowedIPs = 10.0.1.2/24"

Letztlich muss die /etc/wireguard/wg0.conf so ähnlich aussehen wie:

[Interface]
Address = 10.0.1.1/24
ListenPort = 54321
PrivateKey = WBuu/yueIn8BRzJ7ABCDEFGHLduaRPumtaxcghJBXHM=
DNS = 9.9.9.9

PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# client1
PublicKey = 7epeqRnqmO8LIJKLMNOPs7ICjmV7g1+wzEQsAF88YxA=
PresharedKey = tvHQ7oqKLEj38RBLtd+kSWeN8DFVJzl8yYso4n/KjPI=
AllowedIPs = 10.0.1.2/24

6. Service starten

systemctl enable wg-quick@wg0.service
systemctl daemon-reload
systemctl start wg-quick@wg0.service

7. Client konfigurieren

client1.conf sollte so ähnlich aussehen wie:

[Interface]
Address = <Konfigurierte Client IP>/<Netmask> // Zum Beispiel die IP "10.16.1.20/32"
PrivateKey = <Privater Key des Clients>

[Peer]
PublicKey = <Public Key des Servers>
PresharedKey = <Preshared Key (derselbe bei Server und Client!)>
PersistentKeepalive = 25 <Alle 25 Sekunden mit dem Server kommunizieren, damit die Firewall offen bleibt>
AllowedIPs = <Netzwerke auf die dieser Client Zugriff haben soll>/<Netmask>
             // Zum Beispiel "10.16.1.0/24, 192.168.3.0/24"
             //               |             |
             //               +--> der Netzwerkbereich des WireGuard VPNs
             //                             |
             //                             +--> Netzwerk hinter der Firewall
Endpoint = <Public IP der Firewall>:<WireGuard Port>

Im eigenen WLAN wireguard abschalten

Datei erstellen: /etc/NetworkManager/dispatcher.d/90wg-check (Rechte:755)

#!/bin/bash
 
IF=$1
STATUS=$2

### CHANGE!!!
MY_WLAN="YOUR_HOME_WIFI_SSID" # <-- CHANGE!!!
### CHANGE!!!

WLAN=$(iw dev | grep Interface | sed s/Interface//g | tr -d " \t\n\r")
SSID=$(iwconfig $WLAN | head -n 1 | cut -d '"' -f 2)

if [ "$IF" == "$WLAN" ]
then
    case "$2" in
        up)
        logger -s "NM Script up triggered"
        if [[ "$SSID" == "$MY_WLAN" ]]
        then
          systemctl stop wg-quick@wg0.service
        else
          systemctl start wg-quick@wg0.service
        fi
        ;;
        down)
        logger -s "NM Script down triggered"
        # command2
        ;;
        pre-up)
        logger -s "NM Script pre-up triggered"
        # command3
        ;;
        post-down)
        logger -s "NM Script post-down triggered"
        # command4
        ;;
        *)
        ;;
    esac
fi


KategorieRaspberry

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01