50
EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE MOODULI VIRTUAALLABORITE LAHENDUSE LOOMINE EESTI INFOTEHNOLOOGIA KOLLEDŽI NÄITEL Diplomitöö INFOTEHNOLOOGIA SÜSTEEMIDE ADMINISTREERIMISE ÕPPEKAVA Juhendaja M. Ernits Tallinn 2009

EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

EESTI INFOTEHNOLOOGIA KOLLEDŽ

Aivar Guitar

KÜBERKAITSE MOODULI VIRTUAALLABORITE

LAHENDUSE LOOMINE EESTI

INFOTEHNOLOOGIA KOLLEDŽI NÄITEL

Diplomitöö

INFOTEHNOLOOGIA SÜSTEEMIDE ADMINISTREERIMISE ÕPPEKAVA

Juhendaja M. Ernits

Tallinn 2009

Page 2: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

AUTORIDEKLARATSIOON

Deklareerin, et käesolev diplomitöö, mis on minu iseseisva töö tulemus, on esitatud

Eesti Infotehnoloogia Kolledžile lõpudiplomi taotlemiseks Infosüsteemide

administreerimise erialal. Diplomitöö alusel ei ole varem eriala lõpudiplomit taotletud.

Autor A. Guitar……………………….

(allkiri ja kuupäev)

Töö vastab kehtivatele nõuetele

Juhendaja M. Ernits…………………………

(allkiri ja kuupäev)

2

Page 3: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Sisukord

Lühendite ja tähiste loetelu.........................................................................................................4

Sissejuhatus.................................................................................................................................7

Lõputöö eesmärk....................................................................................................................8

Analüüs..................................................................................................................................... 11

Analoogsed lahendused........................................................................................................11

Virtualiseerimine..................................................................................................................13

Pilvarvutus........................................................................................................................... 17

Nõuded labori virtualiseerimistehnoloogiale....................................................................... 19

Virtualiseerimistehnoloogia valik........................................................................................ 21

Eucalyptuse tutvustus............................................................................................................... 23

Tehniline teostus....................................................................................................................... 25

Installeerimine......................................................................................................................26

Pilve haldus ja varundamine................................................................................................ 27

Tõmmiste ettevalmistamine................................................................................................. 29

Näidisrakenduste loomine....................................................................................................31

Prototüübi piloteerimine........................................................................................................... 34

Edasised tööd............................................................................................................................ 35

Kokkuvõte.................................................................................................................................36

Summary...................................................................................................................................38

Kasutatud kirjanduse loetelu.....................................................................................................40

Lisad......................................................................................................................................... 42

Lisa 1 – upload-bundle.sh.................................................................................................... 42

Lisa 2 – delete-bundle.sh..................................................................................................... 44

Lisa 3 – get_state.py.............................................................................................................45

Lisa 4 – Näidisrakendus RoR baasil.................................................................................... 46

index.html.erb..................................................................................................................46

start.html.erb....................................................................................................................47

status.html.erb................................................................................................................. 48

stop.html.erb....................................................................................................................49

restart.htm.erb..................................................................................................................50

3

Page 4: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Lühendite ja tähiste loetelu

BalticCloud

Eucalyptusel baseeruva pilvarvutus teenuse pakkuja

CC

Cluste Controller, Eucalyptuse pilve osa, tegeleb NCde haldamisega

CERT

Computer Emergency Response Team, RIA infoturbeintsidentide käsitlemise osakond

CLC

Cloud Controller, Eucalyptuse pilve osa, tegeleb CCde haldamisega

DHCP

Dynamic Host Configuration Protocol, protokoll võrguaadressi saamiseks

EC2

Elastic Compute Cloud, firma Amazon pilvarvutuse teenus

Eucalyptus

Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems,

avatud lähtekoodiga tarkvara, teostamaks pilvarvutust arvutite kogumil

IAAS

Infrastructure as a Service, infrastruktuur kui teenus, pilvarvutuse liik

KVM

Kernel-based Virtual Machine, virtualiseerimistarkvara

4

Page 5: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

LDAP

Lightweight Directory Access Protocol, kataloogiteenuse protokoll

NC

Node Controller, Eucalyptuse pilve osa, tegeleb virtuaalsete masinate haldamisega

OpenBSD

vaba UNIX laadne operatsioonisüsteem

PAAS

Platform as a Service, platvorm kui teenus, pilvarvutuse liik

RIA

Riigi Infosüsteemide Arenduskeskus

Ruby

objektorienteeritud programmeerimiskeel

RoR

Ruby on Rails, programmeerimiskeelel Ruby-l baseeruv veebirakenduste loomise

raamistik

SAAS

Software as a Service, tarkvara kui teenus, pilvarvutuse liik

SLA

Service Level Agreement, leping teenusepakkuja ja kasutaja vahel, kus on kirjas lepingu

kehtivusaja kestel oodatav teenusekvaliteet

SOAP

Simple Object Access Protocol, protokoll struktureeritud info vahetuseks

Vmware

virtualiseerimisplatvorm EMC korporatsiooni kuuluvalt firmalt VMware

WS-Security

Web Services Security, kommunikatsiooniprotokoll tagamaks veebiliikluse

konfidentsiaalsust ja terviklikkust

Xen

avatud lähtekoodiga virtualiseemistarkvara

5

Page 6: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

avalik pilv

public cloud, pilvarvutuse teenusepakkujatelt renditav pilv

bare metal hypervisor

otse riistvaral töötav hüperviisor

guest

külaline, virtuaalses masinas töötav operatsioonisüsteem

host

peremeesoperatsioonisüsteem, millel töötab virtualiseerimistarkvara

hosted hypervisor

operatsioonisüsteemil töötav hüperviisor

hüperviisor

hypervisor, tarkvara, mis kontrollib erinevatele operatsioonisüsteemi eksemplaridele

eraldatud ressursse

privaatpilv

privat cloud, organisatsioonisisene pilv, mis ei ole mõeldud avalikuks kasutamiseks

snapshot

hetkeseisu koopia, mida kasutatakse virtuaalsete masinate teatud ajahetke seisu

salvestamiseks

6

Page 7: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Sissejuhatus

2009. aasta juunis alustati projektiga “Administreerimise õppemooduli loomine

koostöös RIA ja CERT Eestiga "Praktiline küberkaitse IT süsteemide administraatoritele"”.

Projekti eesmärgiks on tõsta IT spetsialistide infoturbealast kompetentsi. Projekti

ettevalmistus algas RIA-poolse initsiatiiviga, mis juhtis tähelepanu riigi, kohalike

omavalitsuste ja erafirmade IT süsteemide administreerimise spetsialistide

kompetentsivähesusele rakendusliku küberkaitse alal. Projekti alguskuupäev on 15.06.2009

ning lõppkuupäev 31.08.2015. Projekti kogumaksumus on 3,5 miljonit krooni ja seda

rahastab Euroopa Liidu Sotsiaalfond sihtasutus Archimedese kaudu.

Projekti partnerid - Eesti Infotehnoloogia sihtasutuse (EITSA) poolt hallatav Eesti

Infotehnoloogia kolledž (ITK) ja Riigi Infosüsteemide Arenduskeskuse (RIA)

infoturbeintsidentide käsitlemise osakond (CERT - Computer Emergency Response Team).

Projekt on seotud EV Kaitseministeeriumi poolt loodud strateegilise juhise "Küberjulgeoleku

strateegia 2008–2013" alapeatükiga 3.3 "Infoturbealane väljaõpe ja täienduskoolitus" [3].

Mainitud strateegiajuhis on heaks kiidetud Eesti Vabariigi valitsuse korraldusega nr 201

"Küberjulgeoleku strateegia 2008–2013" 8. maist 2008.a.

Projekt koosneb järgnevatest allosadest:

• õppekava arendus - õppemooduli eesmärkide, õpiväljundite ja ainekavade

määratlemine;

• õppematerjalide koostamine - loengumaterjalid, õppevideod, laborid ja metoodika;

• virtuaallaborite süsteem - interaktiivse laboriinfrastruktuuri loomine;

• õppetöö läbiviimine - pilootvoorude koolitamine.

7

Page 8: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks

projektiks, millest käesolev töö on projekti "Virtuaallaborite süsteemi loomine" allprojekt.

Virtuaallaborite süsteemi loomise projekt jaguneb järgnevateks allprojektideks:

• e-õppe kauglaborite automaatse hindamise ja tagasiside süsteem - projekt on alanud,

teostaja C.Fischer;

• virtualiseerimise allprojekt (käesolev lõputöö);

• õppematerjalide moodul - projekt algab 2010. aastal;

• laboriaja broneerimise moodul - projekt algab 2010. aastal.

Lõputöö eesmärk

Töö "Küberkaitse mooduli virtuaallaborite lahenduse loomine Eesti Infotehnoloogia

Kolledži näitel" eesmärgiks on valida platvorm virtuaallaborite läbiviimiseks ja luua toimiv

prototüüp. Töö tegemisel tuleb arvestada, et küberkaitse moodul koosneb suures osas

laboritest, mis on mahukad ja keerulised. Samuti peab arvestama sellega, et õppurid on

enamasti töötavad spetsialistid, seepärast on vajalik ka distantsõppe võimaldamine.

Distantsõpe võimaldab praktikumide läbiviimist õppurile sobival ajal ja kohas. Keerulised

laborid vajavad pidevat tagasisidet ja õppejõu poolset abistamist. Näiteks on labor

mitmeetapiline ning iga osa eeldab eelneva edukat teostust või õppejõu poolset kontrolli.

Tehnilistel erialadel viiakse tihti läbi praktikume, kus kasutatakse tarkvara, mida õpilane ei

saa installeerida oma arvutisse. Põhjuseks võivad olla nõuded infrastruktuurile, näiteks e-

maili praktikum vajab eelhäälestatud serverite kogumit. Käesolev lõputöö leiab lahenduse

probleemile, kuidas läbi viia keerukaid kauglaboreid tavapärase distantsõppe raames.

Lõpetuseks kirjeldatakse nõudeid süsteemi edasiseks arenduseks.

Alljärgnevalt on toodud diplomitöö põhieesmärgid:

• analüüsida kauglaborite virtualiseerimise võimalusi;

• disainida virtuaallabori süsteem;

• luua süsteemi prototüüp;

• luua arhitektuur ja nõuded süsteemi edasiseks arenduseks.

8

Page 9: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Kauglaborite näidisarhitektuur, mille virtualiseerimise allsüsteemi käesolev töö

käsitleb. Vaata joonist 1.

Joonis 1 Kauglabori näidisarhitektuur

Diplomitöö käigus leitakse vastused järgnevatele küsimustele:

• millist virtualiseerimissüsteemi laborite loomisel kasutada;

• leida lahendus mallide kasutamisele, labori hetkeseisu salvestamisele ning

virtuaalmasinate haldamiseks;

• realiseerida prototüüp ITK keskkonnas.

Lõputöö teema aktuaalsusele viitab kasvav vajadus kvalifitseeritud küberkaitse

spetsialistide järele. Väljavõte riigi küberjulgeoleku strateegiast: "Siiski on ilmne, et nii era-

kui ka avalikus sektoris kasvab vajadus kvalifitseeritud infoturbespetsialistide järele, sest

praegu on kompetentsus valdavalt väheste selle alaga tegelevate inimeste käes. Infoturbealast

süvendatud väljaõpet ei pakkunud 2007. aasta lõpu seisuga Eestis ühegi avalik-õigusliku ega

9

Page 10: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

eraülikooli õppekava ei bakalaureuse-, magistri- ega doktoriõppe tasandil. Infoturbe

korraldamise oskusi pole seni õpetatud ka kutsehariduse raames. Infoturbe praktiline

kompetentsus on kogunenud erasektorisse, eeskätt pankadesse. Eesti kriitilise infrastruktuuri

institutsioonide küsitlus 2007. aastal näitas, et suurimaks puuduseks infoturbe vallas peetakse

kvalifitseeritud tööjõu nappust" [3].

Lõputöö realiseerimisel kasutab autor järgnevaid meetodeid :

• võrdlev analüüs - tarkvara funktsionaalsuse võrdlus;

• valitud tarkvara funktsionaalsuse testimine;

• süsteemi liidestamine ülejäänud moodulitega;

• pilootsüsteemi loomine.

Töö koosneb järgmistest osadest:

• analüüs - vaadeldakse erinevaid laborite lahendusi, erinevaid virtualiseerimise

vahendeid ning valitakse vahendid teostuseks;

• tehniline teostus - kirjeldatakse töö teostust eelnevalt valitud vahendite abil;

• prototüübi piloteerimine - näidislabori koostamine ja testimine;

• edasised tööd – tuuakse esile, mida on vaja teha edaspidi töö sidumiseks projekti teiste

allosadega.

10

Page 11: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Analüüs

Käesolev töö on allosa projektist - Administreerimise õppemooduli loomine koostöös

RIA ja CERT Eestiga "Praktiline küberkaitse IT süsteemide administraatoritele". Projekti

üldine eesmärk on luua EITSA poolt hallatavas ITK IT süsteemide administreerimise

õppekavale tasemeõppe moodul, mis on kasutatav ka täiendusõppes. Projekti raames luuakse

virtuaalne labori- ja testikeskkond õppe läbiviimiseks ja tulemuste hindamiseks, kuna tänased

e-õppe keskkonnad ei paku laboratoorsete tööde tegemise võimalust. Keskkonnad peavad

võimaldama distantsõpet, sest eeldame, et tulevased õppurid paiknevad laiali üle Eesti ja

soovivad oma labori tegemise aega ise valida.

Analoogsed lahendused

Labori läbiviimise võimalusi on mitmeid. Tavapäraselt toimuvad need klassiruumis,

kus on vajalik infrastruktuur arvutite ja tarkvara kujul juba olemas. Näiteks toimub ITKs aine

"Linuxi administreerimine" (I357) arvutiklassis, kus igaüks saab arvuti koos virtuaalmasinaga

labori sooritamiseks. Antud lahendus sobib siis, kui ülesande sooritamiseks on vajalik ainult

üks masin, mis ei pruugi piisav olla juhul, kui tahetakse teha keerulisemaid praktikume, kuna

need võivad nõuda mitmeid eri funktsionaalsusega virtuaalmasinaid.

Kui tegemist on distantsõppega, siis taoline lähenemisviis ei sobi. Sellisel juhul saab

kasutada näiteks laboreid, mille sooritamiseks laetakse vajalik tarkvara ning ülesanded

veebiserverist oma kohalikku arvutisse. Üks näide selle kohta on Cisco CCNA laborid [7],

kus tehakse veebiteenusel teste ja laetakse alla ülesandeid oma arvutis oleva võrguemulaatori

11

Page 12: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

(Cisco Packet Tracer) jaoks. See lahendus sobib ainult juhul kui tegemist on võrgu ja

võrguseadmete häälestamisega.

Distantsõppe jaoks on oma lahenduse väljatöötanud näiteks Microsoft oma "Microsoft

Virtual Labs" [14] nimelise rakenduse näol. Kasutaja saab ligipääsu virtuaalsesse arvutisse,

kus siis eelnevalt allalaaditud õpetuse järgi lahendatakse ülesannet. Eelmainitud lahendus on

piisav distantsõppe jaoks, kuid selle probleemiks on süsteemipoolse tagasiside puudumine -

tudeng ei saa informatsiooni selle kohta, kas kõik läheb plaanipäraselt või mitte. Samuti

puudub võimalus labori seisu salvestamiseks ja hilisemaks jätkamiseks. Antud rakenduses on

toetatud ainult MS Windows ning tegevus toimub ühe masina piires, mis tähendab, et see ei

pruugi olla piisav keerulisemate ülesannete teostamiseks.

Laboreid on katsetatud läbi viia ka virtuaalses maailmas [2]. Virtuaalseks maailmaks

on siin "Second Life", kus viidi läbi turvakoolitus. Õppurid pidid ära konfigureerima poest

ostetud ruuteri. Hinnati parooli valikut, paranduste installeerimist ja üldist häälestamist.

Keerulisemaid ülesandeid, nagu operatsioonisüsteemi paigaldust ja seadistamist sellises

