Wireguard

Allikas: Kuutõrvaja
Redaktsioon seisuga 16. august 2018, kell 12:34 kasutajalt Aus (arutelu | kaastöö)

Wireguard (https://www.wireguard.com/) on VPN tarkvara, mis väidab ennast olevat hulga kiirem ja lihtsam kahest suuremast konkurendist IPSecist ja OpenVPNist. Vaatame siis.

Artikli kirjutamise hetkel (2018-08) on tegu veel muidugi "beeta" tarkvaraga. Artikkel on kirjutatud Alpine Linuxi näitel.

Tegu on point-to-point tunneliga (tun seadmega).

Eeldused

Vajalik on wireguard kerneli moodul.

Kaks otspunkti

seade A seade B
Seadme olemasolev IP 192.168.1.1 192.168.1.2
Tunneli IP 192.168.66.1 192.168.66.2

Veendu, et omavahel (olemasolevate) IPdega saad masinaid pingida.

Paigaldamine

Loo võrguseade

Alpine Linuxis on vaja lisada (kui juba pole) extra repository apk loetellu ja seejärel

apk update

ning

apk add wireguard-tools

Lisa uus seade, mille nimeks on wg0 ja tüüp wireguard

ip link add dev wg0 type wireguard

Lisa loodud seadmele võrguaadress olenevalt sellest, kas soovid ühes võrgus kasutada mitut seadet või ainult kahte

Mitme seadme ühendamiseks kasuta

ip address add dev wg0 192.168.66.1/24

Kahe seadme ühendamiseks

ip address add dev wg0 192.168.66.1 peer 192.168.66.2

(teise seadme puhul kasuta vastupidi aadresse)

Loo võtmed

wg utiliidiga on võimalik luua nii privaat- kui avalik võti korraga

wg genkey | tee privatekey | wg pubkey > publickey

Seadista loodud wg0 liides kuulama porti 48578 ning kasutama loodud privaatvõtit

wg set wg0 listen-port 48574 private-key ./privatekey

(teise seadme puhul kasuta teist porti)

Nüüd tee sama asi läbi teise seadme peal.

ip link add dev wg0 type wireguard
ip address add dev wg0 192.168.66.2 peer 192.168.66.1
wg genkey | tee privatekey | wg pubkey > publickey
wg set wg0 listen-port 39814 private-key ./privatekey

Seadista seadme A loodud wg0 liides aktsepteerima teise seadme avaliku võtit ja IPd.

wg set wg0 peer [seadme B avaliku võtmefaili sisu] persistent-keepalive 25 allowed-ips 192.168.66.2/32 endpoint 192.168.1.2:39814

Seadista seadme B loodud wg0 liides aktsepteerima esimese seadme avaliku võtit ja IPd.

wg set wg0 peer [seadme A avaliku võtmefaili sisu] persistent-keepalive 25 allowed-ips 192.168.66.1/32 endpoint 192.168.1.1:48574


Kontrolli seadistust

wg show

või

wg showconf wg0

Lõppeks tõsta wg0 liidesed üles mõlemas seadmes

ip link set wg0 up

Nüüd võiks seadmete vahel töötada ping ka wg0 liideste vahel:

seadmes A

root@juhtmekaitsja-1 /tmp # ping 192.168.66.2 -c 4
PING 192.168.66.2 (192.168.66.2): 56 data bytes
64 bytes from 192.168.66.2: seq=0 ttl=64 time=0.591 ms
64 bytes from 192.168.66.2: seq=1 ttl=64 time=0.682 ms
64 bytes from 192.168.66.2: seq=2 ttl=64 time=0.524 ms
64 bytes from 192.168.66.2: seq=3 ttl=64 time=0.517 ms

--- 192.168.66.2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.517/0.578/0.682 ms

Ja seadmes B

root@juhtmekaitsja-2 /tmp # ping 192.168.66.1 -c 4
PING 192.168.66.1 (192.168.66.1): 56 data bytes
64 bytes from 192.168.66.1: seq=0 ttl=64 time=0.962 ms
64 bytes from 192.168.66.1: seq=1 ttl=64 time=0.551 ms
64 bytes from 192.168.66.1: seq=2 ttl=64 time=0.542 ms
64 bytes from 192.168.66.1: seq=3 ttl=64 time=0.799 ms

--- 192.168.66.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.542/0.713/0.962 ms


Püsiv seadistus

Oluline on vastloodud seadistus teha püsivaks mõlemas seadmes:

wg showconf wg0 > /root/juhtmekaitsja-1.conf

ja teises

wg showconf wg0 > /root/juhtmekaitsja-2.conf

Seda on võimalik taastada käsuga

wg setconf wg0 /root/juhtmekaitsja-1.conf

Probleemid

DKMS module not available

If the following command does not list any module after you installed wireguard-dkms,

modprobe wireguard && lsmod | grep wireguard

or if creating a new link returns

# ip link add dev wg0 type wireguard

RTNETLINK answers: Operation not supported

you probably miss the linux headers.

These headers are available in linux-headers or linux-lts-headers depending of the kernel installed on your system.