Otthoni hálózat biztonságosabbá tétele

Come in, we're open (kind of)

Az elmúlt években nagyon megnőtt az itthoni infrastruktúra már ami az itthoni vezetékes ill. vezeték nélküli hálózatot jelenti. Egyszerűen gombamód szaporodnak a Wi-Fi képes eszközök, a hálózati gerincet szolgáló infrastruktúra is rengeteget fejlődött ez elmúlt években. Ráadásul úgy tűnik, hogy a tendencia egyelőre nem fog megállni, csak az elmúlt egy hónapban két új eszközzel gyarapodott az eszközpark.

Ma délelőtt illetve délután rászántam magam és nekiugrottam az egészet újragondolni és újraimplementálni, figyelembe véve alapvető IT– és információ biztonsági szempontjaimat is. Noha az előbbi kettőre korábban már voltak kezdetleges próbálkozások és beállítások, teljessé a kép (na jó, valójában 99%) valójában ma vált.

Ahonnan indultam

Ahhoz, hogy az alábbi “litániát” érthetővé tegyem, alap dolgokat értenetek kell. Ezek az alábbiak:

  • Ubiquiti Unifi eszközök adják a hálózati infrastruktúrát, kis lakás révén ez egy router-ből és egy AP-ból áll
  • rengeteg mobil készülék, tablet és számítógép van
  • vannak multimédia cuccok (tévék, hangszórók, konzolok, illetve egyéb multimédiás eszközök)
  • vannak az IoT, vagy okosotthon, vagy kütyü eszközök, attól függően ki hova sorolja ezeket (porszívó, hőmérők, klímavezérlő stb.)
  • és van a NAS, a család központi alexandriai könyvtára (rengeteg fényképpel, számlával, orvosi- és egyéb fontos papírral, számítógép mentésekkel stb.)

A célom nem volt kevesebb, mint az alábbi lista:

  • a számítógépek, mobiltelefonok, tabletek illetve a vezetéken csatlakoztatott eszközök maradnak ott ahol, az eddigi fő LAN-on (nevezzük MASTER-LAN-nak).
  • A NAS-t mindenképpen önálló logikai egységként akartam kezelni, hogy szabályozni tudjam azon eszközök listáját, akik hozzáférhetnek, így logikus döntés volt a NAS-t egy önálló LAN-ra tenni (nevezzük NAS-LAN-nak).
  • Az egyéb eszközök úgy mint okoskütyük és multimédia eszközök pedig mennek egy harmadik, dedikáltan nekik létrehozott LAN-ra, így rájuk is további szabályokat fogok tudni létrehozni de erről később. Ezek az eszközök tehát egy harmadik LAN-ra kerülnek (nevezzük DEVICES-LAN-nak).

Összegezve a fentieket, három LAN jön létre:

  • MASTER LAN
    • számítógépek
    • tabletek
    • telefonok
    • vezetékes eszközök
  • NAS-LAN
    • NAS eszköz maga
  • DEVICES-LAN
    • Okos cuccok és IoT eszközök
    • multimédia eszközök mint például tévé, hangszóró, erősítő stb.

Azért definiáltam ezeket a “zónákat”, vagy LAN-okat, hogy a hálózati eszközeim nyújtotta képességeket maximálisan ki tudjam használni, valamint a lehető legfinomabb szabályozást kívántam meg létrehozni, ezekből a legfontosabbak pedig az alábbi szabályok:

  • A NAS-LAN-t mindenáron védeni kell mindentől. Csak és kizárólag azok az eszközök beszélhetnek bele ebbe a zónába, akik egy bizonyos listán szerepelnek (whitelist). Ráadásul ebben a LAN-ban és DHCP szolgáltatás sincs (még jó lásd következő mondat). Mivel tervezetten ez az egyedüli eszköz ebben a hálózatban (beleszámítva a broadcast és átjáró saját címeket), a tartomány /30-as lett (3 db IP cím elérhető).
  • A MASTER-LAN-ra bárki felléphet, aki tudja a csatlakozáshoz szükséges adatokat, onnan elérheti a NAS-LAN-t amennyiben megengedett, illetve beszélhet DEVICES-LAN-on lévő eszközökkel. Természetesen itt van DHCP szolgáltatás, a taromány /24-es (256 IP cím elérhető).
  • A DEVICES-LAN-on szereplő eszközök sehova sem kommunikálhatnak, csak az Internetre, illetve válaszolhatnak azokra a kérésekre, amelyek a MASTER-LAN-ból érkeznek. További szigorítás még, hogy bár van DHCP szolgáltatás, a tartomány /27-es illetve (32 IP cím elérhető), MAC cím szűrés is van (tudom, hogy ez viszonylag könnyen kijátszható, hiszen MAC címet ma már mindenki könnyen hamisít, de a vérpistikék ellen azért 5 percig véd), valamint sávszélesség kontroll is van, abból is kétféle:
    • Azok az eszközök, amiknek nincs nagy sávszélesség igénye, tehát például többnyire csak parancsot kapnak, visszajeleznek esetleg néha-néha egy-egy firmware frissítést töltenek le, oda a WLAN csoporthoz társított, alapértelmezett limitet állítom be. Ez letöltésben 64 KB/s (512 Kbps), feltöltésben pedig 16 KB/s (128 Kbps) limitációt jelent.
    • Azok a multimédia eszközök, amelyek zenét, videót játszanak le, esetleg nagyobb mennyiséget forgalmaznak letöltés irányában, azoknál csak a feltöltés van korlátozva szintén 16 KB/s-re (128 Kbps).

