Wireguard
Links
Server
Wireguard installieren: sudo apt install wireguard
Konfiguration anlegen:
sudo tee /etc/wireguard/wg0.conf <<END
[Interface]
PrivateKey = $(wg genkey)
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = sysctl net.ipv4.ip_forward=1
PostUp = iptables -A FORWARD -i eth0 -o %i -j ACCEPT
PostUp = iptables -A FORWARD -i %i -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = sysctl net.ipv4.ip_forward=0
PostDown = iptables -D FORWARD -i eth0 -o %i -j ACCEPT
PostDown = iptables -D FORWARD -i %i -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
END
- Der private Schlüssel wird automatisch genenriert.
- Für das VPN wir der IP Bereich 10.0.0.0/24 verwendet.
- Der Server verwendet die IP Adresse 10.0.0.1.
- Der Server lauscht auf dem UDP Port 51820, der in der Firewall freigegeben sein muss. Die Portnummer 51820 ist der Standard-Port für Wireguard.
- PostUp und PostDown wird benutzt um die Netzwerk-Routen und Weiterleitungen einzurichten.
Im Anschluss kann der Server mit dem Befehl sudo systemctl start wg-quick@wg0
gestartet werden. Der Befehl sudo systemctl enable wg-quick@wg0
sorgt dafür dass der Server automatisch beim Systemstart gestartet wird.
Wenn die ufw
Firewall verwendet wird, kann der UDP Port 51820 mit dem Befehl sudo ufw allow 51820/udp
geöffnet werden. Anschließend kann die Regel mit sudo ufw reload
und sudo ufw enable
angewendet werden.
Clients auf dem Server einrichten
Jeder Client muss auf dem Server eingerichtet werden. Die Konfiguration kann z.B. in ~\wg-clients
gesichert werden.
Erzeugen einer neuen Client-Konfiguration:
peers_count="$(sudo grep '\[Peer\]' /etc/wireguard/wg0.conf | wc -l)"
tee ~/wg-clients/client${peers_count}.conf <<END
[Interface]
PrivateKey = $(wg genkey)
Address = 10.0.0.$(( peers_count + 2 ))/24
DNS = 8.8.8.8,8.8.4.4
END
Anchließend muss der Client in der Server-Konfiguration hinzugefügt werden:
sudo tee -a /etc/wireguard/wg0.conf <<END
[Peer]
PublicKey = $(grep PrivateKey ~/wg-clients/client.conf | awk '{print $3}' | wg pubkey)
AllowedIPs = $(grep Address ~/wg-clients/client.conf | awk '{print $3}' | sed 's/\/.*//')/32
END
Und der Wireguard Server neu gestartet werden: sudo systemctl stop wg-quick@wg0 && sudo systemctl start wg-quick@wg0
Um die Client-Konfiguration zu vervollständigen muss der öffentliche Schlüssel des Server hinzugefügt werden:
wgservip="$(ip -4 -br address show dev eth0)" && tee -a ~/wg-clients/client.conf <<END
[Peer]
PublicKey = $(sudo grep PrivateKey /etc/wireguard/wg0.conf | awk '{print $3}' | wg pubkey)
Endpoint = $(awk '{print $3}' <<<"$wgservip" | sed 's/\/.*//'):51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
END
Client
Um den Client mit den Server zu verbinden muss zuerst Wireguard installiert werden: sudo apt install wireguard
.
Zusätzlich wird openresolv
benötigt: sudo apt install openresolv
.
Anschließend kann die auf dem Server erstellte Client-Konfiguration wg-clients/client.conf
als /etc/wireguard/wg0.conf
auf den Client kopiert werden. Danach kann Wireguard gestart werden: sudo systemctl start wg-quick@wg0 && sudo systemctl enable wg-quick@wg0
.
No Comments