Установка и настойка VPN сервера WireGuard на Ubuntu

WireGuard — это новый VPN протокол с открытым исходным кодом, основанный на последних концепциях криптографии. Его особенность – простота реализация и высокая скорость работы. WireGuard работает быстрее, чем тот же популярный протокол OpenVPN. WireGuard реализует безопасное соединений по типу точка-точка , в котором передача данных происходит в зашифрованном виде. Так же протокол включен в состав ядра Linux, начиная с версии 5.6.

Установка WireGuard на Ubuntu

sudo apt install wireguard


Генерации ключей для клиента и сервера

cd /etc/wireguard
wg genkey | tee server-private.key | wg pubkey > server-public.key


Создание конфигурационного файла для сервера

nano /etc/wireguard/wg0-server.conf


Содержание конфигурационного файла сервера (wg0-server.conf)

[Interface]
#Назначаем IP адрес сервера
Address = 10.0.0.1/24 [VIRTUAL_IP_SERVER]
#Правила для firewall
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
#Задаем порт на котором будет работать сервер и прописываем приватный ключ сервера
ListenPort = [ANY_PORT]
PrivateKey = [SERVER_PRIVATKEY_KEY]
#Прописываем публичный ключ клиента и назначаем ему IP адрес
[Peer]
PublicKey = [CLIENT_PUBLIC_KEY]
AllowedIPs = 10.0.0.2/32


Address — прописываем виртуальный адрес сервера
ListenPort — задаем порт, на котором будет работать сервер
PrivateKey — приватный ключ сервера
PostUp и PostDown — правила iptables при подключении WireGuard
eth0 — сетевой интерфейс
PublicKey — публичный ключ клиента
AllowedIPs — назначенный IP адрес VPN клиента

Включаем  IP Forwarding пакетов

nano /etc/sysctl.conf ищем строку #net.ipv4.ip_forward = 1 и раскомментируем ее
net.ipv4.ip_forward = 1

Затем выполнить команду

sysctl -p

Добавляем сервис WireGuard в автозагрузку и запускаем его

systemctl enable wg-quick@wg0-server
systemctl start wg-quick@wg0-server

Команда на перезагрузку, остановку и запуск WireGuard

systemctl restart wg-quick@wg0-server #перезагрузка
systemctl stop wg-quick@wg0-server #остановка
systemctl start wg-quick@wg0-server #запуск

Проверка, наличие сетевого интерфейса wg0-server

ip a show wg0-server

Генерация ключей для клиента

wg genkey | tee wg-client-private.key | wg pubkey > wg-public.key
chmod 600 ./*-private.key

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

nano /etc/wireguard/wg0-client.conf


Содержание конфигурационного файла клиента (wg-client.conf)

[Interface]
Address = 10.0.0.2/24 [Virtual_IP_client]
PrivateKey = CLjIzMixsDeh/oDKwCdiBZKiiLtt+M4ipowYel2MI0k= [Private_Key_client]
DNS = 1.1.1.1 [ Public DNS services 8.8.8.8 or 1.1.1.1]
[Peer]
PublicKey = prw5wC5a1tL/6NLjW91PyPBq4aAU0poynMUahkH0z1Q= [Public_Key_server]
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Endpoint = 1.2.3.4:39548 [IP_addres_server]


Address — виртуальный адрес клиента
PrivateKey — приватный ключ клиента
DNS — любой DNS сервер, можно публичный
PublicKey — публичный ключ сервера
Endpoint — IP адрес и порт сервера

Создание нового клиента

wg genkey | tee wg-client2-private.key | wg pubkey > wg-client2-public.key
chmod 600 ./*-private.key

Каждого нового клиента добавляем в конфиг файл сервера !

Генерация QR кода конфига клиента (wg-client.conf)

Для генираци QR кода необходимо установить пакет

sudo apt install qrencode

Генерируем код

qrencode -t ansiutf8 < /etc/wireguard/wg-client.conf

Полученный QR код можно отсканировать в приложении на Android, IOS устройстве

Рейтинг
( Пока оценок нет )