Установка Wireguard VPN на VPS

Данное руководство поможет последовательно установить, настроить и отладить WireGuard VPN. Для работы вам понадобится виртуальный сервер под управлением OS Linux. В нашем случае, был выбран Ubuntu 20 с минимальными расширениями. Редактирование файлов будет происходить в программе VIM.

Удалённый сервер
С помощью авторизации по SSH произведите подключение к серверу, на котором будет развернут VPN.

  1. обновление репозиториев apt — sudo apt update -y 
  2. установка WG — sudo apt install -y wireguard
  3. переход в папку с VPN — cd/etc/wireguard/
  4. генерация ключей для соединения с VPN — wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey.Команда tee сохраняет ключи в файл, далее скрипт создает публичный ключ на основе секретного, передает в директорию, полученный файл, сохраняет изменения. 
  5. Командой cat проверьте существование ключей в файлах:
cat publickey
cat privatekey

Следующим шагом в VIM создайте файл конфигурации VPN-сервера. Вставляем:

[Interface]
PrivateKey = <privatekey> # Приватный ключ из файла privatekey.
Address = 10.0.0.1/24 #Адрес VPN-сервера в частной сети.
ListenPort = 51830  #Порт, который будет слушать VPN-сервер.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  #Команды, который будут выполнять при поднятии сервера
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  #Команды, который будут выполнять при выключении сервера.

Вместе privatekey вставьте приватный ключ. 

Настройте форвардинг (прохождение трафика через VPN) — 

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Включите автоматический запуск VPN после выключения, а также перезагрузки виртуального сервера — systemctl enable wg-quick@wg0.service. Команда вернет сообщение:

Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

Произведите запуск WG — systemctl start wg-quick@wg0.service. Обязательно, уточните статус сервера VPN — systemctl status wg-quick@wg0.service. Настройка сервера завершена. 

Подключение к WG
Создайте пары ключей для клиента — wg genkey | tee /etc/WireGuard/katkov_privatekey | wg pubkey | tee /etc/WireGuard/katkov_publickey

Папка сервера содержит файлы:
.
├── katkov_privatekey — частный ключ клиента
├── katkov_publickey — публичный ключ клиента
├── privatekey — частный ключ WG сервера
├── publickey — публичный ключ WG сервера
└── wg0.conf — конфигурационный файл WG сервера

Откройте файл — vim /etc/WireGuard/wg0.conf

Добавьте в конец файла строки ниже:
[Peer]
PublicKey = <katkov_publickey> #Публичный ключ клиента
AllowedIPs = 10.0.0.2/32 #IP-адрес в час

Добавили, теперь перезагрузите сервер и проверьте статус:

systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0

Вывод:

Настраиваем машину клиента

Мы показываем процесс на примере Windows 11, но любая версия Windows настраивается таким же образом. Не закрывайте сессию SSH на удаленном сервере, потому что нам необходимы ключи из директории /etc/WireGuard/

  1. скачайте WG — https://www.wireguard.com/install/
  2. создайте текстовый документ, файл конфигурации для соединения к серверу WG, местоположение значения не имеет.
    В созданный wgvpn_connect.conf вставьте:

    [Interface] 
    PrivateKey = <CLIENT-PRIVATE-KEY> #Клиентский приватный ключ. В нашем случае katkov_privetkey. 
    Address = 10.0.0.2/32 #IP-адрес клиента, который настроен на WG сервере 
    DNS = 8.8.8.8 #DNS, который будет использовать при подключении 
    [Peer] 
    PublicKey = <SERVER-PUBKEY> #Публичный ключ сервера 
    Endpoint = <SERVER-IP>:51830 #IP адрес удаленного сервера и порт прослушивания 
    AllowedIPs = 0.0.0.0/0 #Если указаны все нули — весь трафик клиента будет проходить через WG сервер 
    PersistentKeepalive = 20 #Интервал проверки соединения между клиентом и сервером (сек).

    Чтобы узнать IP сервера, воспользуйтесь панелью управления или введите команду — curl ifconfig.me

  3. Подготовленный файл загрузите в клиент WG:
  4. Когда будет совершено подключение, индикатор загорится зеленым, трафик будет увеличиваться
  5. ifconfig.me — для проверки IP 

Вы настроили WG VPN-сеть. Чтобы подключать новых пользователей (новые устройства), генерируйте новые ключи и не забывайте давать им осмысленные названия. Также, следите за файлами конфигурации, они тоже должны присутствовать на каждом устройстве в сети.