Настройка wireguard на keenetic


Настройка роутера Keenetic в качестве Wireguard сервера • wireguard, keenetic, vpn, роутер • IT Draft

Keenetic Wireguard

Поддержка WireGuard VPN реализована для актуальных моделей Keenetic, начиная с выпусков KeeneticOS версии 3.3

Подготовка

Для начала добавляем в роутер Keenetic поддержку wigreguard

Управление -> Общие настройки -> Изменить набор компонентов

В строке поиска вводим Wireguard и устанавливаем компонент

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

Переходим к настройкам Wireguard-сервера.


Интернет -> Другие подключения -> Добавить подключение

Создаем новое подключение

Называем его, к примеру WG-S (Wireguard server)

Задаем следующие параметры

Название: WG-S (любое название) Жмем на кнопку "Генерация пары ключей", публичный ключ понадобится далее Адрес: 172.16.31.1/24 - наш терминальный ip Wireguard сервера Порт: к примеру 12345

Чуть ниже будет кнопка «Добавить пир», нажимаем её и задаем параметры пира

Имя пира: любое понятное имя Публичный ключ: получим при настройки клиента, чуть ниже Разрешенные подсети: 172. 16.31.2/32 - терминальный ip wireguard клиента Проверка активности: я ставлю 25 сек

Настройка Wireguard клиента

Запускаем Wireguard на ПК и создаем новый туннель

Название: придумываем удобное название Публичный ключ: генерится сам. Копируем его и вставляем в шаге выше PrivateKey: генерится сам Address: 172.16.31.2/32 - терминальный ip-адрес клиента PublicKey: публичный ключ сервера AllowedIPs: 172.16.31.1/32, 192.168.0.0/24 - разрешаем терминальный ip-адрес сервера и сетку в удаленном офисе Endpoint: ip:port wireuard серевера (к примеру 8.8.8.8:12345) PersistentKeepalive: 25 сек, проверка активности

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

Настройка межсетевого экрана

Переходим в пункт меню

Сетевые правила -> Межсетевой экран

Выбираем вкладку с названием нашего Wireguard (WG-S) и жмем «Добавить правило»

Задаем удобное описание, меняем протокол на IP и включаем правило

На этом настройка завершена.
Включаем Wireguard сервер на роутере Keenetic, коннектимся клиентом и проверяем доступность удаленных машин.

Метки записи: #wireguard#keenetic#vpn#роутер

Максим Макаров

У блога появился хостинг, его любезно предоставила компания Облакотека. Облакотека - облачные сервисы для создания и управления виртуальной ИТ-инфраструктурой.
Если вам понравился мой блог и вы хотели бы видеть на нем еще больше полезных статей, большая просьба поддержать этот ресурс.

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

Установка ITSM-системы GLPI + NGINX + PHP 7.4 + Percona в Centos 7

GLPI это ITSM-система, которая позволит вам легко управлять и планировать IT изменения, быстро решать проблемы с помощью автоматизации.GLPI является системой работы с заявками и инцидентами, а также для инвентаризации компьютерного оборудования. Подготовка Обновляем операционную систему, добавляем репозиторий EPEL, устанавливаем софт Selinux Переводим Selinux в режим permissive Применяем так же: Установка и настройка PHP 7. 4 Установим yum-utils…

Читать далее Установка ITSM-системы GLPI + NGINX + PHP 7.4 + Percona в Centos 7Продолжить

Обновление CentOS 7 до CentOS 8

CentOS — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним. Согласно жизненному циклу Red Hat Enterprise Linux (RHEL), CentOS 5, 6 и 7 будут поддерживаться «до 10 лет», поскольку они основаны на RHEL. Ранее версия CentOS 4 поддерживалась семь лет. Подготовка Добавляем репозиторий EPEL Устанавливаем утилиту yum-utils…

Читать далее Обновление CentOS 7 до CentOS 8Продолжить

Расширить корневой раздел (ext4, не LVM) диска в Debian

Корневой раздел является хранилищем всех остальных файловых систем. Через него система получает доступ ко многим (если не ко всем) своим ресурсам. В этом разделе (файловая система) содержит такие важные системные каталоги (которые могут быть выноситься в отдельные разделы при желании и являться отдельными файловыми системами) как «/usr», «/bin», «/etc», «/var», «/opt» и т.  д., в совокупности…

Читать далее Расширить корневой раздел (ext4, не LVM) диска в DebianПродолжить

Увеличить размер VDI диска в VirtualBox

Первоначально необходимо остановить виртуальную машину VitrualBox под Windows Чтобы посмотреть информацию о текущем виртуальном диске, в командной строке набираем: Чтобы увеличить размер виртуального жесткого диска, в командной строке набираем: VitrualBox под Linux Чтобы посмотреть информацию о текущем виртуальном диске, в терминале набираем: Чтобы увеличить размер виртуального жесткого диска, в терминале набираем: Далее запускаем Виртуальную машину,…

Читать далее Увеличить размер VDI диска в VirtualBoxПродолжить

Установка Zabbix Proxy + SQLite в Centos 8 / Rocky Linux

Zabbix proxy — сервис, способный собирать данные мониторинга с одного или нескольких наблюдаемых устройств и отправлять эту информацию Zabbix серверу, таким образом прокси работает от имени сервера. Используется для масштабирования, централизации Zabbix. Устанавливаем необходимый софи Создаем каталог для базы данных и назначаем владельца каталога Если создать каталог отличный от /var/lib/zabbix, в дальнейшем будут проблемы с SeLinux Открываем файл настроек…

Читать далее Установка Zabbix Proxy + SQLite в Centos 8 / Rocky LinuxПродолжить

«Квест» на яву: домен и хостинг

Предистория: 04 августа 2011 года у нашего хостера ООО «НЕТ.РУ» упал сервер и вместе с ним наши действующие сайты — оптовый и розничный интернет-магазин. Все попытки получить бэкапы окончились неудачей, хостер тупо не выходил на связь, либо девушка-секретарша направлял в «тикет»-систему, ответы на которые я  дожидаюсь посей день.После дня мучений с попыткой получить бэкапы было решено…

Читать далее «Квест» на яву: домен и хостингПродолжить

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

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

Вы узнаете, как:

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

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

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

Список сокращений

сокращение

расшифровка

WG

WireGuard

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

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

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

Устанавливаем WG:

apt install -y wireguard

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

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

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

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

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

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

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

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

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

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

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

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

192.168.0.0/24

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

192.168.88.0/24

IP адрес VPS

x.x.x.x

подсеть VPN

10.0.0.0/24

Касательно подсети 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.

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

wg genkey | tee /etc/wireguard/keenetic_privatekey | wg pubkey | tee /etc/wireguard/keenetic_publickey
wg genkey | tee /etc/wireguard/mikrotik_privatekey | wg pubkey | tee /etc/wireguard/mikrotik_publickey

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

[Interface] PrivateKey = <здесь privatekey> # Приватный ключ из файла privatekey. Address = 10.0.0.1/24 #Адрес VPN-сервера в частной сети. ListenPort = 51830 #Порт, который будет слушать VPN-сервер. PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT [Peer] PublicKey = <keenetic_publickey> #Публичный ключ роутера Keenetic AllowedIPs = 192.168.0.0/24, 10.0.0.2 [Peer] PublicKey = <mikrotik_publickey> #Публичный ключ роутера Mikrotik AllowedIPs = 192. 168.88.0/24, 10.0.0.3

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

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

systemctl enable [email protected] systemctl start [email protected]

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

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

параметр

значение

Name

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

use for accessing internet

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

Private key

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

Address

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

Listen port

вообще любой

DNS

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

Peer name

любой

Public key

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

Endpoint

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

Allowed IPs

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

Persistent keepalive

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

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

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

параметр

значение

Name

любое

Listen Port

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

Private Key

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

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

параметр

значение

Interface

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

Public Key

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

