CNL Network Admission Control system (NAC)
CNL NAC je systém kontroly prístupu do počítačovej siete na základe rôznych informácií získaných z druhovrstvovej analýzy sieťovej topológie a správania zariadení, ktoré sú k počítačovej sieti pripojené. Systém kontroly prístupu (NAC) je tvorený nasledovnými prácami:
- [2009] Solaniková Markéta: Systém kontroly prístupu do siete na báze znalostí aplikačnej vrstvy?
- [2009] Tkáč Vladimír: Systém kontroly prístupu do siete na báze správania klientov?
Rýchle linky:
Cieľ projektu:
- Budovanie znalostí o klientoch počítačovej siete z aplikačnej vrstvy (inštalované aplikácie, systémové aktualizácie)
- Budovanie znalostí o klientoch počítačovej siete na základe ich správania (kontrola typu OS, MAC, IP)
- Blokovanie zariadení, ktoré nespĺňajú kritériá prístupu do siete (absencia vyžadovaných aplikácií, neaktualizované stanice)
- Adaptívne filtrovanie sieťovej prevádzky, kooperácia s adresárovými službami a autentifikáciou klientov prostredníctvom 802.1x
Architektúra Agent/Server/Manažér
NAC Agent (klient)
- Získavanie informácií z aplikačnej vrstvy
- NAC klient je aplikácia bežiaca na klientskej stanici (OS Windows, OS Linux)
NAC Server (Adaptívny filter sieťovej prevádzky [firewall])
- Linux server s filtrom na druhej (ebtables) a tretej vrstve (iptables)
- Podpora bridgingu medzi fyzickými rozhraniami s podporou 802.1q (trunking)
- Kompatibilita so zariadeniami spoločnosti CISCO
NAC Manažér
- Modul informačného systému SynetsIS ? s možnosťou budovania ACL (access-control-list), ktoré sú implicitne povolené vzhľadom na stav klienta
- Sprostretkovanie komunikácie medzi Agentom a adaptívnym filtrom sieťovej prevádzky
Implementácia
Komplexný náhľad na systém
- BubbleNotifier , NAC Agent a NAC Server sú implementované v programovacom jazyku Java (1.6). NAC Manager sa skladá z dvoch častí: logika aplikácie je implementovaná v Jave a Graphical User Interface bude implementovaná v jazyku PHP ako modul informačného systému SynetsIS ?. Na rozdiel od ostatných komponentov, tieto dve časti spolu komunikujú len prostredníctvom databázy, ku ktorej majú obe prístup.
- NAC logická schéma:
Vzájomná komunikácia komponentov
- jednotlivé komponenty systému spolu komunikujú prostredníctvom vymieňania XML správ
| Názov XML schémy |
Význam |
| generalMessage |
správa obsahujúca len hlavičku |
| messageHeader |
definícia hlavičky obsiahnutá v každej správe obsahuje IP a MAC adresu odosielateľa |
| messageAgM1 |
odpoveď NAC Agenta poslaná NAC Managerovi obsahuje získané hodnoty jednotlivých položiek |
| messageAgM2 |
odpoveď NAC Managera poslaná NAC Agentovi obsahuje správu, ktorá sa má zobraziť používateľovi |
| messageAgM3 |
checklist obsahuje zoznam položiek s detailami, ktorých hodnotu má NAC Agent získať |
| messageApM1 |
odpoveď NAC Servera poslaná NAC Managerovi obsahuje stavy(úspešný/neúspešný) požadovaných operácií |
| messageApM2 |
požiadavka NAC Managera poslaná NAC Serveru na vytvorenie/zmazanie VLAN-zariadení |
| messageApM3 |
požiadavka NAC Managera poslaná NAC Serveru na vytvorenie/zmazanie bridgov |
| messageApM4 |
požiadavka NAC Managera poslaná NAC Serveru na pridanie/odobranie VLAN-zariadení do/z bridgov |
| messageApM5 |
požiadavka NAC Managera poslaná NAC Serveru na pridanie/odobranie Iptables a Ebtables pravidiel |
| messageApM6 |
požiadavka NAC Servera poslaná NAC Managerovi obsahujúca "RESTORE" správu na obnovenie VLAN a bridgov z databázy NAC Managera |
Bezpečnosť
- komunikácia vymieňaním XML správ je zabezpečená protokolom SSL.
- všetky komponenty (NAC Manager, NAC Agenti, NAC Server) majú vlastný pár kľúčov uložený v KeyStore
- komunikácia medzi NAC Agentom a BubbleNotifier -mi prebieha bez zabezpečenia
- všetci NAC Agenti však majú rovnaký pár kľúčov
- TrustStore NAC Managera obsahuje certifikát NAC Agentov a certifikát NAC Servera
- TrustStore NAC Servera obsahuje certifikát NAC Managera
- TrustStore NAC Agentov obsahuje certifikát NAC Managera
- NAC Manager a NAC Server majú zapnuté vynucovanie autentifikácie klientov, čo znamená vynútenie autentifikácie NAC Agentov voči NAC Managerovi a vzájomné vynútenie autentifikácie v komunikácii medzi NAC Serverom a NAC Managerom
Databáza
- Konceptuálny dátový model:
- účelom tejto aplikácie je upozorniť klienta na zmenu týkajúcu sa vyhodnotenia konfigurácie daného operačného systému systémom NAC
- bude sa spúšťať pri štarte systému, reprezentovaný bude v System Tray ikonkou
- každý používateľ prihlásený v lokálnom OS má vlastný proces BubbleNotifier -a
- BubbleNotifier sa pokúša vytvoriť socketové spojenie s Agentom
- ak sa podarí spojenie nadviazať, spojenie pretrváva až kým sa používateľ neodhlási alebo kým sa spojenie nepreruší chybou. V tom prípade sa pokúša nadviazať spojenie znova.
- prijíma od Agenta XML správu, z ktorej prečíta message a zobrazí ju vo vyskakujúcej bublinke. Bublinka sa zobrazí na každom BubbleNotifier , ktorému sa podarilo nadviazať spojenie s Agentom (v prípade viacerých prihlásených používateľov)
- ikonka v System Tray obsahuje pop-up menu s možnosťou ukončenia aplikácie a s možnosťou zobrazenia histórie správ
- história správ sa načíta z history logov Agenta
Konfiguračný súbor
SVN
NAC Agent
- bude v systéme bežať ako Windows služba alebo Unix daemon s právami Local System
- samostatné vlákno počúva na spojenia s BubbleNotifier -mi a registruje ich vo svojom zozname
- po obdržaní správy od NAC Managera túto pošle všetkým registrovaným BubbleNotifier -om
Komunikácia s NAC Managerom
- ďalšie samostatné vlákno spúšťa každú periódu komunikáciu s NAC Managerom
- Checklist je XML súbor, ktorý obsahuje informácie o všetkých položkách, ktoré má NAC Agent na klientskom OS skontrolovať
- v súčasnosti sú dva typy položiek: položky, ktorých hodnoty sa majú hľadať vo WMI a položky, ktorých hodnoty sa majú hľadať v registroch. V budúcnosti je možné doprogramovať ďalšie typy.
- NAC Agent prečíta Checklist súbor a nájde hodnoty všetkých položiek prislúchajúcim danej platforme (Windows, Linux, Unix, Mac OS X)
- z týchto hodnôt vytvorí odpoveď pre NAC Managera
- pokúsi sa napojiť na NAC Managera. Adresu NAC Managera zistí troma spôsobmi:
- v property súbore si vyhľadá DNSName NAC Managera a v registroch si vyhľadá Primary DNS Suffix. Na základe týchto reťazcov sa pokúsi vyhľadať adresu v DNS
- certifikát NAC Managera, ktorý je uložený v TrustStore NAC Agenta obsahuje vo svojom DN adresu NAC Managera pod CN
- v property súbore je uložená adresa NAC Managera
- v prípade úspešného spojenia mu pošle odpoveď s hodnotami položiek
- čaká na odpoveď od NAC Managera.
- v prípade, že NAC Agent má Checklist s verziou, ktorá nezodpovedá verzii Checklistu NAC Managera, NAC Agent obdrží nový aktuálny Checklist. Ten uloží na príslušné miesto a ukončí spojenie. Celá komunikácia začne odznova bez ohľadu na periódu.
- v prípade, ak verzia Checklistu NAC Agenta zodpovedá verzii NAC Managera, NAC Agent obdrží výsledok porovnávania jeho odpovede s profilmi. V prípade, že nedochádza k zmene, tzn. odpoveď NAC Agenta zodpovedá rovnakému profilu ako naposledy, výsledok je prázdny.
- NAC Agent prečíta správu z výsledku od NAC Managera a pošle ju všetkým registrovaným BubbleNotifier -om, ktorí ju zobrazia v bublinkách
- spojenie s NAC Managerom sa ukončí
Zmena certifikátu NAC Managera
- v prípade, že NAC Manager zmení svoj certifikát (zmena IP adresy, vypršanie platnosti certifikátu), NAC Agent sa spojí s NAC Managerom, ktorý mu nový certifikát pošle. Zabezpečuje to protokol SSL.
- NAC Agent bude novému certifikátu dôverovať. Zo svojho TrustStore si starý certifikát vymaže a vloží tam nový.
- nebude čakať ďalšiu periódu a bude schopný komunikovať s NAC Managerom už použitím nového certifikátu okamžite.
Konfiguračný súbor
SVN
- Agent.zip: NAC Agent - SVN štatistika
NAC Server
Použité nástroje
- Iptables- nástroj pre IPv4 filtrovanie a NAT, umožňujúci nastavovanie, správu a kontrolu tabuliek pre filtrovacie pravidlá IP paketov v jadre OS Linux.
- Ebtables- umožňujúci nastavovanie, správu a kontrolu tabuliek pre filtrovacie pravidlá ethernet rámcov v jadre OS Linux.
- Vconfig- správa VLAN(802.1q), nástroj slúžiaci na vytváranie a mazanie VLAN-zariadení
- Brctl- nástroj slúžiaci na nastavovanie, správu a kontrolu konfigurácií ethernet bridgov v jadre OS Linux
- Sudo- prístup k nástrojom pod privilegovaným používateľom
Funkcionalita
- Komunikácia s NAC Managerom
- komunikácia prebieha pomocou XML správ (ApM ? protokol)
- každá správa od NAC Managera je spracovávaná vo vlastnom vlákne
- každá správa obsahuje jednu alebo viacero požiadaviek od NAC Managera rovnakého typu ( správa VLAN, správa bridgov, riadenie prístupu,...)
- správy od NAC Managera rovnakého typu ( vyžadujúce prístup k rovnakému nástroju ) sú vzájomne synchronizované
- pri predaní argumentu "RESTORE" NAC Serveru pri štarte sa NAC Server pokúša spojiť s NAC Managerom a inicializovať obnovenie VLAN a Bridgov z databázy NAC Managera
- Vykonávanie operácií
- na základe požiadavky od NAC Managera.
- riadi prístup na druhej a tretej vrstve.
- spravuje konfigurácie ethernet bridgov.
- vytvára a maže VLAN zariadenia.
- každá operácia je vykonaná vo vlastnom procese.
- Pre zamedzenie deadlocku je možné nastaviť timeout pre vykonanie procesu, po uplynutí tohto času bude proces zrušený a operácia považovaná sa neúspešnú.
- na základe návratovej hodnoty procesu je operácia považovaná sa úspešne vykonanú ( hodnota == 0) alebo neúspešne vykonanú ( hodnota ! = 0).
- z návratových hodnôt operácií a z textu prečítaného zo STDOUT procesov je vytvorená správa pre NAC Managera informujúca ho o úspešnosti vykonávania požadovaných operácií
Konfiguračný súbor
SVN
- Server.zip: NAC Server - SVN štatistika
NAC Manager
- správa a riadenie prístupu NAC Agentov
- každé spojenie s NAC Agentom je spracované v samostatnom vlákne
- správa VLAN a bridgov
- po prijatí správy "RESTORE" od NAC Serveru je zodpovedný za obnovenie VLAN a bridgov uložených v databáze
- komunikuje pomocou XML správ s NAC Agentom (AgM ? protokol) a NAC Serverom (ApM ? protokol)
Pravidlá
- podmnožina Iptables a Ebtables pravidiel
- z týchto vytvorených pravidiel je možné vytvoriť skupiny pravidiel, ktoré je potom možné priradiť profilu
Skupiny pravidiel
- obsahuje zoznam vytvorených Iprules a Ebrules pravidiel
- po splnení profilu sú pravidlá skupiny patriacej profilu poslané v správe na vykonanie NAC Serverom
Položky
- každý typ položky prestavuje spôsob získavania informácie u NAC Agenta (v súčastnosti: WMI, registre)
- každá položka prestavuje konkrétne použitie daného spôsobu pre získanie informácie o NAC Agentovi ( získanie konkretného kľúča z registra, zoznam antivírusov z WMI, ...)
- z už vytvorených položiek je možné priradením operátora a očakávanej hodnoty vytvoriť položky profilov
Profily
- Pri prijatí správy od NAC Agenta sú vyhodnotené všetky profily, pre ktoré platí, že agent spĺňa všetky ich položky a z týchto profilov je vybraný ten s najvyššou prioritou
- Každý profil obsahuje:
- prioritu (nižšie číslo == vyššia priorita)
- príznak, či po splnení profilu je NAC Agent presunutý do karantény
- zoznam položiek, ktoré NAC Agent musí splniť aby vyhovel danému profilu
- správu, ktorá bude poslaná agentovi pri splnení profilu
- skupinu pravidiel, ktorá bude vykonaná ak NAC Agent vyhovie profilu
- Položka profilu obsahuje:
- názov vytvorenej položky
- typ položky (WMI, Reg, ...)
- porovnávaciu operáciu (<, >, = , ! =, ...)
- očakávanú hodnotu, s ktorou sa bude prevádzať porovnávanie hodnoty poslanej NAC Agentom
- rozsah (any, all, entry1, entry1,...), v prípade ak položka obsahuje viac hodnôt, je možné určiť, že ich porovnávanie sa bude vsťahovať na všetky, aspoň na jednu, alebo na konkrétnu hodnotu( v takom prípade je potrebné uviesť jej meno napr: entry1)
Konfiguračný súbor
SVN
- Manager.zip: NAC Manager - SVN štatistika
What's next
- vytvoriť GUI - modul do informačného systému SynetsIS ?
- vytvoriť inštalačný súbor, ktorý na klientskom počítači nainštaluje NAC Agenta ako službu a nainštaluje BubbleNotifier -a s nastavením spúšťania pri štarte
- nainštalovať a nakonfigurovať celý systém
-- Main.JCube - 27 Sep 2009
Topic revision: r1 - 27 Sep 2009 - 23:50:09 - JCube