Na most még egy dolgot meg kell említenem. Ahhoz, hogy az egyes LAN-ok között a forgalmat szabályozni tudjam, két dologra volt szükségem:

  • Mivel mindhárom LAN a router szemszögéből nézve ugyanazon a fizikai interfészen kommunikál, így a MASTER-LAN-t (untagged) leszámítva mindegyik kapott egy VLAN tag-et (tagged). A példa kedvéért a NAS-LAN a 20-as VLAN-t kapta, míg a DEVICES-LAN az 55-öst.
  • Mivel az OSI modell szerint, ha két eszköz ugyanabban az alhálózatban foglalnak helyet, akkor egy layer 2-es switch nem fogja a forgalmat átzavarni a gateway-en, hanem direktbe összeköti őket. Ahhoz, hogy a tűzfal szabályokat a router-en ki tudjam kényszeríteni, rá kellett vennem a switch-et, hogy mindenképpen a gateway (a router) cím felé terelje a forgalmat. Így a megoldás az lett, hogy mindhárom LAN szegmensnek saját RFC1918 szabványos címtartománya lett:
    • MASTER-LAN: 192.168.10.0/24 (gateway: 192.168.10.1)
    • NAS-LAN: 172.16.128.0/30 (gateway: 172.16.128.1)
    • DEVICES-LAN: 10.192.168.0/27 (gateway: 10.192.168.1)

Szóval lényegében az alábbi ábra fog megvalósulni (bocsi a minőségért, draw.io és 5 perc):

Az ábrán az egyes LAN-okat az egyes sávok szemléltetik, benne a különféle eszközökkel. A nyilak színjelölése a következő, irányát a nyíl mutatja:

  • Zöld: engedélyezett, nincs semmilyen szabályozás.
  • Piros keretes zöld: csak ha engedélyezve van az adott kliens a whitelist-en (kivétel lista).
  • Piros: természetesen nem engedélyezett.
  • Kék: a magasabban elhelyezkedő sávból induló kérésre az alacsonyabban elhelyezkedő sávban lévő eszköz válaszolhat.

Megvalósítás

Most, hogy nagyjából körvonalazódott mit is akarok, nekiálltam az Unifi vezérlőben megvalósítani a fenti elképzelést. A NAS-sal kezdtem, mert ezt viszonylag gyorsan letudható.

NAS

Először is létrehoztam egy új hálózatot (NAS-LAN), a fent leírt módon bekonfiguráltam. Ezekután beléptem a NAS-ra és a saját adminisztrációs felületén átpattintottam az új hálózatra. Biztos ami tuti, újraindítottam és megvártam míg szépen elindul. Miután az új címmel az új szegmensben (a NAS-LAN-ban) megjelent, jöhettek a tűzfal szabályok. Azonban a tűzfal szabályok előtt, azokra az eszközökre, amelyeknek a NAS-t el kell érniük, fix IP-t állítottam be (DHCP reserved address). Ezek többnyire a telefonok, tabletek és az adott számítógépek. Így biztosítottam, hogy ezek az eszközök mindig ugyanazt az IP címet kapják történjen akármi és ezzel biztosítani tudom a whitelist-em tartalmát a következő bekezdésben leírtakhoz.

Az Unifi-ben csináltam egy csoportot “Allowed NAS devices” névvel a Settings – Routing & Firewall – Firewall – Groups szekcióban. Ebbe a csoportba felvettem az IP címét az összes olyan eszköznek, akinek el kell majd érnie a NAS-t.

Miután a csoport előállt, létrehoztam két tűzfal szabályt a Settings – Routing & Firewall – Rules IPv4 – LAN IN1 szekcióban.

  1. Allowed devices to NAS-LAN: tök egyszerű szabály, mindenkit átenged, akik a korábban létrehozott csoportban fel van tűntetve. A szabály részletei:
    • Action: Accept
    • Protocol: All
    • Source: Address/Port group – a korábbi listánk neve
    • Destination: NAS-LAN (vagy paranoiásabbak explicit megadhatják a NAS saját IP címét – én így tettem).
  2. Block any devices to NAS-LAN: akik nem mentek át az előző szabályon2, azok itt végződnek: letiltjuk őket. A szabály részletei:
    • Action: Drop
    • Protocol: All
    • Source: IPv4 Address Group: Any
    • Destination: NAS-LAN

