Fórum Root.cz
Hlavní témata => Sítě => Téma založeno: wep 13. 08. 2012, 23:07:52
-
Zdravim!
Muzete mi prosim nekdo pomoct pochopit, jak funguje WiFi captive portal?
- Uzivatel uvidi verejnou sit a klikne na pripojit
- AP (server) ho pripoji a na FW mu zablokuje vsechny porty krome TCP 80 a ten presmeruje na prihlasovaci stranku
- Klient se uspesne prihlasi a server pro jeho MAC adresu prida vyjimku na FW a povoli mu plny pristup do site
- Po urcite dobe AP odebere z FW pravidlo a klient je vykopnut
Chapu to dobre?
Shanim nejaky jednoduchy software na captive portal, ktery pobezi na OpenWrt. Potrebuju mit v databazi, idealne SQLite hesla, idealne jen hesla a ne jmena - prihlasovani pouze vygenerovanym retezcem.
Velke programy jako chillispot nebo coova-chilli nechci, shanim neco maleho. Zaujal me nodogsplash (http://wiki.openwrt.org/doc/howto/wireless.hotspot.nodogsplash), ale ten neumi tahat hesla z DB.
Mate nejaky napad na jiny captive portal aby sel pod OpenWrt?
Dalo by moc prace napsat v PHP captive portal? Co vsechno by musel umet?
Dekuji za pomoc.
-
Plus minus ruzne nuance funguje CP timhle zpusobem.
Trochu si protirecis - na jednu stranu nechces pouzit dost lehkotonnazni veci jako chillispot nebo nodogsplash(nebo ti nevyhovuji) a na druhou stranu chces pachat implementaci v php kterou na necem s 16-32 mb ram a ~200 bogomips rozbehas tezko. IMO mas dve moznosti a to bud implementovat captive portal na brane centralne (pfsense, monowall, mikrotik atp) a napr na jednotlivych AP vytvorit pres VAPy odpovidajici omezenou podsit NEBO to resit samostanym captive portalem na kazdem zarizeni a pouzit nejaky (ne)centralizovany system overovani uzivatelu proti db/ldap atp.
-
PHP na 32 MiB RAM běží a dá se to. Databáze, to už je horší. Nešlo by to držet v souboru? :)
Upozorňuji, že CP je by-design nebezpečný, neboť k identifikaci přihlášeného klienta nepoužívá žádný kryptograficky bezpečný mechanismus, nýbrž MAC adresu, která se přenáší nešifrovaně a každý si ji může odposlechnout a posléze nastavit.
Implementace by teoreticky měla jít dát přes noc, skript najde zadaný řetězec v texťáku, podívá se na IP adresu, která k ní patří, zjistí odpovídající MACku (ip neigh || arp) a přidá pravidlo do iptables. Případně se jednou za čas spustí nějaký cron a pročistí neaktivní klienty.
-
Databáze, to už je horší. Nešlo by to držet v souboru? :)
Slo a asi by to bylo i nejlepsi.
Upozorňuji, že CP je by-design nebezpečný, neboť k identifikaci přihlášeného klienta nepoužívá žádný kryptograficky bezpečný mechanismus, nýbrž MAC adresu, která se přenáší nešifrovaně a každý si ji může odposlechnout a posléze nastavit.
S tim pocitam.
Implementace by teoreticky měla jít dát přes noc, skript najde zadaný řetězec v texťáku, podívá se na IP adresu, která k ní patří, zjistí odpovídající MACku (ip neigh || arp) a přidá pravidlo do iptables. Případně se jednou za čas spustí nějaký cron a pročistí neaktivní klienty.
Presne tak jsem to myslel. Jednoducha PHP stranka ktera bude pomoci PHP exec() (http://www.php.net/manual/en/function.exec.php) spoustet vsechny prikazy.
Jen me zajimalo, jestli uz neco takoveho neni hotove - nechci znova vynalezat kolo. :-)
Moje pozadavky:- Do DB/textoveho souboru si vlozim/vygeneruju hesla a jejich platnost (1h,8h,24h)
- Klient zada heslo, CP ho smaze/oznaci ze souboru a pusti klienta na net. Pomoci cronu nebo at si prida jeho odpojeni
Nic vic nechci. Existuje neco takoveho?
-
kup si nejaky nejlevnejsi mikrotik, tam je funkce "hotspot", coz je captive portal, ktery si umi lizat pristupy (mimojine) z Radiusu.
No a kdyz pouzijes freeradius, tak ten si to zase umi lizat z mysql a jsme tam kde jsme chteli byt :)
-
Hmm,
pokud je o neco velmi velmi jednoducheho, takze zacnete treba zde.
http://www.andybev.com/index.php/Using_iptables_and_PHP_to_create_a_captive_portal
http://aryo.info/labs/captive-portal-using-php-and-iptables.html
Pripadne juknete na sadu NoCat, ale nevim jestli projekt zive, posledni release vidim z 2005, kdysi j
jsem v tom neco delal.
http://nocat.net