Как да настроите безплатно VPN сървър у дома

В тази статия ще ви напътствам стъпка по стъпка през процеса на настройване на WireGuard VPN на Linux сървър. Той ще ви позволи да получите достъп до сигурни интернет ресурси от несигурни места като кафенета.

Но защо VPN? И защо WireGuard?

Всеки път, когато се свържете, да речем, с уебсайта на вашата банка от отдалечено място, рискувате да изложите парола и друга чувствителна информация на всеки, който слуша в мрежата.

Надяваме се, разбира се, самият уебсайт на банката да бъде криптиран, което означава, че ключовите данни, които текат между банката и вашия компютър или смартфон, ще бъдат нечетливи за всеки, който слуша по пътя.

А какво ще кажете, ако се свързвате от дома или офиса си? С VPN можете да бъдете разумно сигурни, че тези елементи от данни, които не са скрити от редовното криптиране, няма да се видят от грешните хора.

Но какво, ако се свързвате чрез обществен WiFi рутер на летище или кафене? Сигурни ли сте, че мрежата не е компрометирана или че няма хакери, които гледат незабелязано?

За да се противопоставите на тази много реална заплаха, можете да отворите връзка на вашия лаптоп или телефон към VPN сървър. По този начин всички ваши трансфери на данни се извършват през виртуален тунел. Всяка част от вашите чувствителни връзки ще бъде невидима за всеки в локалната мрежа, от която се свързвате.

WireGuard е най-новият от трите големи играчи в света на VPN с отворен код, като другите двама са IPsec и OpenVPN.

WireGuard е създаден, за да бъде по-опростен, по-бърз и по-гъвкав от останалите. Това е новото дете в блока, но бързо взе някои важни приятели. По настояване на самия създател на Линус Торвалдс, WireGuard наскоро беше включен в ядрото на Linux.

Къде да изградите вашия VPN сървър?

Разбира се, винаги можете да съберете VPN сървър у дома и да конфигурирате пренасочване на портове през маршрутизатора на вашия ISP. Но често ще има по-практичен смисъл да го стартирате в облака.

Не се притеснявайте. Уверявам ви, че този начин ще бъде много по-близо до бърза и безболезнена конфигурация „задай и забрави“. И е много малко вероятно каквото и да изградите у дома, да бъде толкова надеждно - или сигурно - колкото инфраструктурата, предоставена от големите доставчици на облак като AWS.

Ако обаче се случи да имате професионално защитен интернет сървър, който лежи около къщата (или сте готови да рискувате с резервна Raspberry Pi, която имате), той ще работи по същия начин.

Благодарение на WireGuard, независимо дали в облака или на физически сървър, създаването на собствена домашна VPN никога не е било по-лесно. Цялата настройка може да се направи за половин час.

Приготвям се

Вземете своя екземпляр в облак и го стартирайте, може би с помощта на урок от тук.

Уверете се, че порт 51820 е отворен за вашия сървър. Това се прави с групи за сигурност на AWS и защитна стена на VPC мрежа в Google Cloud.

Със съвременните версии на Debian / Ubuntu, Wireguard е на разположение за инсталиране от мениджърите на пакети по следния начин:

sudo apt install wireguard 

Или с yum, от хранилището на EPEL:

sudo yum install kmod-wireguard wireguard-tools 

Първа стъпка: създайте ключовете за криптиране

Във всяка директория на сървъра, където искате да създадете файлове, съдържащи публичния и частния ключ, използвайте тази команда:

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

Направете същото за клиента в друга директория или на вашата локална машина. Просто се уверете, че по-късно ще можете да правите разлика между различните набори ключове.

За бърза настройка можете да използвате онлайн генератор на ключове. Предлагам обаче да го направите ръчно за първи път. Уверете се, че файловете са създадени с ключови хешове в тях, тъй като ще ги използвате в следващата стъпка.

Стъпка втора: Създайте конфигурацията на сървъра

Трябва да направите .conf файл в директорията / etc / wireguard. Можете дори да имате няколко VPN, работещи едновременно, като използвате различни портове.

Поставете следния код в новия файл:

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 

Стартирайте VPN

sudo systemctl start [email protected] 

Ако нямате systemd (което може да е вярно, ако вашият екземпляр работи с Amazon Linux), можете да използвате sudo wg-quick up wg0.

Стъпка трета: Създайте конфигурацията на клиента

Първо инсталирайте Wireguard на вашата клиентска машина, по същия начин на Linux или чрез магазин за приложения, ако използвате Windows, macOS, Android или iPhone.

Ако сте използвали онлайн генератор на ключове или QR скрипт в Първа стъпка, тогава можете да свържете телефона си, като направите снимка на QR кода.

След като WireGuard бъде инсталиран на клиента, конфигурирайте го, като използвате следните стойности:

# 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 

Има много незадължителни добавки, които може да искате, в зависимост от вашия случай на употреба, като посочване на DNS или предварително споделени ключове за допълнителен слой сигурност.

Стартирайте клиента по същия начин като сървъра, ако сте на Linux или чрез самото приложение на други системи.

Тествайте вашата 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.