Как настроить личный vpn через wireguard

Wireguard Это инструмент для создания впн на все случаи жизни, он не очень сложно разворачивается на личном сервере и позволяет обходить блокировки и так далее.

Сервер

Советую Vultr хорошие цены, разные страны, принимают крипту. Вот купон на СТО БАКСОВ ТЫЦ

Предполагаем что на сервере стоит дебиан, ставим всё нужное

apt install wireguard wireguard-dkms wireguard-tools

Проверим что установилось

modprobe wireguard && lsmod | grep wireguard

wireguard 225280 0 ip6_udp_tunnel 16384 1 wireguard udp_tunnel 16384 1 wireguard

Создаём ключи для клиента и для сервера, эти ключи и будут обеспечивать доступ.

mkdir ~/wireguard
cd ~/wireguard
umask 077
wg genkey | tee server_private_key | wg pubkey > server_public_key
wg genkey | tee client_private_key | wg pubkey > client_public_key

Будет создано 4 файла

server_private_key server_public_key

client_private_key client_public_key

Для системы должен быть разрешён форвардинг, это настраивается в sysctl.conf

# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
# sysctl -p

Теперь нужно создать конфиг файл для вайргарда

vim /etc/wireguard/wg0.conf 

В зависимости от потребностей файл может выглядеть поразному, в моём случае я настраивал именно как ВПН с форвардом всего траффика

[Interface]
   Address = 192.168.2.1
   PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o enp1s0 -j MASQUERADE
   PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
   ListenPort = 51820
   PrivateKey = SERVER_PRIVATE_KEY
  
[Peer]
   PublicKey = CLIENT_PUBLIC_KEY
   AllowedIPs = 192.168.2.2/32

SERVER_PRIVATE_KEY и CLIENT_PUBLIC_KEY соответвенно надо заменить на те, что сгенерились. Важно обратить внимание на скрипты PostUp PostDown это то, что выполняется при запуске выключении вайргарда там enp1s0 Это название сетевого интерфейса, через который сервер ходит в интернет. Эти названия бывают разные чтобы узнать надо выполнить

ip route get 8.8.8.8

там будет актуальное имя.

На этом настройка сервера закончена, осталось запустить демона

systemctl enable --now wg-quick@wg0.service

Клиент

Вот тут скачать клиенты, актуально прежде всего для винды (https://www.wireguard.com/install/) Соотвественно в линуксе редактируем файлик /etc/wireguard/wg0-client.conf в винде в ГУИ создаём пустой туннель, настройки идентичны

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
ListenPort = 21841
Address = 192.168.2.2/32
DNS = 9.9.9.9

[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = SERVER_REAL_IP:51820
PersistentKeepalive = 21

CLIENT_PRIVATE_KEY и SERVER_PUBLIC_KEY берём те, что сгенерило в папочке на сервере, SERVER_REAL_IP это IP сервера на котором ставим VPN

Возможная проблема с DNS

Столкнулся с тем, что ругается на днс и из-за этого не открывает страницы, хотя коннект есть. Один из способов решения зайти в настройки браузера brave://settings/security и там задать в Use secure DNS чтобы использовало тот, который 9.9.9.9 а не, который даёт провайдер. Ну, кароче надо руками везде позадавать днс, а не полагаться на провайдера, иначе не заработает.

В общем не очень сложно и этот впн точно не заблокируют, ведь формально это просто арендованный компьютер где-то в сша.

Подробнее про разные настройки (https://www.stavros.io/posts/how-to-configure-wireguard/)

Tags
Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)

Written by Fedor

© 2023