Eida.cz - Je libo router, nebo těžítko?

Je libo router, nebo těžítko?

14. září 2013, 22:05 Eida

DD-WRT je rozhodně senzační věc pro všechny, co zkousnou představu běžícího Linuxu na aktivním prvku s relativně jednoduchou webovou administrací. Bohužel, jako u všech ostatních opensource jednoduchých a velmi účinných řešení, jsou u DD-WRT určitá omezení a mnozí se mohou celkem snadno a rychle přesvědčit, že rozhodně není žádným univerzálním všelékem.

Jeho vznik se datuje ku kamsi do začátku roku 2005, kdy byl původně určen pro routery Linksys, později dostal jádro z projektu OpenWrt a v průběhu následujícího roku se začal rozmáhat do mnoha různých značek a modelů bezdrátových routerů. A tam někde už pravděpodobně začíná, spolu s nepředvídatelným marketingem šmejdských výrobků, velké trápení úzce spojené se zmiňovanými levnými a účinnými řešeními.

Když nebudu zbytečně zabíhat do celé historie a velkolepého popisu všech možností, které DD-WRT ve skutečnosti poskytuje, omezím se na nabídku připomínající jakousi na první pohled skoro až neuvěřitelnou spásu pro správu rozsáhlých bezdrátových sítí s mnoha a mnoha uživateli, a to bez nutnosti neúměrně složité komplexní správy zdrojů, certifikátů a všech pitomostí okolo, jak to bývá u full-enterprise sítí zcela běžné. Tím vynálezem mám na mysli wrt-radauth, nástroj pro velmi zjednodušenou kontrolu přístupu do bezdrátové sítě na základě MAC adres zařízení ověřovaných pomocí RADIUS serveru. Používám to už skoro rok v budníku a přestože se může zdát, že je to zbytečně složité na prvotní nastavení, nemůžu si to vynachválit, protože to skutečně začne šetřit čas - zejména v okamžiku, kdy se bezdrátová síť začne šíleně rychle rozšiřovat o nové přístupové body a v průběhu se budou měnit i nároky uživatelů. Pomyslnou třešničkou na dortu může být například propojení nové pobočky na druhé straně mapy přes VPN, kde budou okamžitě automagicky fungovat všechna stávající (či jak s oblibou říká náš zástupce aktivovaná) zařízení, třeba když přijede vedení na návštěvu.

Wrt-radauth je v principu velice jednoduchý program, který se po nastavení parametrů připojení a určení chování v důsledku nečekaných událostí na startu systému zdémonizuje a ve smyčce následně provádí ověřování MAC adres právě připojovaných bezdrátových klientů proti RADIUS serveru, který s nimi pracuje jako s jednotlivými uživateli se jménem ve tvaru MAC adresy a tímtéž plaintextovým heslem. Na základě vlastních vnitřních pravidel (typicky rozumějme povolených přihlašovacích hodin pro skupiny) pak odešle odpověď buď Access-Accept, nebo Access-Reject. Jiné odpovědi, vhodné například pro složitější zařazování klientů do VLAN podle serveru, bohužel wrt-radauth nerozlišuje. A tady to začíná být teprve zajímavé.

Jak už bylo řečeno, postupně se DD-WRT rozmohl do mnoha značek routerů s různými chipsety, ale ve skutečnosti byl navrhován pro zařízení Broadcom. Přijetí nebo zamítnutí žádosti bezdrátového klienta o připojení se v první řadě provádí na bezdrátovém rozhraní samotném, které je (tedy mělo by být) schopné držet si MAC tabulku s black/whitelistem aktuálních klientů, platnou ve výchozím stavu na 300 sekund. Přístup do této tabulky a její případné změny zajišťuje celkem specifické volání wl_ioctl, které je ke vší smůle skutečně šité na Broadcom, ač funguje velice dobře i na některých zařízeních Ralink. Neznamená to ale, že wrt-radauth není možné spustit jinde - možné to je, aktuálně se o to pokouším na jednom TP-Linku s Atherosem. Program je nutné spouštět ručně, tedy přes startup skript systému, kde na začátku sice zahlásí chyby několika nepodporovaných volání, ale samotné ověřování proti RADIUS serveru probíhá správně. Autoři měli i připravený fallback v případě, že zařízení nebude operace s MAC tabulkami přímo na čipu podporovat, a to takový, že se má správně po vyřízení žádosti volat shellový skript ovlivňující chování iptables. V principu to není vůbec špatný nápad a pokud vezmeme v úvahu, že klientů rozhodně nebudou v jeden okamžik desítky, nic by ani nemělo síť výrazně zpomalovat. Háček je v tom, že tato volání skriptů vůbec neproběhnou v případě, kdy chyba wl_ioctl pošle cosi na stdout namísto stderr - pak se do iptables uloží jakési smetí a ve výsledku nebude nic stejně fungovat. Nehledě na to, že tyto skripty zapisují do defaultně nedefinovaných chainů.

Toto všechno by se nejspíš dalo obejít modifikací samotného zdrojového kódu wrt-radauth, dokonce by bylo i lákavé nějakou funčknost, například již řečené podpory VLAN, přidat. Tragédie je pochopitelně ale ve volném čase a smyslu toho všeho. V době, která všechno přepočítává na peníze a neváží si dobrých nápadů. A v averzi k Linuxu jako nástroje pro řízení sítě. OpenBSD rulez, psst.

Pokud z toho tedy něco vyplývá, pak je to jednoznačně tvrzení, že pokud má někdo - řekněme ale spíš organizace než jednotlivec - zájem o opensource badass řešení postavené na DD-WRT, musí si uvědomit, že ani na věcech zdarma nemá smysl šetřit a že levné domácí routery za pár stovek jsou spíše těžítka, než poloprofesionální routery do kanceláří. V řeči čísel to tedy na dnešek odpovídá investici minimálně 1300,- Kč na router, nikoliv polovině, jak bývá dneska běžné. Zkrátka umět se rozhodnout, jestli je libo spíše router, nebo těžítko.

Eida
Tento článek přečetlo již 329 čtenářů (0 dnes).

Komentáře

Nový komentář