Kako besplatno postaviti VPN poslužitelj kod kuće

U ovom članku vodit ću vas, korak po korak, kroz postupak postavljanja WireGuard VPN-a na Linux poslužitelju. Omogućit će vam pristup sigurnim internetskim resursima s nesigurnih mjesta poput kafića.

Ali zašto VPN? A zašto WireGuard?

Kad god se s udaljenog mjesta povežete na, recimo, web mjesto svoje banke, riskirate izlaganje lozinke i drugih osjetljivih podataka svima koji slušaju na mreži.

Nadamo se da će, naravno, sama web stranica banke biti šifrirana, što znači da će ključni podaci koji teku između banke i vašeg računala ili pametnog telefona biti nečitljivi svima koji usput slušaju.

A što ako se povezujete iz kuće ili iz ureda? S VPN-om možete biti razumno sigurni da one elemente podataka koji nisu prikriveni redovitim šifriranjem neće vidjeti pogrešni ljudi.

Ali što ako se povezujete putem javnog WiFi usmjerivača u zračnoj luci ili kafiću? Jeste li sigurni da mreža nije ugrožena ili da nema hakera koji neprimjetno gledaju?

Da biste se suprotstavili ovoj vrlo stvarnoj prijetnji, možete na prijenosnom računalu ili telefonu otvoriti vezu s VPN poslužiteljem. Na taj se način svi vaši prijenosi podataka odvijaju kroz virtualni tunel. Svaki dio vaših osjetljivih veza bit će nevidljiv svima u lokalnoj mreži s koje se povezujete.

WireGuard je najnoviji od tri velika igrača u svijetu otvorenog koda VPN-a, dok su druga dva IPsec i OpenVPN.

WireGuard je napravljen da bude jednostavniji, brži i fleksibilniji od ostalih. To je novo dijete u bloku, ali brzo je pokupilo neke važne prijatelje. Na nagovor samog tvorca Linuxa Linusa Torvaldsa, WireGuard je nedavno ugrađen u Linux jezgru.

Gdje izgraditi svoj VPN poslužitelj?

Svakako, uvijek možete sastaviti VPN poslužitelj kod kuće i konfigurirati prosljeđivanje porta putem usmjerivača vašeg ISP-a. Ali često će imati praktičniji smisao pokretati ga u oblaku.

Ne brinite. Uvjeravam vas da će ovaj način biti puno bliži brzoj i bezbolnoj konfiguraciji "postavi i zaboravi". I malo je vjerojatno da će sve što napravite kod kuće biti jednako pouzdano - ili sigurno - kao infrastruktura koju pružaju veliki dobavljači oblaka poput AWS-a.

Međutim, ako slučajno imate profesionalno osiguran internetski poslužitelj koji leži oko kuće (ili ste spremni riskirati s rezervnim Raspberry Pi-om koji imate oko sebe), tada će to raditi otprilike na isti način.

Zahvaljujući WireGuardu, bilo u oblaku ili na fizičkom poslužitelju, izrada vlastitog kućnog VPN-a nikada nije bila lakša. Cjelokupno postavljanje može se obaviti za pola sata.

Spremiti se

Instalirajte i pokrenite instancu oblaka, možda koristeći tutorial odavde.

Provjerite je li port 51820 otvoren za vaš poslužitelj. To se radi sa sigurnosnim grupama na AWS-u i vatrozidom VPC mreže na Google Cloudu.

Uz moderna izdanja Debian / Ubuntu, Wireguard je dostupan za instaliranje iz upravitelja paketa poput ovog:

sudo apt install wireguard 

Ili s yumom, iz spremišta EPEL:

sudo yum install kmod-wireguard wireguard-tools 

Prvi korak: stvorite ključeve za šifriranje

U bilo kojem direktoriju na poslužitelju gdje želite stvoriti datoteke koje sadrže javni i privatni ključ, upotrijebite ovu naredbu:

umask 077; wg genkey | tee privatekey | wg pubkey > publickey 

Učinite isto za klijenta u drugom direktoriju ili na vašem lokalnom računalu. Samo pazite da ćete kasnije moći razlikovati različite skupove tipki.

Za brzo postavljanje možete koristiti mrežni generator ključeva. Međutim, predlažem da to učinite prvi put ručno. Svakako provjerite jesu li datoteke stvorene s raspršenim ključevima jer ćete ih koristiti u sljedećem koraku.

Drugi korak: stvorite konfiguraciju poslužitelja

U direktoriju / etc / wireguard morate napraviti .conf datoteku. Možete čak istovremeno pokretati više VPN-ova koristeći različite priključke.

U novu datoteku zalijepite sljedeći kod:

sudo nano /etc/wireguard/wg0.conf 
[Interface] Address = 10.0.0.1/24 ListenPort = 51820 # use the server PrivateKey PrivateKey = GPAtRSECRETLONGPRIVATEKEYB0J/GDbNQg6V0s= # you can have as many peers as you wish # remember to replace the values below with the PublicKey of the peer [Peer] PublicKey = NwsVexamples4sBURwFl6HVchellou6o63r2B0s= AllowedIPs = 10.0.0.2/32 [Peer] PublicKey = NwsexampleNbw+s4sBnotFl6HrealxExu6o63r2B0s= AllowedIPs = 10.0.0.3/32 

Pokrenite VPN

sudo systemctl start [email protected] 

Ako nemate systemd (što bi moglo biti točno ako vaša instanca radi na Amazonu Linux), mogli biste koristiti sudo wg-quick up wg0.

Treći korak: izradite konfiguraciju klijenta

Prvo instalirajte Wireguard na svoj klijentski stroj, na isti način na Linuxu ili putem trgovine aplikacija ako koristite Windows, MacOS, Android ili iPhone.

Ako ste u prvom koraku koristili mrežni generator ključa ili QR skriptu, tada možete povezati telefon fotografiranjem QR koda.

Jednom kada je WireGuard instaliran na klijentu, konfigurirajte ga pomoću ovih vrijednosti:

# Replace the PrivateKey value with the one from your client interface [Interface] Address = 10.0.0.2/24 ListenPort = 51820 PrivateKey = CNNjIexAmple4A6NMkrDt4iyKeYD1BxSstzer49b8EI= #use the VPN server's PublicKey and the Endpoint IP of the cloud instance [Peer] PublicKey = WbdIAnOTher1208Uwu9P17ckEYxI1OFAPZ8Ftu9kRQw= AllowedIPs = 0.0.0.0/0 Endpoint = 34.69.57.99:51820 

Postoji mnogo neobaveznih dodataka koje biste mogli poželjeti, ovisno o slučaju upotrebe, poput navođenja DNS-a ili unaprijed podijeljenih ključeva za dodatni sloj sigurnosti.

Pokrenite klijenta na isti način kao i poslužitelj ako ste na Linuxu ili putem same aplikacije na drugim sustavima.

Testirajte svoj VPN

Type "my ip" in your browser to discover your public IP address. If the IP you get is different from the address your computer had before starting the VPN, then you were successful!

(And if you forgot what it was before, try sudo systemctl stop [email protected], checking and starting it again.)

Troubleshooting Guide

Make sure your server is configured for IP forwarding. Check the /etc/sysctl.conf file, or run:

echo 1 > /proc/sys/net/ipv4/ip_forward 

Your connection dies often? Add this to the peer section of the client configuration:

PersistentKeepalive = 25 

Not sure why it's not working? Try sudo tcpdump -i eth on the server while trying to use the client.

Thanks for reading this guide.

If you want to dive deeper, consider taking my paid Manning course on WireGuard VPN.