Od WireGuard buduća jezgra Linux 5.6, odlučio sam vidjeti kako najbolje integrirati ovaj VPN s mojim .
Оборудование
- Raspberry Pi 3 s LTE modulom i javnim IP-om. Postojat će VPN poslužitelj (u daljnjem tekstu hodač po rubu)
- Telefon uključen Android, koji mora koristiti VPN za svu komunikaciju
- bilježnica Linux, koji bi trebao koristiti VPN samo unutar mreže
Svaki uređaj koji se spaja na VPN mora se moći povezati sa svim drugim uređajima. Na primjer, telefon bi se trebao moći povezati s web poslužiteljem na prijenosnom računalu ako su oba uređaja dio VPN mreže. Ako je postavljanje dovoljno jednostavno, možete razmisliti o povezivanju na VPN i radnu površinu (preko Etherneta).
Uzimajući u obzir da žičane i bežične veze s vremenom postaju manje sigurne (, и ), ozbiljno razmišljam o korištenju WireGuard za sve moje uređaje, bez obzira u kakvom okruženju rade.
Instalacija softvera
WireGuard pruža za većinu distribucija Linux, Windows и macOSPrijave za Android i iOS se isporučuju putem trgovina aplikacija.
Imam najnoviju Fedoru Linux 31, a prije instalacije bio sam previše lijen da pročitam priručnik. Samo sam pronašao pakete. wireguard-tools, instalirao ih, a zatim nisam mogao shvatiti zašto ništa ne radi. Daljnja istraga otkrila je da nisam imao instaliran paket wireguard-dkms (s mrežnim upravljačkim programom), a nije ga bilo u repozitoriju moje distribucije.
Da sam pročitao upute, poduzeo bih prave korake:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools Imam distribuciju Raspbian Buster instaliranu na Raspberry Pi, već postoji paket wireguard, instalirajte ga:
$ sudo apt install wireguardNa telefonu Android Instalirao/la sam aplikaciju iz službenog kataloga Google App Storea.
Ugradnja ključeva
Za autentifikaciju čvorova Wireguard Koristi jednostavnu shemu privatnog/javnog ključa za autentifikaciju VPN čvorova. VPN ključeve možete jednostavno generirati sljedećom naredbom:
$ 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.keyTo nam daje tri para ključeva (šest datoteka). Nećemo se pozivati na datoteke u konfiguracijama, ali kopirajte sadržaj ovdje: svaki ključ je jedan redak u base64.
Stvaranje konfiguracijske datoteke za VPN poslužitelj (Raspberry Pi)
Konfiguracija je vrlo jednostavna, stvorio sam sljedeću datoteku /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/32Par napomena:
- Na odgovarajuća mjesta morate umetnuti retke iz datoteka s ključevima
- Moj VPN koristi interni domet
10.200.200.0/24 - Za timove
PostUp/PostDownImam vanjsko mrežno sučelje wwan0, vi možda imate neko drugo (na primjer, eth0)
VPN mreža se lako otvara sljedećom naredbom:
$ sudo wg-quick up wg0 Jedan mali detalj: kao DNS poslužitelj koristio sam dnsmasq spojen na mrežno sučelje br0, dodao sam i uređaje wg0 na popis dopuštenih uređaja. U dnsmasqu se to radi dodavanjem novog retka s mrežnim sučeljem konfiguracijskoj datoteci /etc/dnsmasq.conf, na primjer:
interface=br0
interface=wg0Također, dodao sam iptable pravilo za dopuštanje prometa na slušajući UDP port (51280):
$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPTSada kada sve radi, možemo registrirati automatsko pokretanje VPN tunela:
$ sudo systemctl enable wg-quick@wg0.serviceKonfiguracija klijenta prijenosnog računala
Na prijenosnom računalu izradite konfiguracijsku datoteku /etc/wireguard/wg0.conf s istim postavkama:
[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:51820Bilješke:
- Umjesto edgewalkera morate navesti javni IP ili VPN poslužitelj
- Postavljanjem
AllowedIPsna10.200.200.0/24, koristimo samo VPN za pristup internoj mreži. Promet prema svim ostalim IP adresama/poslužiteljima nastavit će ići kroz "redovne" otvorene kanale. Također će se koristiti unaprijed konfigurirani DNS poslužitelj na prijenosnom računalu.
Za testiranje i automatsko pokretanje koristimo iste naredbe wg-quick и systemd:
$ sudo wg-quick up wg0
$ sudo systemctl enable wg-quick@wg0.servicePostavljanje klijenta za Android-telefon
Za telefon Android Izrađujemo vrlo sličnu konfiguracijsku datoteku (nazovimo je 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 Za razliku od konfiguracije prijenosnog računala, telefon bi trebao koristiti naš VPN poslužitelj kao DNS poslužitelj (string DNS), kao i propuštati sav promet kroz VPN tunel (AllowedIPs = 0.0.0.0/0).
Umjesto kopiranja datoteke na mobilni uređaj, možete je pretvoriti u QR kod:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.confQR kod će se prikazati na konzoli kao ASCII. Može se skenirati iz aplikacije. Android VPN i automatski konfigurirati VPN tunel.
Izlaz
podešavanje WireGuard jednostavno čarobno u usporedbi s OpenVPN.
Izvor: www.habr.com
