Представлен новый значительный выпуск дистрибутива OpenWrt 21.02.0, ориентированного на применение в различных сетевых устройствах, таких как маршрутизаторы, коммутаторы и точки доступа. OpenWrt поддерживает множество различных платформ и архитектур и обладает системой сборки, позволяющей просто и удобно производить кросс-компиляцию, включая в состав сборки различные компоненты, что позволяет легко сформировать адаптированную под конкретные задачи готовую прошивку или образ диска с желаемым набором предустановленных пакетов.
Сборки сформированы для 36 целевых платформ.
Из изменений в OpenWrt 21.02.0 отмечается:
- Повышены минимальные требования к оборудованию. В сборке по умолчанию из-за включения дополнительных подсистем ядра Linux для использования OpenWrt теперь требуется устройство с 8 MB Flash и 64 MB ОЗУ. При желании по-прежнему можно сформировать собственную урезанную сборку, которая сможет работать на устройствах с 4 MB Flash и 32 MB ОЗУ, но функциональность подобной сборки будет ограничена, а стабильность работы не гарантирована.
- В базовую поставку включены пакеты для поддержки технологии защиты беспроводных сетей WPA3, которая теперь доступна по умолчанию как при работе в режиме клиента, так и при создании точки доступа.
В WPA3 предоставляется защита от атак по подбору пароля (не позволит подбирать пароль в offline-режиме) и задействован протокол аутентификации SAE. Возможность использования WPA3 обеспечена в большинстве драйверов для беспроводных устройств. - В базовой поставке по умолчанию включена поддержка TLS и HTTPS, которая позволяет обращаться к Web-интерфейсу LuCI по HTTPS и использовать утилиты, подобные wget и opkg, для извлечения информации по шифрованным каналам связи. Серверы, через которые распространяются загружаемые через opkg пакеты, также по умолчанию переведены на отдачу информации по HTTPS. Используемая для шифрования библиотека mbedTLS заменена на wolfSSL (при необходимости mbedTLS и OpenSSL можно установить вручную, которые продолжают поставляться в качестве опций).
Для настройки автоматического проброса на HTTPS в web-интерфейсе предложена опция “uhttpd.main.redirect_https=1”. - Реализована начальная поддержка подсистемы ядра DSA (Distributed Switch Architecture), предоставляющей средства для настройки и управления каскадами соединённых между собой Ethernet-коммутаторов, используя механизмы, применяемые для настройки обычных сетевых интерфейсов (iproute2, ifconfig). DSA может применяться для настройки портов и VLAN вместо ранее предлагаемого инструмента swconfig, но не все драйверы коммутаторов пока поддерживают DSA. В предложенном выпуске DSA задействован для драйверов ath79 (TP-Link TL-WR941ND), bcm4908, gemini, kirkwood, mediatek, mvebu, octeon, ramips (mt7621) и realtek.
- Внесены изменения в синтаксис файлов конфигурации, размещённых в /etc/config/network. В блоке “config interface” опция “ifname” переименована в “device”, а в блоке “config device” опции “bridge” и “ifname” переименованы в “ports”. Для новых установок теперь генерируются отдельный файлы с настройками устройств (layer 2, блок “config device”) и сетевых интерфейсов (layer 3, блок “config interface”). Для сохранения обратной совместимости поддержка старого синтаксиса сохранена, т.е. ранее созданные настройки не потребуют внесения изменений. При этом в web-интерфейсе при обнаружении старого синтаксиса будет выведено предложение о миграции на новый синтаксис, которая необходима для редактирования настроек через web-интерфейс.
Пример нового синтаксиса:
config device option name ‘br-lan’ option type ‘bridge’ option macaddr ’00:01:02:XX:XX:XX’ list ports ‘lan1’ list ports ‘lan2’ list ports ‘lan3’ list ports ‘lan4’ config interface ‘lan’ option device ‘br-lan’ option proto ‘static’ option ipaddr ‘192.168.1.1’ option netmask ‘255.255.255.0’ option ip6assign ’60’ config device option name ‘eth1′ option macaddr ’00:01:02:YY:YY:YY’ config interface ‘wan’ option device ‘eth1’ option proto ‘dhcp’ config interface ‘wan6’ option device ‘eth1’ option proto ‘dhcpv6’
По аналогии с файлами конфигурации /etc/config/network c ifname на device изменены названия полей в board.json.
- Добавлена новая платформа “realtek“, позволяющая использовать OpenWrt на устройствах с большим числом Ethernet-портов, таких как [[https://openwrt.org/toh/views/toh_standard_all?dataflt[0]=target_%3Drealtek Ethernet-коммутаторы]] D-Link, ZyXEL, ALLNET, INABA и NETGEAR.
- Добавлены новые платформы bcm4908 и rockchip для устройств на базе SoC Broadcom BCM4908 и Rockchip RK33xx. В ранее поддерживаемых платформах устранены недоработки в поддержке устройств.
- Прекращена поддержка платформы ar71xx, вместо которой следует использовать платформу ath79 (для устройств, завязанных на ar71xx, рекомендуется выполнить переустановку OpenWrt с нуля). Также прекращена поддержка платформ cns3xxx (Cavium Networks CNS3xxx), rb532 (MikroTik RB532) и samsung (SamsungTQ210).
- Исполняемые файлы приложений, задействованных при обработке сетевых соединений, собраны в режиме PIE (Position-Independent Executables) с
полной поддержкой рандомизации адресного пространства (ASLR) для затруднения эксплуатации уязвимостей в подобных приложениях. - При сборке ядра Linux по умолчанию включены опции для поддержки технологий контейнерной изоляции, позволяющие на большинстве платформ использовать в OpenWrt инструментарий LXC и режим procd-ujail.
- Предоставлена возможность сборки с поддержкой системы принудительного контроля доступа SELinux (по умолчанию отключена).
- Обновлены версии пакетов, в том числе предложены выпуски musl libc 1.1.24, glibc 2.33, gcc 8.4.0, binutils 2.34, hostapd 2020-06-08, dnsmasq 2.85, dropbear 2020.81, busybox 1.33.1. Ядро Linux обновлено до версии 5.4.143 с портированием беспроводного стека cfg80211/mac80211 из ядра 5.10.42 и переносом поддержки VPN Wireguard.