Toto je vyrovnávacia pamäť Google pre http://wiki.cnl.tuke.sk/SynetsWeb/NACDP2009. Je to snímka stránky, ako sa zobrazila dňa 6. mar. 2009 04:04:12 GMT. Aktuálna stránka sa odvtedy mohla zmeniť. Viac informácií

Len textová verzia
 
NACDP2009 < SynetsWeb < TWiki
r7 - 05 Mar 2009 - 22:09:49 - Main.tkacYou are here: TWiki >  SynetsWeb Web  > NACDP2009

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:
    NAC.png

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:
    cdm.png

BubbleNotifier

  • úč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

Názov vlastnosti Význam
AgentIP IP adresa NAC Agenta
AgentPort port, na ktorom NAC Agent očakáva komunikáciu s BubbleNotifier-mi
AgentHistoryPath umiestnenie history logov NAC Agenta
AgentHistoryFile názov history logov NAC Agenta
LogProperties umiestnenie súboru s nastaveniami logov

SVN

NAC Agent

Komunikácia s BubbleNotifier-mi

  • 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:
    1. 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
    2. certifikát NAC Managera, ktorý je uložený v TrustStore NAC Agenta obsahuje vo svojom DN adresu NAC Managera pod CN
    3. 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

Názov vlastnosti Význam
BubbleNotifierPort port, na ktorom NAC Agent očakáva komunikáciu s BubbleNotifier-mi
HistoryFile umiestnenie history logov NAC Agenta
ProcessTimeout timeout, po ktorom sa proces považuje za neodpovedajúci
LogProperties umiestnenie súboru s nastaveniami logov
CheckListPath umiestnenie Checklist súboru
KeyStorePath umiestnenie súboru obsahujúceho pár kľúčov NAC Agenta
TrustStorePath umiestnenie súboru obsahujúceho certifikát NAC Managera
KeyStorePass heslo k súboru s párom kľúčov
PrivatePass heslo k položke s privátnym kľúčom v KeyStore
TrustStorePass heslo k súboru s certifikátom NAC Managera
ManagerPort port, na ktorom NAC Manager očakáva komunikáciu s NAC Agentami
ManagerIPAddress IP adresa NAC Managera
ManagerDNSName DNS meno NAC Managera bez suffixu

SVN

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

Názov vlastnosti Význam
ManagerAddress adresa NAC Managera
ManagerPort port NAC Managera
ApplicatorPort lokálny port pre spojenie s NAC Managerom
KeyStorePath umiestnenie súboru s kľúče NAC Serveru
KeyStorePasswd prístupové heslo k súboru s kľúčmi NAC Serveru
PrivateKeyPasswd heslo pre dešifrovanie súkromného kľúča NAC Serveru
TrustStorePath umiestnenie súboru s certifikátom NAC Managera
TrustStorePasswd prístupové heslo k súboru s certifikátom
LogProperties súbor obsahujúci vlastnosti pre logovanie
VconfigPath umiestnenie Vconfig nástroju
BrctlPath umiestnenie Brctl nástroja
IfconfigPath umiestnenie Ifconfig nástroja
IptablesPath umiestnenie Iptables nástruja
EbtablesPath umiestnenie Ebtables nástroja
ProcessTimeout časový limit na vykonanie operácie

SVN

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

Názov vlastnosti Význam
ApplicatorIP IP adresa NAC Serveru
ApplicatorPort port NAC Serveru
ControlPort lokálny port pre spojenie s NAC Serverom
AgentPort lokálny port pre spojenie s NAC Agentmi
KeyStorePath umiestnenie súboru s kľúče NAC Managera
KeyStorePasswd prístupové heslo k súboru s kľúčmi NAC Managera
PrivateKeyPasswd heslo pre dešifrovanie súkromného kľúča NAC Managera
AppTrustStorePath umiestnenie súboru s certifikátom NAC Serveru
AppTrustStorePasswd prístupové heslo k súboru s certifikátom NAC Serveru
AgentTrustStorePath umiestnenie súboru s certifikátom NAC Agenta
AgentTrustStorePasswd prístupové heslo k súboru s certifikátom NAC Agenta
LDAPUrl URL pre spojenie s LDAPom
LDAPLogin prihlasovacie meno pre LDAP
LDAPPasswd prihlasovacie heslo pre LDAP
LogProperties súbor obsahujúci vlastnosti pre logovanie
CheckListPath umiestnenie checklistu
NullProfileMessage defaultna správa poslaná NAC Agentovi ak nevyhovie žiadnemu profilu
ErrorLogFile súbor obsahujúci neprečítané chyby NAC Managera
HistoryErrLogFile súbor obsahujúci všetky chyby NAC Managera
CheckingPeriod časový limit na vykonanie kontroly u NAC Agenta
BlockAfterCycles počet periód po ktorých NAC Agent bude zablokovaný ak neposlal správu NAC Managerovi

SVN

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

toggleopenShow attachmentstogglecloseHide attachments
Topic attachments
I Attachment Action Size Date Who Comment
pngpng cdm.png manage 86.4 K 05 Mar 2009 - 11:20 Main.solanikova Konceptuálny dátový model databázy
pngpng NAC.png manage 7.7 K 05 Mar 2009 - 21:02 Main.tkac NAC logická schéma
zipzip Agent.zip manage 393.3 K 05 Mar 2009 - 21:58 Main.tkac NAC Agent - SVN štatistika
zipzip BubbleNotifier.zip manage 269.8 K 05 Mar 2009 - 21:58 Main.tkac BubbleNotifier? - SVN štatistika
zipzip Manager.zip manage 477.2 K 05 Mar 2009 - 21:59 Main.tkac NAC Manager - SVN štatistika
zipzip Server.zip manage 301.6 K 05 Mar 2009 - 22:00 Main.tkac NAC Server - SVN štatistika
zipzip Library.zip manage 381.2 K 05 Mar 2009 - 22:02 Main.tkac Library( knižnica k NAC projektu) - SVN štatistika
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r7 < r6 < r5 < r4 < r3 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback