ˇ ´IRODOVEDECK ˇ ´ FAKULTA UNIVERZITY PALACKEHO ´ PR A KATEDRA INFORMATIKY
´ RSK ˇ ´ PRACE ´ BAKALA A
Evidence s´ıt’ov´ych zaˇr´ızen´ı v s´ıt´ı zaloˇzen´e na TCP/IP
2011
Pavel Moudr´y
Anotace C´ılem pr´ace je vytvoˇrit aplikaci, kter´a bude pouˇziteln´ a pro evidenci zaˇr´ızen´ı v lok´aln´ı s´ıti, zaloˇzen´e na TCP/IP. Pˇredpokl´ adan´e vyuˇzit´ı bude pˇrev´ aˇznˇe pro stˇredn´ı a mal´e podnikov´e s´ıtˇe. Aplikace bude obsahovat instal´ator a pro datov´y sklad pouˇziji datab´azi. Pro zefektivnˇen´ı pr´ace s aplikac´ı vytvoˇr´ım modul pro scanov´an´ı s´ıtˇe. D´ale vytvoˇr´ım formul´aˇre pro tiskov´e sestavy, spr´avu uˇzivatelsk´ych u ´ˇct˚ u, spr´avu n´azvu zaˇr´ızen´ı a evidenci z´avad a poˇzadavk˚ u na upgrade zaˇr´ızen´ı. Souˇc´ast´ı aplikace bude podrobn´y uˇzivatelsk´y manu´al. Aplikace bude podporovat dva typy pˇr´ıstup˚ u – pln´y a omezen´y. Pr´ace bude rozdˇelena do nˇekolika kapitol. V prvn´ı kapitole pop´ıˇsi problematiku evidence zaˇr´ızen´ı a z´akladn´ı vlastnosti s´ıtˇe. V druh´e kapitole se budu zab´yvat scanov´ an´ım s´ıtˇe a t´ım, jak lze s´ıt’ scanovat. Tˇret´ı kapitola bude obsahovat uˇzivatelsk´y manu´al k aplikaci a ve ˇctvrt´e kapitole pop´ıˇsi postup tvorby aplikace, ˇcili program´ atorskou dokumentaci.
R´ad bych na tomto m´ıstˇe podˇekoval vedouc´ımu bakal´aˇrsk´e pr´ace Mgr. Martinu Dost´alovi, Ph.D. za velmi vstˇr´ıcn´ y pˇr´ıstup, odborn´e rady a pˇripom´ınky, kter´e mi poskytl pˇri zpracov´an´ı t´eto bakal´aˇrsk´e pr´ace.
Obsah ˚ V LOKALN ´ ´I S´ITI 1. EVIDENCE PRVKU 1.1. Lok´aln´ı poˇc´ıtaˇcov´a s´ıt’ . . . . . . . . . . . . . . 1.2. S´ıt’ov´e prvky . . . . . . . . . . . . . . . . . . . . 1.3. Evidence . . . . . . . . . . . . . . . . . . . . . . 1.3.1. Evidence zaˇr´ızen´ı v mal´ ych podnic´ıch . . 1.3.2. Evidence zaˇr´ızen´ı ve stˇredn´ıch podnic´ıch 1.3.3. Evidence zaˇr´ızen´ı ve velk´ ych podnic´ıch . ´ ´I S´ITE ˇ 2. SCANOVAN 2.1. Teorie scanov´an´ı s´ıtˇe . . . 2.1.1. S´ıt’ov´a vrstva . . . 2.1.2. Transportn´ı vrstva 2.2. Scanov´an´ı . . . . . . . . . 2.3. Dell Service Tag . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
ˇ ´ DOKUMENTACE 3. UZIVATELSK A 3.1. Instalace aplikace . . . . . . . . . . 3.2. Pouˇz´ıv´an´ı aplikace . . . . . . . . . 3.3. Poloˇzky hlavn´ıho menu . . . . . . . 3.4. Kl´avesov´e zkratky . . . . . . . . . . 3.5. Pˇrid´an´ı nov´eho zaˇr´ızen´ı . . . . . . . 3.6. Seznam zaˇr´ızen´ı . . . . . . . . . . . 3.7. Editace zaˇr´ızen´ı . . . . . . . . . . . 3.8. Opravy a upgrade zaˇr´ızen´ı . . . . . 3.9. Scan s´ıtˇe . . . . . . . . . . . . . . . 3.10. Tisk . . . . . . . . . . . . . . . . . 3.11. Zmˇena hesla . . . . . . . . . . . . . 3.12. Pˇrid´an´ı nov´eho uˇzivatele . . . . . . 3.13. Zruˇsen´ı uˇzivatele . . . . . . . . . . 3.14. Spr´ava n´azv˚ u zaˇr´ızen´ı . . . . . . . . 3.15. Odinstalace aplikace . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
. . . . .
. . . . . .
7 7 8 9 9 11 13
. . . . .
16 16 16 17 17 18
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
20 20 23 24 25 25 27 28 29 31 34 35 36 37 37 38
´ ´ DOKUMENTACE 4. PROGRAMATORSK A 4.1. Datab´aze . . . . . . . . . . . . . . . . . . . 4.2. Popis datab´aze . . . . . . . . . . . . . . . . 4.3. N´avrh aplikace . . . . . . . . . . . . . . . . 4.4. Hlavn´ı formul´aˇr . . . . . . . . . . . . . . . . 4.5. Komunikace aplikace s datab´az´ı . . . . . . . 4.6. Seznam zaˇr´ızen´ı . . . . . . . . . . . . . . . . 4.7. Editace detail˚ u zaˇr´ızen´ı, nov´e zaˇr´ızen´ı . . . . 4.8. Opravy a upgrade zaˇr´ızen´ı . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
39 39 40 43 43 46 47 49 50
4
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
4.9. Scanov´an´ı s´ıtˇe . . . . . . 4.10. Pˇrid´an´ı nov´eho uˇzivatele 4.11. Spr´ava n´azv˚ u zaˇr´ızen´ı . . 4.12. Tisk . . . . . . . . . . . 4.13. N´apovˇeda . . . . . . . . 4.14. Instal´ator . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
51 55 55 56 56 57
Z´ avˇ er
58
Reference
59
Pˇ r´ıloha 1 - Pˇ r´ıklad konfiguraˇ cn´ıho souboru sluˇ zby DHCP
61
Pˇ r´ıloha 2 - txtBox Hledat T extChanged - Tˇ elo procedury
62
Pˇ r´ıloha 3 - Uk´ azka formul´ aˇ re report˚ u
63
Pˇ r´ıloha 4 - Uk´ azka formul´ aˇ re report˚ u
64
Obsah pˇ riloˇ zen´ eho CD
66
5
Seznam obr´ azk˚ u 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
Evidence zaˇr´ızen´ı v mal´ ych podnic´ıch . . Evidence zaˇr´ızen´ı ve stˇredn´ıch podnic´ıch Evidence zaˇr´ızen´ı ve velk´ ych podnic´ıch . V´ ybˇer cesty instalace . . . . . . . . . . . Pojmenov´an´ı sloˇzky v nab´ıdce Start . . . Zah´ajen´ı instalace . . . . . . . . . . . . . Pˇrihl´aˇsen´ı k aplikaci . . . . . . . . . . . Hlavn´ı menu . . . . . . . . . . . . . . . . Pˇrid´an´ı nov´eho zaˇr´ızen´ı . . . . . . . . . . Seznam zaˇr´ızen´ı . . . . . . . . . . . . . . Editace detail˚ u zaˇr´ızen´ı . . . . . . . . . . Evidence oprav a upgrade zaˇr´ızen´ı . . . . Nov´a z´avada ˇci poˇzadavek . . . . . . . . ´ Uprava ˇci uzavˇren´ı poˇzadavku . . . . . . Scan zaˇr´ızen´ı . . . . . . . . . . . . . . . V´ ysledek rychl´eho scanu . . . . . . . . . V´ ysledek podrobn´eho scanu . . . . . . . Nastaven´ı Firewall . . . . . . . . . . . . Tisk . . . . . . . . . . . . . . . . . . . . Zmˇena hesla . . . . . . . . . . . . . . . . Nov´ y uˇzivatel . . . . . . . . . . . . . . . Zruˇsen´ı uˇzivatele . . . . . . . . . . . . . Spr´ava n´azv˚ u zaˇr´ızen´ı . . . . . . . . . . . Sch´ema datab´aze . . . . . . . . . . . . . ER model datab´aze . . . . . . . . . . . . zn´azornˇen´ı pole ippole . . . . . . . . . . Uk´azka formul´aˇre repot˚ u . . . . . . . . .
6
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . .
10 12 14 21 22 23 24 25 26 27 29 30 30 31 32 33 33 34 35 36 36 37 38 40 43 53 63
˚ V LOKALN ´ ´I S´ITI EVIDENCE PRVKU
1.
V prvn´ı kapitole zavedu a bl´ıˇze vysvˇetl´ım nˇekolik pojm˚ u. Nejprve se budu vˇenovat z´akladn´ım poznatk˚ um lok´aln´ıch poˇc´ıtaˇcov´ ych s´ıt´ı, nutn´ ych pro ’ pochopen´ı problematiky. D´ale budu hovoˇrit o s´ıt ov´ ych zaˇr´ızen´ıch (prvc´ıch) a jejich dˇelen´ı. Nakonec se pokus´ım rozebrat pojem evidence s´ıt’ov´ ych prvk˚ u v lok´aln´ı s´ıti.
1.1.
Lok´ aln´ı poˇ c´ıtaˇ cov´ a s´ıt’
Proto, aby spolu mohla zaˇr´ızen´ı v s´ıti komunikovat, mus´ı pracovat v prostˇred´ı poˇc´ıtaˇcov´e s´ıtˇe. Poˇc´ıtaˇcov´a s´ıt’ je takov´e prostˇred´ı, ve kter´em spolu jednotliv´e prvky s´ıtˇe komunikuj´ı pˇredem dohodnut´ ym zp˚ usobem. Nejprve si ale specifikujme ’ lok´aln´ı poˇc´ıtaˇcovou s´ıt . Poˇc´ıtaˇcov´e s´ıtˇe obvykle spadaj´ı podle sv´e velikosti a funkce do jedn´e ze tˇr´ı skupin. M´ıstn´ı s´ıt’ (LAN) je z´akladn´ı klasifikac´ı kter´ekoli poˇc´ıtaˇcov´e s´ıtˇe. Architektura LAN m˚ uˇze b´ yt jednoduch´a (dva poˇc´ıtaˇce propojen´e kabelem) aˇz sloˇzit´a (stovky propojen´ ych poˇc´ıtaˇc˚ u a perifern´ıch zaˇr´ızen´ı v cel´e obchodn´ı spoleˇcnosti). Rozliˇsuj´ıc´ı vlastnost´ı s´ıtˇe LAN je to, ˇze je omezen´a na urˇcitou geografickou oblast, jako je jedna budova nebo oddˇelen´ı (vˇetˇsinou um´ıstˇen´e v oblasti s pr˚ umˇerem 5 km). Pokud jsou poˇc´ıtaˇce propojen´e mezi nˇekolika budovami ve velk´em mˇestˇe, s´ıtˇe se nˇekdy oznaˇcuj´ı jako metropolitn´ı s´ıtˇe (MAN, obvykle 5 – 50 km). V porovn´an´ı s t´ım nem´a rozlehl´a s´ıt’ (WAN) ˇz´adn´e geografick´e omezen´ı. Ve vˇetˇsinˇe pˇr´ıpad˚ u je s´ıt’ WAN tvoˇrena z vˇetˇs´ıho poˇctu propojen´ ych LAN – pravdˇepodobnˇe nejz´akladnˇejˇs´ı s´ıt´ı WAN je Internet [1]. Poˇc´ıtaˇcov´e s´ıtˇe tedy rozdˇel´ım do tˇr´ı skupin a to: • WAN – rozlehl´a poˇc´ıtaˇcov´a s´ıt’ (Wide area network), • MAN – mˇestsk´a poˇc´ıtaˇcov´a s´ıt’ (Metropolitan area network), • LAN – m´ıstn´ı poˇc´ıtaˇcov´a s´ıt’ (Local area network). Podle S. J. Bigelow [1], toto dˇelen´ı vych´az´ı z topologie jednotliv´ ych s´ıt´ı. Rozlehlou a mˇestskou poˇc´ıtaˇcovou s´ıt’ nech´am stranou. Budu pracovat pouze s m´ıstn´ı poˇc´ıtaˇcovou s´ıt´ı. Slovo m´ıstn´ı“ je v tomto pˇr´ıpadˇe velice zav´adˇej´ıc´ı. Velice z´aleˇz´ı ” na zp˚ usobu, jak´ ym bude ˇcten´aˇr rozumˇet v´ yznamu spojen´ı slov m´ıstn´ı s´ıt’“. M´ıstn´ı ” s´ıt’ m˚ uˇze b´ yt jednak v r´amci jednoho pokoje, domu, nˇekolika dom˚ u, ale i nˇekolika r˚ uzn´ ych m´ıst po cel´em svˇetˇe pomoc´ı pˇripojen´ı pˇres VPN. Sp´ıˇse neˇz topologicky se pokus´ım m´ıstn´ı s´ıt’ definovat podle pˇr´ısluˇsnosti k dan´e s´ıti. Neˇz budu pokraˇcovat d´ale, je nutn´e zav´est nˇekolik dalˇs´ıch pojm˚ u. Aby byla evidence smyslupln´a, mus´ı m´ıt z´aklad na nˇejak´e univerz´aln´ı entitˇe. Tento pˇredpoklad je velmi d˚ uleˇzit´ y, nebot’ podle nˇej budeme nezamˇenitelnˇe rozliˇsovat 7
jednotliv´e s´ıt’ov´e komponenty. Urˇcitˇe bych mohl evidovat zaˇr´ızen´ı napˇr´ıklad podle jmen uˇzivatel˚ u jako napˇr´ıklad Poˇc´ıtaˇc Jany“, Pana Nov´aka“, tisk´arna pana ” ” ” ˇreditele“. Takto evidovan´e komponenty jsou sice lidsk´emu oku srozumiteln´e, ale mechanizm˚ um pracuj´ıc´ım v s´ıti naprosto lhostejn´e. Proto budu potˇrebovat entitu, jeˇz je v prostˇred´ı lok´aln´ı s´ıtˇe jedineˇcn´a a zpracovateln´a prvky v prostˇred´ı s´ıtˇe. Tuto entitu bude reprezentovat MAC adresa [4]. Dalˇs´ım d˚ uleˇzit´ ym prvkem bude IP adresa. IP adresa je s´ıt’ov´ y identifik´ator zaˇr´ızen´ı sv´azan´ y s urˇcitou MAC adresou. Tento vztah budu d´ale pouˇz´ıvat pro definici zaˇr´ızen´ı v m´ıstn´ı s´ıti.
1.2.
S´ıt’ov´ e prvky
S´ıt’ov´ ym prvkem lze nazvat jak´ekoliv zaˇr´ızen´ı, kter´e nˇejak´ ym zp˚ usobem tvoˇr´ı ˇci vyuˇz´ıv´a poˇc´ıtaˇcovou s´ıt’. Takov´ ychto prvk˚ u je cel´a ˇrada a daj´ı se dˇelit r˚ uzn´ ymi zp˚ usoby do nˇekolika skupin. Prvky m˚ uˇzeme dˇelit napˇr´ıklad na: • aktivn´ı prvky (switche, routery, PC, servery, tisk´arny), • pasivn´ı prvky (kabel´aˇz, rozvadˇeˇce, patch panely). Takov´eto dˇelen´ı pro u ´ˇcely spr´avy a evidence prvk˚ u v s´ıti je jistˇe uˇziteˇcn´e, nicm´enˇe pro u ´ˇcely evidence pˇr´ıliˇs primitivn´ı. V dalˇs´ıch u ´vah´ach vynech´am pasivn´ı s´ıt’ov´e prvky a budu pouze pˇredpokl´adat jejich existenci. Pasivn´ı s´ıt’ov´e prvky slouˇz´ı pouze jako pˇrenosov´a m´edia a aktivnˇe nevstupuj´ı do poˇc´ıtaˇcov´e s´ıtˇe. Jejich evidence je vˇetˇsinou realizov´ana pomoc´ı v´ ykres˚ u m´ıstnost´ı a budov. Budu tedy uvaˇzovat pouze aktivn´ı s´ıt’ov´e prvky. Tato zaˇr´ızen´ı tvoˇr´ı poˇc´ıtaˇcovou s´ıt’ nad pasivn´ımi prvky. Tvoˇr´ı jej´ı logiku. Nicm´enˇe ne vˇsechny aktivn´ı prvky jsou z hlediska evidence zaj´ımav´e. K lepˇs´ımu pochopen´ı z´amˇeru rozdˇel´ım aktivn´ı prvky na tˇri podmnoˇziny: • Zaˇr´ızen´ı tvoˇr´ıc´ı logickou s´ıt’ bez moˇznosti konfigurace (switche, opakovaˇce, pˇrevodn´ıky, . . . ). • Zaˇr´ızen´ı tvoˇr´ıc´ı logickou s´ıt’ s moˇznosti konfigurace (pˇr´ıstupov´e body, routery, . . . ). • Zaˇr´ızen´ı vyuˇz´ıvaj´ıc´ı logickou s´ıt’ (PC, notebooky, servery, tisk´arny, PDA, mobiln´ı telefony, . . . ). Zaˇr´ızen´ı tvoˇr´ıc´ı logickou s´ıt’ bez moˇznosti konfigurace jsou opˇet nepodstatn´e. Evidence tˇechto zaˇr´ızen´ı nepodl´eh´a ˇz´adn´ ym vyˇsˇs´ım n´arok˚ um a lze je opˇet zakreslovat do sch´emat budov, ˇci jednor´azovˇe popisovat v jak´ekoliv tabulkov´e ˇci dokumentov´e podobˇe.
8
Zaˇr´ızen´ı tvoˇr´ıc´ı logickou s´ıt’ s moˇznosti konfigurace a zaˇr´ızen´ı vyuˇz´ıvaj´ıc´ı logickou s´ıt’ lze jednoznaˇcnˇe rozliˇsit od pˇredchoz´ıch podle toho, ˇze v s´ıti vlastn´ı jednu ˇci nˇekolik IP adres. Tyto IP adresy jsou vztaˇzeny k MAC adres´am. Tento vztah bude slouˇzit k identifikaci zaˇr´ızen´ı v lok´aln´ı s´ıti.
1.3.
Evidence
V pˇredchoz´ım textu jsem popsal lok´aln´ı s´ıt’ a pojmy nezbytn´e pro zaveden´ı evidence s´ıt’ov´ ych prvk˚ u. Nyn´ı se zamˇeˇr´ım na evidenci samotnou, moˇzn´e zp˚ usoby ’ ’ dˇelen´ı a zp˚ usoby jak´ ymi lze evidovat s´ıt ov´a zaˇr´ızen´ı. Metody evidence s´ıt ov´ ych zaˇr´ızen´ı budu ˇclenit podle poˇctu zaˇr´ızen´ı v s´ıti. Dˇelen´ı bude tedy vych´azet z velikosti podnik˚ u. V jednotliv´ ych st´atech pouˇz´ıvaj´ı pro definici mal´eho a stˇredn´ıho podnik´an´ı r˚ uzn´a krit´eria. V Evropsk´e unii je rozdˇelen´ı n´asleduj´ıc´ı: • Mal´ y podnik je do 50 zamˇestnanc˚ u a do 10 mil. Eur roˇcn´ıho obratu. • Stˇredn´ı podnik do 250 zamˇestnanc˚ u a do 50 mil. Eur roˇcn´ıho obratu. Mal´e a stˇredn´ı podniky jsou ned´ılnou souˇca´st´ı ekonomiky, napˇr. v souˇcasn´e dobˇe se pod´ıl´ı na hrub´em dom´ac´ım produktu v´ıce neˇz 37 procenty. 1.3.1.
Evidence zaˇ r´ızen´ı v mal´ ych podnic´ıch
Mal´ ym podnikem je tedy firma s poˇctem do 50 zamˇestnanc˚ u. To znamen´a zhruba 50 uˇzivatelsk´ ych poˇc´ıtaˇc˚ u, jeden router, jeden aˇz tˇri servery (uvaˇzujme i NAS-y 1 pro jednoduch´e sd´ılen´ı dat) a nˇekolik s´ıt’ov´ ych tisk´aren. Topologie takov´e s´ıtˇe by mohla vypadat n´asledovnˇe.
1
NAS je zkratka pro Network Area Storage. Jin´ ymi slovy je to zaˇr´ızen´ı, kter´e poskytuje diskov´ y prostor uˇzivatel˚ um s´ıtˇe
9
Obr´azek 1. Evidence zaˇr´ızen´ı v mal´ ych podnic´ıch Jak je vidˇet z n´akresu topologie, takov´a to s´ıt’ nen´ı opravdu n´aroˇcn´a na administraci. IT pracovn´ık mus´ı pˇri rozm´ yˇslen´ı administrace zvaˇzovat nˇekolik faktor˚ u, jejichˇz nevhodn´a kombinace m˚ uˇze postupem ˇcasu zp˚ usobovat komplikace. Jeden z d˚ uleˇzit´ ych faktor˚ u je zp˚ usob pˇridˇelen´ı IP adres klientsk´ ym stanic´ım. To lze realizovat tˇemito dvˇema zp˚ usoby: • pevn´e pˇridˇelen´ı IP adresy, • dynamick´e pˇridˇelov´an´ı IP adres. Pevn´e pˇridˇelen´ı IP adres m´a svou v´ yhodu v jednoduch´e evidenci. Co administr´ator jednou nastav´ı na s´ıt’ov´ ych prvc´ıch, to tam z˚ ustane, dokud on nebo nˇekdo jin´ y nastaven´ı nezmˇen´ı. Pˇri t´eto filozofii mus´ı administr´ator poˇc´ıtat s faktem, kter´ y mu udˇeluje nepˇr´ıjemnou povinnost nakonfigurovat ruˇcnˇe kaˇzd´ y poˇc´ıtaˇc, kter´ y se vyskytne v jeho s´ıti. Tato skuteˇcnost m˚ uˇze b´ yt v´ yhodou stejnˇe jako nev´ yhodou: • V´ yhoda spoˇc´ıv´a v tom, ˇze administr´ator nemus´ı konfigurovat ˇz´adn´e dalˇs´ı zaˇr´ızen´ı staraj´ıc´ı se o distribuci IP adres (DHCP server). Stejnˇe tak m´a administr´ator ˇc´asteˇcnˇe postar´ano o zabezpeˇcen´ı s´ıtˇe. Pokud bˇeˇzn´ y uˇzivatel nezn´a rozsah s´ıtˇe, stˇeˇz´ı se do n´ı pˇripoj´ı. • Nev´ yhodou je ruˇcn´ı administrace kaˇzd´eho jednoho s´ıt’ov´eho zaˇr´ızen´ı, kter´e je v prostˇred´ı s´ıtˇe zapojeno. 10
Dynamick´e pˇridˇelov´an´ı IP adres m´ırnˇe komplikovanˇejˇs´ı neˇz pevnˇe pˇridˇelov´an´ı. Administr´ator vyhrad´ı jedno zaˇr´ızen´ı, na kter´em nakonfiguruje DHCP server [5]. Slovo server je v t´eto souvislosti ch´ap´ano sp´ıˇse jako sluˇzba, neˇz fyzick´e zaˇr´ızen´ı. Pokud uvaˇzuji malou firmu, nen´ı nutn´e vyhrazovat fyzick´ y stroj pro DHCP sluˇzbu. Tato varianta bude zaj´ımav´a u vˇetˇs´ıch s´ıt´ı. DHCP server je moˇzno nakonfigurovat nˇekolika zp˚ usoby na nˇekolika r˚ uzn´ ych platform´ach (Windows, Linux, Unix). Pokud je DHCP server nakonfigurov´an strukturovanˇe, lze jeho konfiguraˇcn´ı soubor pouˇz´ıt jako z´aklad pro evidenci, viz. pˇr´ıloha 1. Evidence takov´e s´ıtˇe nen´ı n´aroˇcn´a. Seznam zaˇr´ızen´ı pˇripojen´ ych do s´ıtˇe lze evidovat napˇr´ıklad pomoc´ı dobˇre navrˇzen´e tabulky. Tabulka (nebo seznam) by mˇel obsahovat pˇrinejmenˇs´ım tyto u ´daje: • ID zaˇr´ızen´ı (m˚ uˇze b´ yt zastoupeno invent´arn´ım ˇc´ıslem), • v´ yrobn´ı ˇc´ıslo zaˇr´ızen´ı, • MAC adresa, • IP adresa, • um´ıstˇen´ı (popˇr´ıpadˇe specifikace uˇzivatele, pracuj´ıc´ıho se zaˇr´ızen´ım). 1.3.2.
Evidence zaˇ r´ızen´ı ve stˇ redn´ıch podnic´ıch
Stˇredn´ım podnikem lze ch´apat firmu s poˇctem do 250 zamˇestnanc˚ u. To znamen´a zhruba 200 aˇz 230 uˇzivatelsk´ ych poˇc´ıtaˇc˚ u, jeden aˇz nˇekolik router˚ u, tˇri a 2 v´ıce server˚ u (uvaˇzuji i NAS-y ˇci SAN-y pro jednoduch´e sd´ılen´ı dat) a nˇekolik s´ıt’ov´ ych tisk´aren. Topologie takov´e s´ıtˇe by mohla vypadat n´asledovnˇe.
2
SAN je zkratka pro Storage Area Network. Jin´ ymi slovy je to zaˇr´ızen´ı, kter´e poskytuje vysocezabezpeˇcen´ y prostˇredek pro sd´ılen´ı a z´alohov´an´ı uˇzivatelsk´ ych a aplikaˇcn´ıch dat
11
Obr´azek 2. Evidence zaˇr´ızen´ı ve stˇredn´ıch podnic´ıch Z obr´azku je vidˇet, ˇze takov´a to s´ıt’ je n´aroˇcn´a na administraci. O s´ıt’ takov´ ychto rozmˇer˚ u zpravidla peˇcuje v´ıce administr´ator˚ u. V tomto pˇr´ıpadˇe jiˇz ’ nen´ı jednoduch´e spravovat s´ıt pomoc´ı pevn´eho pˇridˇelov´an´ı IP adres. Daleko praktiˇctˇejˇs´ı je dobˇre nakonfigurovan´ y DHCP server, kter´ y administr´atorovi zajist´ı bezprobl´emovou distribuci IP adres na koncov´e stanice. Pevn´e pˇridˇelov´an´ı IP adres samozˇrejmˇe nelze stoprocentnˇe vylouˇcit. Existuj´ı zaˇr´ızen´ı v s´ıti, kter´e je v´ yhodn´e nakonfigurovat ruˇcnˇe (jsou pevnˇe sv´az´ana s nˇejakou funkc´ı a pozic´ı). ´ Ano, jedn´a se o servery a aktivn´ı s´ıt’ov´e prvky. Uloha tˇechto zaˇr´ızen´ı v s´ıti je kl´ıˇcov´a, proto by administr´ator rozhodnˇe nemˇel spol´ehat na dynamick´e pˇridˇelov´an´ı IP adres. Zm´ın´ım napˇr´ıklad samotn´ y server, na kter´em bˇeˇz´ı DHCP sluˇzba. DHCP sluˇzba ve vˇetˇsinˇe pˇr´ıpad˚ u vyˇzaduje nakonfigurovan´e alespoˇ n jedno s´ıt’ov´e rozhran´ı, pomoc´ı kter´eho bude distribuovat odpovˇedi na poˇzadavky klient˚ u. Tud´ıˇz nen´ı moudr´e uvaˇzovat s dynamick´ ym pˇridˇelen´ım adresy hosti12
telsk´emu serveru DHCP sluˇzby. Podobn´ ych server˚ u je obecnˇe v´ıce. U stˇrednˇe velk´ ych podnik˚ u je nejlepˇs´ım ˇreˇsen´ım vhodn´a kombinace obou variant: • Kl´ıˇcov´a zaˇr´ızen´ı, tvoˇr´ıc´ı strukturu a v´ yznam s´ıtˇe budou m´ıt pˇridˇelenu pevnou IP adresu. • Koncov´e PC, mobiln´ı zaˇr´ızen´ı i ostatn´ı s´ıt’ov´e prvky, jako napˇr´ıklad tisk´arny budou m´ıt pˇridˇelenu IP adresu pomoc´ı DHCP. Administrace v tomto pˇr´ıpadˇe podl´eh´a jist´ ym pravidl˚ um, kter´a by mˇel administr´ator dodrˇzovat. Jedn´ım z nich je logick´e pˇridˇelov´an´ı IP adres jednotliv´ ym funkˇcn´ım celk˚ um s´ıtˇe. Jednoznaˇcn´a mapa, n´avod nebo chcete-li evidence rozˇclenˇen´ı s´ıtˇe, neexistuje. Je dobr´e se drˇzet nˇekolika doporuˇcen´ı: • Servery ˇradit na zaˇca´tek rozsahu nebo na konec. • Aktivn´ı s´ıtov´e prvky ˇradit bud’to k server˚ um nebo zcela opaˇcnˇe. • S´ıt’ov´ ym tisk´arn´am a ostatn´ım zaˇr´ızen´ım, kter´e nejsou koncov´e PC a mobiln´ı zaˇr´ızen´ı vyhradit vlastn´ı prostor. • Koncov´a PC a mobiln´ı zaˇr´ızen´ı ˇclenit podle um´ıstˇen´ı nebo stˇredisek. • IP adresy VPN uˇzivatelsk´ ych u ´ˇct˚ u vloˇzit do samostatn´e skupiny. 1.3.3.
Evidence zaˇ r´ızen´ı ve velk´ ych podnic´ıch
Velk´e podniky jsou firmy s poˇctem nad 250 zamˇestnanc˚ u. Takov´eto firmy obsahuj´ı nejen velk´ y poˇcet pracovn´ıch stanic, ale i aktivn´ıch s´ıt’ov´ ych prvk˚ u a server˚ u, kter´e jsou pˇripojeny do demilitarizovan´e z´ony [6]. Takto velk´e spoleˇcnosti mohou m´ıt rozdˇelena pracoviˇstˇe do nˇekolika lokalit, kter´e mohou b´ yt jak velk´e, tak i mal´e. Ot´azkou je, jak pokr´ yt takovouto architekturu s´ıtˇe. IT oddˇelen´ı mus´ı m´ıt v´ıce neˇz jednoho pracovn´ıka. I pˇres vˇetˇs´ı poˇcet pracovn´ık˚ u v IT oddˇelen´ı takov´eto firmy, nen´ı jednoduch´e zvl´adnout tak rozs´ahlou agendu. Patˇriˇcn´e oddˇelen´ı by mˇelo m´ıt k dispozici nejen n´astroje k evidenci, ale i k monitorov´an´ı s´ıtˇe, diagnostice probl´em˚ u a moˇznosti jejich ˇreˇsen´ı. Takovou to s´ıt’ lze zn´azornit pomoc´ı n´asleduj´ıc´ıho obr´azku.
13
Obr´azek 3. Evidence zaˇr´ızen´ı ve velk´ ych podnic´ıch Administrace s´ıtˇe podobn´eho typu jiˇz vyˇzaduje notifikaˇcn´ı zaˇr´ızen´ı (mechanizmus), kter´ y bude evidovat jednotliv´e incidenty pˇri provozu (forma Helpdesku). Proto by zvolen´ y n´astroj pro evidenci mˇel tuto funkcionalitu urˇcitˇe podporovat. Ve sv´e praxi jsem se setkal s nˇekolika centralizovan´ ymi n´astroji, kter´e jsou schopny evidovat a monitorovat takto rozs´ahl´e s´ıtˇe. Pro n´azornost zm´ın´ım pouze nejpouˇz´ıvanˇejˇs´ı z nich. Nagios [7] je aplikace, kter´a je schopna monitorovat rozs´ahlou s´ıt’. D´ıky modularitˇe, je schopna monitorovat na z´akladˇe definovan´ ych pravidel sluˇzby u vzd´alen´eho klienta, syst´emov´e informace a aplikace. Nagios bˇeˇz´ı na platformˇe Linux a d´ıky tomu je volnˇe ˇsiˇriteln´ y pod GNU/GPL licenc´ı. Ve sv´e podstatˇe se jedn´a o server pˇripojen´ y k datab´azi. D´ıky vestavˇen´e reportovac´ı funkcionalitˇe, z´ısk´a administr´ator informace, kter´e potˇrebuje. Pˇrestoˇze je Nagios urˇcen pˇrev´aˇznˇe k monitorov´an´ı s´ıtˇe v re´aln´em ˇcase, lze jej pouˇz´ıt i k evidenci zaˇr´ızen´ı. Zabbix [8] je dalˇs´ım n´astrojem pod GNU/GPL licenc´ı. Je opˇet volnˇe ˇsiˇriteln´ y a slouˇz´ı prim´arnˇe s monitorov´an´ı s´ıtˇe. Je mnohem komplexnˇejˇs´ı neˇz Nagios. Byl
14
vytvoˇren tak, aby byl jednoduˇse instalovateln´ y a konfigurovateln´ y. Stejnˇe tak jako Nagios, i Zabbix lze pomoc´ı pˇrednastaven´ ych modul˚ u rozˇs´ıˇrit o r˚ uzn´e funkce, jako napˇr´ıklad monitorov´an´ı stavu sluˇzeb, systemov´ ych prostˇredk˚ u a s´ıtˇe samotn´e. Zabbix bˇeˇz´ı opˇet na platformˇe Linux a m´a z´aklad v datab´azi stejnˇe jako Nagios. Zabbix je v´ yborn´ y n´astroj pro evidenci zaˇr´ızen´ı [9]. Altiris [10] je modul´arn´ı komplexn´ı bal´ık, kter´ y je schopen pokr´ yt veˇskerou agendu rozs´ahl´e s´ıtˇe. Obsahuje v´ıce neˇz 40 r˚ uzn´ ych modul˚ u, jejichˇz v´ ybˇer podl´eh´a pˇra´n´ı a potˇreb´am z´akazn´ıka. Kompletn´ı popis tohoto ˇreˇsen´ı je mimo r´amec t´eto pr´ace. Nicm´enˇe nˇekolik z´akladn´ıch informac´ı uvedu. Altiris bˇeˇz´ı na platformˇe Windows Server a m´a z´aklad v SQL datab´azi. Mezi jeho obrovsk´e v´ yhody patˇr´ı napˇr´ıklad podpora technologie Intel vPro [15]. S touto kombinac´ı je administr´ator schopen vzd´alenˇe nastartovat poˇc´ıtaˇc, konfigurovat BIOS, pracovat s obsahem pevn´eho disku i v pˇr´ıpadˇe nefunkˇcn´ıho operaˇcn´ıho syst´emu. Altiris umoˇzn ˇuje napˇr´ıklad vzd´alenˇe reinstalovat operaˇcn´ı syst´em a mnoho dalˇs´ıho. S pohledu t´eto pr´ace je Altiris v´ yborn´ ym n´astrojem pro evidenci s´ıt’ov´ ych prvk˚ u [11]. C´ılem moj´ı pr´ace je vytvoˇrit aplikaci, kter´a nebude tak rozs´ahl´a jako jsou komerˇcn´ı n´astroje Altiris nebo Nagios. Aplikace by mˇela b´ yt intuitivn´ı, lehce dostupn´a a nen´aroˇcn´a na hostitelsk´ y HW. Evidence pomoc´ı m´e aplikace m´a jasnˇe dan´a krit´eria: • evidovat vˇse, co je pˇripojeno do lok´aln´ı s´ıtˇe, • evidovat uˇzivatele, kter´ y za dan´e zaˇr´ızen´ı zodpov´ıd´a, • evidenci provˇeˇrovat, popˇr´ıpadˇe upravovat scanem s´ıtˇe, • evidovan´e zaˇr´ızen´ı snadno tisknout. C´ılovou skupinou pro moji budouc´ı aplikaci budou mal´e a stˇredn´ı podniky. Vzhledem k tomu, ˇze firma, pro kterou aplikaci vyv´ıj´ım, pracuje pˇrev´aˇznˇe s Hardware od firmy DELL, byl jsem vyzv´an k tomu, aby byla aplikace schopna scanovat i tzv. DELL Service Tag (zkr´acenˇe ST). Tento ST je jednoznaˇcn´ ym identifik´atorem zaˇr´ızen´ı vyroben´eho spoleˇcnost´ı DELL skrze vˇsechny produkty.
15
2.
´ ´I S´ITE ˇ SCANOVAN
Noˇcn´ı m˚ ura vˇetˇsiny administr´ator˚ u je provoz na spravovan´e s´ıti a jej´ı kontrola. Pˇrirozenˇe, ˇc´ım vˇetˇs´ı kontrolu chce administr´ator m´ıt, t´ım v´ıce se mu zd´a, ˇze j´ı ztr´ac´ı. Jednou ze z´akladn´ıch myˇslenek je scan s´ıtˇe, kter´ y by administr´atorovi napovˇedˇel, co a jak se mu pohybuje po s´ıti. D˚ uvod je zcela zˇrejm´ y. Kdokoliv, kdo rozum´ı problematice s´ıt´ı, je schopen se s´ıt´ı manipulovat. Je sloˇzit´e se vypoˇra´dat s neautorizovan´ ym vstupem zvenˇc´ı. Proto se vˇetˇsina bezpeˇcnostn´ıch politik firem toˇc´ı hlavnˇe kolem Firewall˚ u a zabezpeˇcen´eho pˇr´ıstupu. Je ale nutn´e si uvˇedomit, ˇze potenci´aln´ı hrozbou mohou b´ yt i vlastn´ı zamˇestnanci. Proto je d˚ uleˇzit´e m´ıt kontrolu nad s´ıt’ov´ ymi prvky, kter´e se v s´ıti vyskytuj´ı. Dalˇs´ı d˚ uvod, proˇc m´ıt k dispozici scan s´ıtˇe, je jednoduˇsˇs´ı administrace. V´ ymˇena vadn´eho PC bude mnohem jednoduˇs´ı. Administr´atorovi staˇc´ı PC pˇrichystat, odn´est na urˇcen´e m´ısto a do syst´emu evidence si jej zan´est aˇz za bˇehu. T´ım uˇsetˇr´ı ˇcas jak sobˇe, tak i pracovn´ıkovi, kter´ y na opraven´ y poˇc´ıtaˇc ˇcek´a.
2.1.
Teorie scanov´ an´ı s´ıtˇ e
Jak je zn´amo, referenˇcn´ı model je definov´an sedmi vrstvami OSI (Open System In-terconnection) modelu. Pro scanov´an´ı je nejuˇziteˇcnˇejˇs´ı tˇret´ı a ˇctvrt´a vrstva. Tyto vrstvy jsou nez´avisl´e na fyzick´em zaˇr´ızen´ı a poskytuj´ı sluˇzby vyˇsˇs´ı u ´rovnˇe. Scanov´an´ı vyˇsˇs´ıch vrstev je zaj´ımav´e v okamˇziku, kdy se budu cht´ıt zaj´ımat o sluˇzby bˇeˇz´ıc´ı na urˇcit´em portu. Popis jednotliv´ ych vrstev je nad r´amec t´eto pr´ace. Proto se zamˇeˇr´ıme pouze na ty, kter´e souvis´ı se scanov´an´ım s´ıtˇe. 2.1.1.
S´ıt’ov´ a vrstva
Linkov´a vrstva zajiˇst’uje pˇrenos cel´ ych r´amc˚ u, ovˇsem pouze mezi dvˇema uzly, mezi kter´ ymi existuje pˇr´ım´e spojen´ı. Jak ale komunikovat, kdyˇz spojen´ı mezi pˇr´ıjemcem a odes´ılatelem nen´ı pˇr´ım´e a vede pˇres jeden nebo v´ıce mezilehl´ ych ’ uzl˚ u? Pak mus´ı nastoupit s´ıt ov´a vrstva, kter´a zajist´ı potˇrebn´e smˇerov´an´ı (routing) pˇren´aˇsen´ ych r´amc˚ u oznaˇcovan´ ych nyn´ı pakety (packets). S´ıt’ov´a vrstva tedy ’ zajiˇst uje volbu vhodn´e trasy pˇres mezilehl´e uzly a tak´e postupn´e pˇred´av´an´ı paket˚ u po t´eto trase od p˚ uvodn´ıho odes´ılatele ke koneˇcn´emu pˇr´ıjemci. S´ıt’ov´a vrstva si tedy mus´ı uvˇedomovat“ konkr´etn´ı topologii s´ıtˇe (tj. zp˚ usob vz´ajemn´eho ” ’ pˇr´ım´eho propojen´ı jednotliv´ ych uzl˚ u) [3]. Na s´ıt ov´e vrstvˇe pracuje nejzn´amˇejˇs´ı protokol – Internetov´ y protokol (IP). Ten se d´ıky standardizaci a glob´aln´ı s´ıti Internet stal nejpouˇz´ıvanˇejˇs´ım protokolem s´ıt´ı. Jednotkou informace je paket [12].
16
2.1.2.
Transportn´ı vrstva
S´ıt’ov´a vrstva poskytuje bezprostˇredn´ı vyˇsˇs´ı vrstvˇe sluˇzby zajiˇst’uj´ıc´ı pˇrenos paket˚ u mezi libovoln´ ymi dvˇema uzly s´ıt´ı. Transportn´ı vrstvu tedy zcela odstiˇ nuje od skuteˇcn´e topologie s´ıtˇe a vytv´aˇr´ı ji tak iluzi, ˇze kaˇzd´ y uzel s´ıtˇe m´a pˇr´ım´e spojen´ı s kter´ ymkoli jin´ ym uzlem s´ıtˇe. Transportn´ı vrstvˇe se staˇc´ı zab´ yvat komunikac´ı koncov´ ych u ´ˇcastn´ık˚ u. Pˇri odes´ıl´an´ı dat zajiˇst’uje transportn´ı vrstva sestavov´an´ı jednotliv´ ych paket˚ u, do kter´ ych rozdˇeluje pˇren´aˇsen´a data, a pˇri pˇr´ıjmu je zase z paket˚ u vyj´ım´a a skl´ad´a do p˚ uvodn´ıho tvaru. Dok´aˇze tak zajistit pˇrenos libovolnˇe velk´ ych zpr´av, pˇrestoˇze jednotliv´e pakety maj´ı omezenou velikost [3]. Vrstva nab´ız´ı spojovˇe (TCP) a nespojovˇe orientovan´e (UDP) protokoly. • TCP – Zajiˇst’uje pˇrenos dat se z´arukami, kter´ y vyˇzaduj´ı aplikace, kde nesm´ı chybˇet ani paket“. Jedn´a se o pˇrenosy soubor˚ u, e-mail˚ u, WWW str´anek ” atd. Z´aruka se vztahuje na ˇreˇsen´ı ztr´at pˇren´aˇsen´ ych paket˚ u, zachov´an´ı jejich poˇrad´ı a odstranˇen´ı duplikace. Jednotkou pos´ılan´e informace je na t´eto vrstvˇe TCP segment[12]. • UDP – Zajiˇst’uje pˇrenos dat bez z´aruk, kter´ y vyuˇz´ıvaj´ı aplikace, u kter´ ych by bylo na obt´ıˇz zdrˇzen´ı (delay) v s´ıti zp˚ usoben´e ˇcek´an´ım na pˇrenos vˇsech paket˚ u a ztr´aty se daj´ı ˇreˇsit jin´ ym zp˚ usobem (napˇr. sn´ıˇzen´ı kvality, opakov´an´ı dotazu). Vyuˇz´ıv´a se pro DNS, VoIP, streamovan´e video, internetov´a r´adia, on-line hry atd. [12].
2.2.
Scanov´ an´ı
Scanov´an´ı lze volnˇe pˇreloˇzit jako podrobn´e hled´an´ı. Scanovat lze bud’to porty, nebo IP adresy. Scanov´an´ı port˚ u se v t´eto pr´aci zab´ yvat nebudu, nebot’ toto t´ema zapad´a v´ıce do oblasti bezpeˇcnosti, neˇz evidence. Zaj´ımav´e bude scanov´an´ı IP ˇ ım je adres. Scan IP adres testuje IP adresy z dan´eho rozsahu pˇri dan´e masce. C´ rozsah vˇetˇs´ı, t´ım je scanov´an´ı delˇs´ı. V´ ystup scanneru je seznam vˇsech IP adres, kter´e odpovˇedˇely na dotaz (ping) [13]. U tˇechto zaˇr´ızen´ı lze zjistit dalˇs´ı informace, jako napˇr´ıklad fyzickou adresu (MAC adresu) s´ıt’ov´eho rozhran´ı. S´ıt’ lze scanovat nˇekolika zp˚ usoby. Jedn´ım z nich je pouze test na odpovˇed’ (ping). Tento pˇr´ıkaz je univerz´aln´ı ve vˇetˇsinˇe operaˇcn´ıch syst´em˚ u. Ping testuje dostupnost hosta vlastn´ıc´ı urˇcitou IP adresu. Pokud je pˇr´ıkaz ping vol´an pro kaˇzdou IP adresu z dan´eho rozsahu, tvoˇr´ı z´akladn´ı model scaneru s´ıtˇe. Takov´ yto scaner nebude sloˇzit´e naprogramovat. Tˇelo cyklu m˚ uˇze vypadat napˇr´ıklad takto: #SITE_IP "IP adresa" Ping -c3 $SITE_IP > /tmp/test_ping 17
PING_RECEIVED="cat /tmp/test_ping|grep received|awk { print substr ($4, 1, 2) }" if [ "$PING_RECEIVED" == "3" ] then echo {e "IP: $SITE_IP is active:"|tee -a $LOG_FILE echo -e "-"|tee -a $LOG_FILE else echo -e "\n IP - $SITE_IP: NETWORK IS DOWN"|tee -a $LOG_FILE echo -e "-"|tee -a $LOG_FILE fi Samotn´e sestaven´ı a spuˇstˇen´ı IP scaneru jeˇstˇe neznamen´a, ˇze dostanu sez´ nam IP adres zaˇr´ızen´ı v s´ıt´ı, kter´ y odpov´ıd´a realitˇe. Uskal´ ım jsou Firewally na koncov´ ych zaˇr´ızen´ıch. Napˇr´ıklad operaˇcn´ı syst´em Windows Vista a novˇejˇs´ı m´a ve v´ ychoz´ım nastaven´ı zabezpeˇcen´ı nastaveno odm´ıt´an´ı paket˚ u pˇr´ıchoz´ıch ICMP. Takov´eto zaˇr´ızen´ı na ping neodpov´ı. Proto je d˚ uleˇzit´e se ujistit, ˇze Firewally ’ s´ıt ov´ ych zaˇr´ızen´ı akceptuj´ı pˇr´ıchoz´ı ICMP protokoly. Pokud IP adresa zaˇr´ızen´ı nebude dostaˇcuj´ıc´ı, mus´ıme dalˇs´ı u ´daje vyˇc´ıst z tzv. ARP [14] tabulky nebo SNMP protokolu.
2.3.
Dell Service Tag
Dell Service Tag (d´ale jen ST) je identifik´ator zaˇr´ızen´ı v˚ uˇci datab´azi produkt˚ u firmy DELL. Kaˇzd´e zaˇr´ızen´ı zakoupen´e od firmy DELL obsahuje vlastn´ı ST, kter´ y je jedineˇcn´ y. ST je d˚ uleˇzit´ y hlavnˇe v okamˇziku, kdy je tˇreba nahl´asit poruchu zaˇr´ızen´ı, pˇr´ıpadnˇe upgrade. Tento u ´daj je prim´arnˇe um´ıstˇen na ˇst´ıtku zaˇr´ızen´ı. Evidence service tag˚ u podl´eh´a v takov´emto pˇr´ıpadˇe manu´aln´ı administraci, kdy pracovn´ık opisuje ST a zaznamen´av´a je ruˇcnˇe k evidenci zaˇr´ızen´ı. Proto jsem se rozhodl vyuˇz´ıt scanov´an´ı s´ıtˇe i pro detekci ST zaˇr´ızen´ı vyroben´e spoleˇcnost´ı DELL. Vzhledem k rozsahu pr´ace nen´ı moˇzn´e vytvoˇrit univerz´aln´ı scan, kter´ y by takto zjistil ST ze vˇsech moˇzn´ ych zaˇr´ızen´ı osazen´ ych r˚ uzn´ ymi operaˇcn´ımi syst´emy. Zamˇeˇril jsem se na ty, kter´e jsou nejˇcastˇejˇs´ı a to stanice a servery s operaˇcn´ım syst´emem Windows. Service Tag je kromˇe fyzick´eho um´ıstˇen´ı na zaˇr´ızen´ı v podobˇe ˇst´ıtku uloˇzen i v Biosu zaˇr´ızen´ı. D´ıky tomu je operaˇcn´ı syst´em Windows schopen tuto hodnotu pˇreˇc´ıst a pˇredat d´ale. Pro jednoduch´ y zp˚ usob, jak z´ıskat ST z pˇr´ıkazov´e ˇra´dky, slouˇz´ı pˇr´ıkaz: wmic bios get serialnumber Pˇr´ıkaz wmic vol´a sluˇzbu WMI (Windows Management Instrumentation). Sluˇzba vmis je bl´ıˇze pops´ana v technick´e dokumentaci Microsoft [17]. Pomoc´ı sluˇzby 18
WMI lze z´ıskat nejen DELL service tag dan´eho zaˇr´ızen´ı, ale i dalˇs´ı informace, t´ ykaj´ıc´ı se Hardwaru a operaˇcn´ıho syst´emu. Jak uv´ad´ı zdroj [18], WMI je souˇc´ast´ı operaˇcn´ıch syst´em˚ u Windows ME, 2000, XP a novˇejˇs´ı. Do starˇs´ıch syst´em˚ u je moˇzn´e tuto sluˇzbu doinstalovat.
19
3.
ˇ ´ DOKUMENTACE UZIVATELSK A
N´asleduj´ıc´ı kapitola popisuje n´avod, jak aplikaci instalovat, uˇz´ıvat a odinstalovat. Uˇzivatel by mˇel b´ yt schopen po pˇreˇcten´ı n´asleduj´ıc´ı kapitoly plnˇe uˇz´ıvat aplikaci Evidence s´ıt’ov´ ych zaˇr´ızen´ı.
3.1.
Instalace aplikace
Aplikace je kompatibiln´ı s operaˇcn´ımi syst´emy Windows XP, Vista, 7, 2003 Servever, 2008 Server jak pro 32 bitovou verzi, tak i pro 64 bitovou verzi. Pro rychl´ y chod aplikace vyˇzaduje alespoˇ n 512 MB RAM pro Windows XP a 1GB RAM pro Windows Vista a novˇejˇs´ı. Pro instalaci je tˇreba vyhradit aplikaci alespoˇ n 60 MB m´ısta na pevn´em disku. Instalovat aplikace Evidence s´ıt’ov´ ych zaˇr´ızen´ı lze pomoc´ı spustiteln´eho instalaˇcn´ıho souboru ESZsetup.exe. Instalace je rozdˇelena do nˇekolika krok˚ u: • V´ ybˇer cesty instalace. • V´ ybˇer sloˇzky v nab´ıdce Start. • Volba uˇzivatele, zda chce vytvoˇrit ikonu aplikace na ploˇse. • Instalace na pozad´ı bal´ık˚ u SQL Express a Microsoft Report vieweru v pˇr´ıpadˇe absence. • Dokonˇcen´ı instalace aplikace. Aplikaci lze nainstalovat do libovoln´eho adres´aˇre. Pro pˇrehlednost je vhodn´e pouˇz´ıt adres´aˇr Program Files (v pˇr´ıpadˇe 64 bitov´eho operaˇcn´ıho syst´emu Program Files (x86)). Aplikace bude nainstalov´ana do zvolen´eho adres´aˇre stiskem tlaˇc´ıtka Dalˇs´ı. Aby mohla b´ yt aplikace nainstalov´ana, zvolte cestu instalace. V´ ychoz´ı cesta je pˇrednastavena na C:\Program Files\Evidence s´ıt’ov´ ych zaˇr´ızen´ı\.
20
Obr´azek 4. V´ ybˇer cesty instalace Na dalˇs´ım formul´aˇri zvolte n´azev sloˇzky, kter´a bude vytvoˇrena v nab´ıdce Start.
21
Obr´azek 5. Pojmenov´an´ı sloˇzky v nab´ıdce Start Jakmile je zvolen n´azev sloˇzky, kter´a bude vytvoˇrena v nab´ıdce Start, instalaˇcn´ı program nainstaluje soubory aplikace do zvolen´ ych adres´aˇr˚ u. D´ale vytvoˇr´ı z´astupce ve zvolen´e sloˇzce nab´ıdky Start.
22
Obr´azek 6. Zah´ajen´ı instalace Po u ´spˇeˇsn´e instalaci aplikace, bude instalaˇcn´ı program ukonˇcen. Aplikace Evidence s´ıt’ov´ ych zaˇr´ızen´ı je pˇripravena k prvn´ımu spuˇstˇen´ı.
3.2.
Pouˇ z´ıv´ an´ı aplikace
Aplikaci Evidence s´ıt’ov´ ych zaˇr´ızen´ı lze spustit bud’to z nab´ıdky Start kliknut´ım na ikonu programu Evidence s´ıt’ov´ ych zaˇr´ızen´ı, nebo pˇr´ımo z adres´aˇre Program Files\esz souborem esz.exe (v pˇr´ıpadˇe 64bitov´eho operaˇcn´ıho syst´emu z adres´aˇre Program Files(86)). Po spuˇstˇen´ı aplikace je zobrazen pˇrihlaˇsovac´ı formul´aˇr. Pokud se jedn´a o prvn´ı spuˇstˇen´ı aplikace na dan´em poˇc´ıtaˇci, budete vyzv´ani k vytvoˇren´ı u ´ˇctu, pod kter´ ym se pak budete pˇrihlaˇsovat. Zadejte uˇzivatelsk´e jm´eno a heslo a pokraˇcujte kliknut´ım na kl´avesu OK“. ”
23
Obr´azek 7. Pˇrihl´aˇsen´ı k aplikaci V n´asleduj´ıc´ım formul´aˇri budete vyzv´ani k pˇrihl´aˇsen´ı se k aplikaci. Zadejte existuj´ıc´ı uˇzivatelsk´e jm´eno a odpov´ıdaj´ıc´ı heslo. Jakmile je zad´ano spr´avn´e uˇzivatelsk´e jm´eno a heslo, kliknˇete na tlaˇc´ıtko OK“ a m˚ uˇzete zaˇc´ıt pracovat s aplikac´ı. ”
3.3.
Poloˇ zky hlavn´ıho menu
Hlavn´ı menu m´a tˇri sekce. Ty jsou seˇrazeny dle u ´kon˚ u, kter´e je moˇzn´e s jejich obsahem prov´adˇet. Nab´ıdka Soubor obsahuje poloˇzky: • Nov´ e zaˇ r´ızen´ı – spust´ı formul´aˇr pro zad´an´ı nov´eho zaˇr´ızen´ı. • Zobrazit zaˇ r´ızen´ı – spust´ı formul´aˇr pro zobrazen´ı vˇsech evidovan´ ych zaˇr´ızen´ı. • Scan s´ıtˇ e – spust´ı formul´aˇr pro moˇznost scanov´an´ı s´ıtˇe. • Tisk – spust´ı formul´aˇr pro tisk sestav. Moˇznost tisku je aktivn´ı pouze pˇri pr´aci s evidenˇcn´ımi formul´aˇri. • Konec – ukonˇcen´ı aplikace. Nab´ıdka Zobrazit obsahuje poloˇzky: • Panel n´ astroj˚ u - moˇznost volby zobrazen´ı panelu n´astroj˚ u. 24
• Stavov´ yˇ r´ adek - moˇznost volby zobrazen´ı stavov´eho ˇra´dku. Nab´ıdka Nastaven´ı obsahuje poloˇzky: • Zmˇ ena hesla - spust´ı formul´aˇr pro zmˇenu hesla aktu´aln´ıho uˇzivatele. • Nov´ y uˇ zivatel - spust´ı formul´aˇr pro zad´an´ı nov´eho uˇzivatele (pouze v pˇr´ıpadˇe pln´eho pˇr´ıstupu). • Zruˇ sit uˇ zivatele - spust´ı formul´aˇr pro odebr´an´ı pˇr´ıstupu vybran´eho uˇzivatele.
Obr´azek 8. Hlavn´ı menu
3.4.
Kl´ avesov´ e zkratky
Hlavn´ı menu aplikace lze ovl´adat pomoc´ı kl´avesov´ ych zkratek. Kl´avesov´e zkratky jsou definov´any pomoc´ı kombinace Alt + podtrˇzen´e p´ısmeno n´azvu ” poloˇzky“. Kl´avesov´a zkratka pro nab´ıdku Soubor tedy bude Alt + S. Podobnˇe lze navigovat i ostatn´ı poloˇzky nab´ıdek hlavn´ıho menu.
3.5.
Pˇ rid´ an´ı nov´ eho zaˇ r´ızen´ı
Nov´e zaˇr´ızen´ı lze pˇridat pomoc´ı hlavn´ıho menu (nab´ıdka Nov´e zaˇr´ızen´ı“), ” nebo pomoc´ı Scanu s´ıtˇe ˇci formul´aˇre Seznam zaˇr´ızen´ı“. Formul´aˇr pro zad´av´an´ı ” nov´ ych zaˇr´ızen´ı je vyobrazen na obr´azku 9. Sekce Obecn´e informace: • Poˇ radov´ eˇ c´ıslo - je automaticky generov´ano aplikac´ı. • Inv. ˇ c´ıslo - pˇriˇrazen´ı invent´arn´ıho ˇc´ısla zaˇr´ızen´ı. • Typ zaˇ r´ızen´ı - vzberte typ zaˇr´ızen´ı. • IP - IP adresa (v pˇr´ıpadˇe pˇrid´av´an´ı z formul´aˇre scanu je pˇredvyplnˇena). • MAC - MAC adresa (v pˇr´ıpadˇe pˇrid´av´an´ı z formul´aˇre scanu je pˇredvyplnˇena). 25
Obr´azek 9. Pˇrid´an´ı nov´eho zaˇr´ızen´ı • Pozn´ amky - prostor pro pozn´amky. Sekce Software: • Oper. syst´ em - informace o operaˇcn´ım syst´emu zaˇr´ızen´ı. • Lic. ˇ c´ıslo - moˇznost pˇriˇrazen´ı licenˇcn´ıho ˇc´ısla operaˇcn´ıho syst´emu. • Heslo Admina - heslo Administr´atorsk´eho / root u ´ˇctu. Sekce Informace o uˇzivateli: • Jm´ eno - jm´eno uˇzivatele zaˇr´ızen´ı. • Skupina - oddˇelen´ı, do kter´eho je uˇzivatel um´ıstˇen (pr´avn´ı, obchodn´ı, sklad,. . . ). • Den pˇ red´ an´ı - datum, kdy uˇzivatel zaˇr´ızen´ı pˇrebral. Sekce Hardware: • V´ yrobce - n´azev v´ yrobce zaˇr´ızen´ı. • Typ - typov´e oznaˇcen´ı. • S´ eriov´ eˇ c´ıslo - s´eriov´e nebo v´ yrobn´ı ˇc´ıslo. 26
• Heslo BIOS - heslo biosu ˇci jin´eho z´akladn´ıho konfiguraˇcn´ıho prostˇred´ı. Uloˇzen´ı nov´eho zaˇr´ızen´ı lze dokonˇcit pomoc´ı tlaˇc´ıtka Uloˇ zit“. Zruˇsen´ı ” ukl´ad´an´ı zaˇr´ızen´ı lze prov´est tlaˇc´ıtkem Storno“. ”
3.6.
Seznam zaˇ r´ızen´ı
• Formul´aˇr Seznam zaˇ r´ızen´ı“ zobrazuje vˇsechna evidovan´a zaˇr´ızen´ı v ap” likaci. Seznam je moˇzno ˇradit dle jednotliv´ ych z´ahlav´ı kliknut´ım na z´ahlav´ı seznamu. Seznam je moˇzno proch´azet bud’to pomoc´ı navigaˇcn´ıch ˇsipek kl´avesnice, nebo pomoc´ı myˇsi (kliknut´ı na zvolenou poloˇzku). • Stiskem kl´avesy Enter“, dvojklikem nebo kliknut´ım na tlaˇc´ıtko Detaily“ ” ” bude naˇcten formul´aˇr editace zaˇr´ızen´ı. • Smazat zaˇr´ızen´ı je moˇzn´e pomoc´ı tlaˇc´ıtka Smazat“. ” • Pˇridat nov´e zaˇr´ızen´ı je moˇzn´e pomoc´ı tlaˇc´ıtka Pˇ ridat zaˇ r´ızen´ı“. ” • Evidenci oprav je moˇzn´e zobrazit pomoc´ı tlaˇc´ıtka Opravy zaˇ r´ızen´ı“. ” Zaˇr´ızen´ı je moˇzn´e vyhled´avat podle zvolen´eho parametru (invent´arn´ı ˇc´ıslo, typ, IP, MAC). Do pole Hledat“ pak zadejte vyhled´avan´ y v´ yraz. ”
Obr´azek 10. Seznam zaˇr´ızen´ı
27
3.7.
Editace zaˇ r´ızen´ı
Uloˇzen´e zaˇr´ızen´ı lze editovat. Editace zaˇr´ızen´ı je moˇzn´a pomoc´ı formul´aˇre Editace zaˇ r´ızen´ı“. ” Sekce Obecn´e informace: • Poˇ radov´ eˇ c´ıslo - je automaticky generov´ano aplikac´ı. • Inv. ˇ c´ıslo - zmˇena invent´arn´ıho ˇc´ısla zaˇr´ızen´ı. • Typ zaˇ r´ızen´ı - zmˇena typu zaˇr´ızen´ı. • IP - zmˇena IP adresy zaˇr´ızen´ı (v pˇr´ıpadˇe pˇrid´av´an´ı z formul´aˇre scanu je pˇredvyplnˇena). • MAC - zmˇena MAC adresy (v pˇr´ıpadˇe pˇrid´av´an´ı z formul´aˇre scanu je pˇredvyplnˇena). • Pozn´ amky - prostor pro pozn´amky. Sekce Software: • Oper. syst´ em - informace o operaˇcn´ım syst´emu zaˇr´ızen´ı. • Lic. ˇ c´ıslo - moˇznost pˇriˇrazen´ı licenˇcn´ıho ˇc´ısla operaˇcn´ıho syst´emu. • Heslo Admina - heslo Administr´atorsk´eho / root u ´ˇctu. Sekce Informace o uˇzivateli: • Jm´ eno - jm´eno uˇzivatele zaˇr´ızen´ı. • Skupina - oddˇelen´ı uˇzivatele (pr´avn´ı, obchodn´ı, sklad,. . . ). • Den pˇ red´ an´ı - datum, kdy uˇzivatel zaˇr´ızen´ı pˇrebral. Sekce Hardware: • V´ yrobce - n´azev v´ yrobce zaˇr´ızen´ı. • Typ - typov´e oznaˇcen´ı. • S´ eriov´ eˇ c´ıslo - s´eriov´e nebo v´ yrobn´ı ˇc´ıslo. • Heslo BIOS - heslo BIOSU ˇci jin´eho z´akladn´ıho konfiguraˇcn´ıho prostˇred´ı. Uloˇzen´ı zmˇen lze dokonˇcit pomoc´ı tlaˇc´ıtka OK“. Zruˇsen´ı ukl´ad´an´ı zaˇr´ızen´ı ” lze prov´est tlaˇc´ıtkem Storno“. ”
28
Obr´azek 11. Editace detail˚ u zaˇr´ızen´ı
3.8.
Opravy a upgrade zaˇ r´ızen´ı
Evidenci oprav zaˇr´ızen´ı a upgrade je moˇzn´e spustit pomoc´ı tlaˇc´ıtka Opravy ” zaˇ r´ızen´ı“ z formul´aˇre Seznam zaˇ r´ızen´ı. V tomto oknˇe jsou vidˇet evidovan´e z´avady a poˇzadavky na upgrade. Evidence z´avad a upgrade je rozdˇelen´a na tˇri logick´e celky: • Datum a popis z´avady (reprezentuje datum vzniku poˇzadavku a jeho popis). • Datum a popis opravy (reprezentuje datum pr˚ ubˇehu ˇci uzavˇren´ı poˇzadavku a jeho popis). • stav opravy (reprezentuje stav, ve kter´em se poˇzadavek nach´az´ı. Pokud je oprava ukonˇcena, nelze ji znovu upravit).
Novou z´avadu je moˇzn´e vloˇzit pomoc´ı tlaˇc´ıtka Nov´ a z´ avada“. ”
29
Obr´azek 12. Evidence oprav a upgrade zaˇr´ızen´ı
Obr´azek 13. Nov´a z´avada ˇci poˇzadavek Upravit ˇci uzavˇr´ıt z´avadu je pak moˇzn´e pomoc´ı tlaˇc´ıtka Upravit z´ avadu“. ” 30
´ Obr´azek 14. Uprava ˇci uzavˇren´ı poˇzadavku Jakmile je jednou z´avada ukonˇcena (vyˇreˇsena), nelze ji znovu editovat. Je tˇreba vˇzdy zaloˇzit novou.
3.9.
Scan s´ıtˇ e
Pomoc´ı scanu s´ıtˇe m˚ uˇzete zjistit, jak´e zaˇr´ızen´ı je zapojeno v lok´aln´ı poˇc´ıtaˇcov´e s´ıti. Podm´ınkou je, aby poˇc´ıtaˇc, na kter´em je aplikace Evidence s´ıt’ov´ ych ” zaˇr´ızen´ı“ nainstalov´ana, byl pˇripojen do s´ıtˇe, kter´a m´a b´ yt scanov´ana.
31
Obr´azek 15. Scan zaˇr´ızen´ı Pˇred vlastn´ım zah´ajen´ım scanov´an´ı zadejte rozsah IP adres pro scanov´an´ı (poˇca´teˇcn´ı a koncov´a IP adresa). Do kaˇzd´eho pole je moˇzno zadat jedno aˇz tˇri ˇc´ıslice. Pˇresun na n´asleduj´ıc´ı pole je moˇzn´ y bud’to stisknut´ım kl´avesy teˇ cka“, ” stisknut´ım kl´avesy Tab“ nebo kliknut´ım myˇs´ı na poˇzadovan´e pole. Scanov´an je ” moˇzn´e zah´ajit tlaˇc´ıtkem Scanovat“. ” Pr˚ ubˇeh scanov´an´ı je vyobrazen v lev´e spodn´ı ˇc´asti. Process bar zobrazuje celkov´ y stav scanu v r´amci zadan´eho rozsahu. Vedle process baru je zobrazena pr´avˇe scanovan´e IP adresa. Pro scan m˚ uˇzete zvolit jeden ze dvou parametr˚ u: • rychle - znamen´a, ˇze aplikace bude zjiˇst’ovat pouze IP adresy, MAC adresy, n´azev zaˇr´ızen´ı a stav oproti uloˇzen´ ym z´aznam˚ um, • podrobnˇe - aplikace se pokus´ı bˇehem scanu zjistit i v´ yrobce a model zaˇr´ızen´ı, operaˇcn´ı syst´em a pokud se jedn´a o zaˇr´ızen´ı DELL, pak i ServiceTag. V´ ysledek rychl´eho scanu je vyobrazen na obr´azku 16. Oproti tomu podrobn´ y scan zobrazuje v´ıce informac´ı. Ovˇsem pouze v pˇr´ıpadˇe, ˇze byly zad´any spr´avn´e administr´atorsk´e u ´daje pro pˇr´ıstup ke scanovan´ ym zaˇr´ızen´ım. V´ ysledek podrobn´eho scanu je zn´azornˇen na obr´azku 17.
32
Obr´azek 16. V´ ysledek rychl´eho scanu
Obr´azek 17. V´ ysledek podrobn´eho scanu Podrobn´e scanov´an´ı vyˇzaduje povolen´ı dvou pravidel ve Firewall scanovan´eho zaˇr´ızen´ı. Tato pravidla jsou: • Sluˇzba WMI (Windows Management Instrumentation) (DCOM-In), • Sluˇzba WMI (Windows Management Instrumentation) (WMI-In),
33
Obr´azek 18. Nastaven´ı Firewall Scanov´an´ı je moˇzn´e zastavit tlaˇc´ıtkem Zastavit“. Po ukonˇcen´ı scanu s´ıtˇe ” je zobrazen v´ ysledek. Nalezen´e IP adresy zaˇr´ızen´ı spoleˇcnˇe s MAC adresami jsou zobrazenu v seznamu. V seznamu je t´eˇz uvedeno, zda je IP a MAC adresa jiˇz uloˇzena pro nˇejak´e zaˇr´ızen´ı, ˇci nikoliv.
3.10.
Tisk
Tisk je moˇzno spustit pouze z evidenˇcn´ıch formul´aˇr˚ u. To jsou: • seznam zaˇr´ızen´ı, • scan zaˇr´ızen´ı. Formul´aˇr tisku m˚ uˇze vypadat napˇr´ıklad takto:
34
Obr´azek 19. Tisk Tisk je moˇzno zah´ajit kliknut´ım na ikonu tisk´arny.
3.11.
Zmˇ ena hesla
Aktu´aln´ı uˇzivatel si m˚ uˇze zmˇenit heslo pomoc´ı nab´ıdky Zmˇ ena hesla“. ”
35
Obr´azek 20. Zmˇena hesla
3.12.
Pˇ rid´ an´ı nov´ eho uˇ zivatele
Uˇzivatel, jeˇz m´a pln´ y pˇr´ıstup k aplikaci, sm´ı zakl´adat nov´e uˇzivatele. Ti mohou m´ıt bud’to omezen´a pr´ava nebo pln´a pr´ava. Uˇzivatelsk´ y u ´ˇcet je moˇzn´e zaloˇzit pomoc´ı nab´ıdky Nov´ y uˇ zivatel“ z hlavn´ıho menu. ”
Obr´azek 21. Nov´ y uˇzivatel
36
3.13.
Zruˇ sen´ı uˇ zivatele
Uˇzivatelsk´ yu ´ˇcet sm´ı zruˇsit pouze uˇzivatel, kter´ y m´a pln´ y pˇr´ıstup k aplikaci. Zruˇsen´ı uˇzivatele provedete tak, ˇze vyberete jeho pˇrihlaˇsovac´ı jm´eno ze seznamu a klinete na tlaˇc´ıtko Smazat“. ”
Obr´azek 22. Zruˇsen´ı uˇzivatele
3.14.
Spr´ ava n´ azv˚ u zaˇ r´ızen´ı
V tomto formul´aˇri je moˇzn´e vytvoˇrit seznam n´azv˚ u zaˇr´ızen´ı, kter´e budou evidov´any. Tyto n´azvy jsou pot´e vyuˇzity ve formul´aˇri Nov´ e zaˇ r´ızen´ı“ a Editace ” ” zaˇ r´ızen´ı“.
37
Obr´azek 23. Spr´ava n´azv˚ u zaˇr´ızen´ı
N´azvy je moˇzn´e pˇridat nebo odebrat.
3.15.
Odinstalace aplikace
Aplikaci je moˇzn´e odinstalovat nˇekolika zp˚ usoby: • V nab´ıdce Start zvol´ıte Odinstalovat aplikaci Evidence S´ıt’ov´ ych zaˇ r´ı” zen´ı“. • Standardn´ım zp˚ usobem pomoc´ı volby Odebrat programy syst´ emu ” Windows“. • Ve sloˇzce aplikace spustit soubor uninstall.exe“. ”
38
´ ´ DOKUMENTACE PROGRAMATORSK A
4.
K vytvoˇren´ı aplikace Evidence s´ıt’ov´ ych zaˇr´ızen´ı jsem se rozhodl pouˇz´ıt v´ yvojov´e prostˇred´ı Visual Studio 2005. Z tohoto bal´ıku v´ yvojov´ ych n´astroj˚ u je mi nejbliˇzˇs´ı Visual Basic. Proto jsem se rozhodl napsat aplikaci v tomto n´astroji. Datab´aze pro aplikaci je vytvoˇrena v Microsoft SQL serveru.
4.1.
Datab´ aze
Existuje nˇekolik zp˚ usob˚ u, jak uchov´avat a organizovat data pouˇz´ıvan´e aplikac´ı. Jedn´ım z nich je relaˇcn´ı datab´aze. Tento zp˚ usob zpracov´an´ı dat jsem si zvolil i j´a. Datab´azov´ y soubor je souˇca´st´ı aplikace. Soubor je pojmenov´an esz.mdf.Pˇripojen´ı datab´azov´eho souboru je definov´ano v souboru konfigurace app.config pomoc´ı XML z´aznamu:
Datab´aze je rozˇclenˇena podle jednotliv´ ych celk˚ u, kter´e souvisej´ı s evidenc´ı zaˇr´ızen´ı. Toto ˇclenˇen´ı by se dalo popsat n´asledovnˇe: 1. tabulka evidence, 2. tabulka hw, 3. tabulka pristup, 4. tabulka scan, 5. tabulka sw, 6. tabulka uzivatel, 7. tabulka opravy, 8. tabulka zarizeni, Struktura datab´aze je vyobrazena pomoc´ı obr´azku 24.
39
Obr´azek 24. Sch´ema datab´aze
4.2.
Popis datab´ aze
Nosnou tabulkou pro celou strukturu je tabulka evidence. Ta obsahuje pole id,kter´e je z´aroveˇ n prim´arn´ım kl´ıˇcem tabulky. Hodnota id je jednoznaˇcn´ ym identifik´atorem zaˇr´ızeni v datab´azi. Tabulka evidence obsahuje dalˇs´ı kolonky: -
id cislo typz ip mac pozn
[int] [nchar(10)] [char(20)] [char(15)] [char(16)] [nvarchar]
not null not null allow null not null not null allow null
– – – – – –
prim´arn´ı kl´ıˇc tabulky evidenˇcn´ı ˇc´ıslo zaˇr´ızen´ı typ zaˇr´ızen´ı IP adresa zaˇr´ızen´ı MAC adresa zaˇr´ızen´ı prostor pro pozn´amky
– – – – – –
id z´aznamu n´azev v´ yrobce n´azev typu zaˇr´ızen´ı s´eriov´e ˇc´ıslo heslo Biosu zaˇr´ızen´ı prim´arn´ı kl´ıˇc tabulky
Tabulka hw obsahuje n´asleduj´ıc´ı pole: -
id vyrobce typ sercis hbios ev id
[int] [nchar(25)] [char(25)] [char(25)] [char(10)] [int]
not null allow null allow null allow null allow null not null
Tabulka sw obsahuje n´asleduj´ıc´ı pole: 40
-
id os lic hadm ev id
[int] [nchar(30)] [char(30)] [nchar(30)] [int]
not null allow null allow null allow null not null
– – – – –
id z´aznamu operaˇcn´ı syst´em licenˇcn´ı ˇc´ıslo heslo administr´atora prim´arn´ı kl´ıˇc tabulky
Tabulka uzivatel obsahuje n´asleduj´ıc´ı pole: -
id jmeno prijmeni heslo skup dpredani ev id
[int] [nchar(30)] [nchar(30)] [nchar(30)] [nchar(30)] [char(10)] [int]
not null not null not null allow null allow null not null allow null
– – – – – – –
id z´aznamu jm´eno uˇzivatele pˇr´ıjmen´ı uˇzivatele heslo (pole nen´ı pouˇzito) n´azev oddˇelen´ı den pˇred´an´ı zaˇr´ızen´ı prim´arn´ı kl´ıˇc tabulky
Tabulka opravy obsahuje n´asleduj´ıc´ı pole: -
id dzavady popisz dopravy popiso stav ev id
[int] [datetime] [varchar(50)] [datetime] [varchar(50)] [varchar(20)] [int]
not null allow null allow null allow null allow null allow null not null
– – – – – – –
id z´aznamu a prim´arn´ı kl´ıˇc datum vzniku poˇzadavku popis poˇzadavku datum opravy stavu poˇzadadavku popis opravy stav poˇzadavku id z´aznamu (evidence.id)
Dalˇs´ı tˇri tabulky obsahuj´ı obsluˇzn´a data aplikace. Tato data slouˇz´ı pro chod aplikace a to jak pro ovˇeˇren´ı pˇr´ıstupov´ ych u ´daj˚ u k aplikaci (tabulka pristup), evidenci n´azv˚ u zaˇr´ızen´ı (tabulka zarizeni), tak v´ ysledky posledn´ıho scanu (tabulka scan). Tabulka pristup obsahuje n´asleduj´ıc´ı pole: Tabulka pristup obsahuje n´asleduj´ıc´ı pole: -
id jmeno heslo opravneni
[int] [char(20)] [char(256)] [int]
not null not null not null allow null
– – – –
id z´aznamu, prim´arn´ı kl´ıˇc pˇrihlaˇsovac´ı jm´eno heslo hodnota opr´avnˇen´ı uˇzivatele
Tabulka zarizeni obsahuje n´asleduj´ıc´ı pole: 41
- id - typz
[int] [varchar(50)]
not null not null
– id z´aznamu, prim´arn´ı kl´ıˇc – n´azev zaˇr´ızen´ı
Tabulka scan obsahuje n´asleduj´ıc´ı pole: -
id ip mac hn vr model os dst reg passwd ev id
[int] [char(15)] [char(16)] [char(20)] [char(20)] [char(25)] [varchar(100)] [char(8)] [varchar(50)] [char(20)] [int]
not null not null allow null allow null allow null allow null allow null allow null allow null allow null allow null
– – – – – – – – – – –
id z´aznamu, prim´arn´ı kl´ıˇc IP adresa MAC adresa jm´eno hosta v´ yrobce model zaˇr´ızen´ı operaˇcn´ı syst´em Windows DELL Service Tag stav zaˇr´ızen´ı heslo adminstr´atora id zaˇr´ızen´ı, pokud je jiˇz uloˇzeno
Struktura datab´aze je zn´azornˇena graficky pomoc´ı ER-diagramu v n´asleduj´ıc´ım obr´azku.
42
Obr´azek 25. ER model datab´aze
4.3.
N´ avrh aplikace
Pro n´avrh a tvorbu aplikace jsem se rozhodl pouˇz´ıt Visual Studio 2005, Visual Basic. Tento programovac´ı jazyk jsem si zvolil zejm´ena proto, ˇze m´a dostatek pˇr´ıznivc˚ u.
4.4.
Hlavn´ı formul´ aˇ r
Aplikace obsahuje jeden hlavn´ı (MDI parrent) formul´aˇr, kter´ y je naˇcten do pamˇeti po spuˇstˇen´ı. Formul´aˇr jsem pojmenoval frmMDI. Tento rodiˇcovsk´ y formul´aˇr obsahuje hlavn´ı menu aplikace, n´astrojovou liˇstu a stavov´ y ˇra´dek. Pˇri spuˇstˇen´ı aplikace dojde k zaveden´ı hlavn´ıho formul´aˇre, d´ale pak podformul´aˇre pro ovˇeˇren´ı uˇzivatelsk´eho jm´ena a hesla. Podformul´aˇr je pojmenov´an frmLogin.Vlastn´ı zaveden´ı zn´azorˇ nuje n´asleduj´ıc´ı k´od: Private Sub frmMDI_Load(ByVal sender As System.Object, ByVal e As 43
System.EventArgs) Handles MyBase.Load fpath = (System.Environment.CurrentDirectory) Dim pocet_login As Integer pocet_login = Me.PristupTableAdapter.get_count_id If pocet_login < 2 Then Dim MyFrun As New frmFirstRun frmFirstRun.MdiParent = Me frmFirstRun.WindowState = FormWindowState.Normal frmFirstRun.StartPosition = FormStartPosition.CenterScreen frmFirstRun.Show() Else nacti_frmLogin() End If End Sub Do promˇenn´e fpath je uloˇzena cesta k aplikaci. Promˇenn´a pocet_login obsahuje poˇcet vytvoˇren´ ych uˇzivatelsk´ ych u ´ˇct˚ u. Je-li v aplikaci definov´ano v´ıce neˇz jeden u ´ˇcet, uˇzivatel bude vyzv´an k pˇrihl´aˇsen´ı. Pokud nen´ı ˇza´dn´ yu ´ˇcet vytvoˇren, uˇzivatel bude vyzv´an k zaloˇzen´ı prvn´ıho a z´aroveˇ n administr´atorsk´eho u ´ˇctu. Formul´aˇr pro ovˇeˇren´ı uˇzivatelsk´eho jm´ena a hesla je pojmenov´an frmLogin. Formul´aˇr pro vytvoˇren´ı prvn´ıho uˇzivatelsk´eho jm´ena a hesla je pojmenov´an frmFirstRun. Posledn´ım krokem je zak´az´an´ı tlaˇc´ıtek vztahuj´ıc´ıch se k tisku. Tato tlaˇc´ıtka a poloˇzky menu jsou aktivn´ı pouze v pˇr´ıpadˇe aktivn´ıch formul´aˇr˚ u, kter´e pracuj´ı s uˇzivatelsk´ ymi daty. Hlavn´ı menu formul´aˇre frmMDI obsahuje n´asleduj´ıc´ı poloˇzky: • Soubor, • Zobrazit, • Nastaven´ı, • Pomoc. Poloˇzka Soubor obsahuje odkazy na vol´an´ı podformul´aˇr˚ u pro pr´aci s daty, odkaz na formul´aˇr tisku a ukonˇcen´ı aplikace. Tyto odkazy jsou realizov´any spuˇstˇen´ım n´asleduj´ıc´ıch procedur: -
Nov´e zaˇr´ızen´ı Zobrazit zaˇr´ızen´ı Scan s´ıtˇe Tisk Konec
Menu Novy zaznam Menu Evidence SkenS´ ıtˇ eToolStripMenuItem Click PrintToolStripMenuItem Click ExitToolStripMenuItem Click
44
Poloˇzka Zobrazit obsahuje n´asleduj´ıc´ı odkazy na procedury: - Panel n´astroj˚ u - Stavov´ y ˇr´adek
ToolBarToolStripMenuItem Click StatusBarToolStripMenuItem Click
Poloˇzka Nastaven´ ı obsahuje n´asleduj´ıc´ı odkazy na procedury: -
Zmˇena hesla Nov´ y uˇzivatel Zruˇsit uˇzivatele Spr´ava n´azv˚ u zaˇr´ızen´ı
OptionsToolStripMenuItem Click Nov´ yUˇ zivatelToolStripMenuItem Click Zruˇ sit´ Uˇ cetToolStripMenuItem Click Spr´ avaZaˇ rı ´zen´ ın´ azv˚ uToolStripMenuItem Click
Poloˇzka Pomoc obsahuje n´asleduj´ıc´ı odkazy na procedury: - Obsah - Index - O programu
ContentsToolStripMenuItem Click IndexToolStripMenuItem Click AboutToolStripMenuItem Click
Formul´aˇr d´ale obsahuje nˇekolik d˚ uleˇzit´ ych promˇenn´ ych. Tyto promˇenn´e jsou: -
Public Public Public Public Public Public Public Public Public Public Public Public Public Public Public Public Public Public Public
idx As Integer idy As Integer novez As Boolean novez ref As Boolean ws As Integer login As String fpath As String sip As String smac As String opravneni As Integer sname As String stag As String svr As String smodel As String sos As String passwd As String isadmin as boolean active frmSeznamZ active frmScan
-
index z´aznamu (evidence.id) index z´aznamu (opravy.id) test na nov´e zaˇr´ızen´ı pomocn´a promˇenn´a testu na nov´e z. pomocn´a promˇenn´a editace z´aznam˚ u aktu´aln´ı uˇzivatelsk´e jm´eno cesta k aplikaci uchov´an´ı IP adresy uchov´an´ı MAC adresy opr´avnˇen´ı pˇrihl´aˇsen´eho uˇzivatele uchov´an´ı jm´ena zaˇr´ızen´ı uchov´an´ı Service Tagu zaˇr´ızen´ı uchov´an´ı v´ yrobce zaˇr´ızen´ı uchov´an´ı modelu zaˇr´ızen´ı uchov´an´ı operaˇcn´ıho syst´emu uchov´an´ı administr´atorsk´eho hesla urˇcen´ı opr´avnˇen´ı pˇrihl´aˇsen´eho uˇzivatele pˇr´ıznak aktivn´ıho formul´aˇre frmSeznamZ pˇr´ıznak aktivn´ıho formul´aˇre frmScan
45
4.5.
Komunikace aplikace s datab´ az´ı
Aby mohla aplikace komunikovat s datab´az´ı, nadefinoval jsem dataset, kter´ y tvoˇr´ı komunikaˇcn´ı vrstvu mezi datab´az´ı samotnou a aplikac´ı. Tento dataset je pojmenov´an ESZDataSet. V datasetu jsou vytvoˇreny adapt´ery pro vˇsechny tabulky datab´aze plus vazby. Kaˇzd´ y adapt´er obsahuje nˇekolik uloˇzen´ ych procedur a dotaz˚ u, pomoc´ı kter´ ych prov´ad´ım v aplikaci n´avrat, uloˇzen´ı ˇci u ´pravu dat. Vzhledem k tomu, ˇze by bylo pˇr´ıliˇs rozs´ahl´e popisovat vˇsechny uloˇzen´e procedury a dotazy, pop´ıˇsi jen p´ar z nich. Pro n´azornost zvol´ım adapt´er k tabulce evidence. Jednou z nejd˚ uleˇzitˇejˇs´ıch procedur je uloˇzen´ı dat do tabulky. Tuto proceduru jsem nazval InsertQuery. Procedura InsertQuery reprezentuje SQL pˇr´ıkaz: INSERT INTO [dbo].[evidence] ([cislo], [typz], [ip], [mac], [pozn]) VALUES (@cislo, @typz, @ip, @mac, @pozn) Procedura je v tˇele aplikace vol´ana pomoc´ı pˇr´ıkazu: EvidenceTableAdapter.InsertQuery("hodnota","hodnota","hodnota", "hodnota","hodnota") Dalˇs´ı d˚ uleˇzitou procedurou je n´avrat id z´aznamu v tabulce evidence, kter´ y slouˇz´ı pro identifikaci z´aznam˚ u v ostatn´ıch tabulk´ach. Tuto proceduru jsem nazval sp_get_id_on_cislo. Procedura m´a jedin´ y parametr, kter´ ym je evidenˇcn´ı ˇc´ıslo z´aznamu. Reprezentuje datab´azov´ y dotaz: SELECT id FROM evidence where id = @param V tˇele programu je vol´ana pomoc´ı pˇr´ıkazu: EvidenceTableAdapter.sp_get_id_on_cislo("hodnota") Update dat v datab´azi prov´ad´ım pro kaˇzdou poloˇzku zvl´aˇst’, vˇzdy vzhledem k id z´aznamu. Pro n´azornost uvedu pˇr´ıklad zmˇeny hodnoty IP adresy. Proceduru jsem nazval UpdateIP. Tato procedura m´a dva parametry: • novou hodnotu, • id z´aznamu. Reprezentuje SQL pˇr´ıkaz: 46
UPDATE evidence SET ip = @param WHERE (id = @param1) V tˇele programu je vol´ana pomoc´ı pˇr´ıkazu: frmSeznamZ.EvidenceTableAdapter.UpdateIP("hodnota", "hodnota") Veˇsker´e zmˇeny v kaˇzd´em adapt´eru tabulky je tˇreba zapsat do datab´aze. K tomu slouˇz´ı pˇr´ıkaz: Me.EvidenceTableAdapter.Update()
4.6.
Seznam zaˇ r´ızen´ı
Pro zobrazen´ı jiˇz evidovan´ ych zaˇr´ızen´ı jsem vytvoˇril formul´aˇr pojmenovan´ y frmSeznamZ. Tento formul´aˇr obsahuje prvek Data Grid View . Tato komponenta slouˇz´ı k zobrazov´an´ı dat pomoc´ı mˇr´ıˇzky. Vzhledem k tomu, ˇze je tento zp˚ usob hromadn´eho zobrazen´ı z´aznam˚ u zaˇzit´ y, rozhodl jsem se jej pouˇz´ıt t´eˇz. Data Grid View jsem pojmenoval DgwSeznam. Pˇri zaveden´ı formul´aˇre je DgwSeznam naplnˇen daty z adapt´eru tabulky evidence. Toto naplnˇen´ı je zajiˇstˇeno procedurou napln_Dgw(). Tato procedura nejen ˇze pln´ı data z adapt´eru, ale z´aroveˇ n form´atuje vzhled Data Gridu . Dalˇs´ı uˇziteˇcnou procedurou je procedura s n´azvem najdi_radek. Tato procedura m´a na starost vracet spr´avn´ y ˇr´adek kurzoru pˇri pr˚ uchodem datagridem DgwSeznam. Procedura testuje ˇctyˇri stavy: • Stav 1: dojde-li k smaz´an´ı posledn´ıho ˇr´adku v tabulce evidence, je vytvoˇren jeden pr´azdn´ y, tak aby tabulka vˇzdy obsahovala alespoˇ n jeden ˇr´adek. • Stav 2: je-li pˇrid´an nov´ y z´aznam do tabulky, je kurzor pˇresunut na jeho pozici. • Stav 3: dojde-li k editaci st´avaj´ıc´ıho z´aznamu, kurzor z˚ ustane na sv´e p˚ uvodn´ı pozici. • Stav 4: je uplatnˇen pˇri smaz´an´ı posledn´ıho z´aznamu datagridu, kter´ y z´aroveˇ n nen´ı prvn´ım. Kurzor je posunut o jednu pozici nahoru tak, aby ukazoval na nov´ y posledn´ı z´aznam. Procedura pridej_prazdny_radek je vol´ana v pˇr´ıpadˇe, ˇze dojde k vymaz´an´ı posledn´ıho z´aznamu v tabulce evidence. Procedura vytvoˇr´ı nov´ y z´aznam, kter´ y obsahuje pˇredvyplnˇen´e hodnoty formou n´apovˇedy (napˇr´ıklad: Vloˇzte typ“, ” Vloˇzte IP“, . . . ). Podobnˇe je vol´ana dalˇs´ı procedura v pˇr´ıpadˇe odmaz´an´ı z´aznamu ” 47
z tabulek. Tato procedura se jmenuje vymaz_radek. Pˇri vol´an´ı procedury je nejprve zobrazen dotaz na uˇzivatele formou MessageBoxu , zda opravdu chce dan´ y ˇra´dek odstranit. Pokud ano, dojde k jeho odstranˇen´ı. Pˇri vlastn´ı obsluze datagridu jsem byl nucen vytvoˇrit nˇekolik n´asleduj´ıc´ıch procedur, kter´e jsou naps´any tak, aby uˇzivateli co moˇzn´a nejv´ıce zpˇr´ıjemnily pr´aci. Tˇemito procedurami jsou: • DgwSeznam CellContentDoubleClick1 • DgwSeznam KeyDown Obˇe tyto procedury zaznamen´avaj´ı akci uˇzivatele dvojklik“ nebo stisknut´ı ” kl´avesy Enter“ na zvolen´em z´aznamu. Jakmile dojde k nˇekter´e ze zm´ınˇen´ ych ” ud´alost´ı, aplikace otevˇre formul´aˇr pro editaci detail˚ u pro zvolen´ y z´aznam. Pro vytvoˇren´ı nov´eho z´aznamu jsem pouˇzil ud´alost kliknut´ı na tlaˇc´ıtko btnNove. Pomoc´ı t´eto ud´alosti dojde k nastaven´ı ukazatele nov´eho zaˇr´ızen´ı novez na hodnotu True. Pot´e je vol´an formul´aˇr pro zobrazen´ı detail˚ u zaˇr´ızen´ı s pr´azdn´ ymi prvky formul´aˇre pro zad´an´ı detail˚ u k nov´emu zaˇr´ızen´ı. Formul´aˇr frmSeznamZ obsahuje rovnˇeˇz textov´e pole pro vyhled´av´an´ı v datagridu. Toto textov´e pole jsem nazval txtBox_hledat a je obohaceno o ˇctyˇri RadioButtony, kter´e upˇresˇ nuj´ı krit´erium hled´an´ı. Hledat je moˇzn´e na z´akladˇe zvolen´eho parametru, kter´ ym m˚ uˇze b´ yt: • Invent´arn´ı ˇc´ıslo, • Typ zaˇr´ızen´ı, • IP adresa zaˇr´ızen´ı, • MAC adresa zaˇr´ızen´ı. Implicitnˇe je vybr´an RadioButton, reprezentuj´ıc´ı invent´arn´ı ˇc´ıslo. Hled´an´ı je postupn´e. To znamen´a, ˇze pˇr´ı zad´an´ı prvn´ıho p´ısmene do textov´eho pole dojde k v´ ybˇeru dat s tabulky evidence, kter´e obsahuj´ı tento znak ve zvolen´em detailu. Jakmile uˇzivatel zad´a dalˇs´ı znak, je v´ ybˇer z´ uˇzen na zaˇr´ızen´ı, obsahuj´ıc´ı oba tyto znaky. Zmˇena filtru je automaticky zobrazena pomoc´ı datagridu. O tuto funkci se star´a procedura txtBox_Hledat_TextChanged. Tˇelo procedury je vyobrazeno v pˇr´ıloze 2. Postupn´e vyhled´av´an´ı je definov´ano zmˇenou filtru datagridu, kter´ y je ovlivnˇen podm´ınkou SQL dotazu, pomoc´ı krit´eria where “promˇenn´a“ like “hodnota zadan´eho textu do txtBox Hledat“.
48
4.7.
Editace detail˚ u zaˇ r´ızen´ı, nov´ e zaˇ r´ızen´ı
Pro editaci zaˇr´ızen´ı a jeho detail˚ u jsem vytvoˇril formul´aˇr frmDetail. Tento formul´aˇr jsem se rozhodl pouˇz´ıvat i pro pˇrid´av´an´ı nov´eho zaˇr´ızen´ı. Rozd´ıl je v tom, ˇze pokud formul´aˇr slouˇz´ı pro zmˇenu detail˚ u, pak zobrazuje z´aznamy z jednotliv´ ych tabulek. Pokud je pouˇzit pro nov´e zaˇr´ızen´ı, jsou textov´a pole pr´azdn´a. To, jak m´a b´ yt formul´aˇr pouˇzit, definuje promˇenn´a novez. Pokud je promˇenn´a nastavena na hodnotu True, pak je formul´aˇr pouˇzit pro pˇrid´av´an´ı nov´ ych zaˇr´ızen´ı. Hodnota promˇenn´e novez je testov´ana vˇzdy pˇri naˇcten´ı formul´aˇre. V pˇr´ıpadˇe, ˇze je hodnota nastavena na True, pak je vol´ana procedura Nove_zarizeni. V opaˇcn´em pˇr´ıpadˇe jsou textov´a pole naplnˇena daty z ostatn´ıch tabulek na z´akladˇe id z´aznamu. O naplnˇen´ı se staraj´ı procedury: • nacti_data_evidence, • nacti_data_hw, • nacti_data_sw, • nacti_data_uzivatel, Procedura Nove_zarizeni vkl´ad´a do formul´aˇre jedin´ yu ´daj, kter´ ym je vypoˇc´ıt´ano poˇradov´e ˇc´ıslo (nebo l´epe ˇreˇceno, id z´aznamu). D´ale je vol´ana procedura pro vyˇciˇstˇen´ı formul´aˇre s n´azvem Vycisti_formular. Ta vymaˇze obsah vˇsech textov´ ych pol´ı. Posledn´ım krokem je test promˇenn´e sip. Pokud je v t´eto promˇenn´e hodnota, pak je nov´e zaˇr´ızen´ı vkl´ad´ano z formul´aˇre scanu s´ıtˇe. V tomto pˇr´ıpadˇe dojde k pˇrenesen´ı IP adresy, MAC adresy a v pˇr´ıpadˇe u ´spˇeˇsn´eho podrobn´eho scanu tak´e n´azev zaˇr´ızen´ı, DELL Service Tag, v´ yrobce, typ, operaˇcn´ı syst´em Windows a heslo administr´atora. Pˇri naˇc´ıt´an´ı formul´aˇre je testov´ano opr´avnˇen´ı uˇzivatele. Jedn´a-li se o administr´atorsk´ y pˇr´ıstup, uˇzivatel uvid´ı vˇsechny detaily. Pokud jde o omezen´ y pˇr´ıstup, uˇzivatel bude m´ıt skryty citliv´e informace o detailu zaˇr´ızen´ı. Tˇemito informacemi jsou: • licenˇcn´ı ˇc´ıslo, • heslo administr´atora, • heslo BIOS. Procedura uloz_data se star´a o uloˇzen´ı z´aznam˚ u s formul´aˇre do patˇriˇcn´ ych ’ tabulek. Na z´akladˇe testu hodnoty status, je bud to zvolen update st´avaj´ıc´ıch z´aznam˚ u, nebo insert nov´ ych. 49
O test IP adresy se star´a funkce prover_IP. Tato funkce m´a jedin´ y parametr, kter´ ym je pr´avˇe IP adresa v textov´em ˇretˇezci. Pokud je IP adresa ve spr´avn´em tvaru, pak funkce vrac´ı hodnotu True. Tuto funkci jsem navrhoval nˇekolikr´at. Pro provˇeˇren´ı MAC adresy jsem nadefinoval funkci prover_MAC. Tato funkce, stejnˇe jako pˇredchoz´ı, testuje ˇretˇezec, zda je ve spr´avn´em tvaru. Pokud ano, vrac´ı hodnotu True. Posledn´ı d˚ uleˇzitou procedurou je uloz_zaznam. Touto procedurou testuji pˇri ukl´ad´an´ı nov´eho z´aznamu existenci hodnot v datab´azi tak, aby nedoch´azelo k duplicitˇe. Pokud je bˇehem testu zjiˇstˇena potenci´aln´ı duplicita, uˇzivatel je upozornˇen spr´avou a nen´ı mu dovolenu z´aznam uloˇzit.
4.8.
Opravy a upgrade zaˇ r´ızen´ı
Formul´aˇr pro zad´an´ı poˇzadavku na opravu ˇci upgrade zaˇr´ızen´ı jsem pojmenoval frmOpravy. Formul´aˇr obsahuje Data Grid View pojmenovan´ y dgvOpravy. Tento Data Grid View je pˇripojen k adapt´eru tabulky opravy a zobrazuje jej´ı hodnoty. Tento formul´aˇr obsahuje n´asleduj´ıc´ı procedury: Public sub napln_Dgw() Proced˚ ura slouˇz´ı k naform´atov´an´ı dgvOpravy. Public Sub najdi_id() Tato procedura sloˇz´ı k nalezen´ı indexu id zaˇr´ızen´ı z tabulky evidence. Tato hodnota je pak uloˇzena do veˇrejn´e promˇenn´e idx. Pro zpˇr´ıjemnˇen´ı pr´ace s datagridem jsem vytvoˇril n´asleduj´ıc´ı procedury. Tˇemito procedurami jsou: dgvOpravy_CellContentDoubleClick dgvOpravy_KeyDown Obˇe tyto procedury reaguj´ı na akci uˇzivatele dvojklik“ nebo stisknut´ı kl´avesy ” Enter“. Jakmile dojde k nˇekter´e ze zm´ınˇen´ ych ud´alost´ı, aplikace otevˇre formul´aˇr ” pro editaci detail˚ u opravy ˇci upgrade zaˇr´ızen´ı. Pˇri naˇcten´ı formul´aˇre je testov´an poˇcet z´aznam˚ u v datagridu. Pokud se poˇcet rovn´a nule (zat´ım ˇza´dn´ y z´aznam nebyl vytvoˇren), je tlaˇc´ıtko btnUpravitZ zak´az´ano. Pro pˇrid´an´ı nov´eho z´aznamu o opravˇe ˇci poˇzadavku na upgrade jsem vytvoˇril pomocn´ y formul´aˇr f rmZavada. Tento formul´aˇr slouˇz´ı pouze pro zad´an´ı informac´ı o poˇzadavku uˇzivatelem. Formul´aˇr obsahuje mimo jin´e tˇri radioButtony. Tyto jsou pouˇzity na zmˇenu stavu poˇzadavku s n´asleduj´ıc´ımi pravidly: 50
• Je-li uˇzivatelem vkl´ad´an nov´ y poˇzadavek, je aktivn´ı pouze prvek rbZadan, dtPic1 (komponenta DateTimePicker) a textov´e pole txtPopisZ pro vloˇzen´ı popisu poˇzadavku. Ostatn´ı komponenty jsou zak´az´any. • Pokud uˇzivatel edituje jiˇz existuj´ıc´ı poˇzadavek, pak jsou komponenty v zm´ınˇen´e v pˇredchoz´ım bodˇe zak´az´any. Uˇzivatel sm´ı zvolit datum opravy ˇci zmˇeny poˇzadavku pomoc´ı dtPic2 (komponenta DateTimePicker), vloˇzit text zmˇeny do textov´eho pole txtPopisO a d´ale zvolit, zda se jedn´a o zmˇenu stavu poˇzadavku na Prob´ıh´ a (rbProbiha) ˇci na Uzavˇren (rbUnkoncen). Pokud je poˇzadavek uloˇzen se stavem Ukonˇcen, pak jej nebude moˇzn´e znovu editovat.
4.9.
Scanov´ an´ı s´ıtˇ e
Formul´aˇr pro scanov´an´ı s´ıtˇe jsem pojmenoval frmScan. Formul´aˇr obsahuje nˇekolik ovl´adac´ıch prvk˚ u. Nascanovan´e hodnoty jsou zobrazeny v Data Grid View pojmenovan´em dgwScan. dgwScan je pˇripojen k adapt´eru tabulky sken. Pˇri spuˇstˇen´ı formul´aˇre dojde vˇzdy ke smaz´an´ı vˇsech z´aznam˚ u z tabulky sken. Dalˇs´ım krokem pˇri spuˇstˇen´ı formul´aˇre je naform´atov´an´ı processBaru, pojmenovan´eho pBar. Formul´aˇr obsahuje nˇekolik funkc´ı, kter´e vyuˇz´ıvaj´ı veˇrejn´e API knihovny. Tˇemito funkcemi jsou: - Private Declare Function inet_addr Lib "wsock32.dll" (ByVal s As String) As Integer Funkce pˇrev´ad´ı IP adresu ve standardn´ım tvaru na datov´ y typ Integer, kter´ y odpov´ıd´a internetov´e adrese. - Private Declare Function SendARP Lib "iphlpapi.dll" (ByVal DestIP As Integer, ByVal SrcIP As Integer, ByRef pMACAddr As Integer, ByRef PhyAddrLen As Integer) As Integer Funkce [16] odes´ıl´a poˇzadavek na ARP tabulku a oˇcek´av´a MAC adresu na z´akladˇe dodan´e ip adresy. Funkce m´a ˇctyˇri parametry: • C´ılov´a IP adresa pˇremapovan´a na datov´ y typ Int pomoc´ı funkce inet_addr. • Zdrojov´a IP adresa, defaultnˇe dosazena hodnota nula. 51
• Ukazatel na pole promˇenn´ ych, obsahuj´ıc´ı c´ılovou MAC adresu. • Poˇcet bytu buferu, pomoc´ı kter´eho je MAC adresa doruˇcena. - Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef dst As Byte, ByRef src As Integer, ByVal bcount As Integer) Funkce kop´ıruje data z jednoho bloku pamˇeti do druh´eho. Hodnoty nov´eho bloku pamˇeti jsou pak cyklicky pˇrepoˇc´ıt´av´any do hexadecim´aln´ı soustavy - hodnota MAC adresy je pˇrev´adˇen´a do hexadecim´aln´ıho tvaru. A jedno pole, do kter´eho jsou ukl´ad´any hodnoty z ARP tabulky: - Private ippole(65536, 4) As Integer Aby bylo moˇzno scanovat, mus´ı b´ yt poˇc´ıtaˇc pˇripojen alespoˇ n jedn´ım s´ıt’ov´ ym adapt´erem k s´ıti, kter´a m´a b´ yt scanov´ana. Test, zda je poˇc´ıtaˇc pˇripojen alespoˇ n jedn´ım s´ıt’ov´ ym adapt´erem prov´ad´ı funkce test_pripojeni. Funkce z´ısk´av´a informace z poˇc´ıtaˇce pomoc´ı WMI. Pokud je poˇc´ıtaˇc pˇripojen k s´ıti, funkce vrac´ı hodnotu True. Vlastn´ı scanov´an´ı s´ıtˇe je zah´ajeno v okamˇziku stisku tlaˇc´ıtka btnSkenovat. V ud´alosti Click doch´az´ı k n´asleduj´ıc´ım krok˚ um: • V pˇr´ıpadˇe, ˇze DataGrid obsahuje jiˇz nˇejak´e hodnoty, je uˇzivatel dot´az´an, zda chce tyto hodnoty smazat. Pokud odpov´ı kladnˇe, dojde k vymaz´an´ı obsahu adapt´eru tabulky sken a t´ım i obsahu DataGridu . • Test zadan´ ych IP adres a zvolen´eho rozsahu. IP adresy jsou provˇeˇreny procedurou test_IP. Aby bylo scanov´an´ı pouˇziteln´e v praxi, vnesl jsem do scanu omezen´ı rozsahu, kter´ y m´a b´ yt scanov´an. Tento rozsah je roven maxim´aln´ımu poˇctu scanovan´ ych IP adres = 65536. Tedy 255 IP adres ve tˇr´ıdˇe D a 255 IP adres ve tˇr´ıdˇe C. Maxim´aln´ı rozsah scanov´an´ı, kter´e je moˇzn´e prov´est v jednom kroku je: X.Y.1.1 − X.Y.255.255, kdeX ∈ (0, 255); Y ∈ (0, 255) • Dalˇs´ım krokem je pˇr´ıprava scanu dan´eho rozsahu IP adres pomoc´ı procedury priprava_skenu. • Posledn´ı krok testuje zvolenou metodu scanu. Tou m˚ uˇze b´ yt bud’to: - rychl´ y sken,
52
- podrobn´ y sken. Je-li zvolen rychl´ y scan, dojde k zah´ajen´ı scanov´an´ı. Je-li zvolen podrobn´ y scan, uˇzivatel je vyzv´an k zad´an´ı administr´atorsk´eho jm´ena a hesla ke scanovan´emu zaˇr´ızen´ı. Jm´eno a heslo je d˚ uleˇzit´ ym prvkem pro pˇr´ıstup ke vzd´alen´ ym informac´ım pomoc´ı WMI. • Pot´e je zah´ajen vlastn´ı scan. Procedura test_IP m´a osm parametr˚ u, do kter´ ych jsou vkl´ad´any jednotliv´e ˇc´ıseln´e hodnoty IP adres, kter´e reprezentuj´ı rozsah pro scanov´an´ı. Tato procedura provˇeˇruje, zda je rozsah zad´an spr´avnˇe a zda jsou vlastn´ı IP adresy ve spr´avn´em tvaru. Pokud ano, procedura vrac´ı hodnotu True. V pˇr´ıpravˇe scanu doch´az´ı ke kalkulaci poˇctu IP adres, kter´e maj´ı b´ yt scanov´any. Toto jsem se rozhodl ˇreˇsit pomoc´ı ˇctyˇrrozmˇern´eho pole. Kaˇzd´ y jeden sloupec reprezentuje pozici ˇc´ısla v poˇrad´ı vlastn´ı IP adresy:
Obr´azek 26. zn´azornˇen´ı pole ippole Jakmile je kalkulace poˇctu IP adres hotov´a, procedura priprava_skenu vrac´ı ˇc´ıslo, reprezentuj´ıc´ı poˇcet IP adres, kter´e je tˇreba scanovat. Procedura sken akceptuje jedinou promˇenou a tou je poˇcet IP adres, kter´e je tˇreba oscanovat. Do promˇenn´e addr jsou postupnˇe naˇc´ıt´any jednotliv´e IP adresy sloˇzen´e z poloˇzek pole ipppole. Takov´ato adresa je pot´e testov´ana na odezvu pomoc´ı protokolu ICMP pˇr´ıkazem: My.Computer.Network.Ping(addr) Je-li dan´a IP adresa aktivn´ı a odeˇsle odpovˇed’, je vol´ana funkce vrat_mac. Tato funkce proch´az´ı z´aznamy v ARP tabulce lok´aln´ıho poˇc´ıtaˇce. Pokud v n´ı najde z´aznam MAC adresy pro konkr´etn´ı IP adresu, n´avratovou hodnotou t´eto funkce je MAC adresa. Dalˇs´ı volanou procedurou je vrat_host_name. Funkce vrac´ı jm´eno zaˇr´ızen´ı, pomoc´ı funkce:
53
System.Net.Dns.GetHostEntry Zvol´ı-li uˇzivatel podrobn´ y scan a zad´a do formul´aˇre administr´atorsk´e jm´eno a heslo, je vol´ana funkce wmi_info. Tato funkce z´ısk´av´a pomoc´ı administr´atorsk´eho u ´ˇctu informace ze vzd´alen´eho poˇc´ıtaˇce pomoc´ı WMI. Tˇelo funkce je vyobrazeno v pˇr´ıloze 5. Funkce akceptuje ˇctyˇri parametry: • Jm´eno administr´atorsk´eho u ´ˇctu (u). • Heslo administr´atorsk´eho u ´ˇctu (p). • Dotaz, kter´ y m´a b´ yt spuˇstˇen na vzd´alen´em poˇc´ıtaˇci (query). • Hodnota, kter´a m´a b´ yt vr´acena zpˇet (prop). Vlastn´ı pˇripojen´ı na vzd´alen´ y poˇc´ıtaˇc ManagementScope, kter´a akceptuje dva parametry:
je
realizov´ano
pomoc´ı
• remotePath & "\Root\cimv2, • co, Parametr remotePath & "\Root\cimv2 obsahuje IP adresu vzd´alen´eho poˇc´ıtaˇce, plus tˇr´ıdu, ze kter´e budou informace z´ısk´any. Pomoc´ı parametru co jsou vzd´alen´emu poˇc´ıtaˇci pˇred´any pˇr´ıstupov´e informace pro administr´atorsk´ y pˇr´ıstup. Promˇenn´a query obsahuje dotaz, kter´ y m´a formu standardn´ıho SQL dotazu do datab´aze. Napˇr´ıklad dotaz pro zjiˇstˇen´ı DELL Service Tagu vypad´a n´asledovnˇe: SELECT * FROM Win32_BIOS T´ım jsem z´ıskal informace ze vzd´alen´eho poˇc´ıtaˇce. Tˇr´ıda Win32_BIOS obsahuje r˚ uzn´e informace, nejen DELL Service Tag. Proto je nutn´e v´ ystup z t´eto tˇr´ıdy filtrovat na z´akladˇe poˇzadovan´eho paramentu. V pˇr´ıpadˇe DELL Service Tagu je to parametr SerialNumber. Pokud v´ ystup dotazovan´e tˇr´ıdy obsahuje tento parametr, je jeho obsah vr´acen funkc´ı zpˇet. Pro pˇrehlednost jeˇstˇe shrnu seznam dotaz˚ u a jejich parametr˚ u, kter´e jsem pouˇzil pro z´ısk´an´ı informac´ı ze vzd´alen´eho poˇc´ıtaˇce: -
DELL ST Oper. Syst´em Model PC V´ yrobce
SELECT SELECT SELECT SELECT
* * * *
FROM FROM FROM FROM
Win32 Win32 Win32 Win32
54
BIOS OperatingSystem ComputerSystem ComputerSystem
SerialNumber Caption Model Manufacturer
Bˇehem scanu doch´az´ı k testu IP adresy a MAC adresy na to, zda jsou jiˇz v datab´azi uloˇzeny. Pokud ano, m˚ uˇze nastat jeden z pˇr´ıpad˚ u: • MAC uloˇzena (s jinou IP neˇz je nascanovan´a hodnota) • IP uloˇzena (s jinou MAC neˇz je nascanovan´a hodnota) • Zaˇr´ızen´ı uloˇzeno (IP a MAC adresa ze scanu je stejn´a jako uloˇzen´e hodnoty) • V opaˇcn´em pˇr´ıpadˇe je zaˇr´ızen´e oznaˇceno Nezn´ am´e zaˇr´ızen´ı. Pˇri tvorbˇe tohoto formul´aˇre a vlastn´ıho scanu jsem narazil na probl´em pˇredˇcasn´eho ukonˇcen´ı scanu. Proceduru scanu jsem volal v r´amci jednoho vl´akna. T´ım jsem se dostal do stadia, kdy aplikace zamrzala, a bˇeh programu ˇcekal na dokonˇcen´ı cyklu. Vlastn´ı spuˇstˇen´ı scanu jsem musel pˇrepsat tak, aby bylo spuˇstˇeno v nov´em vl´aknˇe. T´ım jsem doc´ılil toho, ˇze process bar funguje korektnˇe a scan je moˇzn´e kdykoliv zastavit.
4.10.
Pˇ rid´ an´ı nov´ eho uˇ zivatele
Pro pˇrid´an´ı nov´eho uˇzivatel jsem vytvoˇril formul´aˇr frmNovyU. Tento formul´aˇr obsahuje textBoxy pro zad´an´ı uˇzivatelsk´eho jm´ena a hesla, potvrzen´ı hesla. D´ale checkbox pro moˇznost volby opr´avnˇen´ı. Pˇri ud´alost´ı Click tlaˇc´ıtka OK dojde k ovˇeˇren´ı vyplnˇen´ı uˇzivatelsk´eho jm´ena a hesla, zda je heslo a potvrzen´ı hesla shodn´e. D´ale pak to, zda uˇzivatelsk´e jm´eno jiˇz neexistuje. Jsou-li splnˇeny vˇsechny podm´ınky, nov´ y uˇzivatel je zaloˇzen. Na podobn´em principu pracuj´ı dalˇs´ı dva formul´aˇre umoˇzn ˇuj´ıc´ı: • Zruˇsit uˇzivatelsk´ yu ´ˇcet (pouze v pˇr´ıpadˇe pln´eho pˇr´ıstupu k aplikaci) pomoc´ı formul´aˇre frmZucet. • Zmˇena hesla aktu´aln´ıho uˇzivatele pomoc´ı formul´aˇre frmHeslo.
4.11.
Spr´ ava n´ azv˚ u zaˇ r´ızen´ı
Pro zv´ yˇsen´ı pohodl´ı pˇri pr´aci s aplikac´ı jsem vytvoˇril jednoduch´ y formul´aˇr pro vkl´ad´an´ı a evidenci n´azvu zaˇr´ızen´ı. Tento formul´aˇr jsem pojmenoval frmSpravaz. Formul´aˇr obsahuje jeden textbox(txtTypz) pro zad´an´ı nov´eho n´azvu zaˇr´ızen´ı, tlaˇc´ıtka pro pˇrid´an´ı (btnPridat) a odebr´an´ı (btnSmaz) n´azvu zaˇr´ızen´ı a jeden listbox (lblTyp), ve kter´em jsou zadan´e n´azvy zobrazeny. Tyto n´azvy jsou pak nab´ızeny uˇzivateli pˇri vkl´ad´an´ı zaˇr´ızen´ı ˇci u ´pravˇe detail˚ u st´avaj´ıc´ıho zaˇr´ızen´ı. Formul´aˇr obsahuje dvˇe procedury: 55
• pridej_z (testuje duplicitu, vkl´ad´a zaˇr´ızen´ı do adapt´eru tabulky zarizeni), • smaz_z (maˇze zaˇr´ızen´ı z adapt´eru tabulky zarizeni, kter´e je zvoleno v listboxu).
4.12.
Tisk
Pro tisk jsem si vytvoˇril dva formul´aˇre frmTisk_evidence a frmTisk_sken. Oba formul´aˇre jsou podobn´e. Liˇs´ı se pouze komponentou zvanou rptViewer. Tato komponenta vol´a vlastn´ı tˇelo reportu – formul´aˇr reportu, jehoˇz jednotliv´e poloˇzky jsou napojeny pˇr´ımo na datab´azi. Komponenta rptViewer je vol´a v n´asleduj´ıc´ıch pˇr´ıpadech tyto formul´aˇre repot˚ u: - frmTisk_evidence - frmTisk_sken
rptSeznamZ.rdlc rptSken.rdlc
Bohuˇzel se mi nepodaˇrilo mˇenit vol´an´ı formul´aˇre report˚ u za bˇehu programu. Proto jsem se rozhodl vytvoˇrit dva t´emˇeˇr totoˇzn´e formul´aˇre, kdy kaˇzd´ y vol´a pouze sv˚ uj formul´aˇr report˚ u. Vlastn´ı tisk je moˇzn´ y pouze tehdy, je-li aktivn´ı formul´aˇr obsahuj´ıc´ı seznam dat. V tomto pˇr´ıpadˇe je tisk moˇzn´ y tehdy, je-li aktivn´ı jeden ze dvou formul´aˇr˚ u: • Seznam zaˇr´ızen´ı. • Scan s´ıtˇe. Pokud je z jednoho z tˇechto formul´aˇr˚ u zvolena moˇznost tisku, rozhoduji na z´akladˇe spuˇstˇen´eho formul´aˇre v proceduˇre PrintToolStripMenuItem, kter´ y report m´a b´at zobrazen. Uk´azka formul´aˇre report˚ u je vyobrazena v pˇr´ıloze 3.
4.13.
N´ apovˇ eda
N´apovˇedu jsem tvoˇril v aplikaci WinCHM. N´apovˇeda je rozdˇelena tematicky, tak aby popisovala jednotliv´e formul´aˇre a ˇc´asti aplikace. Pomoc´ı aplikace jsem pak zkompiloval soubor n´apovˇedy, kter´ y jsem nazval esz.chm a pˇripojil jej k projektu.
56
4.14.
Instal´ ator
Pro tvorbu instal´atoru jsem se rozhodl pouˇz´ıt aplikaci Inno Setup 5. Vybral jsem si tuto aplikaci zejm´ena proto, ˇze obsahuje ˇceskou sadu instalaˇcn´ıch formul´aˇr˚ u. Dalˇs´ım d˚ uvodem je jednoduch´a tvorba instalaˇcn´ıch posloupnost´ı. V´ ypis konfiguraˇcn´ıho souboru instal´atoru je vyobrazen v pˇr´ıloze 4. Konfigurace instal´atoru m´a nˇekolik sekc´ı, kter´e bych v n´asleduj´ıc´ım textu rozvedl: • Sekce [Setup] slouˇz´ı k definici jm´ena instal´atoru, n´azvu formul´aˇr˚ u instal´atoru a jm´ena ikony, kter´a bude pouˇzita pro odinstalov´an´ı aplikace. • Sekce [Code] slouˇz´ı k zaveden´ı k´odu, kter´ y bˇehem instalace aplikace detekuje, zda je v operaˇcn´ım syst´emu jiˇz nainstalov´an Microsoft SQL server. Tato detekce prob´ıh´a vyˇcten´ım identifikaˇcn´ı hodnoty z registru operaˇcn´ıho syst´emu. Pokud nen´ı detekov´ana pˇr´ıtomnost SQL server, je automaticky nainstalov´an. • Sekce [Language] slouˇz´ı k zaveden´ı v´ıcejazyˇcn´e funkce bˇehem instalace. Pomoc´ı tohoto parametru bylo moˇzn´e vytvoˇrit instal´ator v ˇcesk´em jazyce. • Sekce [CustomMessages] slouˇz´ı pro definici dotaz˚ u na uˇzivatele bˇehem instalace. • Sekce [Files] slouˇz´ı k v´ ypisu vˇsech soubor˚ u aplikace, kter´e maj´ı b´ yt zkop´ırov´any a kam. • Sekce [Icons] slouˇz´ı k pˇriˇrazen´ı ikon spustiteln´emu souboru jak na plochu, tak do nab´ıdky Start a z´astupci pro odinstalov´an´ı aplikace v nab´ıdce Start. • Sekce [Task] slouˇz´ı k vyhodnocen´ı volby uˇzivatele pˇri instalaci na dotaz, zda maj´ı b´ yt vytvoˇreny ikony na ploˇse a v nab´ıdce Start. • Sekce [Run] slouˇz´ı ke spuˇstˇen´ı instalace Microsoft SQL serveru. • Sekce [UninstallRun] slouˇz´ı ke spuˇstˇen´ı d´avkov´eho souboru delrp.bat, kter´ y odstran´ı instalaˇcn´ı soubory Microsoft report vieweru.
57
Z´ avˇ er C´ılem pr´ace bylo vytvoˇren´ı aplikace pro evidenci zaˇr´ızen´ı v lok´aln´ı s´ıti zaloˇzen´e na TCP/IP. Aplikace mˇela splˇ novat n´asleduj´ıc´ı krit´eria: • Evidence stanic, tisk´aren, server˚ u apod. podle IP adres a MAC adres. • Scanov´an´ı s´ıtˇe. • Tvorba sestav. • Zabezpeˇcen´ y pˇr´ıstup k aplikaci. • Program´atorsk´a dokumentace. • Uˇzivatelsk´a dokumentace. Pr´aci jsem pˇri tvorbˇe aplikace rozdˇelil do ˇctyˇr hlavn´ıch kapitol, kter´e popisuj´ı zm´ınˇenou problematiku. Rozdˇelen´ı kapitol jsem zvolil podle tematick´eho zamˇeˇren´ı jednotliv´ ych ˇc´ast´ı pr´ace n´asledovnˇe: 1. Evidence zaˇr´ızen´ı. 2. Scanov´an´ı s´ıtˇe. 3. Uˇzivatelsk´a dokumentace. 4. Program´atorsk´a dokumentace. V prvn´ı kapitole jsem rozvedl pojem evidence zaˇr´ızen´ı a jej´ı principy. Evidenci jsem rozdˇelil dle rozs´ahlosti lok´aln´ıch s´ıt´ı na mal´e, stˇredn´ı a velk´e spoleˇcnosti. D´ale jsem vysvˇetlil vztah mezi evidenˇcn´ımi ˇc´ısly zaˇr´ızen´ı, MAC adresou a IP adresou. V druh´e kapitole jsem rozvedl teorii scanov´an´ı IP a MAC adres. D´ale jsem popsal a vysvˇetlil zp˚ usob pˇr´ıstupu k informac´ım zaˇr´ızen´ı pomoc´ı sluˇzby WMI, kter´a se v pr˚ ubˇehu v´ yvoje aplikace stala kl´ıˇcovou pro podrobn´e scanov´an´ı s´ıtˇe. Tˇret´ı kapitola obsahuje uˇzivatelskou dokumentaci. Dokumentace je dostateˇcnˇe podrobn´a a zamˇeˇren´a na detailn´ı popis instalace, pr´ace s aplikac´ı a v pˇr´ıpadˇe nutnosti i jej´ı odinstalace. V posledn´ı kapitole jsem popsal vlastn´ı v´ yvoj aplikace. Pˇri vlastn´ı tvorbˇe aplikace jsem ˇcerpal s informac´ı nabit´ ych pˇri studiu a to ve vˇsech f´az´ıch v´ yvoje. V anal´ yze jsem musel definovat poˇzadavky, zohlednit princip funkce, technologi´ı a znalost v´ yvojov´ ych prostˇred´ı. Pot´e jsem vytvoˇril n´avrh aplikace, jej´ı vzhled a poˇzadovanou funkcionalitu. Bˇehem k´odov´an´ı jsem se nˇekolikr´at ujistil, jak je d˚ uleˇzit´a spr´avn´a anal´ yza problematiky. Testov´an´ı jsem prov´adˇel postupnˇe, dle dokonˇcen´ı jednotliv´ ych celk˚ u. Do procesu testov´an´ı jsem pr˚ ubˇeˇznˇe zahrnoval i re´aln´e subˇekty, kter´e budou aplikaci vyuˇz´ıvat. Tito re´aln´ı testeˇri byli velk´ ym pˇr´ınosem pro v´ yvoj aplikace, at’ uˇz co se t´ yˇce odladˇen´ı chyb, tak i upˇresnˇen´ı jednotliv´ ych poˇzadavk˚ u na funkcionalitu a komfort pˇri pr´aci s aplikac´ı. Aplikace je pˇrev´aˇznˇe urˇcena pro mal´e a stˇredn´ı podniky, se zamˇeˇren´ı na technologie spoleˇcnosti DELL a operaˇcn´ı syst´em Windows.
58
Reference [1] Bigelow, S. J. Mistrovstv´ı v poˇc´ıtaˇcov´ych s´ıt´ıch. 1. vyd. Praha: Computer Press, 2004. 992 s. ISBN 80-251-0178-9. [2] Dost´alek, L., Kabelov´a, A. Velk´y pr˚ uvodce protokoly TCP/IP a syst´emem DNS. 1. vyd. Praha: Computer Press, 1999. 418 s. ISBN 80-7226-193-2. [3] Kopka, M., Kudˇelka, M. Poˇc´ıtaˇcov´e s´ıtˇe. 1. vyd. Olomouc: Univerzita Palack´eho, 1996. 169 s. ISBN 80-85806-45-2. [4] MAC adresa URL:
[cit. 2010-10-11] [5] DHCP-1-instalace a konfigurace serveru URL: [cit. 2010-07-10] [6] Linuxov´e DMZ – I URL: [cit. 2010-08-15] [7] Nagios Documentation [cit.2010-08-09]
URL:
[8] Zabbix 1.6 URL: [cit.2010-17-11] [9] Zabbix URL: [cit.2010-11-11] [10] ALTIRIS AND SYMANTEC URL: [cit 2010-05-10] [11] Fyzick´a a linkov´a vrstva ISO/OSI URL: [cit.2010-15-09] [12] S´ıt’ov´e protokoly URL: [cit.2010-05-10] [13] ARP URL: [cit.2010-09-10] [14] Intel vPro technology Reference guide URL: [cit.2010-12-11] [15] Altiris URL: [cit.2010-15-10] [16] SendARP Function us/library/aa366358
URL:
59
[17] Sluˇzba WMI – pˇrehled cz/library/cc736575
URL:
[18] Windows Management Instrumentation URL: [cit.2011-03-04]
60
Pˇ r´ıloha 1 - pˇ r´ıklad konfiguraˇ cn´ıho souboru sluˇ zby DHCP authoritative; ddns-update-style ad-hoc; default-lease-time 7200; max-lease-time 86400; option routers 10.42.115.250; option broadcast-address 10.42.115.255; deny unknown-clients; subnet 10.42.115.0 netmask 255.255.255.0 { range 10.42.115.1 10.42.115.100; } # Ucetni usek host P167 { hardware ethernet 00:90:05:fe:77:7f; fixed-address 10.42.115.67; } host P168 { hardware ethernet 00:90:05:fe:79:2a; fixed-address 10.42.115.68; } # Skad host P170 { hardware ethernet 00:90:05:fe:79:e3; fixed-address 10.42.115.70; } host P172 { hardware ethernet 00:90:05:fe:76:ad; fixed-address 10.42.115.72; } host P173 { hardware ethernet 00:90:05:fe:79:9d; fixed-address 10.42.115.73; }
61
Pˇ r´ıloha 2 - txtBox Hledat T extChanged - Tˇ elo procedury
Private Sub txtBox_Hledat_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBox_Hledat.TextChanged Try Dim myDataView As New DataView(ESZDataSet.evidence) Dim filtStr As String filtStr = Me.txtBox_Hledat.Text DgwSeznam.DataSource = myDataView If rbInvCis.Checked() Then myDataView.RowFilter = "cislo like ’" & filtStr & "%’" If txtBox_Hledat.Text.Length = 0 Then Me.EvidenceTableAdapter.Fill(ESZDataSet.evidence) End If ElseIf rbTypZ.Checked() Then myDataView.RowFilter = "typz like ’" & filtStr & "%’" If txtBox_Hledat.Text.Length = 0 Then Me.EvidenceTableAdapter.Fill(ESZDataSet.evidence) End If ElseIf rbIP.Checked() Then myDataView.RowFilter = "ip like ’" & filtStr & "%’" If txtBox_Hledat.Text.Length = 0 Then Me.EvidenceTableAdapter.Fill(ESZDataSet.evidence) End If ElseIf rbMAC.Checked() Then myDataView.RowFilter = "mac like ’" & filtStr & "%’" If txtBox_Hledat.Text.Length = 0 Then Me.EvidenceTableAdapter.Fill(ESZDataSet.evidence) End If End If Catch MsgBox("Vyhledavani selhalo. Restarujte pros´ ım aplikaci", _ MsgBoxStyle.Critical, "Pˇ ripojen´ ı k datab´ azi selhalo") End Try End Sub
62
Pˇ r´ıloha 3 - Uk´ azka formul´ aˇ re report˚ u
Obr´azek 27. Uk´azka formul´aˇre repot˚ u
63
Pˇ r´ıloha 4 - Uk´ azka formul´ aˇ re report˚ u ;This is setup script of ESZ application [Setup] AppName={cm:MyAppName} AppId=ESZ AppVerName={cm:MyAppVerName,1.0} DefaultDirName={pf}\{cm:MyAppName} DefaultGroupName={cm:MyAppName} UninstallDisplayIcon={app}\Uninstall.ico VersionInfoDescription=Evidence s´ ıt’ov´ ych zaˇ rı ´zen´ ı Setup VersionInfoProductName=Evidence s´ ıt’ov´ ych zaˇ rı ´zen´ ı OutputDir=userdocs:Inno Setup Examples Output [Code] Function SQLKontrol:Boolean; begin if ((RegValueExists(HKEY_LOCAL_MACHINE,’ SOFTWARE\Microsoft\Microsoft SQL Server’,’InstalledInstances’))) then Result:=False else Result:=True; end; [Languages] Name: cz; MessagesFile: "compiler:Languages\czech.isl" [Messages] cz.BeveledLabel=Czech [CustomMessages] cz.MyDescription=Vytvoˇ rit ikonu na ploˇ se? cz.MyAppName=Evidence s´ ıt’ov´ ych zaˇ rı ´zen´ ı cz.MyAppVerName=Evidence s´ ıt’ov´ ych zaˇ r´ ızen´ ı %1 [Files] Source: "Microsoft.ReportViewer.Common.dll"; DestDir: "{app}"; Languages:cz Source: "Microsoft.ReportViewer.WinForms.dll"; DestDir: "{app}"; Languages: cz Source: "esz.exe"; DestDir: "{app}"; Languages: cz Source: "esz.chm"; DestDir: "{app}"; Languages: cz Source: "esz.ico"; DestDir: "{app}"; Languages: cz Source: "Uninstall.ico"; DestDir: "{app}"; Languages: cz Source: "ESZ.mdf"; DestDir: "{app}"; Languages: cz Source: "ESZ_log.ldf"; DestDir: "{app}"; Languages: cz 64
Source: "esz.pdb"; DestDir: "{app}"; Languages: cz Source: "rptSeznamZ.rdlc"; DestDir: "{app}"; Languages: cz Source: "rptSken.rdlc"; DestDir: "{app}"; Languages: cz Source: "SQLEXPR32.EXE"; DestDir: "{app}"; Languages: cz Source: "ReportViewer.exe"; DestDir: "{app}"; Languages: cz Source: "delrp.bat"; DestDir: "{app}"; Languages: cz [Icons] Name: "{group}\{cm:MyAppName}"; Filename: " {app}\esz.exe"; IconFilename:"{app}\esz.ico" Name: "{group}\{cm:UninstallProgram,{cm:MyAppName}}"; Filename: "{uninstallexe}" Name: "{userdesktop}\Evidence s´ ıt’ov´ ych zaˇ r´ ızen´ ı"; Filename: "{app}\esz.exe"; Tasks: desktopicon; IconFilename:"{app}\esz.ico" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescrip-tion: "{cm:AdditionalIcons}"[Run] Filename: "{app}\SQLEXPR32.EXE"; Parameters: "-q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename=SQLEXPRESS" ;StatusMsg: SQL Server Setup;Check:SQLKontrol Filename:"{app}\ReportViewer.exe"; Parameters: "/Q /T:C:\ ReportViewer /C"Filename:"C:\ReportViewer\install.exe"; Parameters: "/q"[UninstallRun] Filename: "{app}\delrp.bat"
65
Obsah pˇ riloˇ zen´ eho CD K pr´aci je pˇriloˇzeno CD, kter´e obsahuje materi´al t´ ykaj´ıc´ı se pr´ace samotn´e. ˇ en´ı adres´aˇr˚ Clenˇ u je n´asleduj´ıc´ı: bin/ Obsahuje instal´ator aplikace. D´ale pak kompletn´ı adres´aˇrovou strukturu aplikace (v ZIP arch´ıvu) pro spuˇstˇen´ı bez nutnosti instalace. Tento adres´aˇr obsahuje z´aroveˇ n vˇsechny ostatn´ı aplikace potˇrebn´e pro bezprobl´emov´e spuˇstˇen´ı programu. doc/ Dokumentace pr´ace ve form´atu PDF, vytvoˇren´a dle stylu PˇrF pro diplomov´e pr´ace, vˇcetnˇe vˇsech pˇr´ıloh, a vˇsechny soubory nutn´e pro bezprobl´emov´e vygenerov´an´ı PDF souboru dokumentace (v ZIP archivu), tj. zdrojov´ y text dokumentace, vloˇzen´e obr´azky, apod. src/ Kompletn´ı zdrojov´e texty programu Evidence s´ıt’ov´ ych zaˇr´ızen´ı se vˇsemi potˇreb-n´ ymi (pˇrevzat´ ymi) zdrojov´ ymi texty, knihovnami a dalˇs´ımi soubory pro bezpro-bl´emov´e vytvoˇren´ı spustiteln´ ych verz´ı programu (v ZIP archivu). readme.txt Instrukce pro instalaci a spuˇstˇen´ı programu Evidence s´ıt’ov´ ych zaˇr´ızen´ı, vˇcetnˇe po-ˇzadavk˚ u pro jeho provoz. Nav´ıc CD/DVD obsahuje: data/ Uk´azkov´a a testovac´ı data pouˇzit´a v pr´aci a pro potˇreby obhajoby pr´ace. install/ Instal´atory aplikac´ı, knihoven a jin´ ych soubor˚ u nutn´ ych pro provoz programu, kter´e nejsou standardn´ı souˇc´ast´ı operaˇcn´ıho syst´emu. U veˇsker´ ych odjinud pˇrevzat´ ych materi´al˚ u obsaˇzen´ ych na CD/DVD jejich zahrnut´ı dovoluj´ı podm´ınky pro jejich ˇs´ıˇren´ı nebo pˇriloˇzen´ y souhlas drˇzitele copyrightu. Pro materi´aly, u kter´ ych toto nen´ı splnˇeno, je uveden jejich zdroj (webov´a adresa) v textu dokumentace pr´ace nebo v souboru readme.txt.
66