Պարզ VPN-ի կարգավորում՝ օգտագործելով WireGuard և Raspberry Pi-ն որպես սերվեր

Հետո WireGuard մաս կդառնա ապագա միջուկ Linux 5.6, ես որոշեցի տեսնել, թե ինչպես լավագույնս ինտեգրել այս VPN-ը իմ LTE երթուղիչ/մուտքի կետ Raspberry Pi-ում.

սարքավորում

  • Raspberry Pi 3 LTE մոդուլով և հանրային IP հասցեով: Այստեղ կլինի VPN սերվեր (այսուհետ՝ եզրաքարշ)
  • Հեռախոսը միացված է Android, որը պետք է օգտագործի VPN բոլոր հաղորդակցությունների համար
  • Laptop Linux, որը պետք է օգտագործի VPN միայն ցանցի ներսում

Յուրաքանչյուր սարք, որը միանում է VPN-ին, պետք է կարողանա միանալ մյուս բոլոր սարքերին: Օրինակ, հեռախոսը պետք է կարողանա միանալ նոութբուքի վեբ սերվերին, եթե երկու սարքերը VPN ցանցի մաս են: Եթե ​​կարգավորումը բավականաչափ պարզ է, կարող եք մտածել ձեր աշխատասեղանը VPN-ին միացնելու մասին (Ethernet-ի միջոցով):

Հաշվի առնելով, որ լարային և անլար կապերը ժամանակի ընթացքում դառնում են ավելի քիչ անվտանգ (նպատակային հարձակումներ, KRACK հարձակումը WPA2-ը կոտրելու համար и Dragonblood հարձակումը WPA3-ի դեմ), ես լրջորեն մտածում եմ օգտագործելու մասին 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 Ես տեղադրեցի ծրագիրը WireGuard VPN 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.conf

QR կոդը կարտածվի կոնսոլին որպես ASCII: Այն կարելի է սկանավորել հավելվածից: Android VPN և ավտոմատ կերպով կարգավորել VPN թունելը։

Արտադրողականություն

հարմարեցում WireGuard պարզապես կախարդական՝ համեմատած OpenVPN.

Source: www.habr.com

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster