mokslininko darbo vietos paslauga - litnet...based html5 konsolė, funkciją, proxy'indamas...

19
Lietuvos mokslo ir studijų institucijų kompiuterių tinklas LITNET Vilniaus universitetas Mokslininko darbo vietos paslauga Paslaugos administravimo instrukcija Paslauga sukurta vykdant Europos socialinio fondo finansuojamą projektą „Mokslo ir studijų institucijoms LITNET teikiamų IT paslaugų plėtra“ Nr. 09.3.3-ESFA-V-711-01-0003 Vilnius 2019 m.

Upload: others

Post on 03-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

Lietuvos mokslo ir studijų institucijų kompiuterių tinklas LITNET

Vilniaus universitetas

Mokslininko darbo vietos paslauga

Paslaugos administravimo instrukcija

Paslauga sukurta vykdant Europos socialinio fondo finansuojamą projektą „Mokslo ir studijų

institucijoms LITNET teikiamų IT paslaugų plėtra“ Nr. 09.3.3-ESFA-V-711-01-0003

Vilnius

2019 m.

Page 2: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

2

TURINYS

Įvadas ................................................................................................................................................... 3

Virtualių darbo vietų kūrimo logika ................................................................................................ 4

Mokslininko darbo vietos paslaugos administracinė dalis .............................................................. 5

Pirminio VM atvaizdo kūrimas .................................................................................................... 8

Naudotojo VM šablono kūrimas .................................................................................................. 9

Naudotojo VM kūrimas .............................................................................................................. 11

Pastabos ...................................................................................................................................... 12

MDV dashboard diegimas .......................................................................................................... 13

HTML5 konsolės diegimas ........................................................................................................ 15

MDV hipervizoriaus diegimas ................................................................................................... 17

SPICE klientai ............................................................................................................................ 18

Page 3: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

3

Įvadas

Mokslininko darbo vietos paslauga (toliau - MDV) skirta LITNET institucijų mokslininkams

ir tyrėjams, kuriems reikalinga spartesnė darbo vieta su greita tinklo prieiga prie didesnių skaičiavimo

resursų ir mokslo duomenų archyvų nei įprastos prieigos atveju. Paslauga paremta savitarna,

leidžiančia pačiam susikurti virtualią darbo vietą LITNET techniniame centre, pasirenkant iš jau

parengtų Windows ir Linux operacinių sistemų šablonų bei skirtingų disko dydžių. Yra numatytas

pilnas virtualių darbo vietų valdymas: paleidimas, išjungimas, priverstinis išjungimas, rezervinis

kopijavimas bei naikinimas. Prisijungiama prie užsakytų virtualių darbo vietų per LITNET

federacinę elektroninių tapatybių infrastruktūrą (FEDI) naršyklės pagalba.

Paslaugai teikti naudojama virtualių darbo vietų infrastruktūra (angl. Virtual Desktop

Infrastructure – VDI) paremtas sprendimas ir atviro kodo programinė įranga.

Page 4: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

4

Virtualių darbo vietų kūrimo logika

Virtualių darbo vietų (VDV) mašinos yra kuriamos naudojant diskų momentines kopijas. Naudojant

šį metodą, virtualios mašinos (VM) yra sukuriamos greitai, nes nereikia vykdyti visų duomenų

kopijavimo iš šaltinio disko.

Virtualių darbo vietų struktūra susideda iš 3 virtualių mašinų tipų:

Pradinis VM atvaizdas (Šaltinio VM)

Naudotojo VM šablonas (Pradinė VM)

Naudotojo VM (VDV VM)

Pradinis VM atvaizdas: tai virtuali mašina į kuriama diegiama operacinė sistema (OS), įdiegiamos

viso reikalingos tvarkyklės ir ji laikoma pradiniu atvaizdu, nes visos sekančios mašinos bus

kuriamos pagal jos atvaizdą. Į šią mašiną įdiegiama visa reikiama programinė įranga (PĮ), taip pat

