Az előző bejegyzésemben szereplő Github repo frissítése sajnos megszűnt, a Wireguard-ból azóta pedig jelentek meg új verziók, ezért némileg frissítem a leírást is, egy kicsit talán egyszerűbb telepítési módszerrel.
Illetve így egy esetleges EdgeOS firmware update után sem kell újratelepítenünk semmit, és a konfgurációnk is megmarad.
Letöltjük a telepítő scriptet szintén a Github-ról, majd futtathatóvá tesszük:curl -sSL https://github.com/mafredri/vyatta-wireguard-installer/raw/master/wireguard.sh -o /config/scripts/post-config.d/wireguard.sh
chmod +x /config/scripts/post-config.d/wireguard.sh
Telepítsük a wireguard csomagot:cd /config/scripts/post-config.d/
./wireguard.sh install
A script az alábbi parancsokkal használható még:Commands:
check Check if there's a new version of WireGuard (without installing)
install Install the latest version of WireGuard
upgrade Upgrade WireGuard to the latest version
remove Remove WireGuard
self-update Fetch the latest version of this script
help Show this help
version Show the version of this tool
Options:
--no-cache Disable package caching, cache is used during (re)install
Hozzuk létre a /config/auth könyvtárban a kulcsokat, és a kliens konfigurációs fájlt is, amit majd az EdgeOS-re telepített qrencode csomaggal foguk szkennelhető QR-kódra alakítani.
Lássuk is akkor:cd /config/auth
wg genkey | tee wg_private.key | wg pubkey > wg_public.key
wg genkey | tee iphone8_private.key | wg pubkey > iphone8_public.key
Most telepítsük a routerre a qrencode, és a nano Debian csomagokat. (én a nano-t szeretem használni a könnyű kezelhetősége miatt, de természetesen bármilyen szövegszerkesztő megteszi)
Figyeljünk az EdgeOS verzióra!
Én v2.x-en vagyok, ezért a Stretch tárolóját használom, akik esetleg még v1.x-en, azoknak a Wheezy repo szükséges!
configure
set system package repository stretch components 'main contrib non-free'
set system package repository stretch distribution stretch
set system package repository stretch url http://http.us.debian.org/debian
commit; save
sudo apt-get update
FIGYELEM! Soha ne használjuk a apt-get upgrade
parancsot, mert megsérülhetnek az EdgeOS speciális Debian csomagjai, melynek következtében használhatatlan lesz a routerünk!
sudo apt-cache search qrencode
sudo apt-cache search nano
sudo apt-get install qrencode
sudo apt-get install nano
commit; save; exit
A kulcs fájlok tartalmát egy új terminál ablakban kilistáztam, igy egyszerűen másolhatóak majd:rekop@ubnt:/config/auth$ cat iphone8_public.key
5rOEAlYo6mSgtEw+uWAto4j2tkpztrfDU9FDQIL8Zlw0A=rekop@ubnt:/config/auth$ cat iphone8_private.key
iNz0P1SDpM3rB2RTGox+BwGFAJymTz4Kn1nlS+qjVw=rekop@ubnt:/config/auth$ cat wg_public.key
BLt4R6czXsuYtEOfbXlyXasa1q6kxASEW2RZ6DSg=
Elkészítjük a kliens konfigurációs fájlt a nano segítségével:rekop@ubnt:/config/auth$ nano wg_iphone8.conf
A tartalom pedig:[Interface]
PrivateKey = <az iphone8_private.key tartalma>
Address = 192.168.33.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = <a szerver wg_public.key tartalma>
Endpoint = <sajat dyndns >:51820
AllowedIPs = 0.0.0.0/0
Jöhet a QR-kód generálás, amit beolvasunk a telefonos wireguard app segítségével:rekop@ubnt:/config/auth$ qrencode -t ansiutf8 < wg_iphone8.conf
A wireguard interfész beállítása a routeren:configure
set interfaces wireguard wg0 address 192.168.33.1/24
set interfaces wireguard wg0 listen-port 51820
set interfaces wireguard wg0 route-allowed-ips true
set interfaces wireguard wg0 private-key /config/auth/wg_private.key
Majd hozzáadjuk a kliensünk public kulcsát az interfészfez:set interfaces wireguard wg0 peer <iphone8_public.key tartalma> allowed-ips 192.168.33.2/32
És végül a tűzfal szabályok létrehozásaset firewall name WAN_LOCAL rule 80 action accept
set firewall name WAN_LOCAL rule 80 description WireGuard
set firewall name WAN_LOCAL rule 80 destination port 51820
set firewall name WAN_LOCAL rule 80 protocol udp
commit; save; exit
Akár beállíthatunk automatikus frissítést is a cron segítségével.
Ehhez először létrehozunk egy scriptet wg_upgrade néven:nano /config/scripts/wg_upgrade
A tartalma pedig:#!/bin/vbash
/config/scripts/post-config.d/wireguard.sh upgrade
Futtathatóvá tesszük:chmod +x /config/scripts/wg_upgrade
Majd jöhet a scheduler beállítása, így öt naponta fog lefutni a script:configure
set system task-scheduler task wg_upgrade executable path /config/scripts/wg_upgrade
set system task-scheduler task wg_upgrade interval 5d
commit; save; exit