У гэтым артыкуле будзе падрабязна апісана, як наладзіць Wireguard VPN на серверы. Гэта можа быць віртуальны або прыватны сервер - гэта не мае вялікага значэння.
Гэта кіраўніцтва па наладжванні VPN Wireguard прызначана для карыстальнікаў, якія не маюць вялікага вопыту, таму ўсе крокі будуць даволі падрабязныя і суправаджаюцца скрыншотамі.
Трафік, які праходзіць праз наш тунэль, будзе зашыфраваны, і ў Інтэрнэце будзе адлюстроўвацца IP-адрас нашага VPN-сервера, а не адрас правайдэра, праз якога мы атрымліваем доступ да сеткі.
Мяркуецца, што ў вас ужо ёсць VPS. Калі не, вы можаце заказаць яго ў нас.
Мы ўсталюем аперацыйную сістэму Ubuntu 22.04 на наш сервер. Калі ў вас сервер з іншай АС, вы можаце лёгка пераўсталяваць яе, выконваючы інструкцыі.
Такім чынам, сервер з АС Ubuntu 22.04 гатовы, цяпер падключаемся да яго праз SSH. Калі раптам вы раней не сутыкаліся з гэтым пратаколам, то вам дапаможа артыкул, у якім падрабязна апісаны гэты працэс. Другі абзац артыкула — для АС Linux, трэці — для АС Windows.
Наладзьце сервер Wireguard
Пасля паспяховага злучэння я напішу некалькі каманд і апісанне таго, што яны вырабляюць, каб зразумець працэс:
Мы абнаўляем спіс пакетаў у рэпазітарах
apt update
Абнаўленне саміх пакетаў
apt upgrade -y
Усталюйце пакет Wireguard
apt install -y wireguard
Наша канфігурацыя будзе захоўвацца ў каталогу /etc/wireguard/, нам трэба ўвайсці ў каталог:
cd /etc/wireguard/
Нам спатрэбіцца адкрыты і закрыты ключ для нашага сервера. Мы згенеруем іх пасля ўстаноўкі правільных правоў пры стварэнні файлаў і каталогаў з дапамогай каманд:
umask 077
wg genkey > privatekey
wg pubkey < privatekey > publickey
Цяпер мы ўсталёўваем правы для прыватнага ключа:
chmod 600 privatekey
Перш чым ствараць канфігурацыйны файл, нам патрэбна назва нашага сеткавага інтэрфейсу. Каб выявіць яго, выкарыстоўвайце каманду:
ip a
Нам патрэбны інтэрфейс з IP-адрасам, які выкарыстоўваецца для бягучага злучэння. Магчыма, у вашым выпадку гэта будзе называцца ens3, але можа быць і іншая назва.
Нам таксама спатрэбіцца адкрыты і закрыты ключ. Каб адлюстраваць іх, я выкарыстоўваю хвост
tail privatekey publickey
Гэта выглядае наступным чынам:
Для рэдагавання можна выкарыстоўваць любы тэкставы рэдактар Linux . Я буду выкарыстоўваць nano. Каб усталяваць яго, трэба выканаць каманду:
apt install -y nano
Рэдагуем канфігурацыйны файл:
nano /etc/wireguard/wg0.conf
Нататка
каб захаваць файл, мы выкарыстоўваем камбінацыю кнопак ctrl+o
для выхаду - ctrl+x
Ён павінен выглядаць наступным чынам:
[Interface]
PrivateKey = [ your private key ]
Address = 10.30.0.1/24
ListenPort = 51928
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o [ interface name ] -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o [ interface name ] -j MASQUERADE
У маім выпадку гэта выглядае так
Ўключаем ip forwarding
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Запуск службы Wireguard:
systemctl start [email protected]
Калі мы хочам, каб служба запусцілася пасля перазапуску сервера, мы робім наступнае:
systemctl enable [email protected]
Для прагляду стану службы:
systemctl status [email protected]
Статус павінен быць актыўны, як на скрыншоце:
Калі вы ўважліва прытрымліваліся нашых інструкцый, то на гэтым этапе ў вас ёсць усё неабходнае для працы сервернай часткі VPN Wireguard.
Налада кліента Wireguard
Засталося толькі наладзіць кліенцкую частку. Для прыкладу і прастаты я буду генераваць ключы для кліенцкай часткі таксама на серверы. Але ў мэтах бяспекі было б правільней генераваць ключы на баку кліента. Я выкарыстоўваю каманды для генерацыі:
wg genkey > mypc_privatekey
wg pubkey < mypc_privatekey > mypc_publickey
Я таксама згенерую ключы для выкарыстання VPN на тэлефоне:
wg genkey > myphone_private
keywg pubkey < myphone_privatekey > myphone_publickey
Варта адзначыць, што ўсё гэта неабходна рабіць, знаходзячыся ў каталогу
/etc/wireguard/
Вы таксама можаце запусціць у іншым каталогу. Але для прастаты мы выконваем інструкцыі ў /etc/wireguard/
Мы выкарыстоўваем каманду ls, каб пералічыць файлы ў каталогу. Я атрымаў гэта так:
Адлюструем адкрытыя ключы на экране. Яны нам спатрэбяцца, каб дадаць вузлы ў нашу сетку:
tail mypc_publickey myphone_publickey
Для мяне гэта выглядае так:
Давайце адрэдагуем наш канфігурацыйны файл:
nano wg0.conf
Дадайце наступныя радкі:
[Peer]
PublicKey = [ mypc_publickey ]
AllowedIPs = 10.30.0.2/32
[Peer]
PublicKey = [ myphone_publickey ]
AllowedIPs = 10.30.0.3/32
Цяпер канфігурацыйны файл выглядае так:
Захавайце файл і перазапусціце наш сэрвіс:
systemctl restart wg-quick@wg0
Давайце праверым, што ўсё прайшло паспяхова:
systemctl status wg-quick@wg0
Статус павінен быць актыўным
Перазагрузка службы патрабуецца кожны раз пасля рэдагавання файла канфігурацыі сервера (wg0.conf)
Далей мы створым канфігурацыі для кліентаў (у маім выпадку, майго ПК і тэлефона). Я зраблю тое ж самае на серверы.
nano mypc.conf
[Interface]
PrivateKey = [mypc_privatekey private key]
Address = 10.30.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = [publickey server publc key]
Endpoint =[ server ip address]:51928
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
У полі Endpoint вы можаце ўбачыць IP-адрас сервера - гэта IP-адрас, які мы выкарыстоўвалі для падлучэння праз SSH. Каб убачыць інтэрфейсы і адрасы, вы можаце выкарыстоўваць каманду ip a.
Наладзьце Wireguard для мабільнага
Ствараем аналагічную канфігурацыю для нашага тэлефона. Проста трэба змяніць адрас. Для ПК гэта была 10.30.0.2/32, а ў канфігурацыі для тэлефона зробім 10.30.0.3/32. Акрамя таго, калі мы хочам выкарыстоўваць VPN на іншых прыладах, мы павінны дадаць іншыя адрасы ў поле Address у файлах канфігурацыі і файл канфігурацыі сервера wg0.conf, поле AllowedIPs пры стварэнні канфігурацый
Файлы выглядаюць так у маім выпадку:
mypc.conf
мой тэлефон.канф
Для падключэння ўсталёўваем кліент Wireguard https://www.wireguard.com/install/
У дадатку Windows мы дадаем новы тунэль і ўводзім канфігурацыю, створаную ў файле mypc.conf
Мы запускаем тунэль і пераходзім у браўзер на вэб-сайт, які паказвае наш адрас
Каб было зручна дадаць VPN на свой тэлефон, усталюйце на сервер праграму для генерацыі qr-кодаў:
apt install -y qrencode
Знаходзячыся ў каталогу канфігурацыі, зрабіце наступны крок:
qrencode -t ansiutf8 -r myphone.conf
Затым мы ўваходзім у праграму Wireguard на тэлефоне, націскаем +, каб стварыць новы тунэль, выбіраем сканаваць QR-код, сканаваць яго, уключаць VPN. Далей мы праверым, што мы адлюстроўваем адрас нашага сервера, выкарыстоўваючы любы рэсурс, які адлюстроўвае выходны IP-адрас.
Вы зрабілі гэта!