Թարմացնում ենք պարզ VPN WireGuard-ով և Raspberry Pi-ով որպես սերվեր

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

Սարքավորումներ

  • Raspberry Pi 3, LTE մոդուլով և հանրային IP-հասեով։ Այստեղ կլինի VPN-սերվեր (սահմանի մեջ նա կոչվելու է edgewalker)
  • Android հեռախոս, որը պետք է օգտագործի VPN բոլոր հաղորդակցությունների համար
  • 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 = 
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/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 = 

[Peer]
PublicKey = 
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

Նշումներ:

  • edgewalker-ի փոխարեն պետք է նշել VPN սերվերի հանրային IP կամ հոսթը
  • AllowedIPs -ում , մենք օգտագործում ենք VPN միայն ներքին ցանցի հասանելիության համար։ Բոլոր մյուս IP- հասցեներ/սերվերների համար տրաֆիքը շարունակելու է անցնել «սովորական» բաց ալիքներով։ Նաեւ նոթբուքում կօգտագործվի նախնական կարգավորված DNS սերվերը: ըստ 10.200.200.0/24Թեստավորման և ավտոմատ սկսելու համար օգտագործում ենք նույն հրամանները

$ sudo wg-quick up wg0 $ sudo systemctl enable wg-quick@wg0.service wg-quick և systemd:

Android հեռախոսի հաճախորդի կարգավորումը

Android հեռախոս համար ստեղծում ենք շատ նման կոնֆիգուրացիոն ֆայլ (կոչենք այն

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):

Նվազիվ նոթբուքի կոնֆիգուրացիայից, հեռախոսը պետք է օգտագործի մեր VPN սերվերը 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-ի հետ։

Ամփոփում

TFC նախագիծը զարգացնում է պարոնիդալ պաշտպանված հաղորդակցության համակարգը

Ընտանիք: habr.com

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