OpenWrt
Тут я опишу все то что нужно знать по части настройки роутеров на OpenWrt.
Скажем по простому это линукс на роутере. А значит полная свобода по настройке. Остается только знать как и для чего - можно применить.
Очень большой процент роутеров способны работать с OpenWrt. Качество работы зависит от производительности ЦП устройства. Так же версия прошивки.
В данном описании всё касается версии OpenWrt 21.02 - на 13.09.21. Устройство Xiaomi Mi Router 3 Pro. Устройство достаточно производительное чтобы переваривать множество задач.
Начну с базовых вещей:
Первая настройка
Нужно понимать - это линукс, есть в настройках бекап, но это всего лишь некий список конфигов которые роутер сохранит в файле. Установленное ПО не будет удалено. Сделать полный сброс можно только хардресетом.
Сброс настроек
Долгое удержание кнопки reset до тех пор пока не замигает красным индикатор. После чего произойдет сброс настроек. Но не до заводских, это просто отчистка ОС.
ssh
При первом запуске OpenWrt попросит пароль, но его вводить не нужно, его нет.
Его нужно задать в sytem/Admin Password
там придумываем пароль для root
он же будет паролем для ssh
так же можно приложить ключ ssh для доступа по ключу, это удобнее.
Русификация
Для OpenWrt существует оболочка luci, веб морда если по-другому. Мы и видим её в браузере. Для этой оболочки есть скины и языковые пакеты. Устанавливаются они как пакеты.
Есть два способа установить пакет:
Используя оболочку:
Идем в system/Software, далее нажимаем Update lists..., перед нами список пакетов доступных для установки.
Найдем luci-i18n-base-ru, это и есть русификатор интерфейса для luci.
Так же можно установить luci-i18n-firewall-ru, это русификатор для модуля firewall, он считается отдельным.
Используя командную строку по ssh.
Подключаемся к роутеру по адресу 192.168.1.1:
ssh root@192.168.1.1.
Выполняем обновление списка пакетов:
opkg update && opkg install luci-i18n-base-ru luci-i18n-firewall-ru
Готово
Первоначальная русификация есть. Остальные русификаторы устанавливаются по мере установки других пакетов.
Настройка pppoe
В моём случае это pppoe от Ростелекома;
Настраивать его нужно в интерфейсе WAN;
Идем в Сеть/Интерфейсы;
На против WAN нажимаем изменить;
Протокол выбираем pppoe;
Появляются поля для заполнения;
В разделе Дополнительные настройки, Получение IPv6-адреса отключаю IPv6, почему то нормально не работает у меня с ним.
После этого Сохраняем и применяем.
Интернет должен появится.
Настройка беспроводных сетей
На роутере предусмотрено два диапазона 2.4 и 5 гигагерц.
Перехожу Сеть/Беспроводная.
Выбираю нужную сеть и нажимаю изменить.
Ввожу название сети, в вкладке Безопасность, выбираю WAPA2/WAPA3, задаю пароль, сохраняю. Тоже самое для второго диапазона.
Выполняю сохранение и применение.
После чего на против каждой нажимаю включить.
Готово WiFi есть.
Проброс портов
Для работы сервисов требуется перенаправление запросов по портам.
Это настраивается в Сеть/Межсетевой экран/Перенаправление портов.
Нажимаем добавить, даем имя перенаправление (может быть любым), выбираем протокол TCP, UDP или оба, Выбираем внешний порт (80, 443), выбираем внутренний порт (80, 443), и ip адрес машины на которую будет происходить перенаправление.
Я делаю перенаправление для портов: 80 и 443 на машину с NGINX. Для работы сайтов.
Постоянные аренды
Можно привязать к машинам постоянные ip адреса, это нужно во многих случаях.
Настраивается это в Сеть/DHCP и DNS/Постоянные аренды.
Нажимаем добавить, даем имя, можно выбрать машины по MAC (обычно если в сети есть машина то роутер о ней уже знает, так что можно выбрать из списка), нажимаем сохранить.
Так делаем для всех машин на которых нужно сохранить постоянный IP.
На этом можно закончить базовую настройку роутера на OpenWRT.
Обход блокировок РКН
К сожалению я не могу хорошо рассказать каким образом работает интернет, и как происходят все процессы. Но это работает.
Начинается все с поиска сервера е Европе или Америке. Многие крупные IT конторы позволяют создавать VPS на различных условиях. Amazon, Google, Oracle. Я попробовал все. К сожалению просто так без танцев поставит VPN сервер не получится. Так как эти VPS лежат сильно далеко внутри сети этих контор. Вот именно про это я и говорил, я не могу понять каким образом это работает. Поэтому я не могу понять как это настроить в таких сервисах. Установка в ручную, скачав из репозиториев WireGuard не получается. При подключении к серверу, VPN работает, но сайты не открываются. Мой скудный ум приходит к выводу, что VPN сервер не может достучатся до интернета, хотя сам сервер может.
Базироваться наш VPN будет на WireGuard. О нем многие говорят. Но мне не очень понятно, почему. Скорее всего я снова не знаю чего то.
Статьи которые помогли в запуске и установке. Снова пришлось по крупицам выискивать информацию.
- Статья на хабре "Точечный обход блокировок PKH на роутере с OpenWrt", задала основной курс действий (обязательно смотреть комментарии, так как с момента выхода поменялся синтаксис OpenWrt, одна из причин помучится)
- Еще одна статья, рассказывающая как запустить все на Amazonовских облаках. Тут я узнал, что пишут скрипты для установки на подобных VPS.
- Сайт с описанием установки WireGuard и настройке сервера.
- Еще один мануал по развертыванию через ansible WG и настройке сервера, подходит для Oracle.
Почему есть акцент на Oracle? Так получается, что у Amazon, Google и подобных условия хорошие, но не бесконечно. Есть ограничение на бесплатный период, у кого то год, у кого то меньше. А потом плати, да немного, но 150 - 300 рублей в месяц тарантить не хочется. Причем просто подумать, ты тратишь деньги другой стране на то, чтобы заходить на сайты, которые блокирует твоя. Вот почему я принципиально не хочу чтобы такого рода вещи чего то стоили. Я и так плачу Ростелекому, за доступ в ограниченный интернет.
Oracle - дается бесплатно VPS и потом не потребует заплатить за него через год. Но как оказалось с ним больше всего проблем с настройкой. Но возможно дело не в том что они пытаются урезать все, а в довольно высоком пороге вхождения. Подразумевается что пользователь очень хорошо эрудирован в сетях, и четко понимает, как работает сеть у Oracle, на основе этого знает как настроить Файрвол.
VPS Oracle Cloud
Как я раньше указывал, именно эти ребята дают виртуальный сервер и постоянный ip навсегда, бесплатно.
Регистрация
Переходим на сайт регистрации Oracle Cloud Free Tier.
- Выбираем регион, вводим данные.
- Подтверждаем почту.
- Придумываем пароль.
- Придумываем никнейм.
- Выбираем домашний регион. Вот тут нужно выбрать место где будет расположен сервер. Это важно, так как нам нужна та страна откуда можно беспрепятственно попадать на нужные нам ресурсы. Это Европа, я выбираю Германию.
- Придется согласиться с условиями, для продолжения регистрации.
- Далее придется ввести свой адрес
- После чего ввести свой номер телефона
- Далее придется привязать банковскую карту, с неё спишут 1 доллар, для проверки, после чего вернут. К сожалению это обязательно, если прочитать соглашение, то указывается что средства с караты без согласования списываться не будут.
В итоге мы получаем доступ к личному кабинету и приступаем к настройке нашей виртуальной машины.
Настройка виртуальной машины
Так как мы бомжи, то получаем очень слабую виртуальную машину 1 гигабайт оперативной памяти и одно ядро. Но этого как я и говорил, за глаза для vpn.
- Для начала переключим язык на русский. В углу есть значок планеты.
Создание Сети
Переходим в Сети/Вириальные облачные сети;
Здесь нас встречает список сетей. Пустой список;
Будем поднимать свою сеть (Это можно отдать на работу автоматике, при создание ВМ будет выполнено создание подсети автоматически);
Нажимаем Создать VCN, нас встретит окно настроек;
Тут укажем имя сети (нет разницы какое);
БЛОК CIDR IPV4 - мака нашей сети, мне привычно: 192.168.1.0/24;
РАЗРЕШЕНИЕ DNS - установить галочку, все мануалы про неё говорят, вроде она всегда активна;
Нажимаем создать VCN.
Создание подсети IP адресов
В меню Ресурсы, выбираем пункт Подсети, Создание подсети;
В открывшемся окне:
Даём имя подсети, ТИП ПОДСЕТИ - выбираем региональная;
БЛОК CIDR - пропишу 192.168.1.0/28 (Число 28 означает число адресов, 24 - это 256, 28 - это 16);
ДОСТУП К ПОДСЕТИ - Общедоступная подсеть;
Остальные поля заполняем единственно возможным вариантом;
Выбираем Создание подсети.
Создание Интернет-шлюзов
Выбираем в меню Ресурсы Интернет-шлюзы;
Создать интернет-шлюз;
Вводим имя;
Нажимаем создать.
Таблицы маршрутизации
Выбираем в меню Ресурсы пункт Таблицы маршрутизации;
В единственно созданной таблице создадим правило маршрутизации;
ТИП АДРЕСАТА - Интернет-шлюз;
КОНЕЧНЫЙ БЛОК CIDR - 0.0.0.0/0;
ЦЕЛЕВОЙ ИНТЕРНЕТ-ШЛЮЗ - Наш созданный интернет-шлюз;
Добавляем правило.
Списки безопасности
Выбираем в меню Ресурсы пункт Списки безопасности;
Выбираем список и добавляем в него правило:
ИСХОДНЫЙ CIDR - 0.0.0.0/0;
IP-ПРОТОКОЛ - ICMP, готово.
Создание экземпляра ВМ
В меню Oracle Cloud выберем Вычисления, Экземпляры, нас переведут к списку ВМ.
- Выберем Создать экземпляр;
- Присвоим имя, просто название машины;
- Образ и шаблон конфигурации, здесь нужно выбрать какая ОС будет использоваться, я бы рекомендовал Ubuntu;
- В настройка сети убедимся что выбрана наша сеть, и выбран пункт "Назначить общедоступный адрес IPv4";
- Далее можно подгрузить ключ SSH, для удобного доступа к нашей машине.
Всё остальное можно не трогать. Нажимаем создать, произойдет настройка всех параметров. Нас перекинет к окну свойств ВМ.
Мы увидим состояние машины, публичной IP адрес, имя пользователя.