Portál AbcLinuxu, 19. března 2024 04:31

Mikrotik a hotspot

1.9.2018 22:42 | Přečteno: 5755× | Bláboly | poslední úprava: 13.2.2020 12:31

Dostal jsem se k řešení potřeby relativně jednoduchého sdílení internetu, tak sepisuji, co jsem použil s Mikrotikem. Řešení se obecně skládá z několika kroků.
Konkrétní definice: WAN interfejsu, LAN, wifi, hotspotu, uživatelů, případných uživatelských podrobností, nějaký hardening.
Dále ověření chování, pozorování použití s různými verzemi Androidu či nějakých konkrétních OS.

Mimochodem docela jsem rozčarovaný jak jsou neaktualizované a nekonsolidované wikiny Mikrotiku. Třeba ve srovnání s Juniperem nebo Red Hatem. Poslední update 2-8 let zpět. Budiž, nějaké souhrnné rozcestí existuje a verze 4+ jsou ve dvou odkazech (1 a 2). Co pozoruju, tak user manager už je součástí ROSu.
Pro začátek laické povídání.
Funkci hotspotu jsem tak nějak rozchodil v posledních měsících se statickými uživateli a v nedávné době jsem zjistil, že se user manager stále používá a zrovna si s ním hraju ... Jsou lidi, co do toho nechtěj vůbec šahat, pokud je okolnosti k tomu donutí, tak pro ně budou následující řádky. Cílem je nejjednodušší a nejlevnější řešení.

WAN interfejs

Wan interfejs poskytuje připojení k internetu, zpravidla je řešen "kabelem", buď staticky nebo dynamicky (dhcp). Zpravidla veškerý provoz z LAN (domácí sítě) musí být routovaný přes tento interfejs, musí přes něj jít. A musí fungovat třeba i 1) ping na modem nebo nějaký prvek ve správě "isp", 2) ping do sítě poskytovatele i 3) komunikace skrze tuto síť (to podle její velikosti).
Zpravidla na WANu běží dhcp klient.

LAN interfejs

LAN obsahuje připojené všechno, co uživatel používá lokálně. Tento adresní rozsah se zpravidla (pro IPv4) schovává za NAT při komunikaci do internetu. Zpravidla v LAN běží dhcp server. Na jednom interfejsu Mikrotiku může běžet max 1 dhcp server.

Wifi

Wifi používá profily (interface wireless security-profiles) v rámci Mikrotiku pro nastavení WPA2 šifrování. Mikrotik umí definovat virtual wifi a tedy i více SSID v rámci jednoho železa. Lze to použít tak, že hotspot se pustí, provozuje pouze v rámci nějakého SSID. A jedno wifi je s omezením a druhé bez omezení. A třetí když tak jako statický hotspot. A zatím to vypadá, že změna jednoho virtuálního wifi interfejsu restartne komplet všechny.
Jak to vypadá, tak vynucení přihlášení na konkrétní SSID lze udělat povolením jedné MAC a interfejsu a zakázáním (třeba "no forward") na ostatních.

Hotspot

Ve verzi 6.42.x je už hotspot v rámci RouterOSu (co jsem viděl starší návody, tak se zmiňovala nutnost nainstalovat user manager.) Pro instalaci je dostupný i "hotspot setup". Podle všeho by lokální a hotspotí uživatelé neměli mít stejná přihlašovací jména, aby mohl Hotspot fungovat. Lokální jména mají přednost.
Hotspot lze provozovat na wifi i na drátu v rámci Mikrotiku. Při přihlášení do hotspotu se testuje URL connectivitycheck.gstatic.com.

Doplňky

