WireGuard - Linux üçin çalt, döwrebap we ygtybarly VPN tuneli


WireGuard, häzirki zaman kriptografiýasyny ulanýan häzirki zaman, ygtybarly, platforma we umumy maksatly VPN durmuşa geçirişidir. IPsec-den has çalt, has ýönekeý, has ýumşak we has işlemegi maksat edinýär we OpenVPN-den has öndürijilikli bolmagy maksat edinýär.

Dürli ýagdaýlarda ulanmak üçin niýetlenendir we oturdylan interfeýslere, doly ýüklenen oňurga marşrutizatorlaryna we superkompýuterlere ýerleşdirilip bilner; we Linux, Windows, macOS, BSD, iOS we Android operasiýa ulgamlarynda işleýär.

Maslahat berilýän oka: Ömürboýy abuna ýazylan 13 sany iň gowy VPN hyzmaty

Sönekeý, SSH ýaly düzmek we ýerleşdirmek aňsat bolmagy maksat edinýän gaty esasy, ýöne güýçli interfeýsi hödürleýär. Onuň esasy aýratynlyklary ýönekeý tor interfeýsini, kripto açar marşruty, içerki rouming we konteýner goldawyny öz içine alýar.

Writingazan wagtyňyzda agyr ösüşiň bardygyny ýadyňyzdan çykarmaň: käbir bölekleri durnukly 1.0 goýberilişine tarap işleýär, beýlekileri eýýäm bar (gowy işleýär).

Bu makalada iki Linux öý eýesiniň arasynda VPN tuneli döretmek üçin Linux-da WireGuard-y nädip gurmalydygyny we sazlamalydygyny öwrenersiňiz.

Bu gollanma üçin gurnama (host ady we umumy IP) aşakdaky ýaly:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Linux paýlamalarynda WireGuard-y nädip gurmaly

Iki düwüniňize giriň we Linux paýlamalaryňyz üçin aşakdaky degişli buýrugy ulanyp, WireGuard guruň.

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools
$ sudo yum install epel-release
$ sudo yum config-manager --set-enabled PowerTools
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools
$ sudo dnf install wireguard-tools
# echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
# printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
# apt update
# apt install wireguard
$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard
$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
$ sudo zypper install wireguard-kmp-default wireguard-tools

Iki Linux öý eýesiniň arasynda WireGuard VPN tunelini düzmek

Iki düwünde gorag goragçysy gutaransoň, düwünleriňizi täzeden açyp bilersiňiz ýa-da iki düwünde aşakdaky buýrugy ulanyp, Linux ýadrosyndan gorag modulyny goşup bilersiňiz.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Ondan soň, görkezilişi ýaly iki düwünde wg kömekçi programmasyny ulanyp, esasy 64 kodlanan jemgyýetçilik we şahsy düwmeleri dörediň.

---------- On Node 1 ---------- 
$ umask 077
$ wg genkey >private_appserver1

---------- On Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1

Ondan soň, aşakda görkezilişi ýaly deň-duşlarynda wiregaurd üçin tor interfeýsini döretmeli (meselem wg0). Soňra döredilen täze ulgam interfeýsine IP adresleri belläň (bu gollanma üçin 192.168.10.0/24 tory ulanarys).

---------- On Node 1 ---------- 
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.2/24 dev wg0

Deňdeşlerdäki birikdirilen tor interfeýslerini we olaryň IP adreslerini görmek üçin aşakdaky IP buýrugyny ulanyň.

$ ip ad

Ondan soň, her deň-duş üçin şahsy açary wg0 tor interfeýsine belläň we görkezilişi ýaly interfeýsi getiriň.

---------- On Node 1 ---------- 
$ sudo wg set wg0 private-key ./private_appserver1
$ sudo ip link set wg0 up

---------- On Node 2 ----------
$ sudo wg set wg0 private-key ./private_dbserver1
$ sudo ip link set wg0 up

Indi iki baglanyşyk hem biri bilen baglanyşykly şahsy açarlar bilen ýokary bolansoň, deň-duşlardaky WireGuard interfeýsleriniň konfigurasiýasyny almak üçin hiç hili delilsiz wg programmasyny işlediň. Soňra goragçy VPN tunelini aşakdaky ýaly dörediň.

Deňdeş (açyk açar), rugsat berlen ips (tor/subnet maskasy) we ahyrky nokady (köpçülige açyk ip: port) ters deňdir.

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
$ sudo wg
$ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
$ sudo wg
$ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930

Linux ulgamlarynyň arasynda WireGuard VPN tunelini barlamak

Goragçy VPN tuneli döredilenden soň, goragçy tor interfeýsiniň adresini ulanyp, garşydaş deňdeşini basyň. Soňra görkezilişi ýaly deň-duşlaryň arasynda el çarpyşmany tassyklamak üçin wg programmasyny ýene bir gezek işlediň.

---------- On Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg

Häzirlikçe! “WireGuard” häzirki zaman, ygtybarly, ýönekeý, ýöne güýçli we geljege aňsat VPN çözgüdi. Ol agyr ösüşe eýe bolup, dowam etdirilýär. Esasanam içerki içerki işler we beýleki konfigurasiýa opsiýalary barada has giňişleýin maglumat alyp bilersiňiz, WireGuard baş sahypasyndan.