Sissejuhatus töökeskkonda
Selle praktikumi eesmärgiks on valmistada ette pehmem maandumine järgnevates praktikumides. Kuna enamus järgnevaid praktikume toimub Linuxi keskkonnas ning kasutab üldisi Unixi põhimõtteid, siis tuletame meelde Linuxi käsurea kasutamist. Samuti on varasematel aastatel probleeme tekitanud vähene võrgutehnoloogia alane ettevalmistus, seega käsitleme veidi ka seda.
Kuna soovituslikuks eeldusaineks on operatsioonisüsteemid, siis me eeldame, et pärast sissejuhatavat praktikumi saavad kõik tudengid Linuxi käsurea kasutamisega hakkama. Juhul kui käsurea kasutamisega on probleeme, siis tuleb vastavad oskused iseseisvalt omandada.
Vajalikud oskused
- käsurea abil failisüsteemis navigeerimine
- käsurea efektiivne kasutamine (tab completion, ajalugu, eelmine käsk, ctrl + r, pipe)
- tarkvarapakettide uuendamine, paigaldamine, eemaldamine
- käsurealt toimiva tekstiredaktori kasutamine (nano või vim)
- otsingu kasutamine (find, grep)
- failiõiguste haldamine
- info otsimine uute käskude või parameetrite kohta (man, google)
- ip aadressi ja dhcp seadmine, võrguliidese haldus
- ssh ja scp kasutamine algtasemel
Töökeskkonna ettevalmistamine
Alustuseks tehke sellele veebilehele reload (F5)!
LTAT.06.002 Andmeturve
aine praktikumides kasutame Oracle VirtualBox'i, et jooksutada erinevaid virtuaalmasinaid. Virtuaalmasin on simuleeritud arvuti, mis käivitatakse teise arvuti sees. Võrreldes päris arvuti ja erinevate kõvaketaste kasutamisega teeb see meie jaoks lihtsamaks mitmete praktikumirühmade haldamise. Samas on virtuaalmasin siiski täisväärtuslik arvuti, millel on oma (virtuaalne) riistvara, BIOS, kõvaketas ja operatsioonisüsteem. Et illusioon oleks oleks täielik, võib käivitatud virtuaalmasina akna suurendada üle ekraani.
Esimeses ja paljudes järgnevates praktikumis kasutame Linux Mint 18.3 operatsioonisüsteemiga virtuaalmasinat. Esimeseks ülesandeks ongi virtuaalmasina paigaldamine.
- Käivita
VirtualBox 5.2.6
- Kui sul ei ole
Virtualbox
paigaldatud isiklikku arvutisse või kasutad vanemat versiooni siis palun uuenda/paigalda Virtualbox. - Täiendavalt soovitame paigaldada ka
Extension Pack
. Seda saab teha kas VirtualBox File menüüst uuendusi otsides või siis otseExtension Pack
Virtualboxi lehelt alla laadides. Arvutiklassi arvutites on see juba paigaldatud. - NB!
VirtualBox
jaExtension Pack
versioonid peavad olema samad!
- Kui sul ei ole
- Klõpsa VirtualBoxi akna tööriistaribal
File -> Import Appliance
- Klõpsa avanenud akna parempoolses osas oleval väikesel rohelise kolmnurgaga kausta ikoonil
- Avanevas aknas liigu
USB andmekandjale
, otsi üles failandmeturve_2018.ova
ning vajutaNext
. PS! Andmekandja saad õppejõult või lae alla vajalik fail siit. - Järgmises aknas 'PEAB'' kindlasti valima
Reinitialize the MAC address of all network card
muidu tekivad hiljem arvutiklassis konfliktid sama MAC aadressidega võrgukaartide vahel. - Vajuta nupule
Import
- Oota kuni impordi tegevus lõpeb, siis käivita loodud virtuaalmasin ning ürita sisse logida.
- Võib juhtuda, et unustate parooli, see on hea võimaluse teha meie aine esimene "häkkimine".
Unustatud Linuxi parooli asendamine
- Tee virtuaalmasinale restart (või käivita masin)
- Hoia all
SHIFT
klahvi GRUBi
avanedes vajutae
klahvi- Asenda
linux /boot/vmlinuz...
real kõik alatesro net.ifnames...
tekstigarw init=/bin/bash
- Vajuta
F10
klahvi. Nüüd laetakse ühekordselt Linux root käsureale - Sisesta
cat /etc/passwd
ja uuri millised kasutajad on arvutisse loodud (vihje:SHIFT+PG UP
) - Sisesta
passwd kasutaja
ja uus paroolisherenow
. - Sisesta
sync
ja ootavähemalt 5 sekundit
- Sisesta
exit
. - Sulge Virtualboxi aken ja vali
Power off the machine
- Proovi virtuaalmasinasse sisse logida.
Linuxi käsurea meeldetuletus
Veebibrauserina on kasutusel Firefox. Jätke see brauseriaken juhendiga omale pidevalt lahti - pärastpoole teeme oma võrgu katki, nii et seda juhendit ei saa uuesti avada.
Lugege järgnev lõik läbi enne tegutsemist! Logisite sisse tavakasutajana. Selle kasutajana hakkate enamus praksides tegutsema. Administraatorikontoga root reeglina graafilisest keskkonnast sisse ei logita, juurkasutaja (root) õigusi kasutatakse mõnes üksikus vajaminevas aknas või logitakse sisse võrgust või tekstikonsoolilt. Proovime tekstikonsoolilt sisse logimist. Linuxis on kasutusel mitu erinevat virtuaalkonsooli ning nende vahet saab liikuda Ctrl-Alt-F* klahvidega. Graafiline keskkond on 7. (või tavaliselt ka 8.) virtuaalkonsoolil, seega siia tagasi saate Ctrl-Alt-F7 vajutades (kogu teie töökeskkond on alles). Lisaks sellele on tekstikonsoolid 1-6. Vajutage Ctrl-Alt-F1 ja logige sisse kasutajana kasutaja
. Logige exit
abil välja tagasi ja minge Ctrl-Alt-F7 abil tagasi oma graafilisse keskkonda.
Meil läheb töös enamasti vaja tekstiterminale. Graafilises keskkonnas saate avada mitmeid terminale. Ekraani alumises osas oleva paneeli vasakus ääres on terminali ikoon. Võtke omale kohe paar terminali lahti, kuna neid läheb meil sageli vaja. Lisaks saate samas terminalis avada mitu kaarti erinevate seanssidega (sakk / tab). Uue saki avamiskes saate kasutada klahvikombinatsiooni Ctrl + Shift + t
. Looge prooviks mõned uued seansid ja liikuge nende vahet nii klaviatuuri kui hiire abil. Klaviatuurilt saab seda teha kahte moodi, esiteks Ctrl + Page Up
või Page Down
ja teiseks Alt + saki number
. Seega edasipidi võite alati vajadusel uue terminali avada, kui tahate olemasoleva terminali akna lahti jätta.
Andke terminalis käsk dmesg
. Meile on oluline, et see käsk tagastab lihtsalt palju ridu infot, käsk ise ja väljastatav info pole meile olulised. Esimeseks lihtsaks viisiks tagasi kerida on loomulikult kerimisribalt hiirega. Teiseks võimaluseks on kerida klaviatuuri abil - Shift+PgUp
/Shift+PgDown
(proovige). See Shift-Pg* töötab ka paljudes muudes kohtades, isegi tekstikonsoolil kuni sealt mujale konsoolile vahetumiseni.
Alati ei ole meil head või piisava scrollbackiga terminaliprogrammi käepärast, sestap õpime kerima ka ainult tesktiterminali vahendeid kasutades. Andke käsk (ilma $
-märgita, * loe siit märkust)
$ dmesg | less
et vaadata käsu dmesg
väljundit leheküljekaupa (pange tähele, et terminali scrollbacki sellest ei teki). less
on Unixi programmi more
täiendatud ja mugavdatud variant. Less'i kasutamine:
nooled, PgUp/PgDn - kerimine / - regulaaravaldise otsimine edaspidi (proovige /APIC) n - järgmise otsimine N - eelmise otsimine ? - regulaaravaldise otsimine tagasisuunas G - faili lõppu minek f - sisendi (logifaili) jälgimine, et ehk tuleb veel andmeid. katkestab ^C q - quit
Failipuu uurimiseks käivitage failibrauser oma kodukataloogist (paneelil ikoon "Files"). Uurige failipuud juurkataloogist oma kodukataloogini. Kodukataloogiks on /home/kasutaja
. Kasutajal pole reeglina õigust väljapoole oma kodukataloogi midagi kirjutada, välja arvatud mõnedesse ajutistesse kataloogidesse. Seega kõik kasutaja isiklikud failid ja programmide seaded on kodukataloogi all.
Uurime kodukataloogi ka käsurealt. Andke käsk
$ ls
ja peaksite nägema oma kodukataloogi sisu. Andke käsk
$ touch minutekst.txt
ja tekib fail nimega minutekst.txt
. Vaadake nüüd listingut uuesti käsuga
$ ls -l
ja näete failide kohta pikemat infot (pikkus, omanik, muutmisaeg). Teie vastloodud fail on 0-pikkusega. Vaadake listingut veelkord käsuga
$ ls -al
ja näete oluliselt rohkem faile või katalooge. Punktiga algavad failid ja kataloogid on pooleldi peidetud - ei ls
ega graafilised failibrauserid ei näita neid vaikimisi. Nendes punktiga failides salvestavad igasugused programmid oma kasutajapõhiseid seadeid.
Juba sisestatud käske ei pea uuesti kasutades uuesti sisse toksima - kasutada saab käskude ajalugu. Üles-alla nooltega saate sorida senistes käskudes, neid muuta ja uuesti sisestada (proovige!). Käsu redigeerimisel ei pea sisestamiseks minema kursoriga rea lõppu, Enterit võib vajutada suvalise positsioonil olles ja sisestatakse ikkagi terve rida. Sisestatavate failide ja käskude nimesid ei pea alati tervenisti välja kirjutama, vaid kasutada saab üsna paindlikku TAB-completionit (Tab-klahviga lõpetamist). Näiteks võite käsurea
ls /home/kasutaja
kirjutada, vajutades
/h<TAB>k<TAB>
Kui mõne koha peal ei ole lõpetamine unikaalne, siis shell piiksub ning teist korda TAB
vajutades näitab variante. Valige täht või mõned, mis failinime unikaalselt määravad, ja vajutage uuesti TAB
, jne. Mõnikord on abiks isegi käsitsi kirjutatud pika failinime lõpus TAB
vajutada - kui shell sinna lõppu tühiku lisab, siis failinimi eksisteerib ja te olete selle õigesti kirjutanud.
TAB
abil saab lõpetada lisaks failinimedele ka käskude nimesid. Vajutage
ip<TAB><TAB>
ja näete käskude nimesid, mis algavad ip'ga.
Uurime lähemalt äsja avastatud käsku ip
- loeme selle käsu manuali:
$ man ip
(kerimiseks on less
, seega juba tuttav). Käsu man poolt kasutatava formaadi selgitust saate lugeda siit: Reading Man Pages
Redigeerime tekstifaile, nii terminalis kui graafilise editoriga. Terminalis redigeerimist läheb meil vaja root kasutajana tegutsedes, sest sellel enamasti ei ole tervet graafilist keskkonda. Terminalil on kasutada mitmeid erinevaid editore (nano
, vi
/vim
) kuid meie valime nano
(lihtsuse tõttu). Kes muud editori tunneb, võib loomulikult seda kasutada. Redigeerimine terminalist oma tekstifaili:
$ nano minutekst.txt
Kirjutage sinna sisse mõni tekstirida, et oma jutu ära tunnete, väljuge salvestamisega (^X - spikker on ekraani allääres olemas ning esimene sümbol (^) tähistab ctrl
klahvi).
Redigeerime sama faili graafilise keskkonna editoriga. Avage failibrauser ja tehke topeltklikk oma faili peal, see avaneb programmiga xed
. Kui ei avanenud, siis tehke faili peal parem klikk ning valige menüüst "Open With Text Editor". Redigeerige natuke oma faili ja salvestage see, aga jätke xed
avatuks.
Copy-paste toimib Unix'i operatsioonisüsteemis teistmoodi kui Windowsis. Ei ole eraldi vaja Copy operatsiooni ja Paste jaoks piisab ühest hiireklikist. Nimelt kusagilt aknast teksti hiirega valimisel kopeeritakse valik automaatselt puhvrisse ning Copy on juba automaatselt tehtud. Paste jaoks tuleb mõne akna kohal vajutada keskmist hiire nuppu. Märkige veebibrauserist mingi tekst ja kleepige see hiire keskmise nupuga oma tekstifaili editoris.
Salvestage fail programmiga xed
ja avage terminalis uuesti nano
abil. Valige veebibrauserist mingi tekst ja asetage teise rea keskele. Selleks tuleb tekstikursor viia pastemise kohale, hiirekursori viimisest ei piisa, sest terminalis töötav rakendus ei tea reeglina midagi hiire kursorist ega pastemisest - temale on see teksti kleepimine samaväärne sellega, nagu oleks need tähed klaviatuurilt sisestatud.
Käivitage terminalis programm mc
. See on terminalis töötav failihaldur, mis oskab hiirt kasutada - proovige hiirega navigeerida. Selleks, et siit rakendusest midagi hiirega kopeerida, tuleb selekteerida soovitud tekst ning Shift klahvi all hoides vajutada hiire keskmist nuppu. Pärast proovimist väljuge mc
'st F10 abil. Juhul kui programm mc
on paigaldamata, siis paigaldage see käsuga:
$ sudo apt install mc
Avage oma tekstifail uuesti xed
abil. Valige veebibrauserist mingi tekst oma faili asetamiseks ning asendage failis teine rida selle tekstiga. Proovides näete, et kui valite editoris teise rea kustutamiseks, siis asendab see valikupuhvri teksti ja seda ei saa enam pasteda. Seetõttu tuleks asendatav tekst kas enne valiku tegemist kustutada, või siis kasutada lühikeste lõikude kustutamiseks Backspace/Del, mitte ploki valimist.
Lisaks paigaldage ssh server, et järgmistes praktikumides oleks võimalik arvutiklassis olevate VM-de vahel ssh ühendusi luua:
$ sudo apt install openssh-server
Nüüd läheme ja tegutseme juurkasuajana. Proovime erinevaid viise kuidas saab juurkasutajaks minna. Esiteks:
$ sudo su # pwd
Nüüd muutke root kasutaja parool ümber parooliks praktikum käsu passwd
abil. Root kasutaja alt saate välja tagasi tavakasutajaks käsuga exit
.
Juhul kui te root kasutaja parooli juba teate saate kasutada:
$ su # pwd # exit
Esiteks nägite, et juurkasuaja prompti (käsuviiba) lõpetab endise $
asemel märk #
. See on tava, et näidata kasutajale, et ettevaatust, juurkasuaja prompt, teil on võimalus püstoli asemel kahuriga jalga tulistada! Teiseks oli näha, et aktiivseks kataloogiks on endiselt /home/kasutaja
, seega jäi aktiivne kataloog samaks. Niisugusel viisil juurkasuajaks minnes saab mugavalt kasutada jooksvas kataloogis olevaid faile, näiteks anda vastkompileeritud tarkvara kataloogis käsk make install
tarkvara paigaldamiseks süsteemi.
Nüüd minge juurkasuajaks teistmoodi:
$ su - # pwd
Näete, et aktiivseks kataloogiks on /root
ehk juurkasutaja kodukataloog. See asub mujal kui tavakasutajate kodukataloogid, kuna peab alati olemas olema, ka siis kui /home
(mis võib eraldi kettal asuda) pole kättesaadav. su -
on soovitav viis juurkasutajaks minekuks juhul, kui pole vaja aktiivset kataloogi säilitada vaid lihtsalt mingid tegevused administraatorina teha. Jätke juurkasutajana sisselogituks.
Root saab kasutajate faile vabalt lugeda ja muuta. Prooviks läheme muudame sedasama faili. Graafiline editor pole kasutatav (graafiline keskkond ei läinud juurkasutajale kaasa), seega tuleb kasutada terminali oma:
# cd /home/kasutaja # nano minutekst.txt
Tegelikult pole aktiivse kataloogi vahetus üldse oluline, me võime faili ette anda otse täisteega:
# nano /home/kasutaja/minutekst.txt
(siin tuleks loomulikult TAB-completionit kasutada, et ei peaks liiga palju tippima).
Kasutaja faile saame kasutajana ka redigeerida, selleks pole vaja administraatori õiguseid. Küll aga on vaja juurkasutaja õiguseid süsteemi konfiguratsiooni muutmiseks. Redigeerime süsteemset konfifaili, muutes seal FSCKFIX=yes
:
# nano /etc/default/rcS
(väljuge salvestamisega).
Juurkasutaja saab ka käivitada programme, mida tavakasutaja ei saaks. Näiteks restardime SSH teenuse vastavat init-skripti välja kutsudes:
# /etc/init.d/ssh restart
Logime nüüd välja, kuna juurkasuajaga ei tehta ühtegi üleliigset asja:
# exit
Natuke meenutusi/sissejuhatust võrgutehnoloogia teemal - edasistes praksides osutuvad sageli oluliseks IP-aadressid ja -võrgud. Teeme kindlaks oma arvuti IP-aadressi:
$ ip addr ls
Uurige väljundit ja leidke sealt üles liidese eth0 info:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:c0:df:04:7f:9b brd ff:ff:ff:ff:ff:ff inet 192.168.10.2/24 brd 192.168.10.255 scope global eth0 inet6 fe80::2c0:dfff:fe04:7f9b/64 scope link valid_lft forever preferred_lft forever
Siin näites on IP-aadressiks 192.168.10.2 ning võrgumaskiks 24 (mis tähendab, et kolm esimest arvu määravad võrgu ja viimane arv arvuti numbri võrgus).
Logige ssh
-ga sisse Ülikooli serverisse oma kasutaja nime ja parooliga:
$ ssh kasutajanimi@math.ut.ee
Seda, et annate käske math nimega serveris, näete käsurea viibast, kus on teise kasutaja ja teise arvuti nimi. Logige välja tagasi, et edaspidi segadust vähendada:
$ exit
Konfigureerime võrgu ringi. Me ei tee seda permanentselt, vaid ainult kuni buudini mõjuvalt, et pärast arvuti taaskäivitamist töötaks kõik edasi isegi meie vigade korral (X on teie arvuti number, läpakate korral üks pinginaaber võtab laua arvuti numbri ja teine liidab sellele 16):
$ su - # ifdown eth0 # ip addr add 172.30.X.5/16 dev eth0 # ip link set eth0 up
Siit ifdown
laseb süsteemil võrguliidese dekonfigureerida, lõpetades DHCP kliendi töö, mis muidu aadressi värskendaks, ning eemaldab liideselt kõik aadressid ja lülitab liidese tarkavara jaoks välja. Järgmine käsk lisab liidesele meie poolt määratud IP-aadressi - see on võrgust 172.30.0.0/16 ning konkreetse arvuti aadressiks on kahebaidine arv, millest esimene on arvuti number klassis ning teise fikseerime 5'ks. Viimane käsk teeb liidese tagasi aktiivseks. Kui meil oleks tegu "päris" Internetiga ühendumisega, tuleks lisaks lisada vaikemarsruuter ning määrata nimeserver, meil pole neid vaja, kuna meie võrk pole mujale ühendatud.
Juhul kui tahate vaadata oma võrguliidese seadistust, siis uurige faili /etc/network/interfaces
. Konfigureerime võrgu uuesti automaatselt, et Internetti pääseda:
# ifup eth0 # exit
Sellega on juurkasutaja töö ka lõppenud. Nüüd vaadake kas teie virtuaalmasin sai uue IP. Seejärel kasutage käsku ping, et kontrollida kas internetiühendus on olemas.
Edaspidi kui praktikumide jooksul tekib võrguga probleeme, siis kõigepealt vaadake kas arvutil on võrgukaabel / wifi ühendatud. Kontrollige kas masinal on IP olemas ja kas ping toimib. Kui on probleeme, siis uurige kas virtuaalmasina võrguseadetes on kaabel ja adapter korrektselt seadistatud. Kui muu tundub korras, siis proovige liidesele restart teha käskude ifdown ja ifup abil.
Tagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vorm asub järgmisel aadressil: tagasiside vorm
Praktikumi ülesanded
Praktikumi ülesannete lahendamine annab kaks punkti. Praktikumi ülesanne võiks valmis saada praktikumi lõpuks, aga juhul kui see ei õnnestu, siis on võimalik lahendust esitada kuni järgmise praktikumi alguseni.
- Ülesanne 1: Mis on praegune hostname (arvuti nimi võrgus)? (0.5p)
- Ülesanne 2: Muuda
hostname
ära ja asenda vanahostname
püsivalt enda perekonnanimega. Juhul kui perekonnanimi sisaldab täpitähti, siis asendaga need täppideta tähtedega. Mis käsu või käskude abil tulemuseni jõudsid? (0.75p) - Ülesanne 3: Muutke
hostname
ära ka/etc/hosts
failis. Siis tehkegrep
kasku kasutades päring, mis kuvab teiehostname
sisaldava rea/etc/hosts
failist. Tehke käsust koos väljundiga ekraanitõmmis ja esitage see antud praktikumi lahendusena (PNG või JPG formaadis) courses lehel järgnevas aknas. (0.75p)
Praktikumi ülesande lahendamine annab kaks punkti ja esitamiseks on üks nädal alates praktikumi toimumisajast. Esimese ja teise ülesande lahendused esitage kommentaarina ning kolmanda ülesande lahendus lisage failina või lingina.
1. 1. Sissejuhatus - praktikumi ülesanneKodune ülesanne
Koduse ülesande lahendamine annab ühe punkti. Lahenduse esitamiseks on aega üks nädal, s.t selle päeva lõpuks, mil on järgmine praktikum. Koduse ülesande lahendus tuleb esitada järgneva vormi abil.
Ülesanne 1: Loe käsu "find" juhendit (näiteks Kuutõrvajast) ja kirjuta käsk mis leiab MINT virtuaalmasinast kõik .log
laiendiga failid. Lahendus peab sisaldama nii käsku kui ka käsu selgitust. Väljund ei tohiks sisaldada veateateid. (0.5p)
Ülesanne 2: Loe käsu "grep" juhendit (näiteks GNU lehelt) ja kirjuta käsk mis leiab /var/log/auth.log
failist kõik read õnnestunud paroolide muutmiste kohta. Kuvada tuleb edukat parooli muutmist kirjeldavad read koos kolme eelneva reaga. Esitage lahenduseks ekraanitõmmis, mis sisaldab käsku ja käsu väljundit. (0.5p)
Juhul kui lahendus on ainult teksti kujul, siis saate lisada selle kommentaarina. Sellisel juhul on lahenduse esitamiseks vaja lisada tühi fail. Samuti võtame lahendusi vastu tekstifailina või PDF kujul.
16. 1. praktikumi kodune ülesanneLisamaterjalid
- Lugemismaterjalid:
- Veebikursused (MOOC):
* Praktikumijuhendites on sisestatavad käsud näidatud punaste kastikeste sees. Iga käsurida sellises kastikeses algab kas $
või #
märgiga. Neid märke ei ole tarvis sisestada, aga need näitavad, kas käsk tuleks sisestada tavakasutaja õigustes ($
) või root kasutaja õigustes (#
). Jälgige seda hoolega, sest valedes õigustes käivitatud käsk võib omada kummalisi tagajärgi.