Podle chutě bude nutno nějak definovat pravidla pro zřizování uživatelských jmen, na která bude bude přidělen "počítačový čas". Pokud bude mít k dispozici správce Mikrotiku syslog server, lze přijímat logy. Tato konfigurace nejde podle všeho "vypnout", jen smazat a znova přidat.
/system logging action
set 3 remote=IP_adresa_syslog_serveru src-address=IP_adresa_Mikro_tiku
/system logging
add action=remote prefix=log-remote-
Kouzelná kombinace pro výpis statistiky interfejsu je i tato ...
/ int ethernet print detail stats where name=ether1
K rádiusu:
zpráva accountingu 1 je začátek, 2 ukončení, 3 aktualizace (=interim update). Co klient přenesl je v Acct-Input-Octets a Acct-Output-Octets.
Způsob ukončení relace je mj.: 1 user request, 4 idle timeout, 5 session timeout, 6 admin reset. V RFC 2866 jich je zmíněno celkem 18.
Ke QOSu: Rate limit 512k, Burst rate 2m, Burst threshold 1m, Burst time 30s a Min rate 256k se promítne jako ...
/tool user-manager profile limitation
add address-list="" download-limit=104857600B group-name="" ip-pool="" name=profile100m-slow owner=admin rate-limit-burst-rx=2097152B rate-limit-burst-time-rx=30s rate-limit-burst-time-tx=30s \
    rate-limit-burst-treshold-rx=1048576B rate-limit-burst-treshold-tx=1048576B rate-limit-burst-tx=2097152B rate-limit-min-rx=262144B rate-limit-min-tx=262144B rate-limit-rx=524288B rate-limit-tx=\
    524288B transfer-limit=104857600B upload-limit=104857600B uptime-limit=0s
Změnit MAC adresu lze z CLI, ne z webui ... (platí i pro wifi)
/ int ethernet set mac-address=xx:xx:xx:xx:xx:xx jmeno_interfejsu
Jak na IPv6, aneb zprovozněno (koonečně) v gentoo. A online ipv6 calculator, první z hledání. Na vstupním interfejsu doporučeno povolit udp/546 a udp/547 pro dhcpv6.
Jedna vychytávka Mikrotiku - různé režimy wifi aneb bridge, pseudo-bridge apod.

Hardening

