Në faktorë të ndryshëm, WireGuard lidhjes bërthamore të Linux 5.6, unë vendosa të shihja se si ta integroj këtë VPN më mirë me .
Pajisje
- Raspberry Pi 3 me një modul LTE dhe një IP publike. Këtu do të jetë serveri VPN (më poshtë do të quhet 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Ă«sinĂ« tĂ« lidhet me serverin web nĂ« laptop, nĂ«se tĂ« dy pajisjet janĂ« pjesĂ« e rrjetit VPN. NĂ«se konfigurimi del tĂ« jetĂ« i mjaftueshĂ«m i thjeshtĂ«, mund tĂ« mendohet pĂ«r lidhjen e desktopit me VPN (pĂ«rmes Ethernet).
Duke marrë parasysh se lidhjet me tela dhe pa tela bëhen gjithnjë e më pak të sigurta me kalimin e kohës (, dhe ), unë po mendoj seriozisht për përdorimin e WireGuard për të gjitha pajisjet e mia, pavarësisht se në cilin mjedis funksionojnë.
Instalimi i softuerit
WireGuard ofron për shumicën e distribuimeve të Linux, Windows dhe macOS. Aplikacionet për Android dhe iOS jepen përmes katalogjeve të aplikacioneve.
Kam Fedora Linux 31 më të fundit, dhe para se ta instaloja, u lenova të lexoj udhëzimin. Thjesht gjeta paketat wireguard-tools, i instalova ato, dhe pastaj nuk kisha idenë pse asgjë nuk funksiononte. Hulumtimi i mëtejshëm tregoi se nuk e kisha instaluar paketën wireguard-dkms (me drajverin e rrjetit), dhe nuk kishte në repositorin e distribucionit tim.
Po të kisha lexuar udhëzimin, do të kishim pasur hapat e duhur:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Në Raspberry Pi kam instaluar distribuimin Raspbian Buster, atje është paketa wireguard, e instalojmë atë:
$ sudo apt install wireguardNĂ« telefonin Android kam instaluar aplikacionin nga katalogu zyrtar Google App Store.
Instalimi i çelësave
Për autentifikimin e nyjeve, Wireguard përdor një skemë të thjeshtë të çelësave privatë/publikë për autentifikimin e nyjeve të VPN. Mund të krijoni lehtësisht çelësa VPN me komandën e mëposhtme:
$ 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ë). Nuk do t'i referohemi skedarëve në konfigurime, por do 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ë, unë krijova skedarin e mëposhtë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 përkatëse duhet të futen rreshtat nga skedarët me çelësa
- Rrjeti im VPN përdor një diapazon të brendshëm
10.200.200.0/24 - Për komandat
PostUp/PostDownkam shënuar interfacinë e jashtme të rrjetit wwan0, ndoshta ju do 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 DNS-server kam përdorur dnsmasq lidhur me interfacinë 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 interfacinë 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 ta vendosim fillimin automatike të tunelit VPN:
$ sudo systemctl enable wg-quick@wg0.serviceKonfigurimi i klientit në laptop
Në laptop krijoni skedarin e konfigurimit /etc/wireguard/wg0.conf me të njëjtat cilësime:
[Interface]
Address = 10.200.200.2/24
PrivateKey =
[Peer]
PublicKey =
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820Vërejtje:
- Në vend të edgewalker duhet të shënoni IP-në publike apo hostin e serverit VPN
- Duke vendosur
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-të e tjera/serverët do të vazhdojë të shkojë përmes kanaleve "të zakonshme" të hapura. Gjithashtu do të përdoret DNS-serveri i konfiguruar paraprakisht në laptop.
Për testimin dhe fillimin automatike përdorim të njëjtat komandat 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ë skedë konfigurimi shumë të ngjashme (të quajmë atë 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ë dallim nga konfigurimi në laptop, telefoni duhet të përdorë serverin tonë VPN si server DNS (rreshti DNS), si dhe të kalojë të gjithë trafikun përmes tunelit VPN (AllowedIPs = 0.0.0.0/0).
Në vend të kopjimit të skedës në pajisjen mobile, mund ta konvertojmë 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ë konfiguronte automatikisht tunelin VPN.
Përfundimi
Konfigurimi i WireGuard është magjepsës krahasuar me OpenVPN.
Burimi: habr.com
