OpenWrt Project — это операционная система Linux, ориентированная на встраиваемые устройства. Вместо того чтобы пытаться создать одну статическую прошивку, OpenWrt предоставляет полностью записываемую файловую систему с управлением пакетами. Это освобождает вас от выбора и настройки приложений, предоставляемых поставщиком, и позволяет настраивать устройство с помощью пакетов для соответствия любому приложению. Для разработчиков OpenWrt — это фреймворк для создания приложения без необходимости создания полной прошивки вокруг него; для пользователей это означает возможность полной настройки, чтобы использовать устройство способами, которые никогда не предполагались.

GitHub - openwrt/openwrt

 

Что нам даёт использование OpenWRT?

  • Обновления (безопасность и новые фишки) выпускаются в разы чаще и поддержка сохраняется в разы дольше, чем у большинства производителей. Особенно актуально это стало в условиях карантина. Уязвимая “прошивка” роутера – одна из наиболее частых причин инцидентов при удаленной работе.
  • “Родные” прошивки бывают нестабильными, особенно у дешевых роутеров. Так многие модели TP-Link зависали после нескольких дней беспрерывной работы.
  • Вы привыкаете к одному интерфейсу пользователя и при последующей смене/апгрейде роутера, даже от другого производителя, чувствуете себя “как дома”.
  • Вам не обязательно покупать дорогой роутер для реализации продвинутых “фишек”, таких как IPv6, родительский контроль, блокировка рекламы, VPN, гостевой WiFi, DNS шифрование, динамический DNS (DDNS) и т. д.
  • Есть активное сообщество, которое поможет оперативнее, чем даже поддержка крупного производителя, да и многое уже описано.
  • Преимущества открытого решения на базе Linux: возможность подключаться через SSH, автоматизировать настройку и управлять роутером с помощью скриптов, настройки хранятся в текстовых файлах (автоматизация, контроль версий), можно использовать роутер для других задач (умный дом, SFTP/Web сервер, закачка торрентов и т.п.).

Подробнее эти и другие причины описаны на сайте проекта.

Базовая настройка OpenWRT

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

  1. Установить пароль пользователя root.
  2. Ограничить доступ по SSH только для интерфейса LAN.
  3. Настроить PPPoE подключение по WAN.
  4. Настроить WiFi.
  5. Добавить гостевой WiFi (без доступа в локальную сеть).
  6. Настроить динамический DNS NoIP.
  7. Настроить переадресацию портов (port forwarding).
  8. Сохранить конфигурацию в архивный файл.

Пункты 6 и 7 нужны, например, для того, чтобы подключаться из Интернета к домашнему компьютеру по SSH или SFTP (например, для синхронизация файлов с ноутбуком), а также для прямого подключения по Anydesk, которое работает быстрее, чем обычное.

Процесс “перепрошивки” на OpenWRT зависит от модели вашего роутера. Следует найти его в списке поддерживаемых устройств и следовать приведенным там рекомендациям.

Настройки можно делать с помощью SSH-подключения и скриптов, однако мы рассмотрим веб-интерфейс (который называется LuCI) как более наглядный и устойчивый к изменениям вариант.

1. Установить пароль пользователя root

Перейти в меню System > Administration.

2. Ограничить доступ по SSH только для интерфейса LAN

Перейти в меню System > Administration > SSH Access.

Interface = lan

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

3. Настроить PPPoE подключение по WAN

Перейти в меню Network > Interfaces.

Нажать кнопку “Edit” в строке “WAN”.

Protocol = PPPoE + нажмите кнопку "Switch protocol" PAP/CHAP username = ваш_логин_у_провайдера PAP/CHAP password = ваш_пароль_у_провайдера

4. Настроить WiFi

Перейти в меню Network > Wireless.

4.1 Нажать на кнопку “Edit” под “radio0 802.11nac”.

Channel = Auto ESSID = имя_вашего_wifi_5GHz