Je dobré mít nějaký "use case" pro použití přístupu k internetu. A tedy vědět, co lze zakázat (winbox, přístup na mac adresu), co není potřeba. Pokud použiju guest wifi hotspot a nějaký odlišný rozsah, musím vědět, jak budu třeba z mobilu spravovat uživatelský přístup lidem. Pokud použiju certifikáty na https, může se mi stát, že se z jedné "sítě" nedostanu na jiný interfejs. To podle preference konkrétního webového prohlížeče.
Disablování služeb (https://wiki.mikrotik.com/wiki/Manual:Securing_Your_Router)

Odkazy

Co prozkoumat

Chronologicky

Aspoň trochu ...
Ke dni 1.9.2018 už mám i hotspot s radiusem funkční. Podle všech odkazů na webu (třeba i tady) je to sranda, já měl v logu "radius server not responding", podle stack overflow to byla nějaká kravina, routing byl ok, zdrojová adresa nastavená, timeout dostatečný. V nouzi downgrade na bugfix, šlapalo, upgrade na current a šlape taky. Tak nevim.
Tak ještě doladim kudrlinky a časem to sem dopíšu.
K 17.9. už dojde k vyčerpání dat a odhlášení uživatele při používání streamu z internetu i kopírování po síti. Nejsem si jistý, zda byl zapnutý accounting v rámci dhcp serveru. Tj. už ověřena funkce na 952.
Další test: při neomezené, neškrcené, rychlosti je spotřeba dat o dost větší. Pokud rychlost snížím, tak se skoro blížím požadovaným hodnotám. Což by zase tolik nemuselo vadit, pokud bude poskytnuto o minutu či kolik delší provoz a jen pár jednotek MB projde nad rámec. Nakonec stačilo zkrátit interval "Burst time".
A malá radost k tématu, tohle je v logu, čili že to fakt asi šlape ...
22:40:16 hotspot,debug log-hotspot-: slow10m (192.168.228.80): RADIUS accounting request sent 
22:40:16 manager,debug manager-: Sending Disconnect-Request 1 [sid = 56], acctId = 80500052 to 192.168.28.230 
22:40:16 manager,debug log-manager-: Sending Disconnect-Request 1 [sid = 56], acctId = 80500052 to 192.168.28.230 
22:40:16 radius,debug,packet log-radius-: received Disconnect-Request with id 1 from 192.168.28.230:42104 
22:40:16 radius,debug,packet log-radius-:     Signature = 0xa7a6235ea0ddb548d0637e6a20280f58 
22:40:16 radius,debug,packet log-radius-:     User-Name = "slow10m" 
22:40:16 radius,debug,packet log-radius-:     NAS-Port = 2152726610 
22:40:16 radius,debug,packet log-radius-:     NAS-Port-Type = 19 
22:40:16 radius,debug,packet log-radius-:     NAS-Port-Id = "wifi_radius" 
22:40:16 radius,debug,packet log-radius-:     NAS-IP-Address = 192.168.28.230 
22:40:16 radius,debug,packet log-radius-:     Framed-IP-Address = 192.168.228.80 
22:40:16 radius,debug,packet log-radius-:     Calling-Station-Id = "34:69:87:6E:77:03" 
22:40:16 radius,debug,packet log-radius-:     Acct-Session-Id = "80500052" 
22:40:16 radius,debug log-radius-: received remote request 11 code=Disconnect-Request from 192.168.28.230:42104 
22:40:16 hotspot,info,debug info-: slow10m (192.168.228.80): logged out: radius disconnect 
22:40:16 hotspot,info,debug log-hotspot-: slow10m (192.168.228.80): logged out: radius disconnect 
22:40:16 hotspot,account log-account-: slow10m (192.168.228.80): 240 682136 10107807 8344 8541 (radius disconnect) 
22:40:16 hotspot,account log-hotspot-: slow10m (192.168.228.80): 240 682136 10107807 8344 8541 (radius disconnect) 
22:40:16 hotspot,debug log-hotspot-: slow10m (192.168.228.80): removing queue 
22:40:16 hotspot,debug log-hotspot-: slow10m (192.168.228.80): removing ip->user binding 
22:40:16 hotspot,debug log-hotspot-: slow10m (192.168.228.80): sending RADIUS accounting Stop request 
22:40:16 manager,debug manager-:   Request processed in 320 ms 
22:40:16 manager,debug log-manager-:   Request processed in 320 ms 

Issues

Hotspot a počítání dat funguje na statické weby. Na youtube zatím ne (doplněno: asi je to cachovaný, pomohlo použít profil s omezením rychlosti - rate limit). Prej tree queue to snad řeší (opravdu? Nebylo zatím potřeba). Fast (path, track apod.) do toho asi nemluví, do toho co a jak se počítá (komentář: ponecháno snad původní nastavení, v "ip settings" jsou vidět nějaké pakety započítané pro ipv4-fasttrack-packets, za 3 dny jich je 23.000). Takže ty tree queue.
Jak poznat / řešit změny konfigurace, kdy co kdo spáchal (user aaa napoví?). Nebo taky hledat v logu něco jako
MM.DD HH:MM:SS system, info log: XXX changed by YYY
Když už rádius šlape, mohl by i jednodušeji řešit přístup do počítače, linuxu ... přes pam_time to asi nejde, tam je jen jedno souvislé okno.
Ano, v CLI mohu nastavit user-prefix v rámci user manageru. Ale ve webovém přístupu se to neprojeví ...
Pořád si ještě nějsem jistý, jaký je nejlepší způsob mazání sešny, odebrat z Active users, smazat Cookie nebo zakázat na chvíli na rádiusu. Něco funguje občas hned a občas se i posmazání sešna objevuje a musim mazat znova ... ověřit v logu, co to vlastně dělam, jestli neni chyba i jinde.
Čas od času mám odpověď na přihlášení "profile not found". V usermanu pak skutečně u "actual profile" nic není. Mam za to, že jsem jej nastavoval. Stejně tak v Mikrotiku samotném edituju parametry a profilu bez jejich přiřazování. Snad to jde i v usermanu ... nebo je za tím něco jiného, než přetržení vazby u změněné komponenty? Občas stačilo vymazat počítadlo dat, snad u verze 6.43.0 a 6.43.1. potvrzeno i u 6.43.2, "Profile not found" a vyčerpaná data.
Co koukam, tak ovládání usermanu přes konsoli je tímto způsobem možné ... ono číslo 12 je ID přihlašovacího jména (tool user-manager user pri), platí pro 6.43.2.
/ tool user-manager user create-and-activate-profile profile=JMENO_PROFILU numbers=12
Navíc jsem objevil, že když přidam k jednomu přihlašovacímu jménu dva profily, tak v přehledu toho, co uživatel může, je pouze hodnota z jednoho limitu. Ale počítaj se oba, oba jsou použité. A v CLI je to vidět.
Script na mazání logů z UM:
:foreach i in=[/tool user-manager log find] do { /tool user-manager log remove $i; }
i když ono stačí už i použít interní příkaz UM ...
/tool user-manager database clear-log
Když někdo posílá velké pakety (tj. neumí správně zarovnat MSS), tak
/ip firewall mangle
add action=change-mss chain=forward new-mss=1400 protocol=tcp tcp-flags=syn tcp-mss=!0-1400
add action=change-mss chain=output new-mss=1400 protocol=tcp tcp-flags=syn tcp-mss=!0-1400
Pokud je požadován sdílený účet, je toto nutno potvrdit jak v nastavení profilu, tak u jména uživatele a také v nastavení hotspotu.
Pravděpodobně dvě zařízení, pc a smartphone, se nechytaj na wifi, doporučeno je mj. the problem in my situation was in country, channel width - nebo taky "I followed your instruction about increasing Lease time. All good now." V našem případě nakonec pomohlo povolit TKIP na wifi, tedy nemít pouze AES - kvůli jednomu Samsungu a nějakým woknám.
Čas od času se Mikrotik nějak zamyslí. Pak třeba autentikace trvá a další pokus dává hlášku "in progress" nebo co, viděl jsem to zatim asi jen 2x. V logu nic jasného není.
Pokud člověk generuje z klienta provoz a změní NAT na Mikrotiku, tak při otevřeném spojení se nová sešna nenaváže, čili NAT se podle nové konfigurace neudělá. Kde jen jsem to už viděl :-) aneb timeouty u protokolů ...

