Настройка WireGuard VPN между двумя роутерами Keenetic

Начиная с версии KeeneticOS 3.3 для актуальных моделей интернет-центров Keenetic была добавлена поддержка WireGuard VPN.

Рассмотрим пример настройки безопасного VPN-подключения по протоколу WireGuard между двумя интернет-центрами Keenetic. Подробно покажем параметры настройки VPN-сервера (ожидает подключение) и VPN-клиента (инициирует подключение).

NOTE: Важно! Если вы планируете использовать Keenetic в качестве VPN-сервера, начать необходимо с проверки того, что он имеет публичный "белый" IP-адрес, а при использовании сервиса KeenDNS, что он работает в режиме "Прямой доступ", для которого также требуется публичный IP-адрес. При несоблюдении любого из этих условий подключение к такому VPN-серверу из Интернета будет невозможно.

Рассмотрим схему подключения:

wg.png

Имеется интернет-центр Keenetic с "белым" IP-адресом для выхода в Интернет. Этот роутер будет выполнять роль VPN-сервера и на его публичный адрес будет устанавливать VPN-подключение другой интернет-центр Keenetic (в роли VPN-клиента) с IP-адресом из частного диапазона на WAN-интерфейсе.

Нужно обеспечить хостам каждого роутера доступ к удаленной локальной сети через VPN-туннель. Такую схему подключения еще называют "Site-To-Site VPN" (например, межофисное соединение для связи с целью расширения сетевой инфраструктуры).

wg-01.png

NOTE: Важно! Настройку WireGuard VPN рекомендуем выполнять с какого-то одного устройства (например, с компьютера или смартфона), так как при создании подключения потребуется обменяться публичными ключами на обеих сторонах VPN-туннеля. В связи с чем, нужно обеспечить одновременный доступ к настройкам сервера и клиента.

В нашем примере сервером и клиентом являются интернет-центры Keenetic, поэтому откройте в веб-браузере в разных вкладках сразу два веб-конфигуратора.

На устройствах выполните следующие действия:

Перейдите на страницу "Другие подключения" и в разделе "WireGuard" нажмите кнопку "Добавить подключение". Откроется окно настроек, в котором укажите название туннеля. В нашем примере это "WG-S" на сервере и "WG-CL1" на клиенте.
Нажмите кнопку "Генерация пары ключей" для создания Приватного и Публичного ключа. В дальнейшем нам понадобятся только Публичные ключи с двух сторон VPN-туннеля. Ключ от VPN-сервера нужно будет указать в настройках VPN-клиента и наоборот.

wg-s-00.png

NOTE: Важно! Не закрывайте в браузере вкладки с параметрами WireGuard-подключений для сервера и клиента. В процессе настройки потребуется переключаться между ними.

Теперь перейдем непосредственно к настройкам каждого роутера.

Настройка VPN-сервера WireGuard

В настройках WireGuard-подключения в поле "Адрес" впишите внутренний IP-адрес туннеля в формате IP/bitmask (в нашем примере это 172.16.82.1/24). Можно использовать любую подсеть из частного диапазона, которая не используется на стороне сервера и клиента.
В поле "Порт прослушивания" укажите номер порта, который будет использован при настройке VPN-клиента (в нашем примере это порт 16632). Именно на этот порт клиент будет обращаться при установлении туннеля. Роутер автоматически откроет этот порт на всех интерфейсах, чтобы проходили входящие подключения. Дополнительно добавлять разрешающие правила межсетевого экрана не нужно.

wg-s-01.png

Нажмите кнопку "Добавить пир" для создания настроек соединения с клиентом.

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

Вернитесь обратно на вкладку с настройками VPN-сервера. Укажите имя пира (в нашем примере это "WG-CL1") и в поле "Публичный ключ" вставьте из буфера обмена публичный ключ с VPN-клиента.
В полях "Разрешенные подсети" нужно указать адреса, трафик с которых должен быть допущен от удаленной стороны, и адреса, трафик к которым может быть отправлен удаленной стороне. Как правило, это внутренний адрес удаленного конца туннеля и удаленная сеть (локальная сеть VPN-клиента).

NOTE: Важно! Адресные пространства разрешенных подсетей в пирах, в рамках одного интерфейса, не должны перекрываться.

В нашем примере адрес удаленного конца туннеля 172.16.82.2/32. Со стороны VPN-клиента трафик в туннеле будет идти с адресом источника 172.16.82.2, и поэтому мы указываем здесь явно адрес хоста (с маской /32). И в качестве удаленной сети указана 192.168.100.0/24 (к этой сети требуется обеспечить доступ по туннелю).
В поле "Проверка активности" укажите интервал попыток проверки активности пира (это внутренняя проверка доступности удаленной стороны соединения). В нашем примере установлено значение 15 секунд.

wg-s-02.png

Нажмите кнопку "Сохранить".

На этом настройка WireGuard-подключения на стороне VPN-сервера завершена, но дополнительно на роутере нужно произвести настройку сетевого экрана и маршрутизации. Для созданного WireGuard-интерфейса нужно разрешить входящий трафик и указать статический маршрут в удаленную сеть.

Откройте страницу "Межсетевой экран". Для WireGuard-интерфейса (в нашем примере это "WG-S") добавьте и включите разрешающее правило для IP-протокола. Это нужно, т.к. по умолчанию интерфейсам туннеля устанавливается публичный уровень безопасности и входящий трафик запрещен. Чтобы запросы из удаленных сетей могли проходить по туннелю, соответствующую настройку нужно будет выполнить на роутерах.

wg-s-04.png

wg-s-05.png

Чтобы по туннелю отправлялся трафик в удаленную сеть, нужно добавить статический маршрут.
Перейдите на страницу "Маршрутизация", нажмите на кнопку "Добавить маршрут" и укажите следующие параметры статического маршрута:

В поле "Тип маршрута" выберите значение "Маршрут до сети", в поле "Адрес сети назначения" укажите удаленную подсеть (в нашем примере это 192.168.100.0) и в поле "Интерфейс" выберите имя созданного ранее WireGuard-интерфейса (в нашем примере это "WG-S"), включите опцию "Добавлять автоматически".

wg-cl1-07.png

На этом настройка VPN-сервера завершена и можно переходить к настройкам VPN-клиента. Но перед этим откройте страницу "Другие подключения", нажмите по записи созданного WireGuard-подключения (в нашем примере это "WG-S") и затем нажмите кнопку "Сохранить публичный ключ в буфер обмена". Этот ключ нам сейчас потребуется при настройке на стороне VPN-клиента.

Настройка VPN-клиента WireGuard

В настройках WireGuard-подключения в поле "Адрес" впишите внутренний IP-адрес туннеля из той же подсети, что указана на VPN-сервере. IP-адрес укажите в формате IP/bitmask (в нашем примере это 172.16.82.2/24, т.к. на удаленном конце туннеля используется адрес 172.16.82.1/24).

wg-cl1-01.png

Нажмите кнопку "Добавить пир" для создания настроек соединения с сервером.

Укажите имя пира (в нашем примере это "WG-S") и в поле "Публичный ключ" вставьте из буфера обмена публичный ключ с VPN-сервера.
В поле "Адрес и порт пира" в формате IP:port или name:port впишите соответственно публичный IP-адрес или доменное имя роутера, который выполняет роль VPN-сервера, и через двоеточие порт пира (порт прослушивания, который был указан при конфигурации туннеля на сервере). В нашем примере это ****.keenetic.link:16632

NOTE: Важно! При использовании сервиса KeenDNS убедитесь, что он работает в режиме "Прямой доступ". При использовании режима "Через облако" подключение к VPN-серверу из Интернета будет невозможно.

В полях "Разрешенные подсети" нужно указать адреса, трафик с которых должен быть допущен от удаленной стороны, и адреса, трафик к которым может быть отправлен удаленной стороне. Это внутренний адрес удаленного конца туннеля и удаленная сеть (локальная сеть VPN-сервера). В нашем примере адрес удаленного конца туннеля 172.16.82.1/32 (со стороны VPN-клиента трафик в туннеле будет идти с адресом источника 172.16.82.1, и поэтому мы указываем здесь явно адрес хоста), а удаленная сеть 192.168.22.0/24 (к этой сети требуется обеспечить доступ по туннелю).
В поле "Проверка активности" укажите интервал попыток проверки активности пира (это внутренняя проверка доступности удаленной стороны соединения). В нашем примере установлено значение 15 секунд.

wg-cl1-02.png

Нажмите кнопку "Сохранить".