pagal poreikius susikonfigūruojama OS.

Naudotojo VM šablonas: ši mašina kuriama iš pagrindinio VM atvaizdo kopijuojant jo diską. Šioje

mašinoje atliekamos paskutinės korekcijos, jeigu reikia išplečiami diskai arba įvykdomi "sysprep"

skriptai. Iš šios mašinos kuriamos Naudotojo VM naudojant momentines kopijas.

Naudotojo VM: tai virtualios darbo vietos mašina pateikiama galutiniam naudotojui. Ši mašina

kuriama iš naudotojo VM šablono momentinės kopijos. Jas gali kurti naudotojas savitarnos portale.

Page 5: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

5

Mokslininko darbo vietos paslaugos administracinė dalis

Visa viršuje aprašyta logika yra realizuota administratoriaus darbo aplinkoje

adresu https://mdv.vu.lt/admin

Svarbu - dėl saugumo priežasčių prieiga prie administratoriaus darbo aplinkos yra praleidžiama tik

iš konkrečių administratorių IP adresų.

1. Prisijungus prie administratoriaus darbo aplinkos matome pagrindinį langą.

Kairėje pusėje matomi papildomas administravimo funkcijas, tokias kaip naudotojų, administratorių

valdymas, dešinėje - viršuje aprašytų virtualių mašinų logika - du pirminiai VM atvaizdai (dar

vadinami golden-image), Windows ir Linux, iš kiekvieno kurių yra padaryta po tris skirtingo dydžio

naudotojo VM šablonai. Šablono VM disko dydį reprezentuoja skaičius pavadinimo pabaigoje (100,

150, 50 GB).

2. Kiekvienas iš naudotojo VM šablonų gali turėtų dukterines VM, kurios ir yra atiduodamos

konkrečiam naudotojui. Dukterinių VM skaičių bei naudotojus, kurie juo naudojasi matome prie

Naudotojo VM šablono stulpelyje "OS/būsena".

3. Paspaudus pliusiuką ženklą prie naudotojo VM šablono galima pamatyti dukterinių VM sąrašą.

Šios mašinos buvo sukurtos iš šablono mašinos ir dėl to jų diskai yra tarpusavyje susiję - jie neveiks

atskirai. Kuriant naują dukterinę VM jos diske bus rašomi tik skirtumai nuo VM šablono, kas leidžia

efektyviau išnaudoti hipervizoriaus diskinę vietą.

Page 6: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

6

4. Atsidariusiame sąraše matome virtualias mašinas su jų unikaliai sugeneruotais pavadinimais,

taipogi, kokiam naudotojui jos priklauso, kokia OS bei pan. Kiekvieną iš jų galima priverstinai įjungti

arba išjungti.

5. Paspaudus ant virtualios mašinos pavadinimo gauname lentelę su dar daugiau informacijos, plius,

turime galimybę pakeisti pavadinimą arba priskirti VM kitam naudotojui/administratoriui.

Page 7: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

7

6. Nors dirbant su Mokslininko darbo vieta naudotojai VM kuria patys, yra galimybė juos sukurti ir

atiduoti naudotojams ir administratoriui. Tam reikalingas meniu punktas "Kurti virtualias mašinas"

Page 8: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

8

Pasirinkus VM tipą, hipervizorių, CPU, RAM ir kitus parametrus, galima sukurti kaip vieną, taip ir

keletą virtualių mašinų, kurios bus automatiškai sugeneruotos pagal nurodytus duomenis. Po to

kiekvieną iš jų bus galima priskirti konkrečiam naudotojui.

Pirminio VM atvaizdo kūrimas

Pirmiausia sukuriamas pradinis VM atvaizdas, dar žinomas kaip Golden Image. Pasirinkus meniu

punktą "Kurti virtualias mašinas" pasirenkamas VM tipas "Pirminis VM atvaizdas".

Pasirenkamas hipervizorius, bei kelias kur bus kuriamas VM ir jo diskas. Užpildomi laukai likę

