Քանի որ WireGuard
սարքավորում
- Raspberry Pi 3 LTE մոդուլով և հանրային IP-ով: Գործելու է VPN սերվեր (այսուհետ՝ եզրաքարշ)
- Android հեռախոս, որը պետք է օգտագործի VPN բոլոր հաղորդակցությունների համար
- Linux նոութբուք, որը պետք է VPN օգտագործի միայն ցանցի ներսում
Յուրաքանչյուր սարք, որը միանում է VPN-ին, պետք է կարողանա միանալ ցանկացած այլ սարքի: Օրինակ, հեռախոսը պետք է կարողանա միանալ նոութբուքի վեբ սերվերին, եթե երկու սարքերը VPN ցանցի մաս են: Եթե կարգավորումը բավականաչափ պարզ է, ապա կարող եք մտածել VPN-ին և աշխատասեղանին միանալու մասին (Ethernet-ի միջոցով):
Հաշվի առնելով, որ լարային և անլար կապերը ժամանակի ընթացքում դառնում են ավելի քիչ անվտանգ (
Ծրագրաշարի տեղադրում
WireGuard-ն ապահովում է
Ես ունեմ վերջին 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 հանգույցները նույնականացնելու համար: Դուք կարող եք հեշտությամբ ստեղծել 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 [email protected]
Նոթբուքի հաճախորդի կոնֆիգուրացիա
Նոթբուքի վրա ստեղծեք կազմաձևման ֆայլ /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-ի փոխարեն դուք պետք է նշեք հանրային IP կամ VPN սերվերի հոսթ
- Կարգավորելով
AllowedIPs
մասին10.200.200.0/24
, մենք օգտագործում ենք միայն VPN՝ ներքին ցանց մուտք գործելու համար։ Մյուս բոլոր IP հասցեների/սերվերների երթևեկությունը կշարունակվի անցնել «կանոնավոր» բաց ալիքներով: Կօգտագործվի նաև նոութբուքի նախապես կազմաձևված DNS սերվերը:
Փորձարկման և ավտոմատ գործարկման համար մենք օգտագործում ենք նույն հրամանները wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Հաճախորդի կարգավորում 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 սերվեր (string 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