virtuaalses keskkonnas teha ei saa, kuna operatsioonisüsteemi emuleerimine virtuaalses

keskkonnas on keerukas ning teostamine töömahukas.

Tabel 1

Laborite läbiviimise võrdlus

mitme masina

kasutamise

võimalus

distantsõppe

võimalus

interaktiivne

tagasiside

seisu

salvestamine

õppeklass jah ei jah jah Cisco CCNA ei jah ei ei Microsoft Virtual Labs ei jah ei ei Second Life ei jah jah ei

Vaadates tabelit 1 võime kokkuvõtlikult öelda, et uuritud valmislahendused ei ole

otstarbekad keeruliste küberlaborite läbiviimiseks.

Analoogseid lahendusi uurides selgus, et kauglaborite puhul kasutatakse tihti

virtualiseerimist. Kuna kasutatava laborikeskkonna eluiga on lühike - iga praktikumi jaoks

12

Page 13: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

tekitatakse uus keskkond, siis on mõttekas kasutada virtuaalseid masinaid. Nende loomine on

lihtsam kui füüsilise masina ümberinstalleerimine. Virtuaalseid masinaid võib ühe füüsilise

masina peal olla rohkem kui üks, mis tähendab, et me saame ühe füüsilise arvuti peal korraga

kasutada mitut erinevat virtuaalmasinat, milles töötavad näiteks erinevad

operatsioonisüsteemid. Samuti on virtuaalse masina puhul lihtsustatud jooksva seisu

salvestamine või eelneva taastamine. Virtualiseerimise puhul on toetatud riistvara hulk

piiratud, mis raskendab spetsiaalse riistvara kasutamist. Näiteks jadaliidesesse ühenduvat

krüptoseadet ei saa me samaaegselt ühendada mitme laboriarvuti jadaliidesesse. Hetkel

planeeritud laboristsenaariumites ei ole sellist riistvara kasutatud.

Virtualiseerimine

Virtualiseerimine on üldine ja lai mõiste. Esimest korda kasutati seda mõistet 1960.

aastatel. IBM System/360 masinal käivitati paralleelselt mitu üksteisest eraldatud keskkonda

[13]. Raudvara oli väga kallis ning sellise virtualiseerimisega loodi kliendile mulje, et ta

omab oma masinat. x86 arhitektuuriga arvutitel tekkis raudvaraline tugi virtualiseerimiseks

alles 2005. aastal Inteli ning 2006. aastal AMD protsessoritele. Virtualiseerimise ulatus võib

varieeruda ühest seadmest kuni suurte andmekeskusteni ning võib olla suunatud serverite,

võrkude, andmehoidlate ja rakenduste virtualiseerimiseks. Antud töös kasutame sõna

virtualiseerimine serverite virtualiseerimise mõistes. Serverite virtualiseerimise üheks

eesmärgiks on keskkondade loomine füüsilise riistvara ja virtualiseerimise tarkvara abil,

saavutamaks ressursside optimaalse kasutuse. Antud tarkvara võimaldab füüsilist riistvara

jagada mitme virtuaalse masina vahel. Selleks loob tarkvara virtualiseerimiskihi riistvara ja

virtuaalse masina vahele, mis näitab virtuaalsele masinale virtuaalset riistvara. Kui vaadelda

füüsilist serverit, siis sellel on oma protsessor, mälu, võrk ja kettad. Kui tegemist on

virtuaalsete masinatega, siis võib näha kõiki neid komponente, kuid virtualiseerimiskiht

serveri riistvaral võimaldab jagada neid olemasolevaid füüsilisi ressursse mitme virtuaalse

masina vahel. Seega võib näiteks kahe protsessoriga serveril olla kuus erinevat virtuaalset

masinat, millel võivad olla erinevad operatsioonisüsteemid ja rakendused. Iga

operatsioonisüsteem näeb oma virtuaalset riistvara ja seega ei satu konflikti teiste sama

füüsilise riistvaral töötavate operatsioonisüsteemidega.

Virtualiseerimist võib klassifitseerida mitmeti, näiteks hüperviisori (hypervisor)

13

Page 14: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

tarkvara järgi, mille ülesandeks on kontrollida erinevatele operatsioonisüsteemi

eksemplaridele eraldatud ressursse. Virtualiseerimiskihte saame jagada kahte klassi:

• tüüp 1, otse riistvaral töötav hüperviisor (type 1, bare metal hypervisor);

• tüüp 2, operatsioonisüsteemil töötav hüperviisor (type 2, hosted hypervisor).

Tüüp 1 (joonis 2) töötab otse riistvaral, mille kontrolli all on kõik

operatsioonisüsteemi eksemplarid, sealhulgas hüperviisori haldamiseks mõeldud

juhtimiskonsool. Antud tüüpi kuuluvad näiteks VMware ESX Server, Citrix XenServer ja

Microsoft Hyper-V.

Joonis 2 Otse riistvaral töötav hüperviisor

Kõik kolm nimetatud toodet on suletud litsentsiga kommertstooted. Kõige suurema

funktsionaalsusega neist on VMware ESX Server, kuna toetatud operatsioonisüsteemide arv

on kõige suurem [18].

14

Page 15: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Joonis 3 Operatsioonisüsteemil töötav hüperviisor

Tüüp 2 (joonis 3) puhul on hüperviisoriks tarkvara mis kasutab operatsioonisüsteemi

riistvara kasutamiseks. Antud tüüpi kuuluvad näiteks VMware Player, VirtualBox, Microsoft

Virtual PC ja KVM.

VMware Player ja MS Virtual PC on suletud litsentsiga, VirtualBox ja KVM on

vabatarkvara. Toetatud operatsioonisüsteemide hulk on erinevatel toodetel võrdne.

Kui võrrelda omavahel tüüp 1 ja tüüp 2 hüperviisorit, siis kummalgi on oma plussid.

Tüüp 1 hüperviisori puhul on tarkvara kiht virtuaalmasina ja reaalse riistvara vahel õhem,

seega jõudluse kadu on väiksem. Tüüp 2 toetub aga olemasolevale operatsioonisüsteemile

ning seetõttu on riistvara hulk, mida kasutada saab, suurem.

15

Page 16: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Reeglina töötab virtualiseeritud režiimis kasutusel oleval arvutil üks põhiline

operatsioonisüsteem (host), millest kontrollitakse teiste (guest) operatsioonisüsteemide

tegevust. Virtualiseerimist saab liigitada ka tehnika põhjal:

• riistvara emuleerimine - Bosch, DOSBox, QEMU - võimaldab kasutada muu riistvara

jaoks mõeldud operatsioonisüsteeme;

• täielik virtualiseerimine - KVM, VMware, VirtualBox - toetab sama riistvaralise

platvormi jaoks mõeldud modifitseerimata guest operatsioonisüsteeme;

• paravirtualiseerimine - Xen, User-mode Linux (UML) - saab kasutada vaid

modifitseeritud tuumaga guest operatsioonisüsteeme, mis on mõeldud sama

riistvaralise platvormi jaoks, guest operatsioonisüsteemis töötavad modifitseerimata

rakendused;

• operatsioonisüsteemi tasemel virtualiseerimine - FreeVPS, OpenVZ, FreeBSD jails -

kõik töötavad operatsioonisüsteemi eksemplarid, sealhulhas host, kasutavad sama

tuuma.

Tabel 2

Virtualiseermistarkvara võrdlus

Guest OS Litsents Bosch Linux, xBSD, Windows, DOS LGPL DOSBox DOS GPL QEMU Linux, xBSD, Windows GPL / LGPL KVM Linux, xBSD, Windows GPL v2 VMware Linux, xBSD, Windows suletud VirtualBox Linux, xBSD, Windows GPL v2 Xen Linux, FreeBSD, NetBSD, Windows GPL UML Linux GPL v2 FreeVPS Linux GPL v2 OpenVZ Linux GPL FreeBSD jail FreeBSD BSD

Erinevaid lahendusi virtualiseerimiseks on palju. Erinevad tarkvarad pakuvad ka

erinevaid võimalusi. Lihtsamad programmid võimaldavad minimaalset virtuaalse riistvara

