Alates WireGuardist
Оборудование
- Raspberry Pi 3 LTE mooduli ja avaliku IP-ga. Seal on VPN-server (edaspidi kui servakõndija)
- Android-telefon, mis peab kasutama kogu suhtluse jaoks VPN-i
- Linuxi sülearvuti, mis peab VPN-i kasutama ainult võrgu sees
Iga VPN-iga ühenduse loov seade peab saama ühenduse luua kõigi teiste seadmetega. Näiteks peaks telefon suutma ühenduda sülearvuti veebiserveriga, kui mõlemad seadmed kuuluvad VPN-võrku. Kui seadistamine on piisavalt lihtne, võite mõelda VPN-i ja töölauaga ühenduse loomisele (Etherneti kaudu).
Arvestades, et juhtmega ja traadita ühendused muutuvad aja jooksul vähem turvaliseks (
Tarkvara installimine
WireGuard pakub
Mul on uusim Fedora Linux 31 ja olin liiga laisk, et enne installimist juhendit lugeda. Just leidsin pakid wireguard-tools
, installis need ja ei saanud siis aru, miks miski ei tööta. Edasine uurimine näitas, et mul polnud paketti installitud wireguard-dkms
(võrgudraiveriga) ja seda ei olnud minu levitamise hoidlas.
Kui ma oleksin juhiseid lugenud, oleksin astunud õigeid samme:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
Minu Raspberry Pi-le on installitud Raspbian Busteri distributsioon, pakett on juba olemas wireguard
, installige see:
$ sudo apt install wireguard
Installisin rakenduse oma Android-telefoni
Võtmete paigaldamine
Sõlmede autentimiseks kasutab Wireguard VPN-sõlmede autentimiseks lihtsat privaat-/avaliku võtme skeemi. VPN-võtmeid saate hõlpsasti luua järgmise käsuga:
$ 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
See annab meile kolm võtmepaari (kuus faili). Me ei viita konfiguratsioonides failidele, vaid kopeerime sisu siia: iga võti on base64-s üks rida.
VPN-serveri konfiguratsioonifaili loomine (Raspberry Pi)
Seadistamine on üsna lihtne, lõin järgmise faili /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
Paar märkust:
- Sobivatesse kohtadesse tuleb klahvidega failidest read sisestada
- Minu VPN kasutab sisemist leviala
10.200.200.0/24
- Meeskondade jaoks
PostUp
/PostDown
Mul on väline võrguliides wwan0, teil võib olla mõni muu (näiteks eth0)
VPN-võrku saab hõlpsasti avada järgmise käsuga:
$ sudo wg-quick up wg0
Üks väike detail: DNS-serverina kasutasin dnsmasq
ühendatud võrguliidesega br0
, lisasin ka seadmed wg0
lubatud seadmete loendisse. Dnsmasqis tehakse seda konfiguratsioonifaili uue võrguliidese rea lisamisega /etc/dnsmasq.conf
, näiteks:
interface=br0
interface=wg0
Samuti lisasin iptable reegli, et lubada liiklust kuulava UDP-porti (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Nüüd, kui kõik töötab, saame registreerida VPN-tunneli automaatse käivitamise:
$ sudo systemctl enable [email protected]
Sülearvuti kliendi konfiguratsioon
Looge sülearvutis konfiguratsioonifail /etc/wireguard/wg0.conf
samade seadistustega:
[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
Märkused:
- Edgewalkeri asemel peate määrama avaliku IP- või VPN-serveri hosti
- Seadistades
AllowedIPs
edasi10.200.200.0/24
, kasutame sisevõrgule juurdepääsuks ainult VPN-i. Liiklus kõikidele teistele IP-aadressidele/serveritele jätkub "tavaliste" avatud kanalite kaudu. Kasutatakse ka sülearvuti eelkonfigureeritud DNS-serverit.
Testimiseks ja automaatseks käivitamiseks kasutame samu käske wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Kliendi seadistamine Android-telefonis
Android-telefoni jaoks loome väga sarnase konfiguratsioonifaili (nimetagem seda 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
Erinevalt sülearvuti konfiguratsioonist peaks telefon DNS-serverina kasutama meie VPN-serverit (string DNS
), samuti kogu liiklus läbi VPN-tunneli (AllowedIPs = 0.0.0.0/0
).
Faili mobiilseadmesse kopeerimise asemel saate selle QR-koodiks teisendada.
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
QR-kood väljastatakse konsooli ASCII-vormingus. Seda saab skannida Android VPN-i rakendusest ja seadistada automaatselt VPN-tunneli.
Väljund
WireGuardi seadistamine on OpenVPN-iga võrreldes lihtsalt maagiline.
Allikas: www.habr.com