Kuanzisha VPN rahisi na WireGuard na Raspberry Pi kama seva

Kwa sababu WireGuard itakuwa sehemu ya Linux kernel 5.6 inayokuja, niliamua kuona jinsi bora ya kuunganisha VPN hii na yangu Kipanga njia cha LTE/mahali pa kufikia kwenye Raspberry Pi.

ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

  • Raspberry Pi 3 iliyo na moduli ya LTE na anwani ya IP ya umma. Kutakuwa na seva ya VPN hapa (hapa katika maandishi inaitwa ukingo)
  • Simu ya Android ambayo lazima itumie VPN kwa mawasiliano yote
  • Laptop ya Linux ambayo inapaswa kutumia VPN ndani ya mtandao pekee

Kila kifaa kinachounganishwa kwenye VPN lazima kiwe na uwezo wa kuunganisha kwenye vifaa vingine vyote. Kwa mfano, simu inapaswa kuwa na uwezo wa kuunganisha kwenye seva ya wavuti kwenye kompyuta ya mkononi ikiwa vifaa vyote viwili ni sehemu ya mtandao wa VPN. Ikiwa usanidi unageuka kuwa rahisi sana, basi unaweza kufikiria juu ya kuunganisha desktop kwenye VPN (kupitia Ethernet).

Ikizingatiwa kuwa miunganisho ya waya na isiyo na waya inazidi kuwa salama kwa wakati (mashambulizi yaliyolengwa, Shambulio la kupasuka la CRACK WPA2 ΠΈ Shambulio la Dragonblood dhidi ya WPA3), ninazingatia sana kutumia WireGuard kwa vifaa vyangu vyote, haijalishi viko katika mazingira gani.

Ufungaji wa programu

WireGuard hutoa vifurushi vilivyotayarishwa awali kwa usambazaji mwingi wa Linux, Windows na macOS. Programu za Android na iOS hutolewa kupitia saraka za programu.

Nina Fedora Linux 31 ya hivi karibuni, na nilikuwa mvivu sana kusoma mwongozo kabla ya kusakinisha. Nimepata vifurushi wireguard-tools, aliziweka, na kisha hakuweza kujua ni kwa nini hakuna kitu kilikuwa kikifanya kazi. Uchunguzi zaidi ulibaini kuwa sina kifurushi kilichosanikishwa wireguard-dkms (na dereva wa mtandao), lakini haikuwa kwenye hazina ya usambazaji wangu.

Ikiwa ningesoma maagizo, ningechukua hatua sahihi:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

Nina usambazaji wa Raspbian Buster umewekwa kwenye Raspberry Pi yangu, tayari kuna kifurushi hapo wireguard, isakinishe:

$ sudo apt install wireguard

Kwenye simu yangu ya Android nilisakinisha programu WireGuardVPN kutoka kwa katalogi rasmi ya Google App Store.

Ufungaji wa funguo

Kwa uthibitishaji wa programu zingine, Wireguard hutumia mpango rahisi wa ufunguo wa faragha/umma ili kuthibitisha programu zingine za VPN. Unaweza kuunda funguo za VPN kwa urahisi kwa kutumia amri ifuatayo:

$ 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.key

Hii inatupa jozi tatu muhimu (faili sita). Wacha turejelee faili kwenye usanidi, lakini nakili yaliyomo hapa: kila ufunguo ni mstari mmoja katika base64.

Kuunda faili ya usanidi kwa seva ya VPN (Raspberry Pi)

Usanidi ni rahisi sana, niliunda faili ifuatayo /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
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 = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

Vidokezo kadhaa:

  • Katika maeneo sahihi unahitaji kuingiza mistari kutoka kwa faili na funguo
  • VPN yangu inatumia bendi ya ndani 10.200.200.0/24
  • Kwa timu PostUp/PostDown Nina kiolesura cha mtandao wa nje wwan0, unaweza kuwa na tofauti (kwa mfano, eth0)

Mtandao wa VPN unainuliwa kwa urahisi na amri ifuatayo:

$ sudo wg-quick up wg0

Maelezo moja ndogo: kama seva ya DNS niliyotumia dnsmasq imefungwa kwenye kiolesura cha mtandao br0, pia niliongeza vifaa wg0 kwenye orodha ya vifaa vinavyoruhusiwa. Katika dnsmasq hii inafanywa kwa kuongeza laini mpya ya kiolesura cha mtandao kwenye faili ya usanidi /etc/dnsmasq.conf, kwa mfano:

interface=br0
interface=wg0

Kwa kuongeza, niliongeza sheria iptable kuruhusu trafiki kwa bandari ya kusikiliza ya UDP (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Sasa kwa kuwa kila kitu kinafanya kazi, tunaweza kusanidi uzinduzi wa kiotomatiki wa handaki ya VPN:

$ sudo systemctl enable [email protected]

Usanidi wa mteja kwenye kompyuta ndogo

Unda faili ya usanidi kwenye kompyuta ndogo /etc/wireguard/wg0.conf na mipangilio sawa:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Notes:

  • Badala ya edgewalker unahitaji kutaja IP ya umma au seva ya VPN
  • Baada ya kusakinisha AllowedIPs juu ya 10.200.200.0/24, tunatumia VPN kufikia mtandao wa ndani pekee. Trafiki kwa anwani/seva zingine zote za IP itaendelea kupitia njia zilizo wazi za "kawaida". Pia itatumia seva ya DNS iliyosanidiwa awali kwenye kompyuta ya mkononi.

Kwa kupima na uzinduzi wa moja kwa moja tunatumia amri sawa wg-quick ΠΈ systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Kuanzisha mteja kwenye simu ya Android

Kwa simu ya Android tunaunda faili ya usanidi inayofanana sana (wacha tuiite mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

Tofauti na usanidi kwenye kompyuta ya mkononi, simu lazima itumie seva yetu ya VPN kama seva ya DNS (laini DNS), na pia kupitisha trafiki yote kupitia handaki ya VPN (AllowedIPs = 0.0.0.0/0).

Badala ya kunakili faili kwenye kifaa chako cha mkononi, unaweza kuibadilisha kuwa msimbo wa QR:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

Nambari ya QR itatoa kwa kiweko kama ASCII. Inaweza kuchanganuliwa kutoka kwa programu ya Android VPN na itasanidi kiotomatiki handaki ya VPN.

Pato

Kusanidi WireGuard ni kichawi tu ikilinganishwa na OpenVPN.

Chanzo: mapenzi.com

Kuongeza maoni