tuge, keerulisematel tarkvaradel on aga tugi suuremale hulgale virtuaalsele tarkvarale.

Näiteks 3D kiirendi tugi on tabelis 2 toodud toodetel ainult VMware ja VirtualBox. Oluline

omadus on ka oskus seisu salvestada, nn snapshoti tegemine. See tähendab, et on võimalik

16

Page 17: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

virtuaalse masina seis salvestada ning hiljem uuesti taastada

Pilvarvutus

Pilvarvutuse levik on oluline suundumus IT tööstuses ning sellel on erinevaid

definitsioone. Lühike kokkuvõte oleks - pilvarvutus on uus lähenemine IT-teenustele -

lõppkasutaja kasutab teenust ainult siis, kui ta seda reaalselt vajab. Paljud neist teenustest on

kättesaadavad Internetis ja kasutajad maksavad aja eest, mil nad teenust tarbivad.

Pilvarvutuse saab jagada osadeks - IAAS (Infrastructure as a Service), PAAS (Platform as a

Service) js SAAS (Software as a Service), vaata joonis 4. IAAS esindajaks on näiteks

Amazon EC2, pakkudes kasutajatele virtuaalseid masinaid, mida ta siis oma äranägemise

järgi kasutab. Google AppEngine on aga SAAS tüüpi teenus - kasutajal on ette antud ainult

varem kindlaks määratud tarkvara [4].

Joonis 4 Pilvarvutuse teenuste jagunemine

17

Page 18: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Pilvarvutuse populaarsuse kasvule on kaasa aidanud järgnevad nüansid:

• teadmine, et alati saab ressurssi juurde koheselt kui seda vaja - selle teadmisega pole

enam vaja ette planeerida ressursi juurde ostmist;

• saab alustada odavalt - alustav firma ei pea kohe endale valmis ostma suurt

arvutiparki, vaid rendib kasvades ressurssi juurde;

• võimalus lühiajaliseks kasutuseks võimsust juurde osta - mingi suurema töö jaoks on

võimalik koheselt võimsust juurde saada ning sellest koheselt ka loobuda, kui töö on

valmis.

Pilvarvutusele on ka vastaseid. Näiteks Richard Stallman, Vaba Tarkavara Sihtasutuse

(Free Software Foundation) asutaja, peab seda suureks lõksuks. Tema arvates pilvarvutuse

teenusepakkujad seovad kasutajad suletud koodiga tarkvara külge, mis läheks kasutajale aina

rohkem ja rohkem maksma [1].

Kuid olemas on ka pilvarvutuse teenusepakkujaid kes kasutavad vabavaralist

pilvtarkvara.

Pilvarvutuse areng on tihedalt seotud virtualiseerimise arenguga. Kõige tuntum

pilvarvutuse ressursi pakkuja on Amazon. 2006. aastal tuli firma turule teenusega Elastic

Compute Cloud (EC2), mis võimaldas väikeettevõtetel ja üksikisikutel rentida virtuaalseid

arvuteid ning käivitada nendes oma rakendusi. Tänapäeval on sellise teenuse pakkujaid

mitmeid, näiteks:

• Amazon EC2 [5];

• Cloud Hosting [12];

• GoGrid [11];

• Eucalyptus Systems [8];

• BalticCloud [6].

Eraldi peaks välja tooma Eucalyptuse. Tegemist on teenusega, mis kasutab avatud

lähtekoodiga tarkvara. Seda tarkvara kasutades on võimalik kasutada nii Eucalyptuse kui ka

18

Page 19: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

näiteks Amazon EC2 teenust. Samuti võimaldab antud tarkvara tekitada oma riistvaral

privaatse pilve. Kauglaborite virtualiseerimise funktsionaalsuse saavutamiseks on antud

tehnoloogia sobilik.

Pilvarvutuse juures kasutatakse termineid - privaatne pilv (private cloud) ja avalik pilv

(public cloud). Avalik pilv on teenus, mida saab osta. Privaatne pilv aga on

organisatsioonisisene andmekeskus, mis ei ole mõeldud avalikuks kasutamiseks. Meie

lahendus on planeeritud kasutama privaatset pilve, kuid vajaduse korral saab liituda avaliku

pilvega.

Takistused pilvarvutuse kasutamisel:

• teenuse kättesaadavus - tihti rünnatakse teenusepakkujaid raha väljapressimise

eesmärgil;

• jõudluse probleemid - samas füüsilises masinas olevad virtuaalmasinad hakkavad

üksteist segama;

• andmeedastuse kitsaskohad - võrguühendus ei ole piisav suurte andmemahtude

edastamiseks;

• litsentseerimise probleemid.

Loetud takistused ei ole antud töö jaoks väga olulised. Eeldame, et minimaalne

laborite läbiviimiseks vajalik arvutusvõimsus on kohapeal ja välise teenuse kättesaadavus ei

katkesta õppetööd. Kuna planeeritavad laborid ei ole protsessorinõudlikud ega vaja suuri

andemeedastusmahte, siis teine ja kolmas punkt ei tekita meile komplikatsioone.

Litsentseerimisprobleemide vastu aitab avatud lähtekoodi kasutamine.

Nõuded labori virtualiseerimistehnoloogiale

Peale tutvumist erinevate virtualiseerimisplatvormidega, pidades silmas distantsõppe

laborite vajadusi, saab määratleda nõudeid valitud tehnoloogiale. Nõuete määratlemine

toimus projekti koosolekute käigus.

19

Page 20: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

• kui võimalik siis kasutada ainult tasuta ja avatud lähtekoodiga programme;

• skaleeruvus;

• labori seisu salvestamine;

• varundamine.

Projekti tulemus peab olema võimalikult taaskasutatav ja vajadusel muudetav, sellest

ka avatud lähtekoodi (litsents) nõue. Samuti peab kogu projekti tulemusena loodud materjal

olema kättesaadav kolmandale osapoolele ega tohi olla piiratud litsentsi tingimustega.

Joonis 5 Arvutusvõimsuse vajadus koolitustel

Skaleeruvuse all peetakse silmas, et vajadusel peab saama laboreid läbi viia

minimaalse riistvaraga, näiteks tavapärase õppetöö tegemiseks. Kuid vajadusel peab süsteem

võimaldama ka suurte koolituste läbiviimist. Näiteks kui toimub 60 õppuri koolitus ja iga

inimese kohta on vaja 3 erinevat masinat, siis tuleb korraga töökorda seada 90

virtuaalmasinat. Antud olukord on kujutatud joonisel 5. Punane joon nr. 1 näitab olukorda,

20

Page 21: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

kus arvutusvõimsust on liiga vähe, joon nr. 3 näitab olukorda, kus arvutusvõimsust on

piisavalt ka kõige kulukamate laborite läbiviimiseks ning joon nr. 2 kirjeldab olukorda, kus

raudvara on piisav tavaliste laborite läbiviimiseks, kuid jääb napiks suuremate praktikumide

puhul. Ei ole otstarbekas osta riistvara, millest piisaks kõigi laborite läbiviimiseks, kuna siis

oleks riistvara tavaolukorras alakasutatud. Sellist olukorda saaks vältida kui kasutataks

pilvarvutust. Kohapeal oleks privaatne pilv, millest piisaks enamuse laborite läbiviimiseks

(joon nr. 2) ja suuremate koolituste puhul saaks võimsust juurde rentida teenusepakkuja

avalikust pilvest. Siit tekib ka nõue võimalikuks pilvarvutuse kasutamiseks.

Labori seisu salvestamine on väga oluline funktsionaalsus. Kauglaborite puhul, eriti

kui nad on keerulised, ei saa me eeldada, et see tehakse ära n.ö. ühe hingetõmbega. Selleks

ongi vajalik labori seisu salvestamine ning hilisem jätkamine. Ka labori kontrolliks õppejõu

poolt on tarvis labori vahepealse salvestamise võimalus, mis annab õppejõule mingi kindla

seisu taastamist ja sellele hinnangu andmist.

Väga oluline on ka baaskonfiguratsiooni ja mallide varundamine. Laborimasinad ise

tekitatakse dünaamiliselt ja ei vaja varundamist, kuid kindlasti on seda tarvis aga lõpetamata

