Авторизация

ПРИМЕР 5: WIREGUARD СЕРВЕР И КЛИЕНТ WINDOWS

Результат: удаленный доступ ПК с ОС Windows по туннелю Wireguard к домашнему устройству

С февраля 2022 года каждый пользователь в составе своего тарифа получает возможность использования сервера WireGuard и устанавливать одно подключение к нему из сети Интернет.

Соединение WireGuard является дополнительным к вашим существующим туннелям и использование WireGuard не считается туннелем в рамках тарифного плана.

В рамах базового тарифа пользователю предоставляются 2 туннеля с протоколами PPTP, L2TP/Ipsec, OpenVPN и дополнительно одно соединение по протоколу WireGuard. Таким образом, каждый пользователь сможет одновременно установить три соединения к VPNKI.

Соединение WireGuard отличается еще и тем, что пока в нем нет возможности маршрутизации сетей, расположенных "за маршрутизатором", но мы планируем добавить такую возможность несколько позже.

Так как протокол WireGuard использует другую архитектуру, то логика его настройки на сервере VPNKI отличается от традиционной.

 

0. Исходные данные

Мы хотим получить удаленный доступ к своей сети из Интернет с использованием протокола WireGuard. При этом наша сеть уже подключена к VPNKI по любому из протоколов - PPTP, L2TP/Ipsec, OpenVPN.

В качестве клиентского ПО мы будем использовать клиентское ПО WireGuard для Windows. Компьютер с клиентом WireGuard будет расположен в Интернет.

В момент подключения, в вашем клиентском ПО WireGuard будет создан туннельный интерфейс и использован адрес 172.16.0.3 сети VPNKI. Ну а хотим мы "достучаться" до сервера с адресом 192.168.1.10 в домашней сети.

Схема представлена здесь.

 

 

wireguard pptp l2tp ipsec openvpn network map 1

 

 

1. Подготовка сервера

Основная особенность WireGuard состоит в том, что у него нет понятия клиент и сервер, а все соединения равнозначны.

Однако в нашей терминологии мы будем использовать слово "Сервер" применительно к тому WireGuard, который запущен на сервере VPNKI, а термин "Клиент" будем применять к Wireguard, который запущен на вашем компьютере с Windows.

Сначала нам будет необходимо сконфигурировать сервер WireGuard на VPNKI. Этот процесс состоит из двух шагов:

  • Выбор порта UDP на котором будет "слушать" ваш сервер WireGuard и ожидать подключения из сети Интернет
  • Предварительная конфигурация сервера WireGuard - назначение приватного и публичного ключей сервера

 

1.1. Начнем с выбора UDP порта. На главной странице туннелей выберите галочку "Использовать доступ через WireGuard"

 

vpnki wireguard server select udp port 1

 

Сервер выберет доступный UDP порт, на которому будет "слушать" ваш сервер WireGuard

 

vpnki wireguard server select udp port 2

 

В данном примере система выбрала порт 26005 ( у вас будет какой-то другой). После завершения выбора порта можно переходить к предварительной конфигурации сервера.

 

 

1.2. На этом шаге система подготовит публичный и приватный ключи вашего сервере WireGuard.

Приватный ключ сервера VPNKI сохранит у себя, а вот публичный ключ покажет вам. Он будет необходим для корректной конфигурации вашего клиента WireGuard на ПК с ОС Windows.

 

 vpnki wireguard server prepare configuration

 

 

Нажмите "Создать сервер WireGuard"

vpnki wireguard public server keys

 

 

После генерации ключей система подготовила вам Публичный ключ сервера: Clu9YfM1KD8C+zl11fob2QDUiZcV1wqJzUOwihmavHA=. (у вас он будет какой-то другой)

На этом этап подготовки завершен и можно переходить к конфигурации клиента.

 

 

2. Установка клиента WireGuard

2.1. Установите ПО WireGuard на ваш ПК с ОС Windows, скачав пакет с официального сайта.

После установки вам будет необходимо создать новое соединение. Делается это в меню"Добавить туннель" и дальше нужно выбрать "Добавить пустой туннель"

 

wireguard vpnki add empty peer 0

 

После добавления пустого туннеля вам будет сгенерирован приватный и публичный ключи клиента. Эти ключи будут показаны на следующем экране. Нас будет интересовать только Публичный ключ (поле 1)

 

wireguard vpnki add empty peer public key

 

 

2.2. Назовите как-нибудь соединение (например VPNKI) и нажмите "Сохранить".

 

wireguard vpnki add empty peer prepare and save

 

Теперь у вас есть предварительно сконфигурированное подключение, но это еще не полная его конфигурация.

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

Выделите и скопируйте в буфер обмена Публичный ключ (поле 1). Сейчас мы перейдем к серверу VPNKI и укажем его там в настройках подключения.

 

3. Конфигурация подключения на сервере VPNKI

 

3.1. Вернитесь к экрану настройки сервера Wireguard и в разделе "Данные клиента" нажмите "Создать подключение"

wireguard vpnki add peer

 

 

 

 

3.2. На следующем экране вам предложат ввести "Публичный ключ клиента"

 vpnki wireguard add peer public key 1

 

 

 

3.3. Вставьте Публичный ключ клиента из буфера обмена (который вы скопировали туда на шаге 2.2) и нажмите "Сохранить"

