OpenWrt Project — это операционная система Linux, ориентированная на встраиваемые устройства. Вместо того чтобы пытаться создать одну статическую прошивку, OpenWrt предоставляет полностью записываемую файловую систему с управлением пакетами. Это освобождает вас от выбора и настройки приложений, предоставляемых поставщиком, и позволяет настраивать устройство с помощью пакетов для соответствия любому приложению. Для разработчиков OpenWrt — это фреймворк для создания приложения без необходимости создания полной прошивки вокруг него; для пользователей это означает возможность полной настройки, чтобы использовать устройство способами, которые никогда не предполагались.
GitHub - openwrt/openwrt
Что нам даёт использование OpenWRT?
- Обновления (безопасность и новые фишки) выпускаются в разы чаще и поддержка сохраняется в разы дольше, чем у большинства производителей. Особенно актуально это стало в условиях карантина. Уязвимая “прошивка” роутера – одна из наиболее частых причин инцидентов при удаленной работе.
- “Родные” прошивки бывают нестабильными, особенно у дешевых роутеров. Так многие модели TP-Link зависали после нескольких дней беспрерывной работы.
- Вы привыкаете к одному интерфейсу пользователя и при последующей смене/апгрейде роутера, даже от другого производителя, чувствуете себя “как дома”.
- Вам не обязательно покупать дорогой роутер для реализации продвинутых “фишек”, таких как IPv6, родительский контроль, блокировка рекламы, VPN, гостевой WiFi, DNS шифрование, динамический DNS (DDNS) и т. д.
- Есть активное сообщество, которое поможет оперативнее, чем даже поддержка крупного производителя, да и многое уже описано.
- Преимущества открытого решения на базе Linux: возможность подключаться через SSH, автоматизировать настройку и управлять роутером с помощью скриптов, настройки хранятся в текстовых файлах (автоматизация, контроль версий), можно использовать роутер для других задач (умный дом, SFTP/Web сервер, закачка торрентов и т.п.).
Подробнее эти и другие причины описаны на сайте проекта.
Базовая настройка OpenWRT
Данная статья поможет вам настроить базовые функции OpenWRT, благодаря чему вы сможете быстро и безболезненно перейти на это решение. Вот перечень этих функций:
- Установить пароль пользователя root.
- Ограничить доступ по SSH только для интерфейса LAN.
- Настроить PPPoE подключение по WAN.
- Настроить WiFi.
- Добавить гостевой WiFi (без доступа в локальную сеть).
- Настроить динамический DNS NoIP.
- Настроить переадресацию портов (port forwarding).
- Сохранить конфигурацию в архивный файл.
Пункты 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…”.