Kravinky

Na rb2011 beep funguje, na rb952 nee (inspirace byla tady).
Pro výpis počtu zajímavých položek lze použít "count-only", např.
ip dhcp-server lease print count-only
Userman potřebuje po zadání refresh, např. když něco nakonfiguruju, tak se to nezobrazí hned. Ověřeno v defaultním vivaldi i "standardním" profilu firefoxu. No, 3x jsem si toho všiml za poslední týden, jen občas se vracím na stejný list, když něco zadám. Závěr - testovat i v jiných prohlížečích.
Podle všeho, tak když userman žije na nějaké IP adrese na Mikrotiku, tak se na něj nelze dostat zřejmě na všech IP adresách, co Mikrotik má. (prověřit ... teď je tam 404, správně ...) Takže nejdřív mám status, přepíšu IP adresu na jiný interní wifi subnet a dostanu se na přihlášení do routeru i na přihlášení do usermana ... v aktuálním vivaldi 1.15.1147.64_p1.
I při restartu routeru se uchová informace o stažených datech.
Kdyby něco, tak pustit pustit debug na radius. Přehled režimů Mikrotiku (router, bridge, CAP, CPE, HomeAP, WISP AP).

Zprovoznění usermana

1) Mít aktivovaný balíček (v cli není "X" u user-manager po "sys pack pri"). 2) Změnit heslo pro admina (tool user-manager customer set password=noveheslo) 3) upravit v usermanu viditelná pole (v settings, původní seznam je celkem strohý) 4) nutno přiřadit uživatelskému jménu nějaký profil, musí být Active, ne Waiting nebo prázdný - v logu Mikrotiku to je taky vidět ... (radius (I.P.): login failed: no valid profile found), 5) když už si myslíme, že vše šlape, tak přes maintenance udělat backup a třeba otestovat na dalším Mikrotiku jako nezávislý radius server a sledovat souvislosti třeba. 6) V chrome se ovládá userman líp než ve firefoxu (i když možná záleží i na OS) ...

To do

Doplnit nějaký anglický text, souhrn. Vypsat, zveřejnit funkční konfiguraci. Otestovat funkci i na RB2011 (hotovo). Otestovat i s živějšími a čilejšími profily, uživateli (zatím nefunguje kombinace profilů ~ špeky). Porovnat s freeradiusem. Poškádlit xka s radiusem.

UPDATE: Have you got a small flash in your hAP lite? I stucked on 6.45.1. When I disabled almost all packages and downloaded the current 6.46.3 in root directory I've got after reboot running and updated Mikrotik. Although with bundle package.
I did factory-reset, then used computer as a gateway. This means I disabled wireless too on Mikrotik before upgraded.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

2.9.2018 12:04 Odin
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Odpovědět | Sbalit | Link | Blokovat | Admin
Mikrotik/routeros jeste zije? Matne si pamatuji, ze jsem pred lety na tom vyrabel hotspot s overovanim proti radius serveru. Take mam pocit, ze zhruba od te doby nenavidim freeradius :-) Take by bylo zajimave zminit, ze v mikrotiku lze customizovat onen defaultni captive portal pro klienta hotspotu.
vencour avatar 2.9.2018 12:51 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Přijde mi, že žije. Já se k němu dostal cca u 6.38, možná tak před rokem.
Jo, jde upravit vzhled.
Kdysi jsem byl odvázaný z Linksyse, teď mi vyhovuje Mikrotik. Respektive jeho cena a "stavebnicovost". A docela rychlé updaty.
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
2.9.2018 20:26 Jimmy
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Mikrotik žije a vyrábí i hodně schopné a zajímavé krabičky - https://mikrotik.com/products - podívejte se na konec seznamu routerů. Nicméně jeho primárním zaměřením nejsou domací krabičky za 500-1000 Kč (tam není moc konkurence schopný), ale routery pro menší a střední ISP neo firmy. Když potřebujete někde proroutrovat spoje co mají mnoho set nebo 1 Gbps, tak je to vhodná volba. Navíc když víte co chcete nastavit, tak to v Routeros nastavíte a je jedno za routeru za 500 nebo 5000 Kč. Ano, občas to má nějaké mouchy.
vencour avatar 5.9.2018 23:41 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Mně přijdou i ty nejlevnější krabičky zajímavé. Mam doma 941, 952 a 2011.
Ano, ROS je zajímavý, přístup přes ssh a celkem slušné CLI. I když jsem pořád ještě nezjistil, jak hledat ve výpisu (Cisco má pajpu a include, Juniper pajpu a match) nebo jak spočítat položky výpisu (viz např.dokumentace Junosu
Ok, funguje hledání třeba něco jako
ip dhcp-server lease print where address in z.y.x.0/24
nebo třeba přesměrování výstupu podle forum.mikrotik - filter in cli
/queue simple print file=output.txt where name=kevin and target=10.10.10.100/32
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
10.9.2018 19:12 nelson | skóre: 17 | blog: jakesi_cosi
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Pro počítání slouží count-only, tedy např:
/interface print count-only

vencour avatar 10.9.2018 20:20 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Jo, dík za komentář. To už jsem taky objevil a dopsal to výše. Asi tam přidam něco jako "issues", co bych rád zjistil, ekvivalent od konkurence.
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
Max avatar 2.9.2018 23:54 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Mikrotik je asi best, co člověk může za rozumný peníz sehnat.
Jako router je naprosto ideální, dokáže uvařit i kafe, stejně tak pro p2p spoje.
Za velmi nízký peníz člověk dostane relativně doživotní sw support.
Na co se nehodí je jako AP pro mobilní klienty (telefon,y notebooky apod.), u kterých potřebujeme bezešvý roaming.
Zdar Max
Měl jsem sen ... :(
3.9.2018 18:33 Paulito
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Mrkni na CapsMan, děláme s tím firemní WiFi s bezešvým roamingem, cca 18 AP, radius proti AD, centrální správa, lahůdka.
Max avatar 3.9.2018 20:39 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
CapsMan = centrální správa, jak ta řeší bezešvý režim? Mikrotik nepodporuje žádné roamingové standardy (802.11r,k,v) ani nic, co to obchází migrací virtuálního AP mezi fyzickými AP?
Bezešvý režim = plynulé přecházení klienta mezi více fyzickými AP bez zhoršené latence, natož aby vypadl jediný ping.
Navíc pokud používáte EAP, tak tam ten reauth musí být pomalejší, než s WPA2.
Resp. takhle, zajímá mně, zda to máte opravdu bezešvé, nebo "bezešvý" používáte ve špatném kontextu?
Zdar Max
Měl jsem sen ... :(
vencour avatar 24.9.2018 22:07 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Mikrotik a hotspot (bude průběžně updatováno)
Abych odpověděl i do diskuse ... na 9. stránce odkazovaného vlákna je i odkaz na toto přihlašovací okno.
Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.