Теперь на роутере выполним настройку сетевого экрана и маршрутизации. Для созданного WireGuard-интерфейса нужно разрешить входящий трафик и указать статический маршрут в удаленную сеть.

Откройте страницу "Межсетевой экран". Для WireGuard-интерфейса (в нашем примере это "WG-CL1) добавьте и включите разрешающее правило для IP-протокола.

wg-s-04.png

wg-s-07.png

Чтобы по туннелю отправлялся трафик в удаленную сеть, нужно добавить статический маршрут.
Перейдите на страницу "Маршрутизация", нажмите на кнопку "Добавить маршрут" и укажите следующие параметры статического маршрута:

В поле "Тип маршрута" выберите значение "Маршрут до сети", в поле "Адрес сети назначения" укажите удаленную подсеть (в нашем примере это 192.168.22.0) и в поле "Интерфейс" выберите имя созданного ранее WireGuard-интерфейса (в нашем примере это "WG-CL1"), включите опцию "Добавлять автоматически".

wg-cl1-04.png

На этом настройка VPN-сервера и VPN-клиента завершена.

Включите на роутерах созданные WireGuard-подключения. Если все настроено корректно, в колонке "Пир" должен отображаться зеленый индикатор статуса.

VPN-сервер:

wg-s-03.png

VPN-клиент:

wg-cl1-03.png

Настройка завершена.

Для проверки работы VPN-туннеля с хостов или непосредственно с роутера (из меню "Диагностика" в веб-конфигураторе) выполните пинг удаленного роутера или устройств, находящихся за туннелем.

Например, с хоста в локальной сети VPN-клиента (из сети 192.168.100.x) выполним пинг IP-адреса VPN-сервера (в нашем случае это 172.16.82.1) и затем локального IP-адреса интернет-центра Keenetic в удаленной сети за туннелем (в нашем примере это 192.168.22.1).

ping-s-01.png

Проверяем доступность веб-интерфейса сервера (в нашем примере это Keenetic с IP-адресом 192.168.22.1).

win-wg-13.png

TIP: Примечание: При настройке, которая показана в данной статье, будет установлен WireGuard VPN для организации доступа к удаленной подсети, которая находится за VPN-туннелем. При этом доступ в Интернет для клиентов будет осуществляться через локального провайдера.
Но в некоторых случаях нужно, чтобы клиенты, подключенные к роутеру Keenetic по протоколу WireGuard, получали через данный VPN-туннель доступ в Интернет. То есть нужно настроить подключение так, чтобы с VPN-клиента весь трафик маршрутизировался в WireGuard-туннель, как для доступа к удаленной сети, так и в Интернет.
Для этого потребуется на клиенте и сервере выполнить дополнительную настройку по инструкции
"Доступ в Интернет через WireGuard-туннель". Обращаем ваше внимание, что в этом случае увеличится нагрузка на сам VPN-канал и на интернет-канал, к которому подключен Keenetic, выполняющий роль VPN-сервера.

 

Была ли эта статья полезной?

Пользователи, считающие этот материал полезным: 33 из 34

Еще есть вопросы? Отправить запрос

Комментарии

Комментариев: 3
  • Возможно ли одновременное подключение 2х или 3х клиентов к одному серверу WireGuard?
    И какую модель порекомендуете для эффективной работы с нагрузкой?

    0
    Действия с комментариями Постоянная ссылка
  • Да, можно подключить до 32 пиров одновременно. При этом не забывайте про настройку Allowed IP и настройку межсетевого экрана (подробно описано в наших статьях), чтобы клиенты могли "общаться" между собой.

    0
    Действия с комментариями Постоянная ссылка
  • Пару месяцев назад настроил VPN-подключения по протоколу WireGuard между тремя интернет-центрами Keenetic (Ultra-1810, Giga-1010 и Ultra II).
    Всего настроил 3 серверных и 3 клиентских подключения. Также в каждом роутере настроил межсетевой экран и маршрутизацию.
    Весть процесс настройки занял не более 2х часов. Все запустилось с первого раза. Инструкция написана максимально понятно.
    Разницы где сервер, а где клиент ни какой нет. На функционал это ни как не влияет.
    Жаль, что для использования интернет подключения другого роутера нельзя обойтись элементарной установкой галочки в Веб-интерфейсе настройки VPN (приходилось менять настройки через командную строку).
    За 2 месяца работы сети проблем не наблюдалось.

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.