Перейти на вкладку Wireless Security.

Encryption = WPA2-PSK/WPA3-SAE Mixed Mode Key = пароль_вашего_wifi_5GHz

4.2 Нажать на кнопку “Edit” под “radio1 802.11bgn”.

Channel = Auto ESSID = имя_вашего_wifi_2.4GHz

Перейти на вкладку Wireless Security.

Encryption = WPA2-PSK/WPA3-SAE Mixed Mode Key = пароль_вашего_wifi_2.4GHz

Нажать кнопки “Enable” (слева от “Edit”) на обоих подключениях.

5. Добавить гостевой WiFi

Взято отсюда, плюс ужато и обновлено под новый интерфейс.

Делаем для 2.4 ГГц, но аналогично можно сделать и для 5ГГц.

5.1 Перейти в меню Network > Wireless.

5.1.1 Нажать кнопку “Add” в “radio1 802.11bgn”.

Channel = Auto ESSID = имя_вашего_гостевого_wifi network = выбрать "-- custom --" и ввести "guest"

5.1.2 Перейти на вкладку Wireless Security.

Encryption = WPA2-PSK/WPA3-SAE Mixed Mode Key = пароль_вашего_гостевого_wifi

5.2 Перейти в меню Network > Interfaces.

5.2.1 Нажать на кнопку “Edit” в интерфейсе “GUEST”.

Protocol=Static address + нажать кнопку “Switch protocol” IPv4 address = 192.168.3.1 IPv4 netmask = 255.255.255.0

5.2.2 Перейти на вкладку “Firewall settings”.

Create / Assign firewall-zone = выбрать "-- custom --" и ввести "guest"

5.2.3 Перейти на вкладку “DHCP server”.

Нажать на кнопку "Setup DHCP server" и далее Save

5.3 Перейти в меню Network > Firewall.

5.3.1 Нажать на кнопку “Edit” в зоне “guest”.

Input = reject Allow forward to destination zones = WAN

5.3.2 Перейти на вкладку Traffic rules.

Нажать на кнопку “Add” внизу.

Name = Guest DNS Protocol = TCP+UDP Source zone = guest Destination zone = Device(input) Destination port = 53 Save

Нажать на кнопку “Add” внизу.

Name = Guest DHCP Protocol = UDP Source zone = guest Destination zone = Device(input) Destination port = 67 Save

6. Настроить динамический DNS NoIP

6.1 Перейти в меню System > Software.

Нажать кнопку “Update lists…”

Набрать “ddns” в поле “Filter”.

Установить пакеты “ddns-scripts”, “ddns-scripts-noip”, “luci-app-ddns”.

Сделать Logout и потом залогиниться снова.

6.2 Перейти в меню Services > Dynamic DNS.

6.2.1 Нажать кнопку “Edit” в строке “myddns_ipv4”.

Lookup Hostname = your.dyndns.domain.com DDNS Service provider = no-ip.com + нажать кнопку "Switch service" Domain = your.dyndns.domain.com Username = your_username Password = your_password

6.2.2 Нажать кнопку “Reload” в строке “myddns_ipv4”.

6.2.3 Нажать кнопку “Delete” в строке “myddns_ipv6” — если вам достаточно IPv4.

7. Настроить переадресацию портов (port forwarding)

Перейти в меню Network > Firewall > Port Forwards.

Нажать кнопку “Add” внизу:

Name = SSH Protocol = TCP+UDP External port = 22 Internal IP address = 192.168.1.2 Save

Нажать кнопку “Add” внизу:

Name = Anydesk Protocol = TCP+UDP External port = 7070 Internal IP address = 192.168.1.2 Save

8. Сохранить конфигурацию в архивный файл.

Перейти в меню System > Backup.

Нажать на кнопку “Generate archive”.

Сохранить скачанный файл в надежном месте.

В этом же пункте меню можно загружать обновления прошивки – кнопка “Flash image…”.