Настройка WireGuard VPN между двумя роутерами Keenetic
Начиная с версии KeeneticOS 3.3
для актуальных моделей интернет-центров Keenetic была добавлена поддержка WireGuard VPN.
Рассмотрим пример настройки безопасного VPN-подключения по протоколу WireGuard между двумя интернет-центрами Keenetic. Подробно покажем параметры настройки VPN-сервера (ожидает подключение) и VPN-клиента (инициирует подключение).
Важно
Если вы планируете использовать Keenetic в качестве VPN-сервера, начать необходимо с проверки того, что он имеет публичный "белый" IP-адрес, а при использовании сервиса KeenDNS, что он работает в режиме "Прямой доступ", для которого также требуется публичный IP-адрес. При несоблюдении любого из этих условий подключение к такому VPN-серверу из Интернета будет невозможно.
Рассмотрим схему подключения:
Имеется интернет-центр Keenetic с "белым" IP-адресом для выхода в Интернет. Этот роутер будет выполнять роль VPN-сервера и на его публичный адрес будет устанавливать VPN-подключение другой интернет-центр Keenetic (в роли VPN-клиента) с IP-адресом из частного диапазона на WAN-интерфейсе.
Нужно обеспечить хостам каждого роутера доступ к удаленной локальной сети через VPN-туннель. Такую схему подключения еще называют "Site-To-Site VPN" (например, межофисное соединение для связи с целью расширения сетевой инфраструктуры).
Важно
Настройку WireGuard VPN рекомендуем выполнять с какого-то одного устройства (например, с компьютера или смартфона), так как при создании подключения потребуется обменяться публичными ключами на обеих сторонах VPN-туннеля. В связи с чем, нужно обеспечить одновременный доступ к настройкам сервера и клиента.
В нашем примере сервером и клиентом являются интернет-центры Keenetic, поэтому откройте в веб-браузере в разных вкладках сразу два веб-конфигуратора.
На устройствах выполните следующие действия:
Перейдите на страницу "Другие подключения" и в разделе "WireGuard" нажмите кнопку "Добавить подключение". Откроется окно настроек, в котором укажите название туннеля. В нашем примере это "
WG-S
" на сервере и "WG-CL1
" на клиенте.
Нажмите кнопку "Генерация пары ключей" для создания Приватного и Публичного ключа. В дальнейшем нам понадобятся только Публичные ключи с двух сторон VPN-туннеля. Ключ от VPN-сервера нужно будет указать в настройках VPN-клиента и наоборот.
Важно
Не закрывайте в браузере вкладки с параметрами WireGuard-подключений для сервера и клиента. В процессе настройки потребуется переключаться между ними.
Теперь перейдем непосредственно к настройкам каждого роутера.
Настройка VPN-сервера WireGuard
В настройках WireGuard-подключения в поле "Адрес" впишите внутренний IP-адрес туннеля в формате IP/bitmask
(в нашем примере это 172.16.82.1/24
). Можно использовать любую подсеть из частного диапазона, которая не используется на стороне сервера и клиента.
В поле "Порт прослушивания" укажите номер порта, который будет использован при настройке VPN-клиента (в нашем примере это порт 16632
). Именно на этот порт клиент будет обращаться при установлении туннеля. Роутер автоматически откроет этот порт на всех интерфейсах, чтобы проходили входящие подключения. Дополнительно добавлять разрешающие правила межсетевого экрана не нужно.
Нажмите кнопку "Добавить пир" для создания настроек соединения с клиентом.
Временно переключитесь в браузере на вкладку веб-конфигуратора VPN-клиента и в настройках WireGuard-подключения ("WG-CL1
") нажмите кнопку "Сохранить публичный ключ в буфер обмена".
Вернитесь обратно на вкладку с настройками VPN-сервера. Укажите имя пира (в нашем примере это "WG-CL1
") и в поле "Публичный ключ" вставьте из буфера обмена публичный ключ с VPN-клиента.
В полях "Разрешенные подсети" нужно указать адреса, трафик с которых должен быть допущен от удаленной стороны, и адреса, трафик к которым может быть отправлен удаленной стороне. Как правило, это внутренний адрес удаленного конца туннеля и удаленная сеть (локальная сеть VPN-клиента).
Важно
Адресные пространства разрешенных подсетей в пирах, в рамках одного интерфейса, не должны перекрываться.
В нашем примере адрес удаленного конца туннеля 172.16.82.2/32
. Со стороны VPN-клиента трафик в туннеле будет идти с адресом источника 172.16.82.2
, и поэтому мы указываем здесь явно адрес хоста (с маской /32
). И в качестве удаленной сети указана 192.168.100.0/24
(к этой сети требуется обеспечить доступ по туннелю).
Нажмите кнопку "Сохранить".
На этом настройка WireGuard-подключения на стороне VPN-сервера завершена, но дополнительно на роутере нужно произвести настройку сетевого экрана и маршрутизации. Для созданного WireGuard-интерфейса нужно разрешить входящий трафик и указать статический маршрут в удаленную сеть.
Откройте страницу "Межсетевой экран". Для WireGuard-интерфейса (в нашем примере это "WG-S
") добавьте и включите разрешающее правило для IP-протокола. Это нужно, т.к. по умолчанию интерфейсам туннеля устанавливается публичный уровень безопасности и входящий трафик запрещен. Чтобы запросы из удаленных сетей могли проходить по туннелю, соответствующую настройку нужно будет выполнить на роутерах.
Чтобы по туннелю отправлялся трафик в удаленную сеть, нужно добавить статический маршрут.
Перейдите на страницу "Маршрутизация", нажмите на кнопку "Добавить маршрут" и укажите следующие параметры статического маршрута:
В поле "Тип маршрута" выберите значение "Маршрут до сети", в поле "Адрес сети назначения" укажите удаленную подсеть (в нашем примере это
192.168.100.0
) и в поле "Интерфейс" выберите имя созданного ранее WireGuard-интерфейса (в нашем примере это "WG-S
"), включите опцию "Добавлять автоматически".
На этом настройка VPN-сервера завершена и можно переходить к настройкам VPN-клиента. Но перед этим откройте страницу "Другие подключения", нажмите по записи созданного WireGuard-подключения (в нашем примере это "WG-S
") и затем нажмите кнопку "Сохранить публичный ключ в буфер обмена". Этот ключ нам сейчас потребуется при настройке на стороне VPN-клиента.
Важно
Часто на роутере, который выполняет роль VPN-сервера, администратор дополнительно настраивает межсетевой экран для запрета всех входящих подключений на WAN-интерфейсе и разрешения подключений только с определённых IP-адресов. Если у вас имеются такие настройки, то в межсетевой экран на WAN-интерфейсе добавьте правило для входящего подключения к WireGuard-серверу. В разрешающем правиле нужно указать для протокола UDP номер порта прослушивания WireGuard-сервера (в нашем примере это порт 16632
). Если это не сделать, VPN-туннель не установится.
Настройка VPN-клиента WireGuard
В настройках WireGuard-подключения в поле "Адрес" впишите внутренний IP-адрес туннеля из той же подсети, что указана на VPN-сервере. IP-адрес укажите в формате IP/bitmask
(в нашем примере это 172.16.82.2/24
, т.к. на удаленном конце туннеля используется адрес 172.16.82.1/24
).
Нажмите кнопку "Добавить пир" для создания настроек соединения с сервером.
Укажите имя пира (в нашем примере это "WG-S
") и в поле "Публичный ключ" вставьте из буфера обмена публичный ключ с VPN-сервера.
В поле "Адрес и порт пира" в формате IP:port
или name:port
впишите соответственно публичный IP-адрес или доменное имя роутера, который выполняет роль VPN-сервера, и через двоеточие порт пира (порт прослушивания, который был указан при конфигурации туннеля на сервере). В нашем примере это ****.keenetic.link:16632
Важно
При использовании сервиса KeenDNS убедитесь, что он работает в режиме "Прямой доступ". При использовании режима "Через облако" подключение к VPN-серверу из Интернета будет невозможно.
В полях "Разрешенные подсети" нужно указать адреса, трафик с которых должен быть допущен от удаленной стороны, и адреса, трафик к которым может быть отправлен удаленной стороне. Это внутренний адрес удаленного конца туннеля и удаленная сеть (локальная сеть VPN-сервера).
В нашем примере адрес удаленного конца туннеля 172.16.82.1/32
(со стороны VPN-клиента трафик в туннеле будет идти с адресом источника 172.16.82.1
, и поэтому мы указываем здесь явно адрес хоста), а удаленная сеть 192.168.22.0/24
(к этой сети требуется обеспечить доступ по туннелю).
В поле "Проверка активности" укажите интервал попыток проверки активности пира (это внутренняя проверка доступности удаленной стороны соединения). В нашем примере установлено значение 15 секунд
.
Нажмите кнопку "Сохранить".
Теперь на роутере выполним настройку сетевого экрана и маршрутизации. Для созданного WireGuard-интерфейса нужно разрешить входящий трафик и указать статический маршрут в удаленную сеть.
Откройте страницу "Межсетевой экран". Для WireGuard-интерфейса (в нашем примере это "WG-CL1
") добавьте и включите разрешающее правило для IP-протокола.
Чтобы по туннелю отправлялся трафик в удаленную сеть, нужно добавить статический маршрут.
Перейдите на страницу "Маршрутизация", нажмите на кнопку "Добавить маршрут" и укажите следующие параметры статического маршрута:
В поле "Тип маршрута" выберите значение "Маршрут до сети", в поле "Адрес сети назначения" укажите удаленную подсеть (в нашем примере это
192.168.22.0
) и в поле "Интерфейс" выберите имя созданного ранее WireGuard-интерфейса (в нашем примере это "WG-CL1
"), включите опцию "Добавлять автоматически".
На этом настройка VPN-сервера и VPN-клиента завершена.
Включите на роутерах созданные WireGuard-подключения. Если все настроено корректно, в колонке "Пир" должен отображаться зеленый индикатор статуса.
VPN-сервер:
VPN-клиент:
Настройка завершена.
Для проверки работы VPN-туннеля с хостов или непосредственно с роутера (из меню "Диагностика" в веб-конфигураторе) выполните пинг удаленного роутера или устройств, находящихся за туннелем.
Например, с хоста в локальной сети VPN-клиента (из сети 192.168.100.x
) выполним пинг
IP-адреса VPN-сервера (в нашем случае это 172.16.82.1
) и затем локального IP-адреса интернет-центра Keenetic в удаленной сети за туннелем (в нашем примере это 192.168.22.1
).
Проверяем доступность веб-интерфейса сервера (в нашем примере это Keenetic с IP-адресом 192.168.22.1
).
Примечание
При настройке, которая показана в данной статье, будет установлен WireGuard VPN для организации доступа к удаленной подсети, которая находится за VPN-туннелем. При этом доступ в Интернет для клиентов будет осуществляться через локального провайдера.
Но в некоторых случаях нужно, чтобы клиенты, подключенные к роутеру Keenetic по протоколу WireGuard, получали через данный VPN-туннель доступ в Интернет. То есть нужно настроить подключение так, чтобы с VPN-клиента весь трафик маршрутизировался в WireGuard-туннель, как для доступа к удаленной сети, так и в Интернет.
Для этого потребуется на клиенте и сервере выполнить дополнительную настройку по инструкции "Доступ в Интернет через WireGuard-туннель". Обращаем ваше внимание, что в этом случае увеличится нагрузка на сам VPN-канал и на интернет-канал, к которому подключен Keenetic, выполняющий роль VPN-сервера.
Если после настройки VPN-туннеля не работает доступ по протоколу SMB внутри туннеля до клиентов с ОС Windows, то как правило, это вызвано тем, что на хостах включен Межсетевой экран или Брандмауэр Windows. В этом случае отключите сетевой экран в Windows и проверьте работу.
Либо выполните тонкую настройку межсетевого экрана или Брандмауэра Windows. Создайте разрешающие правила в Брандмауэре Защитника Windows для TCP/UDP-портов:
UDP/137
,UDP/138
,TCP/139
,TCP/445
.В сетевом экране Kaspersky Internet Security необходимо разрешить доступ в локальной сети для этих же портов
UDP/137
,UDP/138
,TCP/139
,TCP/445
и проверить уровень доступа сети для сетевого адаптера.