Հետո WireGuard ապագա միջուկ Linux 5.6, ես որոշեցի տեսնել, թե ինչպես լավագույնս ինտեգրել այս VPN-ը իմ .
սարքավորում
- Raspberry Pi 3 LTE մոդուլով և հանրային IP հասցեով: Այստեղ կլինի VPN սերվեր (այսուհետ՝ եզրաքարշ)
- Հեռախոսը միացված է Android, որը պետք է օգտագործի VPN բոլոր հաղորդակցությունների համար
- Laptop Linux, որը պետք է օգտագործի VPN միայն ցանցի ներսում
Յուրաքանչյուր սարք, որը միանում է VPN-ին, պետք է կարողանա միանալ մյուս բոլոր սարքերին: Օրինակ, հեռախոսը պետք է կարողանա միանալ նոութբուքի վեբ սերվերին, եթե երկու սարքերը VPN ցանցի մաս են: Եթե կարգավորումը բավականաչափ պարզ է, կարող եք մտածել ձեր աշխատասեղանը VPN-ին միացնելու մասին (Ethernet-ի միջոցով):
Հաշվի առնելով, որ լարային և անլար կապերը ժամանակի ընթացքում դառնում են ավելի քիչ անվտանգ (, и ), ես լրջորեն մտածում եմ օգտագործելու մասին WireGuard իմ բոլոր սարքերի համար, անկախ նրանից, թե ինչ միջավայրում են դրանք աշխատում։
Ծրագրաշարի տեղադրում
WireGuard տրամադրում է բաշխումների մեծ մասի համար Linux, Windows и macOSԴիմումներ Android և iOS-ը մատակարարվում են հավելվածների խանութների միջոցով։
Ես ունեմ Fedora-ի վերջին տարբերակը Linux 31, և տեղադրելուց առաջ ես շատ ծույլ էի ձեռնարկը կարդալու համար։ Ես հենց նոր գտա փաթեթները։ wireguard-tools, տեղադրեց դրանք, և հետո չկարողացավ հասկանալ, թե ինչու ոչինչ չի աշխատում: Հետագա հետաքննությունը պարզեց, որ փաթեթը տեղադրած չեմ եղել: wireguard-dkms (ցանցի դրայվերով), բայց դա իմ բաշխման պահոցում չէր:
Եթե ես կարդացած լինեի հրահանգները, ես ճիշտ քայլեր կանեի.
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Իմ Raspberry Pi-ի վրա ես տեղադրել եմ Raspbian Buster բաշխումը, արդեն փաթեթ կա wireguard, տեղադրում ենք՝
$ sudo apt install wireguardՀեռախոսով Android Ես տեղադրեցի ծրագիրը Google App Store-ի պաշտոնական կատալոգից:
Բանալիների տեղադրում
Հանգույցները նույնականացնելու համար Wireguard VPN հանգույցները նույնականացնելու համար օգտագործում է պարզ մասնավոր/հանրային բանալիների սխեմա։ Դուք կարող եք հեշտությամբ ստեղծել VPN բանալիներ հետևյալ հրամանով.
$ 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Սա մեզ տալիս է երեք հիմնական զույգ (վեց ֆայլ): Մենք չենք անդրադառնա կոնֆիգուրացիաների ֆայլերին, այլ պատճենենք բովանդակությունը այստեղ. յուրաքանչյուր բանալին մեկ տող է base64-ում:
VPN սերվերի համար կազմաձևման ֆայլի ստեղծում (Raspberry Pi)
Կազմաձևը բավականին պարզ է, ես ստեղծել եմ հետևյալ ֆայլը /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Մի երկու մեկնաբանություն.
- Անհրաժեշտ է բանալիներով ֆայլերից տողեր տեղադրել համապատասխան տեղերում
- Իմ VPN-ն օգտագործում է ներքին տիրույթ
10.200.200.0/24 - Թիմերի համար
PostUp/PostDownԵս նշել եմ wwan0 ցանցի արտաքին ինտերֆեյսը, դուք կարող եք ունենալ մեկ այլ (օրինակ, eth0)
VPN ցանցը հեշտությամբ կարելի է կարգավորել հետևյալ հրամանով.
$ sudo wg-quick up wg0 Մի փոքր մանրամասն. որպես DNS սերվեր ես օգտագործել եմ dnsmasq ցանցային ինտերֆեյսի կապով br0, ավելացրել եմ նաև սարքեր wg0 թույլատրված սարքերի ցանկին: dnsmasq-ում դա արվում է՝ կոնֆիգուրացիայի ֆայլին ցանցային միջերեսով նոր տող ավելացնելով /etc/dnsmasq.conf, օրինակ `
interface=br0
interface=wg0Ես նաև ավելացրեցի iptable կանոն, որը թույլ կտա երթևեկությունը դեպի լսողական UDP պորտ (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTԱյժմ, երբ ամեն ինչ աշխատում է, մենք կարող ենք կարգավորել VPN թունելի ավտոմատ գործարկումը.
$ sudo systemctl enable wg-quick@wg0.serviceՀաճախորդի կազմաձևումը նոութբուքի վրա
Նոթբուքի վրա մենք ստեղծում ենք կազմաձևման ֆայլ /etc/wireguard/wg0.conf նույն պարամետրերով.
[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Ծանուցում:
- Edgewalker-ի փոխարեն դուք պետք է նշեք VPN սերվերի հանրային IP-ն կամ հոսթը
- Տեղադրվելով
AllowedIPsմասին10.200.200.0/24, մենք օգտագործում ենք VPN միայն ներքին ցանց մուտք գործելու համար։ Մյուս բոլոր IP հասցեների/սերվերների երթևեկությունը կշարունակվի անցնել «սովորական» բաց ալիքներով: Կօգտագործվի նաև նոութբուքի վրա նախապես կազմաձևված DNS սերվեր:
Փորձարկման և ավտոմատ գործարկման համար մենք օգտագործում ենք նույն հրամանները wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.serviceՀաճախորդի կարգավորումը Android-հեռախոս
Հեռախոսի համար Android Մենք ստեղծում ենք շատ նման կոնֆիգուրացիայի ֆայլ (անվանենք այն 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 Ի տարբերություն նոութբուքի կոնֆիգուրացիայի, հեռախոսը պետք է օգտագործի մեր VPN սերվերը որպես DNS սերվեր (տող DNS), ինչպես նաև ամբողջ երթևեկությունն անցկացրեք VPN թունելի միջով (AllowedIPs = 0.0.0.0/0).
Ֆայլը ձեր բջջային սարքում պատճենելու փոխարեն կարող եք այն վերածել QR կոդի.
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confQR կոդը կարտածվի կոնսոլին որպես ASCII: Այն կարելի է սկանավորել հավելվածից: Android VPN և ավտոմատ կերպով կարգավորել VPN թունելը։
Արտադրողականություն
հարմարեցում WireGuard պարզապես կախարդական՝ համեմատած OpenVPN.
Source: www.habr.com