laborite salvestatud seisude jaoks.

Virtualiseerimistehnoloogia valik

Vastavalt ülaltoodud nõuetele ja eelnevalt läbiviidud analüüsile, otsustati pilvarvutuse

kasuks. Antud tehnoloogia vastas kõigile püstitatud nõuetele. Järgnevas tabelis võrdleme

erinevaid tooteid:

Tabel 3

Pilvarvutuse tarkvara võrdlus

privaatse pilve

kasutamisvõimalus

avalik

pilv

virtuaalmasinad litsents

VMware vCloud jah jah VMware suletud Amazon EC2 ei jah Xen suletud Eucalyptus jah jah KVM, Xen, VMware GPL v3

21

Page 22: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Vaadates tabelit 3, näeme, et esitatud nõuetele vastab ainult Eucalyptus, mille

litsentsitingimused on samuti sobivad. See on skaleeritav - võimalik installida nii kohalikul

riistvaral kui ka juurde osta arvutusvõimsust (antud teenust pakuvad nii Eucalyptus ise kui ka

BalticCloud). Lisaks on kasutatav virtualiseerimistehnika valitav. Tänu nendele omadustele

sai kasutatavaks pilvarvutuse süsteemiks valitud Eucalyptus.

Järgnevates peatükkides räägitakse lähemalt Eucalyptist ning tema installeerimisest

testkeskkonda.

22

Page 23: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Eucalyptuse tutvustus

Eucalyptus - Elastic Utility Computing Architecture for Linking Your Programs To

Useful Systems - on avatud lähtekoodiga tarkvara teostamaks pilvarvutust arvutite kogumil.

Eucalyptus liides on ühilduv Amazon EC2 liidesega, kuna tegemist on ühe kõige tuntuma

kommertsiaalse pilvarvutuse pakkujaga , mis omab korralikku dokumentatsiooni. Eucalyptus

on koostatud vabavaralistest vahenditest ning kasutajaliides on veebipõhine. Tarkvara on

disainitud kasutamaks nii privaatpilvi kui ka avalikke pilvi. Algselt oli tegemist akadeemilise

uurimisprojektiga [9].

Eucalyptus sisaldab järgmist funktsionaalsust:

• liidestus Amazon EC2 platvormiga;

• lihtne paigaldus ja kasutusele võtmine;

• toetus enamlevinud Linuxi distributsioonidel;

• turvaline sisekommunikatsioon kasutades SOAP tehnoloogiat koos WS turvalisusega

(WS-Security);

• sisseehitatud töövahendid pilve administreerimiseks ja kasutajate haldamiseks;

• võimalus pilves seadistada mitu klastrit erinevate sisevõrgu aadressidega.

Eucalyptus on jagatud kolmeks osaks:

• Cloud Controller (CLC);

• Cluster Controller (CC);

• Node Controller (NC).

23

Page 24: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Joonis 6 Eucalyptuse näidistopoloogia

Cloud Controller on veebiteenusel baseeruv kasutajaliides, mis võimaldab süsteemi

konfigureerimist. Cluster Controller tegeleb virtuaalse võrgu haldamisega ja NC kogumi

haldusega. Node Controller installitakse igasse füüsilisse masinasse ja selle eesmärgiks on

suhtlus virtuaalsete masinatega. Näidistopoloogia on ära toodud joonisel 6.

24

Page 25: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Tehniline teostus

Joonisel 7 on kujutatud käesoleva töö ja projekti "E-õppe kauglaborite automaatse

hindamise ja tagasiside süsteem ITK küberkaitse mooduli näitel" omavaheline seotus. Antud

projekt on vahekihiks hindamise süsteemi ja reaalse pilve vahel.

Joonis 7 Hindamise ja tagasiside süsteem

25

Page 26: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Installeerimine

Testkeskkond installeeriti ITK riistvarale ning Eucalyptuse kõik komponendid

mahutati ühte arvutisse. Testmasina olulisemad parameetrid on järgnevad:

• Intel Core2 ([email protected]);

• 2GB mälu;

• 80GB ketas.

Teostati tavapärane Ubuntu 9.10 64-bitise serveri installatsioon. Antud

operatsioonisüsteem valiti, kuna installeerimise käigus saab valida pilvarvutuse tarkvara.

Pakettide lisamise näidist vaata jooniselt 8.

Joonis 8 Ubuntu installatsioon

Peale testkeskkonna ettevalmistamist tuleb muuta failis

/etc/eucalyptus/eucalyptus.conf lubatud virtuaalmasinate arvu. Vaikimisi on

Eucalyptus häälestatud nii, et arvutis saab käivitada ühe virtuaalse masina protsessori iga

26

Page 27: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

tuuma kohta. Selle arvu suurendamiseks muutsime muutuja MAX_CORES väärtust. Sobiv

väärtus sõltub kasutusel olevast riistvarast ning reeglina muutub piiranguks olemasolev mälu,

kuna virtuaallaborid ei ole protsessorinõudlikud.

Võimaldamaks RoR rakenduse installeerimist privaatpilve juhtivale arvutile, tuleb

kasutada raamistikuga kaasas olevat veebiserverit või paigaldada arvutisse Phusion

Passenger lahendus [15]. Seda tehakse järgneva käsuga:

apt-get install libapache2-mod-passenger

Apache veebiserveri vaikimisi konfiguratsioonifailis /etc/apache2/sites-

enabled/000-default tuleb seada muutuja DocumentRoot, mis viitab RoR

rakenduse public kaustale, kus paiknevad avalikult kättesaadavad failid, nagu ikoonid, stiilid,

skriptid ja vealehed.

Pilve haldus ja varundamine

Teenuse toimimise kontrolliks kasutame järgnevat käsku:

service eucalyptus status

Pilve kasutamiseks on olemas komplekt käsurea programme (euca-*). Näiteks

saame vaadata kui palju on pilves vahendeid:

euca-describe-availability-zones verbose

Korralduse väljund oli testkeskkonnas järgmine:

AVAILABILITYZONE elab 192.168.13.111

AVAILABILITYZONE |- vm types free / max cpu ram disk

AVAILABILITYZONE |- m1.small 0008 / 0014 1 128 2

AVAILABILITYZONE |- c1.medium 0004 / 0007 1 256 5

AVAILABILITYZONE |- m1.large 0002 / 0003 2 512 10

AVAILABILITYZONE |- m1.xlarge 0001 / 0001 2 1024 20

AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20

27

Page 28: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Pilve varundamisel tuleb teha regulaarseid koopiaid konfiguratsioonifailidest, kasutaja

võtmetest, andmebaasist. Sobivaks regulaarsuseks on kord nädalas täiskoopia- ja päeva

jooksul muudetud failide varundamine igal öösel. Laborite virtuaalmasinate mallid tuleb

varundada peale nende muutmist ning regulaarne kopeerimine pole vajalik.

Varundada regulaarselt järgmised kataloogid:

/etc/eucalyptus

/var/lib/eucalyptus/keys

/var/lib/eucalyptus/db

/var/lib/eucalyptus/bukkits

/var/lib/eucalyptus/volumes

Ülejäänud kaustad /var/lib/eucalyptus kataloogis luuakse töö käigus ning neid ei ole

vaja taastada.

Pilve taastamiseks olukorras, kus riistvara on hävinud, tuleb installeerida Ubuntu

Server operatsioonisüsteem vastavalt ülaltoodud juhendile ning taastada eelpool loetletud

kataloogid varukoopiast. Konfiguratsioonifailide hävimise korral piisab varukoopiast

taastamisest.

Turvalisus - kasutajaliides kasutab HTTPS protokolli, olulisi isikuandmeid ei edastata

ning alati on võimalik teha uued võtmed. Administraatoril tuleb kasutada piisava keerukusega

ssh ja veebirakenduste parooli. Sertifikaatide privaatvõtmete kompromiteerimise kahtluse

puhul tuleb võtmed pilve administreerimiseliidese abil uuesti luua.

Laborite lõppkasutajad autenditakse, kasutades ITK LDAP andmebaasi.

Virtuaalmasinatesse sisenemiseks genereeritakse tudengile ssh võtmepaar, mis luuakse iga

