Доступ в Интернет через WireGuard-туннель

Каковы должны быть настройки, чтобы клиенты, подключенные на Keenetic при помощи WireGuard VPN, получали через данное соединение доступ в Интернет?

NOTE: Важно! При такой настройке увеличится нагрузка на сам VPN-канал и на интернет-канал, к которому подключен Keenetic, выполняющий роль VPN-сервера.

1. В конфигурации пира на клиентах должна быть указана разрешенная сеть (Allowed IPs) 0.0.0.0/0. Если клиент — Keenetic, то в параметрах интерфейса должна быть включена опция "Использовать для входа в Интернет".

2. Также в конфигурации на стороне клиента должен быть указан сервер DNS (например, публичный адрес DNS-сервера от Google 8.8.8.8).

TIP: Клиентом WireGuard VPN-сервера может выступать интернет-центр Keenetic, мобильные устройства на базе ОС Android и iOS, или компьютеры на базе ОС Windows, Linux, macOS.

3. На стороне сервера, то есть на стороне, через подключение к которой должен осуществляться выход в Интернет, потребуются показанные ниже настройки.

TIP: В случае с WireGuard неважно кто в данной схеме является сервером, т.е. принимает подключение, а кто устанавливает его. Но обычно именно сервер ожидает подключение.

WireGuard-интерфейсу должен быть установлен уровень безопасности private. Для этого потребуется в интерфейсе командной строки (CLI) роутера ввести следующую команду (в нашем примере для интерфейса Wireguard0):

interface Wireguard0 security-level private


Также для интерфейса должна быть включена установка автоматической трансляции адресов (NAT). Для этого потребуется ввести команду:

ip nat Wireguard0


Это необходимые и достаточные условия. Настройки на сервере следует сохранить при помощи команды:

system configuration save


4. Следует иметь в виду, что при изменении уровня безопасности интерфейса туннеля с предустановленного public на private, изменяются правила передачи трафика в этот интерфейс из других локальных сетей роутера, и в обратном направлении (см. "Как реализован межсетевой экран?"). Разрешающая настройка для подобной ситуации приведена в примечании к статье "Сегменты сети".

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

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

Пример

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

а) На VPN-сервере меняем уровень безопасности интерфейса Wireguard0 и включаем для него правило автоматической трансляции адресов.

interface Wireguard0 security-level private
ip nat Wireguard0
system configuration save


б) Через веб-конфигуратор добавляем разрешающее правило для Домашней сети для прохождения трафика в сеть за удаленным роутером. Разрешение по направлению в локальную сеть VPN-клиента:

wg-fw-s.png

А на стороне VPN-клиента добавьте разрешающее правило для Домашней сети для прохождения трафика в локальную сеть VPN-сервера.

в) На VPN-клиенте нужно скорректировать конфигурацию интерфейса WireGuard. Следует добавить в разрешенные сети пира адресное пространство 0.0.0.0/0. В настройке самого интерфейса включите опцию "Использовать для входа в Интернет" и укажите DNS-сервер(ы). В нашем примере мы указали публичный сервер Google DNS (8.8.8.8), но можно использовать и доступные в туннеле локальные адреса, например адрес самого роутера VPN-сервера (172.16.82.1).

wg-cl1-nat.png

Сохраните настройку.

г) На VPN-клиенте в меню "Интернет" на странице "Приоритеты подключений" появится интерфейс WireGuard. Перетащите его в начало списка, чтобы сделать основным подключением.

wg-pr.png

После этого все клиенты, подключенные напрямую к роутеру Keenetic, будут выходить в Интернет через VPN-туннель. Если необходимо настроить доступ только для некоторых устройств, в этом случае рекомендуем создать отдельный профиль и привязать к нему определенные устройства. Как это сделать показано в инструкции "Приоритеты подключений".

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

TIP: Примечание: Чтобы отключить настроенную функциональность, достаточно будет на VPN-сервере ввести команды interface Wireguard0 security-level public и no ip nat Wireguard0, сохранив затем настройки командой system configuration save. На VPN-клиенте нужно будет выключить опцию "Использовать для входа в Интернет" на интерфейсе WireGuard и удалить разрешенную сеть 0.0.0.0/0.
Правила сетевого экрана и указанные DNS-серверы не помешают функционированию и в случае работы по конфигурации из статьи "Настройка WireGuard VPN между двумя роутерами Keenetic".

 

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

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

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

Комментарии

Комментариев: 3
  • Господа, есть небольшая просьба: напишите, пожалуйста, как правильно настроить маршрутизацию и, если нужно, правила файерволла, для того, чтобы клиент, подключившийся по Wireguard-туннелю имел доступ не только в локальную сеть за роутером, к которому он подключился, но и в локальные сети, с которыми у роутера орагнизованы ipsec-туннели. У меня именно такая ситуация, локалки двух Keenetic объединены через IPSec ( по вашим инструкциям) и теперь на серверном Keenetic я поднял Wireguard, клиент Windows 10 через него ходит в интернет, в локальную сеть за серверным Keenetic, всё хорошо, а вот как сделать доступ к локалке за вторым Keenetic? Явных маршрутов ведь для IPsec нет...

    0
    Действия с комментариями Постоянная ссылка
  • При настройке IPSec сайт-сайт соединяются сети, обозначенные при помощи адресных пространств на второй фазе. Это локальная и удаленная сети.
    Чтобы данные из туннеля WireGuard передавались через IPSec туннель в удаленную сеть, трафик приходящий из WireGuard-туннеля должен соответствовать настроенной в правиле IPSec политике второй фазы, подпадать под условие локальной сети на этом устройстве и удаленной сети на ответном узле.
    Мы не рассматривали такую схему. Если использовать смешанную технологическую среду в вашем случае необходимо (нельзя обойтись только WireGuard-туннелями), напишите нам пожалуйста обращение по каналу ТП.

    0
    Действия с комментариями Постоянная ссылка
  • Обязательно поставльте галочку "Adjustment of TCP MSS" в настройках подключения клиента "Дополнительные настройки", иначе некоторые сайты не будут открываться или будут открываться очень медленно.

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

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