Endpoint

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

Endpoint Port

Listen Port из wg0.conf

Allowed Address

0.0.0.0/0

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

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

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

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

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

wg genkey | tee /etc/wireguard/user1_privatekey | wg pubkey | tee /etc/wireguard/user1_publickey

Редактируем wg1.conf

[Interface] PrivateKey = <здесь тот же серверный private key> # Приватный ключ из файла privatekey. Address = 10.0.1.1/24 #Адрес VPN-сервера в частной сети. ListenPort = 51831 #Порт, который будет слушать VPN-сервер. PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при поднятии сервера PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при выключении сервера [Peer] PublicKey = <публичный ключ user1> #Публичный ключ user1 AllowedIPs = 10. 0.1.0/24

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

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

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

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

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

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

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

[ru] Подключение к WireGuard VPN из macOS

[ru] Подключение к WireGuard VPN из macOS

[ru] Начиная с версии KeeneticOS 3.3 , вы можете использовать WireGuard VPN для подключения к локальной сети интернет-центр удаленно.

[ru] Сначала необходимо настроить сервер WireGuard на интернет-центре Keenetic. В следующей инструкции показан процесс: «Настройка WireGuard VPN между двумя интернет-центрами Keenetic». Затем перейдите к настройке VPN-клиента.

Важно

[ru] Если вы хотите настроить интернет-центр Keenetic в качестве VPN-сервера, убедитесь, что он имеет публичный IP-адрес, а при использовании сервиса KeenDNS работает в режиме «Прямой доступ». При невыполнении любого из этих условий подключение к такому серверу из Интернета будет невозможно.

[ru] Ниже приведен пример подключения к серверу из операционной системы macOS с использованием версии macOS Catalina в качестве эталона.

[ru] Для подключения к серверу Keenetic WireGuard на компьютере под управлением macOS необходимо скачать и установить WireGuard.

  1. [ru] Запустите программу и нажмите стрелку вниз в левом нижнем углу. Выберите «Добавить пустой туннель... [⌘+N]».

  2. [ru] Откроется окно настройки подключения, в котором необходимо ввести настройки клиента Wireguard для macOS [Interface] и удаленного сервера Wireguard Keenetic [Peer] .

    Важно

    [ru] Оставьте это окно открытым, не закрывайте его.

    [ru] Исходная настройка:

    [ru] В поле «Имя» введите имя подключения ' wg-client '(можно указать другое имя).

    [ru] В отличие от «По требованию» выберите сетевой интерфейс, через который будет работать клиент Wireguard.

    [ru] Настройка клиента [Интерфейс] :

    [ru] Поле «PrivateKey» интерфейса содержит сгенерированный программой ключ клиента macOS Wireguard.

    [ru] В поле Address клиента WireGuard указать IP-адрес в формате IP/bitmask — 172.16.82.10/24 (внутренний туннельный адрес). Можно использовать другую подсеть, выбрав ее из диапазона частных адресов и избегая перекрытия с другими подсетями, настроенными на этих устройствах.

    Важно

    [ru] Если вы настроили доступ в Интернет через WireGuard VPN, в разделе « [Интерфейс] » необходимо указать DNS-сервер в поле «DNS=».

    [en] В нашем примере адрес DNS-сервера Google установлен на 8.8.8.8 :

    [en] Настройка сервера [Peer] :

    [en] В поле «PublicKey» вставьте публичный ключ сервера, который можно скопировать в буфер обмена из настроек WireGuard в веб-интерфейсе роутера:

    [ru] В поле «Разрешенные IP-адреса» введите разрешенные IP-адреса в формате IP/bitmask — 172.16.82.1/32 (внутренний адрес сервера) и 192.168.22.0/24 (адрес локального сегмента Интернет-центр Keenetic).

    [ru] В поле «Конечная точка» введите общедоступный IP-адрес или доменное имя сервера WireGuard и порт прослушивания, на котором клиент WireGuard будет устанавливать соединение.

    [ru] В поле PersistentKeepalive укажите частоту попыток проверки доступности удаленной стороны соединения. Обычно 10-15 секунд интервал между проверками достаточен.

    [ru] Нажмите «Сохранить».

  3. [ru] Настройка удаленного подключения на стороне сервера WireGuard.

    [ru] Подключитесь к веб-интерфейсу интернет-центра Keenetic и перейдите в меню «Интернет» — «Другие подключения». Нажмите на ранее созданное соединение WireGuard (« WG-S ») и добавьте «Настройки узла». При нажатии «Добавить узел» откроется форма «Параметры узла», в которой необходимо ввести имя туннеля «wg-mac-client».

    [ru] В поле «Открытый ключ» вставьте ключ, сгенерированный ранее на шаге 2 этой статьи.

    [ru] В поле «Разрешенные IP» укажите адрес, с которого будет разрешен трафик на сервер в формате IP/bitmask — 172.16.82.10/32 .

    [ru] В поле «Постоянная поддержка активности» укажите частоту попыток проверки доступности удаленной стороны соединения. Обычно между проверками достаточно интервала 10-15 секунд. По умолчанию значение «Persistent keepalive» в настройках однорангового узла равно 9.0007 30 секунд.

    [ru] Нажмите «Сохранить».

  4. [ru] Вернуться к настройкам программы Wireguard; настроенное соединение появится в списке.

    [ru] Нажмите «Активировать».

    [ru] Если настройка верна, вы увидите зеленый индикатор перед строкой «Статус».

    [ru] Чтобы проверить доступность сервера, вы можете отправлять ICMP-пакеты на IP-адрес в Терминале.

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

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

