Duke WireGuard të ardhmes së kernelit Linux 5.6, vendosa të shikoj se si ta integroj këtë VPN me .
Pajisjet
- Raspberry Pi 3 me modul LTE dhe një adresë IP publike. Këtu do të jetë një server VPN (do të quhet më poshtë edgewalker)
- Një telefon Android që duhet të përdorë VPN për të gjitha komunikimet
- Një laptop Linux që duhet të përdorë VPN vetëm brenda rrjetit
Ădo pajisje qĂ« lidhet me VPN, duhet tĂ« ketĂ« mundĂ«sinĂ« tĂ« lidhet me tĂ« gjitha pajisjet e tjera. PĂ«r shembull, telefoni duhet tĂ« ketĂ« mundĂ«si tĂ« lidhet me serverin web nĂ« laptop nĂ«se tĂ« dy pajisjet janĂ« pjesĂ« e rrjetit VPN. NĂ«se konfigurimi del mjaft i thjeshtĂ«, mund tĂ« mendohet pĂ«r lidhorjen e desktopit me VPN (pĂ«rmes Ethernet).
Duke pasur parasysh se lidhjet kabllore dhe të padukshme po bëhen gjithnjë e më pak të sigurta me kalimin e kohës (, dhe ), po e mendoj seriozisht mundësinë e përdorimit të WireGuard për të gjitha pajisjet e mia, pavarësisht nga mjedisi ku ato funksionojnë.
Instalimi i software-it
WireGuard ofron për shumicën e shpërndarjeve Linux, Windows dhe macOS. Aplikacionet për Android dhe iOS ofrohen përmes dyqaneve të aplikacioneve.
Kam Fedora Linux 31 të fundit, dhe para se të instaloj, isha lenë të lexoj manualin. Thjesht gjeta paketat wireguard-tools, i instalova ato, dhe më pas nuk mund të kuptoj se pse asgjë nuk punon. Hulumtimi më tej tregoi se nuk kam instaluar paketën wireguard-dkms (me driverin rrjetë), dhe nuk ishte në depozitën e shpërndarjes sime.
Nëse do të kisha lexuar udhëzimin, do të kisha bërë hapat e duhur:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Në Raspberry Pi, kam instalimin e shpërndarjes Raspbian Buster, aty e kemi paketën wireguard, dhe e instalojmë atë:
$ sudo apt install wireguardNĂ« telefonin Android instalova aplikacionin nga dyqani zyrtar i Google App Store.
Instalimi i çelësave
Për autentikimin e nyjeve, Wireguard përdor një skemë të thjeshtë çelësa të mbyllur/të hapur për autentikimin e nyjeve VPN. Mund të krijoni lehtë çelësa VPN me komandën në vijim:
$ wg genkey | tee wg-laptop-private.key | wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key | wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key | wg pubkey > wg-mobile-public.keyKjo na jep tre çifte çelësash (gjashtë skedarë). Të mos referohemi në skedarët në konfigurata, por të kopjojmë këtu përmbajtjen: çdo çelës është një rresht në base64.
Krijimi i skedarit të konfigurimit për serverin VPN (Raspberry Pi)
Konfigurimi është mjaft i thjeshtë, krijova këtë skedar të ardhshëm /etc/wireguard/wg0.conf:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey =
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE
[Peer]
# laptop
PublicKey =
AllowedIPs = 10.200.200.2/32
[Peer]
# mobile phone
PublicKey =
AllowedIPs = 10.200.200.3/32Disa vërejtje:
- Në vendet e përkatshme duhet të vendosen rreshtat nga skedarët me çelësa
- Rrjeti im VPN përdor një gamë të brendshme
10.200.200.0/24 - Për komandat
PostUp/PostDownkam specifikuar ndërfaqen e jashtme të rrjetit wwan0, mund të keni një tjetër (p.sh., eth0)
Rrjeti VPN ngrihet lehtësisht me komandën e mëposhtme:
$ sudo wg-quick up wg0 Një detaj i vogël: si server DNS kam përdorur dnsmasq me lidhje në ndërfaqen e rrjetit br0, gjithashtu kam shtuar pajisjet wg0 në listën e pajisjeve të lejuara. Në dnsmasq kjo bëhet duke shtuar një rresht të ri me ndërfaqen e rrjetit në skedarin e konfigurimit /etc/dnsmasq.conf, për shembull:
interface=br0
interface=wg0Për më tepër, kam shtuar një rregull iptable për të lejuar trafikun në portin UDP të dëgjimit (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTTani, kur gjithçka funksionon, mund të konfiguroni nisjen automatike të tunelit VPN:
$ sudo systemctl enable wg-quick@wg0.serviceKonfigurimi i klientit në laptop
Në laptop krijojmë skedarin e konfigurimit /etc/wireguard/wg0.conf me të njëjtat parametra:
[Interface]
Address = 10.200.200.2/24
PrivateKey =
[Peer]
PublicKey =
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820Shënime:
- Në vend të edgewalker duhet të specifikoni IP-në publike ose hostin e serverit VPN
- Duke instaluar
AllowedIPsnë10.200.200.0/24, ne përdorim VPN vetëm për qasje në rrjetin e brendshëm. Trafiku për të gjitha IP-adresat/servery të tjera do të vazhdojë të kalojë përmes kanaleve "të zakonshme" të hapura. Do të përdoret gjithashtu një DNS-server i paracaktuar në laptop.
Për testim dhe nisje automatike përdorim të njëjtat komanda wg-quick dhe systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceKonfigurimi i klientit në telefonin Android
Për telefonin Android krijojmë një skedar konfigurimi shumë të ngjashëm (ta quajmë mobile.conf):
[Interface]
Address = 10.200.200.3/24
PrivateKey =
DNS = 10.200.200.1
[Peer]
PublicKey =
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820 Në krahasim me konfigurimin në laptop, telefoni duhet të përdorë serverin VPN tonë si server DNS (rreshti DNS), si dhe të kalojë të gjithë trafikun përmes tunelit VPN (AllowedIPs = 0.0.0.0/0).
Në vend që të kopjoni skedarin në pajisjen mobile, mund ta konvertoni atë në një kod QR:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confKodi QR do të dalë në konsolë si ASCII. Ai mund të skanohet nga aplikacioni Android VPN dhe të konfigurojë automatikisht tunelin VPN.
Përfundim
Konfigurimi i WireGuard është thjesht magjik krahasuar me OpenVPN.
Burimi: habr.com