vpnki add wireguard peer public key 2

 

 

3.4. После сохранения публичного ключа клиента на сервере запустится процесс WireGuard и он будет готов принимать подключение.

 

vpnki wireguard server full config

 

Теперь осталась одна деталь... надо окончательно сконфигурировать клиента и попробовать подключиться.

 

 

 

4. Завершение конфигурации клиента WireGuard на ПК с ОС Windows

4.1. Завершим конфигурацию клиента. Для этого войдем в режим редактирования ранее созданного подключения при помощи кнопки "Редактировать".

 

vpnki wireguard edit peer

 

4.2. Теперь вам нужно дозаполнить данные, которые будут описывать сервер и его данные. Это описание должно будет располагаться в месте красной рамки.

 

wireguard add text to peer 1

 

 

Взять эти данные для заполнения нам предстоит на сервере VPNKI. Для этого нажмите на кнопку "Конфигурация клиента"

vpnki wireguard add peer

 
 
 
 
Откроется окно с данными, которые вам будет необходимо перенести в конфигурацию вашего клиентского подключения.
На скриншоте ниже показаны два окна - окно сервера VPNKI и окно редактирования клиентского подключения. Рамкой отомечен тот текст, который вам нужно будет скопировать и вставить.
 
 
wireguard vpnki add config lines to peer
 
 
 
 
 
 
Вот так:
 
 
wireguard vpnki add config lines to peer 2
 
 
Нажмите "Сохранить".
 
Теперь ваше клиентское подключение полностью сконфигурировано и готово к подключению. После сохранения вы увидите полную конфигурацию вашего клиента.
 
 
Однако перед нажатием кнопки подключиться давайте все еще раз проверим и поясним детали.
 
  • В вашей настройке соединения на клиентском ПО верхняя часть описывает ваш собственный интерфейс. Хоть мы его и назвали VPNKI, но это ваш интерфейс. Он пока отключен. Его публичный ключ - OYUNru3L5zljznYR1NEHMCVFCgeIwQWal91O4Q8qwA0= IP адреса:172.16.0.3/32 это адрес, который будет использован на вашем интерфейсе после успешного подключения.

  • Нижняя часть (Пир) описывает сервер. Публичный ключ сервера - Clu9YfM1KD8C+zl11fob2QDUiZcV1wqJzUOwihmavHA= Адреса, при обращении к которым, трафик вашего клиента пойдет в туннель WireGuard - 172.6.0.0/16. Это адреса вашей сети VPNKI. То есть при успешном подключении из Интернет пинг с вашего ПК, отправленный по адресу 172.16.0.1 пойдет в интерфейс WireGuard, а не куда-либо еще. По сути, это правило для таблицы маршрутизации вашего ПК. Ну и в завершении - IP адрес сервера и порт - 84.201.157.25:26005. Это то, куда ваш клиент будет подключаться из Интернет используя протокол UDP. Наверное все.

 

wireguard vpnki full config on peer
 
 

 Теперь можно попробовать подключиться. Но ....
 

 

 5. Подключаемся снаружи

Обратите внимание, что эта инструкция подразумевает, что ваш клиентский ПК расположен в сети Интернет. Но если сейчас ваш ПК подключен к домашней сети, которая, в свою очередь, уже подключена к VPNKI то имеет смысл выключить этот ПК из домашней сети и подключить его, например, к сотовому оператору связи.

Если ваш ПК уже в Интернет, то нажимайте Подключить и смотрите за результатом.

 

wireguard vpnki connect successful

 

 

 

На скриншоте показано успешное подключение. Давайте попробуем выполнить пинг сервера VPNKI по туннелю WireGuard - ping 172.16.0.1

 

wireguard vpnki ping over tunnel

 

 

Пинг успешен. Это хорошо. Но как быть если нужно выполнить пинг, например, адреса 192.168.1.1, который расположен где-то в вашей сети VPNKI.

С текущими настройками это будет невозможно. Потому что ваш клиент просто не отправляет пакеты к адресу 192.168.1.1 в интерфейс Wireguard. Вот пинг и не успешен...

wireguard vpnki ping over tunnel 2

 

Давайте добавим маршрут к вашей сети 192.168.1.0/24 через интерфейс WireGuard. Для этого остановим соединение и внесем изменение в настройки подключения на вашем клиенте. А именно ...

wireguard vpnki add route on peer

 

 

Добавим через запятую нужные адреса сетей, которые должны быть доступны через туннель WireGuard, сохраним настройки, переподключитмся и выполним пинг 192.168.1.1

 

wireguard vpnki ping over tunnel 3

 

Вот теперь все успешно. И в завершение можно выполнить пинг адреса сервера в домашней сети - 192.168.1.10.

 

wg last step 9

 

Теперь все.

 

PS: В процессе написания инструкции мы обратили внимание на некоторые странности в работе ПО WireGuard под Windows. При попытке подключения в статусе содинения может быть написано "Подключен", но при этом не появляется статистика числа переданных и полученных байт. Ну и фактически трафик по туннелю не передается. Поэтому больше доверяйте статистике, чем самому статусу подключения. Если статистика есть - значит туннель работает.

 

Спасибо за внимание и успехов в пингах!

 

*** WireGuard пока в тестовом режиме, если вдруг что-то не получилось, обращайтесь на Форум