labori puhul uuesti ja mis kehtib töö tegemise ajal vaid antud kasutajaga seotud masinates.

28

Page 29: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Eucalyptuse installatsioonipaketis on kaasas näidised jälgimssüsteemidele Nagios ja

Ganglia kasutamiseks. Informatsiooni pilve erinevate osade seisundi kohta saab aadressilt:

http://<Pilve aadress>:8773/services/Heartbeat

Näidisväljund:

name=bootstrap enabled=true local=true initialized=true

name=eucalyptus enabled=true local=true initialized=true

name=walrus enabled=true local=true initialized=true

name=dns enabled=true local=false initialized=true

name=storage enabled=true local=true initialized=true

name=db enabled=true local=true initialized=true

name=cluster enabled=true local=true initialized=true

Pilve jälgimiseks saab kohandada mitmeid seiresüsteeme, kuna väljund on kergesti töödeldav

nii inimesele, kui ka masinale.

Tõmmiste ettevalmistamine

Pilve tööks vajalikud tõmmiseid (images) saab alla laadida Ubuntu veebiserverist.

Seal on tõmmised enamlevinud Linuxi distributsioonidega. Samuti saab vajaliku tõmmise ise

ette valmistada. Selleks, et neid Eucalyptuse pilve installeerida ning vajadusel sealt kustutada,

loodi abiprogrammid. Vaata lisa 1 (upload-bundle.sh) ja lisa 2 (delete-bundle.sh).

Olemasolevad tõmmised olid kõik Linux distributsioonidega, seepärast tegime ise ühe

tõmmise OpenBSD operatsioonisüsteemiga. Eucalyptuse virtuaalmasina komplekt koosneb

kolmest failist - tuumast, mälukettast ja kõvaketta tõmmisest. OpenBSD puhul kasutati

tuumaks memdisk paketist syslinux [17] ja mälukettaks oli tõmmis bootkettast, millele oli

installeeritud Grub [10] tarkvara. Kõvaketta tõmmise loomiseks kasutatakse KVMi:

kvm -curses -hda openbsd.img -cdrom install46.iso -boot d

Seejärel paigaldada OpenBSD 4.6 operatsioonisüsteem ja seadistada järgnevad parameetrid:

• keelata mpbios (muidu lõpetab töö pärast rida - setting tty flags);

• määrata jadaliides konsooliks;

29

Page 30: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

• seadistada võrgukaart DHCP-d kasutama.

Keelame mpbiosi, et masinat oleks võimalik käivitada:

boot> boot -c

...

UKC> disable mpbios

352 mpbios0 disabled

UKC> quit

...

# config -ef /bsd

ukc> disable mpbios

352 mpbios0 disabled

ukc> quit

Saving modified kernel.

#

Määrame jadaliidese konsooliks, muutes failis- /etc/ttys rida:

tty00 "/usr/libexec/getty std.9600" unknown off

reaks

tty00 "/usr/libexec/getty std.9600" vt220 on secure

ning seejärel

echo "set tty com0" >>/etc/boot.conf

Järgmise käivitamise ajal läheb konsooli väljund jadaliidesesse. Kui tekib vajadus eelnevad

seaded taastada, siis tuleb arvuti alglaadimisel sisestada:

boot> set tty pc0

seejärel muuta boot.conf faili

Seadistame võrgukaardi kasutama DHCP-d.

30

Page 31: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Eelnevalt kuvage võimalike võrgukaartide nimistu:

$ kvm -net nic,model=?

Näidisväljund:

Supported NIC models:

ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio

Võrgukaart rtl8139 on valitud vaikimisi, kuid OpenBSD jaoks see ei sobi, sest annab

järgnevaid veateateid:

re0: watchdog timeout

Eucalyptus kasutab vaikimisi võrgukaardina e1000, mis on antud valikus kiireim.

OpenBSD süsteemis kaardi e1000 määramiseks tuleb kasutada järgnevat korraldust:

echo dhcp >/etc/hostname.em0

Näidisrakenduste loomine

Projekti raames loodav näidisrakendus on ette nähtud küberkaitse mooduli teistele

allprojektidele. Virtuaallaborite aja broneerimise-, õppematerjalide- ja tagasiside ning testide

allsüsteemide programmeerijad saavad näiterakendust kasutada:

• laborite käivitamiseks;

• võtmete genereerimiseks;

• virtuaalmasinate mallide nimekirja kuvamiseks;

• töötavate laborite nimekirja kuvamiseks;

• labori seiskamiseks.

Pilvega suhtlemiseks on olemas komplekt käsurea programme (pakett euca2ools).

Vajadusel aga saame aga ise kirjutada tarkvara pilvega suhtlemiseks. Vaikimisi tulevad

Eucalyptusega kaasa pythoni teegid. Pythoni näidis pilvega liidestamiseks oleks:

from euca2ools import Euca2ool

euca = Euca2ool()

31

Page 32: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

euca_conn = euca.make_connection()

reservations = euca_conn.get_all_instances()

Täielik versioon näidisprogrammist on ära toodud lisas 3.

Hindamise ja tagasiside süsteemi projektis kasutatakse RoR (Ruby on Rails)

keskkonda, seetõttu kirjeldame ära ka pilvega suhtlemise antud keskkonnas. Eelnevalt tuleb

installida RightScale [16], vabavaraline Ruby keele liides pilvarvutusele. Seda teeme

kasutades korraldust:

sudo gem install right_aws

RoR keskkonna konfiguratsioonifaili environment.rb tuleb lisada järgnev rida, et

tagada liidese olemasolu erinevates installatsioonides:

config.gem "right_aws"

RoR projektis saab luua EC2 objekti, mille abil saab hallata virtuaalmasinaid ja muud

Eucalyptus pilvega seotud teenuseid.

Objekti loomine:

akey = 'RD6AAL33rV6rkKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAL33rV6rk6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

akey – ligipääsu võti (access key)

skey – salajane ligipääsu võti (secret access key)

url – CLC aadress

Antud objekt sobib nii Eucalyptuse kui ka Amazon EC2 pilve sisselogimiseks. Lõputöös

toodud näidetes on akey ja skey väärtused juhuslikud. Näidiste reaalseks kasutamiseks

asendage need oma pilve konsoolilt saadud väärtustega.

32

Page 33: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Loodud objekti saab veebiliideses kasutada: instantside nimekirja kuvamiseks, labori

instantsi loomiseks ja muu pilve funktsionaalsuse väljakutsumiseks.

Töötavate virtuaalmasinate nimekirja kuvamine:

<% euca.describe_instances().each do |inst| %>

<%= inst[:aws_instance_id] %>,

<%= inst[:aws_state] %>,

<%= inst[:dns_name] %><br>

<% end %>

Meetod describe_instances tagastab kõigi pilves käivitatud virtuaalmasinate

eksemplaride prameetrid.

Näites väljastatad parameetrid:

• aws_instance_id – käivitatud instantsi id;

• aws_state – instantsi staatus (starting, running, terminating);

• dns_name – instantsi võrguaadress.

Virtuaalmasina käivitamine olemasoleva malli põhjal:

euca_inst = euca.run_instances('emi-C4C01403', 0, 2, nil, nil,

'UserData', nil, 'm1.small')

Lõputöö käigus loodi RoR baseerv näidisprogramm, kus on olemas kõik vajalikud

funktsioonid laborite tegemiseks - käivitamine, staatuse vaatamine ja töö lõpetamine.

Rakenduse algtekst on ära toodud lisas 4.

Kokkuvõtlikult võib öelda, et pilve tarkvara on edukalt installeeritud ja

konfigureeritud. Projekti teised osapooled saavad kasutada antud projekti raames koostatud

näiteprogramme pilveteenustega suhtlemiseks.

33

Page 34: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Prototüübi piloteerimine

Prototüübi piloteerimiseks kasutati arvutit, kuhu oli installeeritud Eucalyptuse

privaatne pilv. E-õppe projekti raames valmis veebiliidese esimene iteratsioon, mis

integreerus antud lõputöö tulemusena loodud lahendusega. Esmase katsena realiseeriti labor

“Veebiserveri installeerimine”.

Piloteerimisel selgusid mitmed probleemid, mis vaadatakse üle edasise töö käigus.

