Как настроить wireguard на keenetic
Перейти к содержимому

Как настроить wireguard на keenetic

  • автор:

Как настроить wireguard на keenetic

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

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

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

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

Имеется интернет-центр с “белым” IP-адресом для выхода в Интернет. Этот роутер будет выполнять роль VPN-сервера и на его публичный адрес будет устанавливать VPN-подключение другой интернет-центр (в роли 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туннель не установится.

Клиент и сервер WireGuard

Для настройки WireGuard на роутере в интернет-центре Keenetic нужно установить компонент «WireGuard VPN»:

Откройте веб-интерфейс роутера. По умолчанию для этого в браузере нужно перейти по адресу 192.168.1.1 или my.keenetic.net . Введите логин и пароль от веб-интерфейса роутера (они могут быть написаны на наклейке на нижней части устройства).

Перейдите в раздел «Общие настройки», нажмите кнопку «Изменить набор компонентов».

Найдите компонент «WireGuard VPN» и установите его. В процессе установки интернет-соединение может временно пропасть.

После этого раздел «WireGuard» появится на странице «Другие подключения».

Получение файла конфигурации WireGuard

Скачайте из личного кабинета или бота BlancVPN один файл конфигурации .conf для любой нужной вам локации.

Обратите внимание: этот файл конфигурации нельзя будет использовать на другом устройстве. Если в роутере вы подключите AMS1, то, например, для смартфона вам необходимо будет использовать AMS2 или файл из другой локации.

Настройка VPN на роутере Keenetic

Откройте веб-интерфейс роутера. По умолчанию для этого в браузере нужно перейти по адресу 192.168.1.1 или my.keenetic.net . Введите логин и пароль от веб-интерфейса роутера (они могут быть написаны на наклейке на нижней части устройства).

Перейдите в раздел «Другие подключения», в подразделе «Wireguard» нажмите кнопку «Загрузить из файла».

Выберите скачанный файл конфигурации .conf. Роутер сообщит об успешном подключении уведомлением «Новая конфигурация была успешно импортирована из файла».

Нажмите на название загруженного файла конфигурации, чтобы открыть его настройки. Поставьте галочку в пункте «Использовать для выхода в интернет» и сохраните изменения.

Установите этому соединению самый высокий приоритет – тогда весь трафик будет защищён VPN-соединением. Перейдите в раздел «Приоритеты подключений», переместите VPN-подключение так, чтобы оно было над подключением провайдера, и сохраните изменения.

В этом же разделе нажмите кнопку «+ Добавить политику».

Дайте ей любое название и нажмите ОК

Включите в эту политику подключений только ваше VPN подключение и сохраните.

Затем в этом же разделе перейдите к подразделу «Применение политик». Перенесите в вашу недавно созданную политику доступа ваши устройства (Домашняя сеть).

В вашей политике доступа должна содержаться как минимум «Домашняя сеть», если вы не настраивали этот пункт отдельно.

Теперь вы можете включать и выключать VPN-подключение на роутере, просто переводя переключатель в разделе «Другие подключения» → «Wireguard» в соответствующее положение.

После подключения проверьте, изменился ли ваш IP-адрес. Для этого откройте наш сайт blancvpn.com и посмотрите на панель наверху страницы: там будет указан ваш новый IP-адрес и локация.

Если возникли сложности или что-то пошло не так – напишите нам в Telegram-бот https://t.me/FCK_RKN_bot, поможем!

Совет: ожно настроить раздельное туннелирование трафика через политику приоритетов подключений, если требуется направлять через VPN только трафик определённых устройств. Например, игровые приставки и смартфоны – через VPN, а остальные (компьютер или NAS, качающий торренты) — через основной провайдерский Интернет. Кроме того, это открывает возможности балансировки нагрузки при использовании 3G/4G-модемов с лимитированным трафиком. Инструкция по настройке раздельного туннелирования указана в разделе "Приоритеты подключений" на сайте Keenetic.

Совет: если весь ваш трафик перенаправляется через VPN на роутере, необязательно включать VPN на отдельных устройствах, которые подключены к роутеру.

Совет: если после настройки VPN на роутере у вас не загружаются некоторые заблокированные сайта, поменяйте DNS подключений на 8.8.8.8. Для этого перейдите в раздел Другие подключения, нажмите на нужное VPN подключение, отредактируйте поле "DNS 1" и сохраните.

Типовые ошибки и пути решения:

Сильно снижается скорость при использовании VPN на роутере
Поддержание VPN-тоннеля в постоянно подключённом состоянии значительно нагружает роутер – из-за того, что в роутерах используются MIPS-процессоры, а VPN подразумевает постоянное шифрование и расшифровку трафика.

Поэтому активное VPN-подключение может снижать скорость интернета на старых и бюджетных моделях роутеров. Если замедление критично – рекомендуется настроить VPN-подключение отдельно на конечных устройствах: компьютерах, смартфонах и так далее.

В подписке BlancVPN вы можете настроить VPN на любое количество устройств, доплачивать за новые не придётся!

Доступ в локальную сеть и в интернет через Wireguard для Keenetic

Настройка Wireguard для Keenetic для одновременного доступа в локальную сеть и в интернет через VPN.

Доступ в локальную сеть и в интернет через Wireguard для Keenetic

В данной заметке я расскажу, как организовать соединение с вашей локальной сетью за роутером Keenetic, если у вас уже настроен выход в интернет через WG сервер с роутера и телефона.

Использование VPN сегодня это такая же необходимость, как установка сложных уникальных паролей и двухфакторная авторизация. Для меня отсутствие VPN — это как уйти из дома и не закрыть на ключ дверь.

Помимо защиты ваших интернет соединений VPN может обеспечить соединение с вашей домашней сетью. Таким образом я организую свое небольшое облако. Файлы из моей домашней сети всегда доступны, где бы я не был.

Как я уже говорил у вас уже должен быть настроен Wireguard сервер, роутер и телефон должны выходить через этот сервер в интернет. Я же расскажу, как с телефона попасть в локальную сеть за роутером с использованием Wireguard, и при этом не потерять VPN выход в интернет. Для этого нужно будет использовать консоль роутера Keenetic.

Настройка Keenetic

Если доступа в консоль нет, то его надо включить. Для этого перейдите в раздел “Управление” -> “Пользователи и доступ”. Проверьте что установлен порт управления по SSH и активирован пункт “Подключения к командной строке по SSH”.

Настройка доступа к Keenetic

Также убедитесь, что у вас есть пользователь, у которого есть права входа через SSH. На той же странице у вас есть список пользователей. Зайдите в редактор прав пользователя, и убедитесь что у него активирован пункт “Доступ к командной строке (TELNET и SSH)”.

Настройка прав доступа пользователя Keenetic

Теперь заходим в консоль управления роутером.

Первым делом нам надо узнать, какой интерфейс был присвоен нашему соединению на роутере. Если это ваше первое соединение с Wireguard, то скорее всего это Wireguard0. Но давайте убедимся в этом.

Для этого необходимо ввести interface Wire и нажать Tab :

Чтобы точно убедиться выведите информацию об интерфейса.

По названию и адресу понимаем, что это нужное соединение.

Keenetic Wireguard

Нужно добавить правило на IN, иначе запросы в локальную сеть будут дропаться. Не забудьте заменить Wireguard0 на другое значение, если у вас задействован другой интерфейс.

Теперь надо добавить статический маршрут до сети Wireguard.

Настройка сервера WG

Теперь нужно настроить сервер Wireguard. Для этого нужно отредактировать файл конфигурации, обычно он лежит в папке /etc/wireguard/wg0.conf . Зайдите под root.

У нас тут все стандартно. Два пира, один из них роутер, второй телефон. Для роутера необходимо указать в AllowedIPs вашу локальную сеть, в данном случае 192.168.1.0/24 .

После этого отключим и включим WG соединение.

После этого у вас должен появится доступ к локальной сети роутера с телефона через Wireguard VPN. По аналогии можно настроить доступ к локальной сети для остальных устройств.

Универсальный VPN с WireGuard, MikroTik и Keenetic

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

настроить на VPS сервере WireGuard

организовать связь через WireGuard между двумя домашними сетями без публичных IP

организовать выход с клиентских устройств в интернет без границ, если ваш VPS находится на иностранной площадке

WG

Конечно, разных статей про WG много — тем не менее, когда мне понадобилось решить комплексную задачу, те статьи, которые я находил, мне не помогали. Рискну предположить, что так происходило потому, что в большинстве статей приводится рецепт без объяснения механики происходящего, поэтому шаг влево или вправо делает инструкцию бесполезной. Я хочу ликвидировать этот пробел и дать читателю в руки не только инструкцию, но и понимание, как это работает, чтобы он имел возможность реализовать что-то из того, что нигде не описано.

Для начала опишу задачу, которая у меня возникла и которая была успешно решена. Исходной отправной точкой была идея связать два сетевых сегмента — на даче и в квартире, чтобы можно было админить одну сетку из другой и наоборот. Так сложилось, что среда оказалась гетерогенной — дома стоит роутер Keenetic Viva, доступ к его админке есть из интернета благодаря технологиям Keenetic, а вот на даче стоит MirkoTik RB3011, и у местного провайдера нет услуг типа публичного IP. Идея витала давно, но драйвером реализации стало то, что классный VPN Windscribe перестал работать через моего провайдера совсем. Я решил арендовать VPS за рубежом, настроить VPN для членов семьи, и заодно связать две сетки — как вишенка на торте. Целевая архитектура выглядит так:

Был арендован VPS сервер у провайдера Fornex [ссылка удалена модератором] , в качестве отправной статьи для настройки WireGuard была использована статья на 1cloud. Далее идём по порядку — я использовал рутовый аккаунт, поэтому команды без sudo .

Переходим в каталог /etc/wireguard и все всё делаем там. Пока всё согласно инструкции — генерим ключевую пару для сервера:

В результате у нас появятся два ключа — закрытый и публичный, они будут использоваться для подключений к WG серверу. Теперь пришло время вернуться к изучению матчасти — как работает WG, какими сущностями оперирует и к чему это всё приводит. Упрощённо схема работы WG выглядит так:

Данная схема описывает следующие факты и соображения:

В результате запуска WG сервера поднимается отдельный сетевой интерфейс на хосте.

Конфигурация WG сервера применяется к сетевому интерфейсу.

Для каждого клиентского соединения на стороне сервера настраивается свой peer, он же пир.

Защищённый канал устанавливается между двумя пирами.

Сервер не настраивает параметры клиентских пиров, он настраивает только свои пиры.

Пир, он же peer, как следует из перевода термина, является равноправным участником обмена данными, пиры на сервере не отличаются по правам от пиров на клиентах, и каждый пир имеет свои собственные настройки, и данные настройки определяют, какие данные будут отправлены в защищённый канал, и это очень важный факт, который поможет настроить параметры для решения задачи.

Сначала разберём поток пакетов из квартирной сети в сеть дачи и обратно. Предположим, что у нас есть следующие параметры:

подсеть квартиры, Keenetic

подсеть дачи, MikroTik

Касательно подсети VPN — можно задать любую подсеть из числа внутренних, непубличных адресов. Я у себя выбрал такую, у вас может быть любая, соответствующая критерию внутренней.

Пойдём по шагам.

Настроить сервер WG для приёма подключений клиентских пиров.

Настроить в Keenetic передачу пакетов в соединение VPN.

Настроить клиентский пир WG на Keenetic, чтобы всё, что приходит на этот пир, отправлялось в канал WG.

Настроить серверный пир WG для Keenetic, чтобы всё, что приходит из сети 192.168.0.0/24 в канал WG, отправлялось в сеть 192.168.88.0/24.

Настроить клиентский пир WG на MiroTik, чтобы всё, что приходит на этот пир, отправлялось в канал WG.

Настроить серверный пир WG Mikrotik, чтобы всё, что приходит из сети 192.168.88.0/24 в канал WG, отправлялось в сеть 192.168.0.0/24.

Начнём с настройки сервера WG, для этого нам понадобится ключ, сформированный ранее в /etc/wireguard с именем privatekey .

Для начала настроим интерконнект между двумя сетями — квартира и дача. Прежде, чем это сделать, надо сгенерировать ключевые пары для пиров квартиры и дачи, т.е. для их роутеров:

Сформируем файл в каталоге /etc/wireguard с именем wg0.conf и следующим содержанием:

Параметр AllowedIPs как раз определяет, какой адрес источника пакетов будет передан в шифрованный канал. В настройках пира для каждого роутера записана подсеть другого роутера — плюс IP адрес пира, которой образуется в результате его подключения, чтобы с VPS сервера можно было достутчаться до хостов во внутренних сетках. Т.е. когда коннектится Keenetic, его пир имеет адрес 10.0.0.2, и пакеты из 192.168.0.0 и с 10.0.0.2 будут отправляться в шифрованный канал. С MikroTik — зеркально.

Теперь надо настроить сервис WG на VPS. На Ubuntu это делается командами:

Эти команды стартуют сервис WG с настройками из указанного конфиг файла, т.е. wg0.conf. Далее надо настроить WG клиенты на роутерах. Начнём с Keenetic.

Не буду тут писать про то, как добавить WG в Keenetic — этой информации полно. После добавления в разделе Internet -> Other connections появится раздел WireGuard, где мы и настроим нужные параметры. Нажмём Add Connection и заполним нужные параметры пира на роутере:

название соединения, заполняем на своё усмотрение

use for accessing internet

не крыжим, иначе весь траффик уйдёт на VPN, а нам это не надо

используем данные из файла keenetic_privatekey

10.0.0.2/24 — это IP адрес роутера Keenetic в сети VPN

я использовал 8.8.8.8

данные из файла publickey самого сервера

<x.x.x.x:ListenPort> — используйте IP адрес VPS и порт, заданный в wg0.conf

0.0.0.0/0 — всё, что приходит на пир, отправляем в VPN

15 — интервал опроса живости интерфейса в секундах

После этого у роутера Keenetic установится соединение с VPN сервером. Далее надо настроить MikroTik. Тут надо отметить, что поддержка WireGuard в MikroTik появилась только с седьмой версии RouterOS, но апгрейд выходит пока за рамки данной статьи и я предполагаю, что вы смогли проапгрейдиться.

Открываем вкладку в WebFig с названием WireGuard и заполняем параметры — это настройки пира на роутере:

любое, у меня 51380

содержимое файла mikrotik_privatekey

Переходим во вкладку Peers, потом Add New, заполняем параметры пира:

Name из предыдущего шага

содержимое publickey сервера

x.x.x.x — IP адрес VPS сервера

Listen Port из wg0.conf

Вот мы и настроили связь между двумя сетями.

Дальше по списку — настройка VPN соединений для выхода, скажем, телефонов, в свободный интернет. Я потратил кучу времени и нервов, и итог получился следующий. Почему так — станет понятно из материала дальше по тексту. По итогу вывод получился следующий — нельзя настроить на одном интерфейсе выход в интернет клиентских устройств и связь между сетями

Поэтому, если я и кто-то из семьи хотим выходить в свободный интернет через VPS сервер, на него придётся добавить новые интерфейсы. Почему же так получается?

Предположим, что на телефон установлено приложение WireGuard, настроены ключи и т.д. Устанавливаем коннект с сервером, и телефон отправляет пакет на зарубежный интернет сервер, скажем, google.com. Пакет отправляется пиром телефона на пир сервера, в интерфейс wg0 . В результате правильной настройки пакет с этого интерфейса форвардится на интерфейс eth1 , подвергается маскараду и натированию, и уходит в большой мир. Сервер google.com отвечает на наш пакет, он приходит на eth1 и форвардится на wg0 , попадая на пир сервера, и тут мы натыкаемся на проблему. В настройках серверного пира указано, пакеты с каких IP адресов или сетей должны уходить в канал. Сервера google.com там сейчас нет, поэтому ответ на телефон просто не вернётся и соединение не будет установлено. Хорошо, добавим в настройки серверного пира для телефона 0.0.0.0/0 , все пакеты будут уходить на телефон — профит. После рестарта интерфейса wg0 мы с удивлением обнаружим, что наш VPS сервер больше недоступен — не пингуется, не коннектится по ssh и текущий терминал вообще завис, потому что теперь весь трафик уходит в пир, даже тот, который для него не предназначен. Именно поэтому организовать на одном интерфейсе желаемую схему нельзя. Ещё одни грабли, на которые я наступил — в рамках одного интерфейса невозможно сделать так, чтобы пакеты уходили в несколько пиров — пакет уходит в тот пир, для которого есть подходящий параметр Allowed IPs.

Но создать новые интерфейсы довольно просто. В папке /etc/wireguard копируем wg0.conf в wg1.conf, и создаём новую ключевую пару:

Для того, чтобы данная конфигурация заработала, необходимо настроить IP forwarding на сервере — иначе пакеты из интерфейса wg1 не будут форвардиться в eth0, т.е. в интернет, и обратно:

Итак, какие ключевые изменения получил конфиг по сравнению с интерфейсом обмена между сетями?

Во-первых, изменился Address, там теперь другая подсеть VPN — 10.0.1.0/24. Соотвественно, и AllowedIPs тоже изменился — все пакеты из этой подсети надо отправлять в peer.

Изменился ListenPort — сервер WG будет принимать соединения для этого интерфейса на другом порту.

Изменились команды PostUp и PostDown — для доступа в интернет недостаточно правил форвардинга, надо ещё и поднимать NAT и masquerade, но это тема совсем другой статьи.

На этом пока всё, настроена интеграция дачной и квартирной сети, и VPN выход в интернет через один и тот же VPS. За кадром пока осталась генерация QR кодов для настройки клиентов — думаю, с этим проблем быть не должно, отмечайте в комментариях, возникают ли проблемы на этом этапе, чтобы было понятно, надо ли обновить мануал.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *