MAC-alapú kivétel Mikrotik hotspot-ba
Egy ügyfélnél korlátozott, felhasználói azonosítással ellátott Internet-hozzáférést kellett beállítani egy apartmanházban. Ezt meglehetősen hamar sikerült megoldani a bépített Mikrotik router hotspot moduljával.
A hotspot funkcionalitás beállítására több leírás létezik, ez kívül esik jelen írás keretein, egy már beállított hotspot-tal kezdünk.
Az aktuális fejlesztés során az apartmanokban található TV-ket a tulajdonos lapos, smart-TV-kre cserélte, így ezzel egy időben felmerült a TV-k Internet-re kötése. A kialakítással kapcsolatos feltételek:
- az apartmanban legyen elérhető WiFi kapcsolat
- a vendégek felhasználónév/jelszó hozzáférést tudjanak használni (a ház melletti járdán ne lehessen ingyenesen Internetezni)
- a TV-k jelszó nélkül jelentkezzenek fel
- a TV-ből kihúzott kábelt se lehessen jelszó nélkül használni
Az első két pont már eleve adott volt a korábbi rendszerből, így csak a harmadik és negyedik pontokat kellett megoldani.
A TV-k jelszó nélküli bejelentkezését könnyen meg tudtunk volna oldani, ha azokat a végpontokat a hotspot-szegmens helyett egy LAN-szegmensre kötjük, viszont ezzel lehetővé tettük volna, hogy a kábeleket a TV-ből számítógépbe átkötve azokon is jelszó nélkül lehessen netezni. Ez pedig szembe menne a negyedik ponttal.
Az alternatív ötlet a szoftveres beazonosítás. Itt érdemes megjegyeznem, hogy a rendszer jelen leírás szerinti kiépítésével csak a megkerülés megnehezítését kellett megoldani, nem pedig DoD hármas szintű titkosítást.
A szoftveres kivétel kialakítása a kábelezésre is jótékony hatással lett, mivel nem kellett új szálakat behúzni a rack szekrénytől, elegendő a meglévő router-AP-k egy-egy portját átkötni a TV-kre.
A kivétel alapja a TV MAC címének azonosítása a hálózati kommunikációban, illetve a mikrotik router hotspot-ra vonatkozó tűzfal szabályainak kiegészíthetősége.
A kívánt MAC címről érkező csomagokat a Mikrotik csomagfolyamat lehető legkorábbi pontján meg kell jelölni, hogy minden későbbi szabályt ennek megfelelően tudjunk módosítani. Ez a mangle::prerouting lánc:
/ip firewall mangle add chain=prerouting connection-state=new src-mac-address=74:00:00:00:00:5A action=mark-packet new-packet-mark=hotspotjump |
Így az ezt követő szabályok során hivatkozhatunk a “hotspotjump” jellel ellátott csomagokra, további TV – illetve hasonló kivételt élvező eszköz – MAC címe esetén csak a csomagjelet kell feltenni, és a szabályok ugyanúgy vonatkoznak az új eszköz kommunikációjára is.
A hotspot modul engedélyezése után a kiválasztott porton beérkező teljes forgalom kérdés nélkül keresztülmegy a modulon, és szükség esetén azonosítási adatokat kér a klienstől. Ezt az azonosítási lépést kell kikerülni az engedélyezett eszközökről indított csomagokkal.
Ehhez két ponton kell módosítani az alapértelmezett láncot.
A nat::dstnat láncban a csomagokat a nat::hotspot láncba dobja a tűzfal, és itt kezdődik a forgalom protokollfüggő beazonosítása és a hozzáférés-jogosultság ellenőrzése.
A második pont a filter::hs-unauth lánc eleje. Ide kerülnek azok a csomagok, amik nem azonosított forrásból érkeznek.
Amennyiben ezen a két ponton beiktatunk egy-egy feltételes elágazást, akkor a kivételt élvező eszközeink csomagjaival el tudjuk kerülni a hotspot modult.
A megjelölt pontokon egyszerű return szabályt kell alkalmazni, a kívánt hatás eléréséhez:
/ip firewall nat add chain=hotspot packet-mark=hotspotjump action=return place-before=14 |
/ip firewall filter add chain=hs-unauth packet-mark=hotspotjump action=return place-before=26 |
Ez annyit tesz, hogy a csomagok a lánc további szabályai helyett a megelőző láncba kerülnek vissza.
Mit sikerült elérni
- minden apartmanban elérhető WiFi hálózat
- az új TV-k számára jelszó nélkül elérhető az Internet
- a vendég számítógépeken WiFi-n és a TV-ből kihúzott kábeleken keresztül is csak jelszó megadásával lehet Internetezni
Kód-optimalizálás php-ban Gandalug, mint a fejlesztőkörnyezet új tagja
Comments are currently closed.
Szep jo napot
Mi a megoldas ha tobb MAC cim van ? Mindegyiknek kulon kell megjelolo szabalyt letrehozni vagy van mod listahasznalatra is ? Pl beirni a MAC cimet a listaba es onnan arra mar kezelve van ?
Elore is koszonettel !
kms Reply:
március 31st, 2016 at 10:59
Kedves Gazdi,
Elegendő a mangle:prerouting táblába felvenni a packet-mark szabályt minden MAC címhez, a kivétel többi részében már egyformán kerülnek kezelésre:
/ip firewall mangle
add chain=prerouting connection-state=new src-mac-address=74:00:00:00:00:5A
action=mark-packet new-packet-mark=hotspotjump