laukai pagal diegiamos OS poreikius.

Kadangi šiam VM įdiegti bus reikainga ISO atvaizdas, tam reikia įgalinti opciją "Prikabinti ISO

atvaizdą" ir iš siūlomų atvaizdų pasirinkti norimą ISO atvaizdą.

Paspaudus mygtuką "Kuurti VM" mašina bus sukurta ir įjungta.

Atidarius naujai sukurto VM konsolę matosi, jog OS diegimas jau prasidėjęs

Page 9: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

9

Toliau OS ir programinės įrangos diegimas vyksta įprasta tvarka.

Naudotojo VM šablono kūrimas

Naudotojo VM šablonas kuriamas iš paruošto pirminio VM atvaizdo. Baigus diegti pirminį VM

atvaizdą jis švariai išjungiamas OS priemonėmis.

Pasirinkus meniu punktą "Kurti virtualias mašinas" pasirenkamas VM tipas "Naudotojo VM

šablonas". Pasirenkamas hipervizorius kuriame VM bus kuriamas bei nurodomas šaltinis - anksčiau

sukurtas pirminis VM atvaizdas.

Page 10: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

10

Atitinkamai pagal poreikį užpildomi laukai atitinkantys OS reikalavimus. Paspaudus mygtuką "Kurti

VM" sukuriamas Naudotojo VM šablonas kopijuojant mašinos kūrimo formoje nurodyto pirminio

VM atvaizdo diską. VM kūrimo metu matomas disko kopijavimo progresas.

Baigus kurti VM ją galima įjungti, patikrinti ar tvarkingai veikia OS bei įdiegta programinė įranga.

Esant poreikiui atlikti baigiamuosius konfigūravimo darbus, paleisti reikalingus skriptus ar atlikti

sysprep nuasmeninimą. Baigus darbus VM tvarkingai išjungiama OS priemonėmis.

Baigus tvarkyti naudotojo VM šabloną jis užrakinamas taip apsisaugant nuo netyčinių

administratoriaus veiksmų.

Page 11: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

11

Naudotojo VM kūrimas

Naudotojas gali kurti VM pagal savo poreikius savitarnos portale, tačiau esant poreikiui MDV

administratorius gali sukurti naudotojo VM ir priskirti ją naudotojui.

Pasirinkus meniu punktą "Kurti virtualias mašinas" pasirenkamas VM tipas "Naudotojo VM"

Pasirenkamas hipervizorius kuriame VM bus kuriamas, pasirenkamas šaltinis - pageidaujamas

Naudotojo VM šablonas bei užpildomi kiti laukai pagal naudotojo, bei OS poreikius. Sukūrus

naudotojo VM jis rodomas kaip Naudotojo VM šablono nurodyto mašinos kūrimo metu dukterinė

MV .

Page 12: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

12

