Od WireGuarda
Oprema
- Raspberry Pi 3 sa LTE modulom i javnim IP-om. Postojaće VPN server (u daljem tekstu edgewalker)
- Android telefon koji mora koristiti VPN za sve komunikacije
- Linux laptop koji treba da koristi VPN samo unutar mreže
Svaki uređaj koji se povezuje na VPN mora biti u mogućnosti da se poveže sa svakim drugim uređajem. Na primjer, telefon bi trebao biti u mogućnosti da se poveže na web server na laptopu ako su oba uređaja dio VPN mreže. Ako je podešavanje dovoljno jednostavno, onda možete razmišljati o povezivanju na VPN i desktop (preko Etherneta).
S obzirom da žičane i bežične veze vremenom postaju sve manje sigurne (
Instalacija softvera
WireGuard pruža
Imam najnoviji Fedora Linux 31 i bio sam previše lijen da pročitam priručnik prije instaliranja. Upravo sam našao pakete wireguard-tools
, instalirao ih, a onda nisam mogao shvatiti zašto ništa ne radi. Dalja istraga je pokazala da nisam instalirao paket wireguard-dkms
(sa mrežnim drajverom), a nije ga bilo u spremištu moje distribucije.
Da sam pročitao uputstva, preduzeo bih prave korake:
$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools
Imam instaliranu Raspbian Buster distribuciju na svom Raspberry Pi, već postoji paket wireguard
, instalirajte ga:
$ sudo apt install wireguard
Instalirao sam aplikaciju na svoj android telefon
Instaliranje ključeva
Za autentifikaciju čvorova, Wireguard koristi jednostavnu šemu privatnog/javnog ključa za provjeru autentičnosti VPN čvorova. Možete jednostavno kreirati VPN ključeve sa 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
Ovo nam daje tri para ključeva (šest fajlova). Nećemo se pozivati na datoteke u konfiguracijama, ali kopirajte sadržaj ovdje: svaki ključ je jedan red u base64.
Kreiranje konfiguracijske datoteke za VPN server (Raspberry Pi)
Konfiguracija je prilično jednostavna, kreirao sam sljedeći fajl /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 trebate umetnuti linije iz datoteka sa ključevima
- Moj VPN koristi interni domet
10.200.200.0/24
- Za timove
PostUp
/PostDown
Imam eksterno mrežno sučelje wwan0, vi možda imate drugi (na primjer, eth0)
VPN mreža se lako pokreće sljedećom naredbom:
$ sudo wg-quick up wg0
Jedan mali detalj: koristio sam kao DNS server dnsmasq
povezan na mrežni interfejs br0
, dodao sam i uređaje wg0
na listu dozvoljenih uređaja. U dnsmasq-u, ovo se radi dodavanjem nove linije sa mrežnim interfejsom u konfiguracioni fajl /etc/dnsmasq.conf
, na primjer:
interface=br0
interface=wg0
Takođe, dodao sam iptable pravilo da dozvoli saobraćaj na UDP port za slušanje (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 za laptop
Na laptopu kreirajte konfiguracionu datoteku /etc/wireguard/wg0.conf
sa 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
Napomene:
- Umjesto edgewalker-a, trebate navesti javni IP ili VPN server host
- Postavljanjem
AllowedIPs
na10.200.200.0/24
, koristimo samo VPN za pristup internoj mreži. Saobraćaj ka svim ostalim IP adresama/serverima će i dalje ići kroz "obične" otvorene kanale. Koristiće se i unapred konfigurisani DNS server na laptopu.
Za testiranje i automatsko pokretanje koristimo iste komande wg-quick
и systemd
:
$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]
Podešavanje klijenta na Android telefonu
Za Android telefon kreiramo vrlo sličan konfiguracijski fajl (nazovimo ga 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 laptopa, telefon bi trebao koristiti naš VPN server kao svoj DNS server (string DNS
), kao i proći sav promet kroz VPN tunel (AllowedIPs = 0.0.0.0/0
).
Umjesto kopiranja datoteke na svoj mobilni uređaj, možete je pretvoriti u QR kod:
$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf
QR kod će biti izlaz na konzolu kao ASCII. Može se skenirati iz Android VPN aplikacije i automatski postaviti VPN tunel.
zaključak
Postavljanje WireGuarda je jednostavno magično u poređenju sa OpenVPN-om.
izvor: www.habr.com