Denna guide gäller server baserad på Ubuntu men bör gå att använda t ex för en RPi som server.
Server: Ubuntu 22.04 LTS, förutsätts vara installerad med ufw konfigurerad och aktiverad. IP-nät i exemplet 44.5.0.0/27 där router i nätet är 44.5.0.1 och WG-server har 44.5.0.2 samt klienter 44.5.0.3, 44.5.0.4 o s v. IP-adresserna är exempel så dem ska du inte använda.
Klient: Wireguard Windowsklient 64-bit
Referenslänkar:
https://documentation.ubuntu.com/server/how-to/wireguard-vpn/on-an-internal-system/
https://www.wireguard.com/install/
https://www.cyberciti.biz/faq/how-to-set-up-wireguard-firewall-rules-in-linux/
https://techoverflow.net/2021/07/02/how-to-autostart-wireguard-using-systemd-wg-quick/
Server
Tillåt trafik till Wireguard:
sudo ufw allow proto udp from any to any port 51000 comment Wireguard
sudo apt install wireguard
Skapa nyckelpar för servern:
umask 077 wg genkey > internal-private.key wg pubkey < internal-private.key > internal-public.key
Skapa konfigurationsfil:
sudo nano /etc/wireguard/wg0.conf
Klistra in:
[Interface] Address = 44.5.0.2/32 ListenPort = 51000 PrivateKey = <contents of internal-private.key>
PostUp = /etc/wireguard/helper/add-fwd.sh PostDown = /etc/wireguard/helper/remove-fwd.sh
[Peer] # client PublicKey = <contents of client-public.key> AllowedIPs = 44.5.0.3/32 # any available IP in the VPN range
Publik nyckel för klient skapas när klienten installeras och konfigureras nedan. Denna nyckel ska in i filen ovan.
Gör nu klientinstallationen och återkom sedan hit och fortsätt (nästa steg kräver att PublicKey för klienten är inlagd i filen ovan.
Skapa:
sudo nano /etc/sysctl.d/70-wireguard-routing.conf
Klistra in:
net.ipv4.ip_forward = 1 net.ipv4.conf.all.proxy_arp = 1
Kör:
sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf -w
Skapa helper script.
sudo mkdir -v /etc/wireguard/helper/
Skapa up-script (ändra device till dina förhållanden).
sudo nano /etc/wireguard/helper/add-fwd.sh
Klistra in:
#!/bin/bash
IPT="/sbin/iptables"
IN_FACE="eth0" # NIC connected to the internet
WG_FACE="wg0" # WG NIC
$IPT -I INPUT 1 -i $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT -I FORWARD 1 -i $WG_FACE -o $IN_FACE -j ACCEPT
Skapa down-script (ändra device till dina förhållanden):
sudo nano /etc/wireguard/helper/remove-fwd.sh
Klistra in:
#!/bin/bash
IPT="/sbin/iptables"
IN_FACE="eth0" # NIC connected to the internet
WG_FACE="wg0" # WG NIC
$IPT -D INPUT -i $WG_FACE -j ACCEPT
$IPT -D FORWARD -i $IN_FACE -o $WG_FACE -j ACCEPT
$IPT -D FORWARD -i $WG_FACE -o $IN_FACE -j ACCEPT
Gör scripten körbara:
sudo chmod -v +x /etc/wireguard/helper/*.sh
Slutligen, när konfigurationsfilen är kompletterad med publik nyckel från klienten:
sudo wg-quick up wg0
För att se status på tunneln:
sudo wg show
När du ser att allt fungerar som du önskar så stäng ner wireguard och se till att den autostartas via systemd.
sudo wg-quick down wg0sudo systemctl enable --now wg-quick@wg0
Klient
Ladda ner och installera windowsklienten. Nere i vänstra hörnet, klicka på pilen vid "Add tunnel" och välj "Add empty tunnel".
Kopiera den publika nyckeln som automatisk skapades, till serverkonfigurationen ovan. Lägg sedan in denna konfiguration som skall ha den publika nyckeln från servern ovan. IP-adressen i Address är den IP-adress som klienten ska tilldelas. DNS:er bör anges till en eller flera AMPRNet-anslutna resolvers, gärna så nära Wireguard-servern som möjligt, samt att t ex 8.8.8.8 anges som extra hängsle och livrem.
[Interface]
PrivateKey = PRIVAT_NYCKEL_SOM_AUTOGENERERATS
ListenPort = 51000
Address = 44.5.0.3/27
DNS = 44.5.6.7, 44.5.8.193, 8.8.8.8
[Peer]
PublicKey = <contents of internal-private.key>
AllowedIPs = 0.0.0.0/0
Endpoint = IP-adress_ELLER_DNS_namn_till_WG_servern:51000
Klicka på Activate och om allt fungerar som det skall så skall nu tunneln kopplas upp och datorn är direktansluten till IP-nätet på serversidan, som om det vore en lokal dator.
För att klienten skall autostarta, exportera din konfiguration till fil (myconfname.conf t ex), starta cmd som administratör och kör:
wireguard /installtunnelservice C:\path\to\some\myconfname.conf
Detta resulterar i en Windowstjänst som kan autostartas av systemet.