Hlavní navigace

LuCI: webové rozhraní pro OpenWRT

24. 6. 2011
Doba čtení: 6 minut

Sdílet

Po delší době se vrátíme k malé distribuci OpenWRT a ukážeme si, jak se vývojářům podařilo zkultivovat webové konfigurační rozhraní. To dokáže uživatele kompletně oddělit od nějakého Linuxu na pozadí a pomůže mu nastavit vše od adres přes firewall až po statistiky. Také jako jedno z mála plně podporuje IPv6.

Když jsme naposledy rozebírali webové rozhraní OpenWRT, šlo nám především o firewall, který se v textových konfiguračních souborech opravdu špatně nastavuje. Tím článkem jsme trochu předběhli, protože v něm je použito nové webové rozhraní LuCI, které v době prvních dílů seriálu ještě v OpenWRT nebylo. Jak vypadalo to původní se můžete podívat do článku OpenWRT: DHCP, firewall a webové rozhraní. I když poslední stabilní verze OpenWRT vyšla minulý rok, vývojová větev je živá a to i v oblasti LuCI. Právě tady uživatel nejvíce pozná, že se něco děje. Změnu jádra z 2.6.32 na 2.6.37 možná ani nepostřehne, ale když začnou fungovat statistiky, podpora IPv6 je nějaká bohatší a vůbec to vypadá líp než to vypadalo, tak to už jeho oku neujde. Dnes už se dá říct, že OpenWRT naklikáte bez zásahu v příkazové řádce, a to i takové věci, jako je třeba radvd nebo wake-on-lan.

LuCI

Webové rozhraní LuCI je vyvíjené od roku 2008, za tu dobu urazilo obrovský kus cesty, a pokud si občas vyzkoušíte novou vývojovou verzi OpenWRT, tak určitě víte, že vůbec není u konce a vždy se najde něco nového, co vývojáři dodělali.

LuCI se by se dalo označit za napůl ajaxové rozhraní. Sice nedisponuje takovou interaktivitou jako třeba GMail, ale téměř aktuální hodnoty jak signálu, tak množství přenášených dat dostanete. Na rozdíl od specializovaných webových rozhraní v různých krabičkách se musí LuCI vypořádat s variabilitou zařízení, na kterých bude provozováno. Podobně na tom jsou i uživatelé, kteří sice chtějí OpenWRT hlavně na věci kolem síťování, ale celá platforma má takový potenciál, že každý na něm bude provozovat i další služby. LuCI s tím postupně bojuje a posledním počinem jsou statistiky vnStat a Collectd, které byly ještě před pár měsíci jen nefunkční položkou v menu.

Dnes si LuCI bez problémů poradí s velkým množstvím ethernetových i WiFi rozhraní, dokáže spravovat služby jako OpenVPN (zatím omezeně), Samba, uShare, proxy server Polipo a mnoho dalšího. Pokud je pro vás důležitá redundance, tak je možné si naklikat i více připojení do internetu.

Instalace

Webové rozhraní se skrývá v balíčku luci a běží díky webovém serveru uhttpd. To jestli ho má zrovna vaše OpenWRT v sobě závisí na mnoha faktorech. Pokud jste si OpenWRT kompilovali sami, tak to pravděpodobně už víte. Složitější to je u připravených obrazů, které někdy balíček luci obsahují a někdy ne. Důležitým parametrem zde je velikost flash paměti cílového zařízení, do které se ne vždy webové rozhraní vměstná. Nezbývá než se podívat v příkazové řádce.

# opkg list_installed | grep luci
luci - 0.10+svn7196-1
luci-app-firewall - 0.10+svn7112-1
luci-app-openvpn - 0.10+svn7112-1
luci-app-radvd - 0.10+svn7112-1
[...] 

Pokud se nic neobjeví, je nutné luci nainstalovat a případě si vybrat i nějaké další pluginy, které ho udělají o něco lepší. Některé z pluginů má samotný balíček luci v závislostech, ale jiné ne. Co všechno máte na výběr, zjistíte pomocí opkg.

# opkg update
# opkg list | grep luci-app 

Když máte vybráno, můžete se dát do instalace.

# opkg install luci [další balíčky] 

Pokud tedy vše šlo jak má, můžete se do webového rozhraní přihlásit, a to zadáním IP adresy krabičky do vašeho prohlížeče. Je možné, že se nic neobjeví a v takovém případě je nutné nahodit uhttpd.

# /etc/init.d/uhttpd restart 

Aby se uhttpd spustilo i po restartu, vytvořte symlink do /etc/rc.d.

# cd /etc/rc.d/
# ln -s ../init.d/S60uhttpd . 

Máte-li webové rozhraní funkční, tak pro přihlášení použijte stejné údaje jako jako pro SSH, což bude většinou root a heslo nastavené při instalaci.

Po přihlášení