WireGuard на маршрутизаторе — Руководства

В этом руководстве мы покажем вам, как настроить и запустить WireGuard® на маршрутизаторе.

Если у вас возникнут какие-либо проблемы во время тестирования WireGuard, свяжитесь с нами по адресу support@mullvad. net и сообщите нам о своих впечатлениях.

Установка OpenWrt на ваш маршрутизатор (здесь использовалась версия 21.02.3)

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

Установка WireGuard и Mullvad на маршрутизатор имеет ряд преимуществ:

  • Вы можете защитить всю свою сеть и все устройства, подключенные к маршрутизатору.
  • Вы можете запустить Mullvad более чем на пяти устройствах (все устройства, подключенные к маршрутизатору).
  • Через маршрутизатор можно запускать Mullvad даже на устройствах, не поддерживающих WireGuard.
  • Маршрутизатор, естественно, предназначен для маршрутизации и не нарушается другими программами и настройками, как это может быть с программой на компьютере. Работает хорошо и стабильно.

Установка WireGuard

Что вам нужно для продолжения:

  • роутер со свежеустановленной OpenWrt.
  • пара открытый/закрытый ключ для использования с WireGuard (будет описано ниже).
  • IP-адрес для использования (будет описан ниже).

Обновите прошивку маршрутизатора до OpenWRT

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

Обычно маршрутизатор отображает некоторую информацию о состоянии, а затем перезагружается. Будьте особенно осторожны при загрузке правильной версии, так как неправильное выполнение может «заблокировать» ваш маршрутизатор, что сделает его полностью непригодным для использования.

Начальная конфигурация OpenWrt

  1. Откройте браузер и перейдите по адресу http://192.168.1.1/.
  2. Нажмите кнопку «Войти». При этом вы входите в систему с пользователем root по умолчанию и без пароля.
  3. После загрузки страницы состояния вверху появится сообщение «Пароль не установлен!» Нажмите Система - Администрирование
  4. На странице Пароль маршрутизатора установите безопасный и запоминающийся пароль. Нажмите кнопку Сохранить.
  5. На этой же странице в разделе Доступ по SSH установите интерфейс LAN. Нажмите кнопку Сохранить и применить.

Установите WireGuard

1. В раскрывающемся меню «Система» нажмите «Программное обеспечение», нажмите «Обновить списки…» , затем, когда обновление будет завершено, нажмите «Отклонить»

