Przedstawiono nową, znaczącą wersję dystrybucji OpenWrt 21.02.0, zaprojektowaną do stosowania w różnych urządzeniach sieciowych, takich jak routery, przełączniki i punkty dostępowe. OpenWrt obsługuje wiele różnych platform i architektur oraz posiada system budowania, który umożliwia łatwą i wygodną cross-kompilację, w tym włączenie różnych komponentów w skład zestawu, co pozwala łatwo stworzyć dostosowane do konkretnych zadań oprogramowanie układowe lub obraz dysku z pożądanym zestawem wstępnie zainstalowanych pakietów. Zestawy zostały przygotowane dla 36 docelowych platform.
W wersji OpenWrt 21.02.0 zauważono następujące zmiany:
- Zwiększone minimalne wymagania dotyczące sprzętu. W domyślnej wersji, z powodu włączenia dodatkowych podsystemów jądra Linux do użycia OpenWrt, teraz wymagane jest urządzenie z 8 MB pamięci Flash i 64 MB RAM. W razie potrzeby można nadal stworzyć własną okrojoną wersję, która będzie działać na urządzeniach z 4 MB pamięci Flash i 32 MB RAM, jednak funkcjonalność takiej wersji będzie ograniczona, a stabilność działania nie jest gwarantowana.
- W podstawowej wersji zawarte są pakiety wspierające technologię zabezpieczeń sieci bezprzewodowych WPA3, która jest teraz dostępna domyślnie zarówno w trybie klienta, jak i przy tworzeniu punktu dostępu. WPA3 oferuje ochronę przed atakami typu brute force (nie pozwala na odgadywanie hasła w trybie offline) i wykorzystuje protokół uwierzytelniania SAE. Możliwość używania WPA3 jest zapewniona w większości sterowników dla urządzeń bezprzewodowych.
- W podstawowej wersji domyślnie włączone jest wsparcie dla TLS i HTTPS, co umożliwia dostęp do interfejsu webowego LuCI przez HTTPS oraz korzystanie z narzędzi, takich jak wget i opkg, do pobierania informacji przez szyfrowane kanały komunikacyjne. Serwery, przez które dystrybuowane są pakiety pobierane przez opkg, również domyślnie przekonwertowane są na przesyłanie informacji przez HTTPS. Używana do szyfrowania biblioteka mbedTLS została zastąpiona przez wolfSSL (jeśli zajdzie potrzeba, można ręcznie zainstalować biblioteki mbedTLS i OpenSSL, które są nadal dostarczane jako opcje). W celu skonfigurowania automatycznego przekierowania na HTTPS w interfejsie webowym zaproponowano opcję „uhttpd.main.redirect_https=1”.
- Wprowadzono początkowe wsparcie dla podsystemu jądra DSA (Distributed Switch Architecture), który zapewnia narzędzia do konfiguracji i zarządzania kaskadami połączonych przełączników Ethernet, korzystając z mechanizmów stosowanych do konfiguracji zwykłych interfejsów sieciowych (iproute2, ifconfig). DSA może być używana do konfigurowania portów i VLAN zamiast wcześniej oferowanego narzędzia swconfig, jednak nie wszystkie sterowniki przełączników obecnie wspierają DSA. W tej wersji DSA jest stosowane dla sterowników ath79 (TP-Link TL-WR941ND), bcm4908, gemini, kirkwood, mediatek, mvebu, octeon, ramips (mt7621) i realtek.
- Wprowadzono zmiany w składni plików konfiguracyjnych umieszczonych w /etc/config/network. W bloku „config interface” opcja „ifname” została zmieniona na „device”, a w bloku „config device” opcje „bridge” i „ifname” zmieniono na „ports”. Dla nowych instalacji generowane są teraz oddzielne pliki z ustawieniami urządzeń (warstwa 2, blok „config device”) oraz interfejsów sieciowych (warstwa 3, blok „config interface”). Aby zapewnić wsteczną kompatybilność, wsparcie dla starej składni zostało zachowane, tzn. wcześniej stworzone ustawienia nie będą wymagały zmian. W interfejsie webowym, podczas wykrywania starej składni, pojawi się sugestia migracji na nową składnię, która jest niezbędna do edytowania ustawień przez interfejs webowy.
Przykład nowej składni: 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’
Podobnie jak w plikach konfiguracyjnych /etc/config/network, z „ifname” na „device” zmieniono nazwy pól w board.json.
- Dodano nową platformę „realtek”, która umożliwia korzystanie z OpenWrt na urządzeniach z większą liczbą portów Ethernet, takich jak przełączniki Ethernet D-Link, ZyXEL, ALLNET, INABA i NETGEAR.
- Dodano nowe platformy bcm4908 i rockchip dla urządzeń opartych na SoC Broadcom BCM4908 i Rockchip RK33xx. W wcześniej wspieranych platformach usunięto niedoskonałości w wsparciu urządzeń.
- Wsparcie dla platformy ar71xx zostało zakończone, a zamiast niej należy używać platformy ath79 (w przypadku urządzeń związanych z ar71xx zaleca się wykonanie nowej instalacji OpenWrt). Zakończono również wsparcie dla platform cns3xxx (Cavium Networks CNS3xxx), rb532 (MikroTik RB532) i samsung (SamsungTQ210).
- Pliki wykonywalne aplikacji zaangażowanych w obsługę połączeń sieciowych są skompilowane w trybie PIE (Position-Independent Executables) z pełnym wsparciem dla randomizacji przestrzeni adresowej (ASLR), aby utrudnić wykorzystanie podatności w tych aplikacjach.
- Podczas kompilacji jądra Linux domyślnie włączone są opcje wspierające technologie izolacji kontenerów, co pozwala na korzystanie z narzędzi LXC i trybu procd-ujail w OpenWrt na większości platform.
- Umożliwiono kompilację z obsługą systemu przymusowego dostępu SELinux (domyślnie wyłączona).
- Zaktualizowano wersje pakietów, w tym oferowane wydania 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. Jądro Linux zostało zaktualizowane do wersji 5.4.143 z przeniesieniem stosu bezprzewodowego cfg80211/mac80211 z jądra 5.10.42 i przeniesieniem wsparcia. VPN Wireguard.
Źródło: opennet.ru