Uživatelské rozhraní je povedené a i když je potřeba si chvilku zvykat, zjistíte, že při jeho navrhování opravdu někdo přemýšlel. Je navrženo tak, aby se roztáhlo na celou šířku monitoru, takže ani na velkých displejích nebudete mít malý proužek s funkcemi a obrovské prázdno s ničím. Menu je situované nahoře a postupně, jak otvíráte jednotlivé nabídky, se vrství. Takže když kliknete na statistiky, otevře se vám podmenu s výběrem Collectd a Graphs, a tak dále. Hlavní položky v menu jsou:

  • Status – stav síťových rozhraní, firewallu, spojení, systému apod.
  • System – aktualizace, balíčky, heslo, init skripty, nastavení LED kontrolek
  • Services – Samba, OpenVPN, Cron, je závislé na dalších pluginech
  • Network – nastavení sítě, firewallu, WiFi, Wake-on-LAN, apod.
  • Statistics – grafy a konfigurace daemona Collectd

Celé rozhraní je navrženo tak, že lze naklikat kompletní nastavení a aplikovat ho až na konci. Takže když se přihlásíte přes dočasnou IP adresu, kterou hned na začátku změníte, můžete pokračovat dál a až na konci potvrdit všechny volby.

Trochu nelogicky jsou zařazeny statistiky Collectd mimo záložku Status, kde jsou všechny ostatní včetně vnStat. Ve stejné záložce najdete kromě vnStatu ještě realtime statistiky, a to pro přenášená data, zatížení (load) a počet spojení. Grafy jsou překreslovány každou sekundu a na jejich vykreslení se používá JavaScript. V dalších nabídce pak najdeme třeba i seznam procesů, kterým lze vyslat jak přátelské, tak likvidační signály, jaderné i systémové logy a podobně.

Záložka System vám umožní manipulovat se softwarovou výbavou zařízení a zálohovat nebo aktualizovat zařízení. Pro aktualizaci používá OpenWRT (v případě RouterStation) zvláštní binární obrazy, které se chovají podobně jako ty instalační, ale podrží vám konfiguraci. To znamená, že když chcete krabičku aktualizovat, stáhnete si patřičný balík, ve webovém rozhraní ho „flashnete“ a konfigurace bude zachována. Které soubory se mají podržet, si můžete dokonce nastavit.

Předposlední záložkou je Network, kde se nachází všechno co souvisí se sítí. To znamená adresy, firewall, nastavení bezdrátových karet, routování, DHCP, radvd a další. Ke každému rozhraní lze přiřadit libovolné množství IPv4 i IPv6 adres. Se správným pluginem není problém naklikat připojení třeba přes mobilního operátora, ale častější budou určitě WiFi karty. U těch lze nastavit šifrování všeho druhu od WEP po WPA2-EAP. Na zařízení s OpenWRT může samozřejmě běžet i radius server, což z něj dělá dobré zařízení i do firem. Dále lze u bezdrátových karet nastavit výstupní výkon, přepínat anténní vstup, vybírat mezi 802.11 standardy, nastavovat filtr na MAC adresy a mnoho dalšího. Součástí rozhraní jsou i pokročilé volby jako třeba zapnutí turbo módu, komprese nebo oddělení klientů, ale ty už jsou závislé na WiFi kartě, resp. na jejím ovladači. Stejně jako u firewallu je konfigurace bezdrátového připojení pohodlnější z webového rozhraní.

Nakonec nám zůstala záložka statistiky, kde se nachází nastavení některých pluginů daemona Collectd. V současné době lze naklikat výstupní plugin a pluginy pro zaznamenávání zátěže, rychlosti připojení a síly signálu. Collectd je standardně nastaven na záznam do RAM paměti, takže s restartem přijdete o všechny předchozí statistiky. To se dá změnit také ve webovém rozhraní a lepší než do interní paměti zařízení je zapisovat záznamy na externí USB disk.

CS24_early

Záměrně jsem vynechal záložku Services, která je ve výchozím stavu obsahuje jen nastavení cronu. Další volby v ní najdete až po nainstalování patřičných pluginů třeba pro Sambu nebo OpenVPN.

Závěr

Když jsem s OpenWRT začínal, jeho webovému rozhraní bylo lepší se vyhnout, ale jak se postupně LuCI vyvíjelo, změnil jsem názor. Na většinu věcí lze LuCI bez problémů použít a člověk má jistotu, že se pro správné nastavení provede vše co má. Jako bonus je pak u voleb kontrolována správnost. Je tak menší riziko, že se od krabičky odříznete. Běh webového rozhraní moji RouterStation nějak nezatěžuje a nemusím na něj čekat, ani když přes něj teče několik Mbit/s. Za úpravy v posledním roce musím vývojáře skutečně pochválit, jejich práce dělá z OpenWRT použitelný operační systém pro routery i v rukách běžných uživatelů.

Byl pro vás článek přínosný?

Autor článku

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.