Spragtelėjus ant Naudotojo VM pavadinimo galima jį užvadinti (užpildant laukelį "VM pavadinimas)

ir priskirti reikiamam naudotojui (laukelis "Priskirta").

Nuo šio momento VM yra matomas naudotojui savitarnos portale.

Pastabos

Pirminis VM atvaizdas kuriamas kaip tuščia mašina su thin provisioned (kietasis diskas

hipervizoriuje matomas kaip failas užimantis tiek vietos, kiek jos užima realūs failai virtualioje

mašinoje) disku.

Naudotojo VM šablonas kuriamas kopijuojant pirminio VM atvaizdo diską į naują vietą

hipervizoriaus failinėje sistemoje, todėl Naudotojo VM šablono disko failas užima tiek pat, kiek ir

Pirminės VM atvaizdo disko failas.

Naudotojo VM kuriamas darant naudotojo VM šablono kietojo disko failo snapshot`ą (momentinę

kopiją) ir visus pakeitimus rašant į atskirą disko failą. Tai leidžia akimirksniu kurti naudotojo VM`us

bei optimaliai išnaudoti diskinę vietą. Esant bent vienai dukterinei mašinai (Naudotojo VM)

negalima įjungti tėvinės mašinos (Naudotojo VM) jos neįšaldžius. Tai gali negrįžtamai sugadinti

visas dukterines mašinas ir jose esančius duomenis. Tam naudojamas tėvinės mašinos valdymo meniu

užrakinimo opcija:

Page 13: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

13

Visus VM galima įšaldyti:

Visi pakeitimai padaryti esant įšaldytam VM yra panaikinami mašiną išjungus. Sekančio įjungimo

metu VM bus su toks pats koks buvo prieš įšaldymą.

MDV dashboard diegimas

Mokslininko darbo vieta susideda iš dviejų serverių - dashboard ir hipervizoriaus serverių. OS ir

programinės įrangos versijos buvo parinktos tokios, kad geriausiai atitiktų paskirties specifikas ir

poreikius - Ubuntu 18.04 LTS dashboard serveriui ir Debian 9.8 - hipervizoriui.

Dashboard diegimas

Įrankių diegimas

apt-get update

apt-get dist-upgrade

apt-get install htop atop ntpdate mc links2 bwm-ng apt-listchanges liblzo2-2 zlib1g-dev unzip

fail2ban

Instaliuojami paketai

apt-get install mariadb-server apache2 php git libapache2-mod-php php-mbstring php-gettext php-

ssh2 php-imagick php-mysql php-mail

Sukuriamas MariaDB naudotojas

mysql -u root -p

create database vdi;

CREATE USER 'vdi'@'localhost' IDENTIFIED BY '********';

GRANT ALL PRIVILEGES ON vdi.* TO 'vdi'@'localhost' IDENTIFIED BY '********';

Apache konfigūracija

Norint, kad Apache klientams nerodytų versijos bei operacinės sistemos detalių, keičiamos eilutės

faile: /etc/apache2/conf-available/security.conf

Page 14: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

14

ServerTokens Prod

ServerSignature Off

Redaguojamas konfigūracinis failas:

vi /etc/apache2/sites-enabled/000-default.conf

Pakeičiama:

ServerName mdv.vu.lt

Virtualhost’o pabaigoje įkeliama ši konfigūracija

RewriteEngine on

RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

Konfigūruojamas HTTPS:Tai nukreips visus HTTP kreipinius į HTTPS.

a2ensite default-ssl

vi /etc/apache2/sites-enabled/default-ssl.conf

Pakeičiamas vardas:

ServerName mdv.vu.lt

Sukonfigūruojami sertifikatai:

SSLCertificateFile /root/cert/<server_cert_public_key>

SSLCertificateKeyFile /root/cert/<server_cert_private_key>

SSLCertificateChainFile /root/cert/<server_cert_chain>

Pataisoma SSL konfigūracija

SSLProtocol all -SSLv2 -SSLv3

SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-

POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-

SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-

RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-

SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-

SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-

SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-

AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-

CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-

SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

SSLHonorCipherOrder on

Įjungiami moduliai:

a2enmod rewrite

a2enmod ssl

Page 15: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

15

Simplesaml konfigūracija:

Alias /simplesaml /var/simplesamlphp/www

<Directory /var/simplesamlphp/www/>

Require all granted

</Directory>

VM rotavimo skriptas:

# VM rotavimo skripto apsauga

<Files "delete_old_client_vms.php">

Order Allow,Deny

Deny from all

</Files>

Ugniasienės skripto apsauga:

# Firewall apsauga

<Files "firewall.php">

Order Allow,Deny

# First hypervizor

Allow from 158.129.159.117

</Files>

Administracinės aplinkos apsauga:

Admin aplinkos apsauga

<Directory /var/www/html/admin/>

Order Allow,Deny

Allow from ***.***.***.***

</Directory>

PHP konfigūracijoje pakeičiama opcija, nurodanti, kiek laiko kuriamas socket'as.

vi /etc/php/7.0/apache2/php.ini

default_socket_timeout = 10

HTML5 konsolės diegimas

Konsole remiasi spice_html5 projektu, kurį galima rasti šiuo

adresu: https://github.com/freedesktop/spice-html5

Hipervizorių, esančių nepasiekiamoje iš išorės zonoje, pasiekimui, yra naudojamas projektas

websockify, kurį galim diegti kaip iš github (https://github.com/novnc/websockify), taip ir iš

repozitorijos.

Projektas websockify atlieka tarpininko tarp naudotojo naršyklės, kuriame paleidžiama Javascript

based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į

reikiamą SPICE portą konkrečiame hipervizoriuje, pagal paduotą token naršyklės URL'e.

Page 16: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

16

Visi schemoje dalyvaujantys komponentai atrodo taip:

TMP erdvė yra konfigūruojama MDV portalo konfigūracijoje:

Šioje vietoje automatiškai bus sukurtas aplankas kvm-vdi, kuriame portalas paleidžiant VM sukurs

atitinkamą Token failą. Šis aplankas turi būti nurodytas ir tarp Websockify paleidimo parametrų, kaip

ir sertifikatai. Visas jo paleidimo URL turi atrodyti taip:

/usr/bin/websockify --token-plugin TokenFile --token-source /opt/temp/kvm-vdi 5959 --cert=/root/cert/

mdv.vu.lt.crt --key=/root/cert/ mdv.vu.lt.key

Praktika rodo, kad geriau jį priregistruoti kaip systemd servisą. Tam reikia sukurti

failą: /etc/systemd/system/websockify.service

Jo turinys:

[Unit]

Description=Websockify proxy server

Wants=network-online.target

After=network-online.target

[Service]

Type=simple

User=root

ExecStart=/usr/bin/websockify --token-plugin TokenFile --token-source /opt/temp/kvm-vdi 5959 --

cert=/root/cert/mdv.vu.lt.crt --key=/root/cert/mdv.vu.lt.key

Restart=always

RestartSec=3

[Install]

WantedBy=multi-user.target

Page 17: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

17

systemctl daemon-reload

systemctl enable websockify.service

systemctl start websockify.service

Pastaba1 - TMP direktorija /opt/temp buvo pasirinta dėl to, kad pagal nutylėjimą Ubuntu OS

Apache servisas turi private TMP aplanką, atskirą nuo bendro /tmp. Tai gali būti pakeista keičiant

systemd konfigūraciją, tačiau, atnaujinimų metu opcija dažnai nusimuša ir tada dashboard serveris

rašo į vietą, nematomą Websockify, dėl ko neveikia konsolė.

Pastaba2 - Websockify servisui turi būti nurodytas pasirašytas SSL sertifikatas, norint užtikrinti

veikimą. Konsolės konfigūracijoje (run.js) turi būti pakeista eilutė:

'protocol': getURLParameter('protocol') || 'wss',

Tai leis naudoti SSL websockets protokole. Bendra konsolės konfigūracija turi atrodyti taip:

Tai pririša konsolę prie konkretaus hosto ir paslepia portą, plius, per URL paduodamą slaptažodį

pakeičia į "ssid", taip jį užmaskuojant.

MDV hipervizoriaus diegimas

Hipervizoriaus diegimas

Hipervizorius instaliuojamas su Debian arba Ubuntu, naudojant Python versiją 2. Mes

rekomenduojame instaliuoti naudojant Debian 9.

Instaliuojami paketai:

apt-get install qemu-kvm libvirt-daemon-system libvirt-dev libvirt-clients sudo

python python-requests virtinst socat libxml-xpath-perl

Senoms Debian versijoms paketai diegiami taip:

apt-get install qemu-kvm libvirt-daemon-system libvirt-dev libvirt-clients sudo

python python-requests virtinst socat libxml-xpath-perl

Jei kyla problemos su screenshot'ais, instaliuojamas papildomas softas jų darymui:

apt install spice-client-gtk

Page 18: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

18

Jei naudojama Ubuntu, reikia pašalinti Apparmor, su kuriuo kyla problemų su virtualiais

snapshotais.

service apparmor stop

update-rc.d -f apparmor remove

apt-get remove apparmor apparmor-utils

reboot

Hipervizoriuje sukuriamas naudotojas, kuriuo dashboard aplinka prie jo jungsis:

useradd -s /bin/bash -m VDI

Jei naudotojo raktas dashboard serveryje dar nebuvo sugeneruotas, sugeneruojama taip:

su VDI

cd

ssh-keygen -t rsa

mkdir /var/hyper_keys

Naudotojui duodamos SUDO pilnos teisės, /etc/sudoers failą papildant:

VDI ALL=(ALL:ALL) NOPASSWD:ALL

Sugeneruotas raktas perkeliamas iš direktorijos /home/VDI/.ssh į direktoriją /var/hyper_keys,

uždedamos teisės, kad jį galėtų skaityti WEB serveris. Po to public raktas yra perkeliamas į

kiekvieną iš hipervizorių, į /home/VDI/.ssh/authorized_keys failą. Patikrinti ar viskas veikia galima

taip:

ssh -i /var/hyper_keys/id_rsa VDI@hypervisor_address

Jei prisijungiama be jokio paklausimo, viskas gerai.

Į kiekvieną hipervizorių perkeliamas folderis /usr/local/VDI. Ten yra skriptai, kurie yra paleidžiami

kuriant mašiną, ją paleidžiant, jų pagalba kaskart paleidžiant yra sugeneruojamas naujas SPICE

slaptažodis ir pan. Juose reikia sukonfigūruoti config failą, pakeičiant "tmp_snapshots" aplanką į tą,

kuris yra nurodytas dashboard serverio konfigūracijoje functions/config.php. Mūsų atveju

nurodoma /opt/temp. Taipogi, turi būti nurodytas resolvinamas adresas sekcijoje "address" ir

slaptažodis, sutampantis su nurodytu functions/config.php.

Po to systemd skriptas vdi-agent.service sukeliamas į /etc/systemd/system ir atliekamos šios

komandos:

systemctl daemon-reload

systemctl enable vdi-agent

systemctl start vdi-agent

SPICE klientai

Dėl saugumo priežasčių SPICE prievadai į hipervizorius yra praleidžiami tik iš to adreso, iš kurio

naudotojas jungiasi į savitarną. Hipervizoriuose skriptas prieigą atnaujina kas 5 minutes, specialiu

skriptu.

Page 19: Mokslininko darbo vietos paslauga - LITNET...based HTML5 konsolė, funkciją, proxy'indamas nurodytą portą (pagal nutylėjimą tai 5959) į reikiamą SPICE portą konkrečiame hipervizoriuje,

19

Pradžiai, sukuriamas naujas CHAIN ugniasienėje:

iptables -N spice_clients

iptables -A INPUT -j spice_clients

Vėliau chain papildo skriptas:

#!/bin/bash

# Skriptas, skirtas praleisti SPICE klientus, kvieciamas kas 5 minutes is crontab

# Clean everything in chain

/sbin/iptables -F spice_clients

# For i in cliensts allow Spice

URLS=`/usr/bin/wget -q -O -

'https://mdv.vu.lt/firewall.php?hv=h1.mdv.vu.lt&token=***********************************

*********'`

for i in `echo $URLS`; do

echo "Allow IP: $i"

IP=`echo $i | cut -d: -f1`

PORT=`echo $i | cut -d: -f2`

/sbin/iptables -A spice_clients -s ${IP} -p tcp --dport ${PORT} -j ACCEPT

done

Čia parametras "token" yra generuotas slaptažodis, perduodamas į skriptą iš saugumo sumetimų.

Skriptas paleidžiamas iš cron:

crontab -e

*/5 * * * * /root/allow_spice_clients.sh > /dev/null 2>&1