Ezzel a NAS rész kész, jöhet a nagyobb falat: IoT eszközök.

IoT eszközök

A NAS-LAN-hoz hasonlóan itt is létrehoztam egy új hálózatot (DEVICES-LAN), majd a fent leírt módon bekonfiguráltam. Miután ezzel megvoltam, az érintett eszközöket áttereltem erre a hálózatra (Apple TV, tévé, klímavezérlő stb.). Majd, újfent az Unifi kontroller irányába vettem az irányt. Két feladat volt:

  1. Biztosítani eszköz specifikusan a sávszélesség beállításokat.
  2. Létrehozni a megfelelő tűzfal szabályokat úgy, hogy az mDNS szolgáltatás funkcionális maradjon (Chromecast, Apple HomeKit stb.) azon eszközökön, amelyek továbbra is a MASTER-LAN-on helyezkednek el.

Sávszélesség korlátozás

Létrehoztam két felhasználói csoportot a Settings – User Groups szekcióban:

  1. IoT Devices: olyan csoport, amelynek fel és letöltési sebessége is korlátozva van:
    • Letöltés: 64 KB/s
    • Feltöltés: 16 KB/s
  2. Download heavy devices: olyan csoport amelynek csak a feltöltési sebessége van korlátozva:
    • Feltöltés: 16 KB/s

Miután ezzel megvoltam, az IoT Devices csoportot alapértelmezettnek állítottam be a DEVICES-LAN hálózat beállításaiban, így elérve azt, hogy ha az adott eszköznek explicit nem állítanak be egyéb csoportot, úgy a hálózati sávszélesség használata a csoportban beállított lesz.

mDNS

Utolsó megoldandó feladat az olyan eszközök működésre bírása, amelyek használják az mDNS szolgáltatást. Ezek többnyire a ma ismert okoscuccok: Google Home, Apple HomeKit, Chromecast stb. Mivel én nem akartam azt, hogy az egyes hálózatok között alapértelmezetten biztosított legyen az átjárás (az Unifi alapbeállítása ezt teszi), így az alábbi két tűzfal szabályt létre kellett hoznom:

  1. Allow established/related sessions: azt teszi lehetővé, hogy a DEVICES-LAN-ban helyet foglaló eszközök válaszolhassanak olyan kérésekre, amelyek a MASTER-LAN-ban helyet foglaló eszközök indítottak. Részletek:
    • Action: Accept
    • Protocol: All
    • States: Established (már létrejött kapcsolathoz tartozó csomagok), Related (korábban engedélyezett kapcsolathoz tartozik)
    • Source: Any
    • Destination: Any
  2. Block DEVICES-LAN to MASTER-LAN: amennyiben az előző szabály nem értékelődött ki, úgy alapértelmezetten tiltunk minden kimenő kommunikációt a DEVICES-LAN hálózatból. Ennek részletei:
    • Action: Drop
    • Protocol: All
    • Sources: Network – DEVICES-LAN
    • Destination: Network – MASTER-LAN

Utolsó előtti lépésként, engedélyeztem az mDNS Repeater-t, lehetővé téve azt, hogy az mDNS kéréseket a router az össes konfigurált hálózati szegmensbe továbbítsa. Ennek bekapcsolását a Settings – Services – MDNS szekcióban tettem meg.

Utolsó lépésként pedig explicit, a szükséges eszközöknek beállítottam a korábban létrehozott “Download heavy devices” nevű csoportot, hogy lehetővé tegyem ezen eszközök számára a korlátlan letöltési sebességet (Apple TV, tévé, okos hangszórók).

1 – LAN IN: a router azon interfésze, ahova az összes bejövő, LAN forgalom beesik. Mivel korábban írtam, hogy mindhárom LAN saját tartománnyal dolgozik, így a switch kénytelen az összes forgalmat a gateway (jelen esetben a router maga) felé elküldeni, így ki tudom kényszeríteni a tűzfalszabályok végrehajtását.

2 – RULE_ORDER: Az Unifi tűzfal szabályrendszere felülről-lefelé működik. Ez azt jelenti, hogy a kiértékelés megkezdődik az első szabálynál. Ha ott találat, vége a dalnak, az ott definiált szabály szerint fog történni az, aminek kell. Ha nincs találat, akkor megy a következő szabályra. Ha itt van találat, akkor vége a dalnak megint, az ott definiált szabály szerint fog röténni az, aminek kell. És így tovább.

A bejegyzés kiemelt képét készítette:

unsplash-logo Morning Brew