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 20 vom 2022-01-01 17:10:04
  • 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

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 genkey | sudo tee privatekey.client1 | wg pubkey | sudo tee pubkey.client1
wg genkey | sudo tee privatekey.client2 | wg pubkey | sudo tee pubkey.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=
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 = 10.0.1.2/24
DNS = 9.9.9.9
PrivateKey = 2MYfld12345678eChDjRDpTpHRdVVpVOThALUJBGXHc=

[Peer]
AllowedIPs = 0.0.0.0/0, ::/0 # Sämtlichen Traffic durch den VPN schicken!
Endpoint = mydyndns.address.woauchimmer:54321
PublicKey = gbg3qrO1o9FABCDEFGH4PSjCSaewUvtAhbvpfudZ2AQ=

Im eigenen WLAN wireguard abschalten

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

#!/bin/bash
 
IF=$1
STATUS=$2
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"
        echo $SSID >> /home/rebecca/scripts/wg-check.log
        if [[ "$SSID" == "YOUR_HOME_WIFI_SSID" ]]
        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