Od WireGuarda
Оборудование
- Raspberry Pi 3 s LTE modulom i javnim IP-om. Postojat će VPN poslužitelj (u daljnjem tekstu hodač po rubu)
- Android telefon koji mora koristiti VPN za svu komunikaciju
- Linux prijenosno računalo koje treba 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 (
Instalacija softvera
WireGuard pruža
Imam najnoviji Fedora Linux 31 i bio sam previše lijen da pročitam priručnik prije instalacije. Upravo 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 wireguard
Instalirao sam aplikaciju na svom android telefonu
Ugradnja ključeva
Za provjeru autentičnosti čvorova, Wireguard koristi jednostavnu shemu privatnog/javnog ključa za provjeru autentičnosti VPN čvorova. Možete jednostavno izraditi VPN ključeve 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.key
To 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/32
Par 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
/PostDown
Imam 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=wg0
Takođ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 ACCEPT
Sada kada sve radi, možemo registrirati automatsko pokretanje VPN tunela:
$ sudo systemctl enable [email protected]
Konfiguracija 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:51820
Bilješke:
- Umjesto edgewalkera morate navesti javni IP ili VPN poslužitelj
- Postavljanjem
AllowedIPs
na10.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 [email protected]
Postavljanje klijenta na Android telefonu
Za Android telefon stvaramo 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.conf
QR kod će biti ispisan na konzoli kao ASCII. Može se skenirati iz Android VPN aplikacije i automatski postaviti VPN tunel.
Izlaz
Postavljanje WireGuarda jednostavno je čarobno u usporedbi s OpenVPN-om.
Izvor: www.habr.com