2. В Загрузить и установить пакет поле введите: luci-proto-wireguard и нажмите «ОК», нажмите «Установить». Затем закройте окна после установки. Повторите и убедитесь, что wireguard-tools также установлен.

3. Нажмите «Система» — «Перезагрузить». WireGuard, то вы можете использовать SSH для подключения к маршрутизатору, как описано ранее, и запустить:

wg genkey | тройник приватный ключ | wg pubkey > publickey

Ваш открытый ключ будет находиться в файле «publickey», а ваш закрытый ключ — в файле «privatekey».

Отобразите содержимое открытого ключа, введя: cat открытый ключ , который позже используется для отправки его в API.
Отобразить содержимое выпуска закрытого ключа: cat приватный ключ , который позже используется при настройке WGInterface.

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

Получение IP-адреса для использования с Mullvad

При подключении к маршрутизатору с помощью ssh:

Первая установка curl: opkg update && opkg install curl

curl https://api.mullvad.net/wg/ - d account = YOURMULLVADACCOUNTNNUMBER --data-urlencode pubkey = YOURPUBLICKEY

Будет возвращен IP-адрес для использования с Mullvad.

Добавить интерфейс WireGuard

В главном меню выберите «Сетевые интерфейсы» и нажмите «Добавить новый интерфейс». Назовите интерфейс WGINTERFACE, выберите протокол WireGuard VPN и нажмите «Создать интерфейс», чтобы начать настройку нового интерфейса.

Настройте параметры WGInterface

Внесите следующие изменения:

  • Закрытый ключ  — используйте созданный ранее.
  • IP-адреса — замените 10.99.0.5 на IP-адрес, который вы получили от Mullvad
  • .

Щелкните изображение, чтобы увеличить его.

