Kwa sababu WireGuard
ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- 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 (
Ufungaji wa programu
WireGuard hutoa
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
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 ya10.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