Näiteks kui käivitada korraga kõigi kasutajate laborid (näiteks tunni alguses), siis tekib

serverile lühiajaline ülekoormus. Avalikus pilves sellist probleemi ei ole, kuna seal on rohkem

paralleelselt kasutatavat riistvara. Lahenduseks on võimalikult väikese kettatõmmise

kasutamine ja paralleelselt käivitatavate masinate arvu piiramine arvestades kasutusel olevat

riistvara.

Kokkuvõtteks saame öelda, et piloteerimine oli edukas, näidates, et antud lahendus on

sobilik. Samuti andis protsess hulgaliselt infot edasiseks arenguks.

34

Page 35: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Edasised tööd

Prototüüp tuleb installida uuele riistvarale, et seda oleks võimalik kasutada ka

reaalsete laborite läbiviimiseks. Õppetöö alustamine valminud prototüübi baasil annab

võimaluse uurida kasutatavust ja otstarbekust, ning planeerida projekti teise iteratsiooni

tegevusi.

Antud lõputöö käigus valminud tarkvara arendatakse edasi, kuna on vaja parandada

liidestumist projekti ülejäänud osadega. Momendil jäi lahendamata laborimasina

konfigureerimine pärast käivitamist ja enne kasutajale ligipääsu avamist. Otstarbekas oleks

laborisse lisada veebipõhine ssh rakendus, sest kõigil õppuritel ei pruugi olla ssh klienti oma

arvutis. Laborimasinate kasutamist saaks optimeerida – näiteks ei vaja iga labor iseseisvat

DNS serverit, piisab ühest.

Antud lahendus projekteeriti ühilduma Eucalyptusel baseeruva teenusepakkujatega ja

Amazon EC2ga. Liidestust teiste pilvedega tuleb rohkem testida ning vajadusel lahendust

viimistleda. Samuti tuleb uurida erinevate teenusepakkujate teenustaseme lepinguid (SLA),

mille alusel saaks otsustada pilvepartneri valiku.

35

Page 36: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Kokkuvõte

Antud lõputöö eesmärgiks oli küberkaitse mooduli virtuaallaborite lahenduse loomine

Eesti Infotehnoloogia Kolledži näitel. Käesolev diplomitöö on allosa ITK ja RIA

ühisprojektist küberkaitse alase õppemooduli loomine, mis koosneb põhiosas laboritest. Need

praktikumid nõuavad eelhäälestatud infrastruktuuri. Probleemiks on labori keerukus ja

tagasiside vajadus õppurile, millele käesolev lõputöö lahenduse leiab.

Alljärgnevalt on toodud diplomitöö põhieesmärgid:

• analüüsida kauglaborite virtualiseerimise võimalusi;

• disainida virtuaallabori süsteem;

• luua süsteemi prototüüp;

• luua arhitektuur ja nõuded süsteemi edasiseks arenduseks.

Analüüsiti erinevaid lahendusi, uurides ja võrreldes sarnaseid lahendusi mujal, mille

tulemusena järeldus, et olemasolevad lahendusi ei ole otstarbekas rakendada. Tagamaks

riistvara optimaalsemat kasutamist virtualiseeritakse loodavad laborikeskkonnad. Analüüsi

käigus selgus, et kogu vajaliku arvutusvõimsust kohapeal omada pole otstarbekas, põhjuseks

riistvara alakasutus igapäevases olukorras. Seepärast pakub autor välja pilvarvutuse,

võimalusega kasutada privaatpilve tavapärase õppe ajal ning avalikku pilve juhul, kui on vaja

teha suuremaid koolitusi. Töö käigus võrreldi erinevaid virtualiseerimistehnoloogiaid ja

pilvarvutuse platvormide kasutatavust antud probleemi lahendamiseks. Tarkvarana valiti välja

36

Page 37: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Eucalyptus, kuna pakub ühilduvust pilvarvutuse ressurssi pakkujaga Amazon, mis on antud

valdkonnas innovatsiooniliste lahenduste teerajaja. Samuti sai arvestatud sellega, et turule on

tulnud mitmeid ettevõtteid, kes pakuvad teenust Eucalyptuse baasil. Ühe näitena võib

siinkohal tuua BalticCloud.

Diplomitöö raames töötati välja kauglabori näidisarhitektuur, mis realiseeriti

prototüübina. See kasutas privaatset pilve ja töötas ühe arvuti peal. Samuti loodi

näiterakendus, mille abil teised küberkaitse mooduli allprojektid saavad RoR rakendustes

kasutada piloodi käigus loodud Eucalyptuse pilve. Koostati skriptid süsteemi varundamiseks

ning taastamiseks ja kirja pandi nõuded edasiseks arenduseks.

Töö tulemusena valminud virtuaallaborite süsteem on taaskasutatav erinevate

koolitusfirmade ja õppeasutuste poolt, kuna valmislahendused mida me töös kasutame ning

kood mida ise produtseerime on kaitstud GPL litsentsiga. Antud lõputöö annab juhendi kuidas

kasutada pilvarvutust praktikumide läbiviimiseks.

Seatud diplomitöö põhieesmärgid on täidetud.

37

Page 38: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Summary

Development of the Cyber Defence Virtual Environment at the Estonian Information

Technology College

The goal of this diploma thesis was to develop the cyber defence virtual learning

environment at the Estonian IT College. The current study is the part of the Estonian IT

College and RIA cooperation project. It addresses a development of the cyber defence

learning environment and consists mainly of virtual environments. In order to use the virtual

environments, the appropriate infrastructure has to be set up beforehand. The main problem

with virtual learning environments is high complexity and the need to give a suitable

feedback to students.

The main goals of the study are:

• to analyse possible solutions for remote virtual environments;

• to design a virtual environment;

• to develop a system prototype;

• to develop system architecture and draft requirements for further development.

After analysing existing systems, the author reached a conclusion that it is not

practical to implement existing solutions because they are not optimal for the target

38

Page 39: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

environment. In order to optimise hardware performance, the author suggests using

virtualisation of the environments. The analyses showed that it is a waste of resources to have

all computing power on site due to low usage of the hardware; therefore the author suggests

using the cloud computing method. For the normal studying process the author suggests using

a private cloud computing method and public cloud computing in the case when more

computing power is needed. The author has investigated possibilities of using several

virtualisation technologies and cloud computing solutions to achieve the goals set for the

current study. As a conclusion, the software called Eucalyptus was chosen because it is

compatible with the Amazon which is a pioneer in these areas. The additional consideration

which led to selection of the Eucalyptus software was the number of companies which offer

services using that software, e.g. BalticCloud.

As a result of the study, the architecture of the remote environment was formulated.

The prototype was built and ran on a single computer using the private cloud software. An

application was developed which can be used also by other cyber defence module sub-

projects in order to access the pilot Eucalyptus cloud via the RoR applications. Additionally,

the system backup and restore scripts were written and the requirements for further

development were drafted.

The system developed in the current study can be reused by everyone because all

components of the system are protected with GPL licences. The current study also developed

a manual which provides guidance about how to carry out practical work with students.

Finally, the author would like to point out that all goals for the diploma thesis were

achieved.

39

Page 40: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Kasutatud kirjanduse loetelu

Kõik viited Internetis leiduvatele allikatele olid kättesaadavad 11. november 2009 a. seisuga.

1. Guardian, 29.09.2009 "Cloud computing is a trap" -

http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman

2. Jungwoo Ryoo jt. IEEE Security & Privacy, Vol. 7, No. 2, March 2009 -

http://pike.psu.edu/publications/j-sp09.pdf

3. Kaitseministeerium "Küberjulgeoleku strateegia 2008–2013" -

http://www.valitsus.ee/failid/kuberjulgeolek.pdf

4. Michael Armbrust jt. Electrical Engineering and Computer Sciences University of

California at Berkeley, Technical Report No. UCB/EECS-2009-28 "Above the

Clouds: A Berkeley View of Cloud Computing" -

http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html

5. Amazon "Amazon Elastic Compute Cloud (Amazon EC2)" -

http://aws.amazon.com/ec2

6. BalticCloud "BalticCloud Project" - http://cloud.balticgrid.eu