Нажмите Peers, затем Add Peer.0024

  • Маршрутизация разрешенных IP-адресов — убедитесь, что этот флажок установлен
  • Endpoint Host (Peers) — используйте IP-адрес, соответствующий выбранному вами серверу Mullvad WireGuard.
  • Порт конечной точки — изменить на 51820
  • Разрешенные IP-адреса — изменить на 0.0.0.0/0

  • Щелкните изображение, чтобы увеличить его.

    Перейдите на вкладку «Дополнительные параметры» и установите флажок рядом с 9. 0181 "Принудительная связь" . Остальные параметры на этой странице оставьте без изменений (в некоторых версиях параметр отсутствует)

    Сохранить и применить параметры!

    Добавить новую зону брандмауэра

    В раскрывающемся меню Сеть выберите Брандмауэр.

    Подзоны. Создайте новую зону и настройте ее, как показано ниже. Мы назвали нашу "WGZONE".

    Ввод : отклонить
    Вывод : принять
    Вперед : отклонить
    Маскарадинг : проверено
    MSS зажимной : проверенный
    закрытый сети : WGINTERFACE

    Нажмите Сохранить


    Нажмите «Изменить зону локальной сети» и установите «Разрешить переадресацию в зоны назначения» на WGZONE:WGINTERFACE в качестве единственного параметра в разделе «Разрешенные места назначения». В разделе «Сеть» перейдите к настройкам DHCP и DNS.

    Рядом с Переадресация DNS добавьте 10.64.0.1


    Щелкните изображение, чтобы увеличить его.

    Изменить DNS на интерфейсе LAN

    Перейдите в Сеть → Интерфейсы → LAN (щелкните «Редактировать») и внесите следующие изменения: не конфликтует с другими нашими маршрутизаторами, обычно работающими на 192.168.0.1 или 192.168.1.1). Имейте в виду, что после этого вы получите доступ к устройству OpenWRT 192.168.99.1

    Нажмите DHCP-сервер — Дополнительные настройки — DHCP-Параметры: 6,10.64.0.1

    (Если вы хотите узнать больше об утечках DNS, ознакомьтесь с нашим руководством по утечкам DNS.)

    Изменить DNS на интерфейсе WAN

    Сеть > Интерфейсы > WAN (нажмите изменить) > Дополнительные настройки > Использовать DNS-серверы, объявленные узлом (отключить)

    Использовать настраиваемые DNS-серверы: 193.138.218.74

    Перезагрузите маршрутизатор

    Чтобы все запустилось правильно , перезагрузите роутер. Некоторые настройки требуют перезапуска WGInterface, чтобы изменения вступили в силу. Иногда требуется перезагрузить роутер более одного раза!

    Проверьте свой IP-адрес

    Используйте нашу проверку подключения, чтобы узнать, какой IP-адрес вы используете. Это должен быть один из Муллвада, а не твой собственный.

    Добавить сторожевой таймер

    Добавление сторожевого таймера обеспечит перезапуск маршрутизатора, если что-то перестанет работать.

    Важно: Выполняйте этот шаг только после того, как убедитесь, что маршрутизатор работает правильно.

    Используйте SSH для входа в маршрутизатор и добавьте файл wg-watchdog.sh (приведенный ниже) в /root с помощью nano.

    Сначала установите nano: opkg update && opkg install nano

    Затем выполните команду nano /root/wg-watchdog.sh .

    Файл wg-watchdog.sh:

     #!/бин/ш # ping mullvad dns, доступ к которому возможен только через VPN-туннель # если нет контакта, перезагружаемся! попытки=0 в то время как [[ $ пытается -lt 5 ]] делать если /bin/ping -c 1 10. 64.0.1 затем эхо "wg работает" выход 0 фи эхо "сбой wg" попытки = $ (( попытки + 1)) Выполнено echo "wg не удалось 5 раз - перезагрузка" перезагрузка 

    Сделайте файл исполняемым с помощью команды chmod +x /root/wg-watchdog.sh .

    Затем добавьте следующую запись в System → Scheduled Tasks в LuCI:

    */10 * * * * /root/wg-watchdog.sh

    Multihop с использованием SOCKS5

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

    Все наши серверы WireGuard подключены ко всем другим серверам WireGuard через туннели WireGuard. Кроме того, на каждом из серверов установлен прокси SOCKS5, что позволяет зайти на прокси SOCKS5 в веб-браузере (или другой программе) и получить мультихоп.

    См. наше руководство WireGuard SOCKS5, чтобы узнать, как использовать прокси-сервер SOCKS5 в веб-браузере. Вы можете найти прокси-адреса SOCKS5 в нашем списке серверов, например, us10-wg.socks5.relays.mullvad.net .

    Чтобы разрешить разрешение внутреннего IP-адреса прокси-сервера SOCKS5, вам может потребоваться отключить «защиту от повторной привязки DNS» в OpenWrt в разделе «Сеть»> «DHCP и DNS».

    Устранение неполадок

    Утечки DNS

    Если маршрутизатор пропускает DNS-серверы от вашего интернет-провайдера, попробуйте изменить некоторые из следующих настроек, а затем перезагрузите маршрутизатор и компьютеры/устройства в локальной сети, которые подключены к маршрутизатору.

    1. Сеть > Интерфейсы > WAN (нажмите изменить) > Дополнительные настройки > Использовать DNS-серверы, объявленные одноранговым узлом (отключить)
    2. Сеть > DHCP и DNS > Дополнительные параметры > Строгий порядок (включить)
    3. Сеть > Интерфейсы > LAN > Сервер DHCP > Дополнительные параметры > «Принудительно использовать DHCP в этой сети, даже если обнаружен другой сервер» (включить)
    4. Сеть > Интерфейсы > LAN > DHCP-сервер > Настройки IPv6 > Служба рекламы маршрутизатора (отключить)

    Версия микропрограммы

    Чтобы узнать, какая у вас версия WireGuard, подключитесь к маршрутизатору по протоколу SSH и введите команду dmesg | grep -i wireguard.


    Learn more

    Только новые статьи

    Введите свой e-mail

    Видео-курс

    Blender для новичков

    Ваше имя:Ваш E-Mail: