Größe: 289
Kommentar:
|
Größe: 3885
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 2: | Zeile 2: |
'''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. |
|
Zeile 8: | Zeile 15: |
'''2. IP Forwarding einschalten''' | '''2. IP Forwarding (auf dem Server) einschalten''' |
Zeile 14: | Zeile 21: |
echo 1 > /proc/sys/net/ipv4/ip_forward |
|
Zeile 15: | Zeile 24: |
'''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/nix #!/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" == "NOBODY" ]] 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 }}} |
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" == "NOBODY" ]] 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