7. Cisco Systems "Cisco Networking Academy" - https://cisco.netacad.net

8. Eucalyptus "Your environment. Our industry leading cloud computing software" -

http://www.eucalyptus.com

40

Page 41: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

9. Eycalyptus "Eucalyptus Overview"

http://open.eucalyptus.com/wiki/EucalyptusOverview

10. FSF "GNU GRUB" - http://www.gnu.org/software/grub

11. GoGrid "Cloud Hosting, Cloud Computing Infrastructure, & Hybrid Hosting from

GoGrid" - http://www.gogrid.com

12. Hosting.com "Cloud Hosting - Enterprise & Private Cloud Hosting" -

http://hosting.com/cloudhosting

13. IBM "An overview of virtualization methods, architectures, and implementations" -

http://www.ibm.com/developerworks/linux/library/l-linuxvirt

14. Microsoft "Microsoft Virtual Labs" - http://www.microsoft.com/events/vlabs

15. Phusion "Phusion Passenger" - http://www.modrails.com

16. RightScale "Cloud Computing RubyGems by RightScale" -

http://rightscale.rubyforge.org

17. "The Syslinux Project" - http://syslinux.zytor.com

18. VMware "VMware ESX and ESXi, Bare-Metal Hypervisor for Virtual Machines" -

http://www.vmware.com/products/esx

41

Page 42: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Lisad

Lisa 1 – upload-bundle.sh

Antud programm laeb tõmmiste komplekti pilve. Programmi parameetritena tuleb ette anda

tuuma-, mäluketta- ja operatsioonisüsteemi tõmmised ning virtuaalmasina arhitektuur.

Viimase parameetrina võib ette anda komplekti nime.

#!/bin/bash

if [ $# -lt 4 ]

then

echo "Kasuta:" `basename $0` "<kernel> <ramdisk> <machine image> <i386|

x86_64> [bundle name]"

exit 1

fi

if [ $# -eq 5 ]

then

BUNDLE=$5

else

BUNDLE=`date +%Y%m%d-%H%M`

fi

42

Page 43: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

euca-bundle-image -i $1 -r $4 --kernel true

euca-upload-bundle -b $BUNDLE -m /tmp/$1.manifest.xml

EKI=$(euca-register $BUNDLE/$1.manifest.xml | grep "^IMAGE" | awk '{print $2}')

&& echo $EKI

euca-bundle-image -i $2 -r $4 --ramdisk true

euca-upload-bundle -b $BUNDLE -m /tmp/$2.manifest.xml

ERI=$(euca-register $BUNDLE/$2.manifest.xml | grep "^IMAGE" | awk '{print $2}')

&& echo $ERI

euca-bundle-image -i $3 -r $4 --kernel $EKI --ramdisk $ERI

euca-upload-bundle -b $BUNDLE -m /tmp/$3.manifest.xml

EMI=$(euca-register $BUNDLE/$3.manifest.xml | grep "^IMAGE" | awk '{print $2}')

&& echo $EMI

43

Page 44: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Lisa 2 – delete-bundle.sh

Antud programm kustutab pilvest tõmmiste komplekti. Parameetrina anname ette komplekti

nime.

#!/bin/bash

if [ $# -lt 1 ]

then

echo "Kasuta:" `basename $0` "<bundle name>"

exit 1

fi

BUNDLE=$1

euca-describe-images | grep $BUNDLE

if [ $? -eq 1 ]

then

echo "Ei leidnud sellist !"

exit 1

fi

for image in `euca-describe-images | grep $BUNDLE | grep "^IMAGE" | awk '{print

$2}'`

do

euca-deregister $image

done

euca-delete-bundle -b $BUNDLE

44

Page 45: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Lisa 3 – get_state.py

Näidisrakendus Python baasil, kuvab instantside infot, parameetrina saab ette anda ressursi id.

#!/usr/bin/env python

import os

from sys import argv

from euca2ools import Euca2ool

if len(argv) > 1:

res = argv[1]

else:

res = None

os.environ["EC2_ACCESS_KEY"] = "RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ"

os.environ["EC2_SECRET_KEY"] = "tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q"

os.environ["EC2_URL"] = "http://localhost:8773/services/Eucalyptus"

euca = Euca2ool()

euca_conn = euca.make_connection()

reservations = euca_conn.get_all_instances()

for r in reservations:

instances = r.instances

if res:

if res == r.id:

for i in instances:

print '%s,%s,%s,%s' % (i.id, i.dns_name, i.state)

else:

print '%s,%s' % (r.id, r.owner_id)

for i in instances:

print '\t%s,%s,%s,%s' % (i.id, i.dns_name, i.state)

45

Page 46: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

Lisa 4 – Näidisrakendus RoR baasil

index.html.erb

Näterakenduse vaikimisi vaatefail

<h3>Laborid</h3>

<%

akey = 'RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

euca_inst = euca.describe_instances

euca_res = Array.new()

euca_inst.each do |inst|

euca_res << inst[:aws_reservation_id]

end

euca_res.uniq!

euca_res.each do |inst|

%>

<%= link_to 'Labori info - '+inst, '/elab/status/'+inst %><br>

<%

end

%>

<hr>

<h3>Start</h3>

<%= link_to 'Stardime labori', '/elab/start/2' %><br>

46

Page 47: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

start.html.erb

Labori käivitamise näiteprogramm

<h3>Stardime</h3>

<%

if params[:id] == nil

%>

Puudub labori nimi !

<%

else

akey = 'RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

euca_inst = euca.run_instances('emi-C4C01403',0,

params[:id],nil,nil,'UserData',nil,'m1.small')

%>

Labor <%= euca_inst[0][:aws_reservation_id] %>

<%= euca_inst[0][:aws_state] %><br>

<%

end

%>

47

Page 48: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

status.html.erb

Töötava labori masinate seisundi kuvamine.

<h3>Labori seisund</h3>

<table>

<tr><th>instance_id</th><th>index</th>

<th>state</th><th>dns_name</th></tr>

<%

akey = 'RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

euca.describe_instances().each do |inst|

if inst[:aws_reservation_id] == params[:id] or params[:id]==nil

%>

<tr>

<td><%= inst[:aws_instance_id] %></td>

<td><%= inst[:ami_launch_index] %></td>

<td><%= inst[:aws_state] %></td>

<td><%= inst[:dns_name] %></td>

<td><%= link_to 'Restardime',

'/elab/restart/'+inst[:aws_instance_id] %></td>

</tr>

<%

end

end

if params[:id]!=nil

%>

<td></td><td></td><td></td><td></td><td>

<%= link_to 'Stopime labori', '/elab/stop/'+params[:id] %></td>

<%

end

%>

</table>

48

Page 49: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

stop.html.erb

Labori seiskamise programm

<h3>Labori seiskamine</h3>

<%

if params[:id] == nil

%>

Puudub instantsi ID !

<%

else

akey = 'RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

euca.describe_instances().each do |inst|

if inst[:aws_reservation_id] == params[:id]

euca_inst =

euca.terminate_instances(inst[:aws_instance_id])

%>

Masin <%= euca_inst[0][:aws_instance_id] %>

<%= euca_inst[0][:aws_shutdown_state] %><br>

<%

end

end

end

%>

49

Page 50: EESTI INFOTEHNOLOOGIA KOLLEDŽ Aivar Guitar KÜBERKAITSE ...lepikult/diplomitoo/nai... · Projekt on mahukas ja pikaajaline, ning on omakorda jaotatud mitmeks iseseisvaks ... mitmeetapiline

restart.htm.erb

Labori masina taaskäivitamine

<h3>Taaskäivitamine</h3>

<%

if params[:id] == nil

%>

Puudub masina ID !

<%

else

akey = 'RD6AAADbhbx7RKlpPoI8vUveIRlhIS7gMDfQ'

skey = 'tjfAAASaHT28S6NzQqiHsThcb8Kqbwwp7z8Q'

url = 'http://localhost:8773/services/Eucalyptus'

euca = RightAws::Ec2.new(akey, skey, :endpoint_url => url)

euca_inst = euca.reboot_instances(params[:id])

%>

Masin <%= params[:id] %> re-startub (<%= euca_inst %>)<br>

<%

end

%>

50