2.4 Linux
Linux on avatud lähtekoodiga operatsioonisüsteemide pere. Linux on tegelikult ainult operatsioonisüsteemi tööks vajaliku tuuma nimi, kuid tänaseks on kõiki Linuxi tuuma kasutavaid operatsioonisüsteeme Linuxiks kutsuma hakatud. Tuum ehk kernel on operatsioonisüsteemi keskne osa, mis suhtleb vahetult riistvaraga ja teeb selle teistele rakendustele kasutatavaks. Linuxi lõi 1991. aastal soomlane Linus Torvalds.
Ainult Linuxi tuumast kasutajate jaoks oluliste tegevuste sooritamiseks ei piisa. Eelnevalt asutas Richard Stallman 1985. aastal Vaba Tarkvara Fondi (Free Software Foundation), mille raames arendati täielikult vabast tarkvarast koosnevat operatsioonisüsteemi GNU. Puudu oli vaid tuum, mistõttu vajas täisväärtusliku operatsioonisüsteemi loomine mõlema projekti kombineerimist. Seetõttu vaieldakse tänaseni selle üle, kas selliste operatsioonisüsteemide nimi peaks olema "Linux" või "GNU/Linux".
Linuxi turuosa Windowsi ja macOS'i järel on arvutite hulgas kõigest 2%. Sellele lisandub ka Linuxil põhinev Google'i Chrome OS, mis on populaarne USA kooliõpilaste seas ja moodustab seal suure osa odavamate sülearvutite turust. Samuti põhineb modifitseeritud Linuxil tuumal Android. Linuxit kasutavad ka kõik 500 maailma kiireimat arvutit (superarvutit).
Avatud lähtekoodiga tarkvara
Lähtekoodtarkvara ehk avatud lähtekoodiga tarkvara puhul avalikustatakse lisaks täitmisfailidele ka selle lähtekood. Avaliku lähtekoodi olemasolul saavad sõltumatud eksperdid kontrollida turvadefektide ning tagauste puudumist. Tagauks on salajane või dokumenteerimata viis, mis võimaldab asjakohase volituseta ning kaitsevahenditest möödudes saada juurdepääsu süsteemile.
Krüpteerimise korral tähendab see näiteks, et lisaks paroolile või võtmele eksisteerib kasutaja teadmata neid mittevajav meetod failide või sõnumite dekrüpteerimiseks. Turbeprogrammide puhul võib tagaukse olemasolu nurjata nende kasutamise eesmärgi. Väljaspool entusiastidele suunatud Linuxi distributiive (ingl distribution) (eelkõige Gentoo Linux ja Arch Linux) on kasutajate poolt programmide lähtekoodist kompileerimine vähelevinud. Kuigi leidub võimalus, et allalaadimiseks pakutav täitmisfail ei pärine lähtekoodist, on see siiski vähetõenäoline. Teine võimalus täitmisfailide usaldusväärsuse tõestamiseks on reprodutseeritavate ehk korratavate ehitusinstrumentide (programm täitmiskõlbuliku rakenduse loomiseks lähtekoodist) kasutamine. Nende puhul saadakse erinevates seadmetes ning keskkondades kompileerimisel täpselt sama tulemus. See võimaldab tõestada, et kasutati muutmata kujul lähtekoodi. Sellist kompileerimisviisi kasutavad muuhulgas Tor, Bitcoin ning osaliselt Linuxi distributiiv Debian.
Kuigi teoreetiliselt on võimalik kõiki programme pöördkonstrueerimise abil analüüsida, on saadud koodi mõistmine ja analüüsimine nii keeruline, et osutub vähegi suuremate projektide puhul praktiliselt võimatuks. Seetõttu tuleb omandtarkvara kasutamisel ning paigaldamisel selle autoreid ja allikat pimesi usaldada. Edward Snowdeni lekitatud dokumentide põhjal saavad USA luureagentuurid sundida seal tegutsevaid firmasid andmeid koguma ning edastama. Seejuures ollakse kohustatud seda üldsuse eest varjama ning ajakirjanikele valetama.
Vabatarkvara (vabadus kasutada ja suvaliselt muuta) kogukondade (näiteks KDE) puhul kommertseesmärke ja kindlaid omanikke ei ole, mistõttu vajadus kasutajate andmeid koguda praktiliselt puudub. Kõigil kasutajatel muudatuste tegemist lubava litsentsi tõttu see ka ei õnnestuks - kergelt ja seaduslikult saab luua haruversiooni (ingl fork), millest kasutajale mittesobivad funktsioonid on eemaldatud.
Milleks Linux?
Linux pakub kasutajatele teiste operatsioonisüsteemidega võrreldes oluliselt suuremat kontrolli kasutatava tarkvara ning seadistuste üle. Lisaks on suur osa tarkvarast arendatud kogukonna poolt. Seetõttu ei kogu need erinevalt paljudest Windowsi programmidest andmeid kasutaja tegevuse kohta.
Distributiivid ehk distrod
Kuna Linux on avatud lähtekoodiga ning kõik võivad seda muuta, ei ole sellel erinevalt näiteks Windowsist ning iOS-ist kindlat omanikku.
Distributiivid on võrreldavad Androidi operatsioonisüsteemiga erinevate tootjate seadmetel. Nende väljanägemine võib olla väga erinev, kuid enamasti on samad rakendused kõigile paigaldatavad.
Ubuntu ning Fedora avaldavad uue versiooni iga kuue kuu tagant. Kestustoega distributiivide (Debian Stable, Ubuntu LTS, Red Hat Enterprise Linux, SUSE Linux Enterprise) uusi versioone avaldatakse kahe kuni nelja aasta tagant.
Kuna Ubuntu 18.04 on kestustoega (long-term support ehk LTS) ehk kasutamise stabiilsust taotlev versioon, paigaldatakse sellele uuenduse käigus peamiselt turvauuendusi ning paljud tarkvaraversioonid jäävad viie aasta jooksul samaks. Erandiks on veebibrauserid ning mõned muud tähtsamad programmid. Stabiilsus tähendabki seejuures vähest muutumist, mitte krahhide (crash) ehk operatsioonisüsteemi töö ootamatute lakkamiste puudumist.
Aktiivses arenduses on üle 500 distro, kuid enamikul neist on väga väike kasutajaskond. Paljud neist põhinevad teistel distributiividel (tihti Debian).
Töölauakeskkonnad
Windows ja macOS pakuvad kõigile kasutajatele sama, vaid vähesel määral kohandatavat töölauakeskkonda. Linuxile on erinevaid töölauakeskkondi seevastu saadaval ligi kakskümmend. Need erinevad üksteisest oluliselt kujunduse, kasutatava tarkvara ning kohandatavuse ja lihtsuse poolest. Kaks populaarsemat ja aktiivseimalt arendatavat on GNOME ja KDE.
GNOME
Ubuntu 18.04
Paljud tuntuimad Linuxi distrivutiivid (Ubuntu, Fedora, Red Hat Enterprise Linux) kasutavad vaikimisi GNOME töölauakeskkonda.
KDE Plasma
Vaikimisi on KDE töölaud väga sarnane Windowsile, kuid seda peetakse kõige kohandatavamaks töölauakeskkonaks (nii Linuxis kui üleüldiselt). KDE pakub lisaks Plasma töölauakeskkonnale palju selle jaoks loodud rakendusi ning võimaldab kasutada ka kõiki teiste töölauakeskkondade jaoks mõeldud programme. Ubuntus vaikimisi KDE kasutamiseks on loodud Kubuntu flavour, mis ühendab Ubuntu ja KDE.
Ubuntu 18.04
Ubuntu on üks populaarsematest Linuxi distributiividest.
Lisaks Ubuntule ja Kubuntule on saadaval veel Lubuntu (LXQt töölauakeskkond), Ubuntu Budgie (Budgie töölauakeskkond), Ubuntu Kylin (suunatud hiinlastele), Ubuntu MATE (MATE töölauakeskkond), Ubuntu Studio (multimeedia loomiseks) ja Xubuntu (Xfce töölauakeskkond).
Muud distributsioonid
Järgnevaid distributsioone me antud kursuse raames ei kasuta, kuid privaatsusest ning turvalisusest huvitumisel on kasulik teada nende olemasolust.
Tails
Privacy for anyone anywhere
Tails on mälupulgalt või DVD-lt käivitatav operatsioonisüsteem, mis ei jäta kasutamisest arvutisse ühtegi jälge. Kogu võrguliiklus saadetakse läbi Tori ning kõiki operatsioonisüsteemi kasutajat püütakse üksteisest eristamatutena hoida. Kasutaja saab soovi korral mälupulgale krüpteeritud püsitalletuse (persistent storage) lisada, kuid tavaliselt laetakse operatsioonisüsteem vaikesätetega ja kõik ülejäänud failid igal sulgumisel kustutatakse. Tails sisaldab suurel hulgal tarkvara ning seetõttu enamasti kasutajal täiendavat tarkvara vaja paigaldada pole. See muudab operatsioonisüsteem pahavaraga nakatumise vähetõenäoliseks ning ei võimalda pärast arvuti sulgemist kasutaja tegevust uurida.
Edward Snowden, Glenn Greenwald ja Laura Poitras kasutasid Tailsi 2013. aastal omavahel suhtlemiseks ning dokumentide saatmiseks. Tails põhineb Debian Stable operatsioonisüsteemil, kuid selle loojad ning arendajad on tänaseni anonüümsed.
Qubes OS
A reasonably secure operating system
Qubes on turvalisusele suunatud operatsioonisüsteem, mis proovib turvalisust tagada tegevuste lahterdamisega (isoleerimisega). See käivitab peaaegu kõik programmid virtuaalmasinates, kuid kuvab need ühel töölaual. Iga rakendust ei pea käivitama oma virtuaalmasinas, kuid see on võimalik. Seetõttu on rakendused üksteisest isoleeritud ning ei oma teiste virtuaalmasinate failidele ligipääsu või tea nende olemasolust. Qubes võimaldab luua nii Linuxi kui Windowsi virtuaalmasinaid ning nende rakendusi samaaegselt kasutada. Saab luua ka ühekordselt kasutatavaid (disposable) virtuaalmasinaid, mis pärast rakenduse sulgemist sisu kustutavad. Nii vähendatakse kahju võimalikkust arvuti nakatumisel kahjurvaraga. Peamist operatsioonisüsteemi hoitakse võimalikult minimaalse ning turvatuna.
Kali Linux
Penetration Testing and Ethical Hacking Linux Distribution
Erinevalt kahest eelnevast distributiivist ei ole Kali Linuxi eesmärk turvalisuse, privaatsuse või anonüümsuse tagamine. See on suunatud turbeekspertidele süsteemide läbistustestimiseks (sisstungirünnete imiteerimine turvalisuse kontrollimiseks) (penetration testing) ning eetiliseks (seaduslikuks) häkkimiseks. Kali Linux on tasuta kõigi poolt alla laetav. Turvalisuse testimiseks mõeldud programmid on ka ründajate poolt pahatahtlikel eesmärkidel ning rünneteks kasutatavad. Kali Linuxi tööriistadega tutvumine aitab mõista millised tööriistad kõikidele küberkurjategijatele lihtsasti tasuta saadaval on. Neid kasutades võivad ka skriptinagad (script kiddie) ehk võhiklikud arvutikasutajad teiste väljatöötatud kahjurvaraga süsteemidele suurt kahju tekitada.
Kali käivitab vaikimisi erinevalt praktiliselt kõigist teistest operatsioonisüsteemidest kõik programmid juurkasutaja õigustega. Seetõttu pole see peamise operatsioonisüsteemina kasutamiseks sobilik ning tuleks käivitada mälupulgalt või virtuaalmasinas.
Ülesanded
1. ülesanne - käsurea kasutamine
Ingliskeelne juhend algajatele Linuxi käsurea kasutamiseks on leitav Ubuntu tutorials veebilehelt.
2. ülesanne - tarkvara(pakettide) uuendamine ja paigaldamine
Paketihaldur
Erinevalt teistest operatsioonisüsteemidest uuendatakse Linuxis samast hoidlast (repository) ehk valitud serverist nii operatsioonisüsteemi kui kõiki programme. See tagab regulaarsel uuendamisel alati uusimate turvapaikade olemasolu.
Advanced Package Tool (APT)
Debian ning sellel põhinevad distributiivid kasutavad paketihaldurina APT-d. Erinevaid paketihaldureid on kümneid, kuid tööpõhimõte on neil kõigil sarnane, erinevad vaid kasutajaliidesed ning käsud.
sudo
Käsu alguses sudo
kasutamine võimaldab käivitada käsu ülejäänud osa teise kasutaja õigustega. Peamiselt kasutatakse seda juurkasutaja (superuser või root) ehk administraatori õiguste saamiseks. See eeldab, et administraatoriõiguste olemasolu ning parooli teadmist. Juurkasutajana tuleks minimaalõiguste printsiibi kohaselt käivitada ainult käsud ja programmid, mis seda tõesti vajavad. Turvaaugu olemasolul või kahjurvara korral on tavakasutaja õigustega käivitatava programmi kahju oluliselt väiksem. Juurkasutajal on täielik kontroll kogu süsteemi üle.
Täpselt nagu Windows vajab ka Linux (kõigile kasutajatele) programmide paigaldamiseks administraatoriõigusi. Seetõttu on sudo
tõenäoliselt kõige rohkem kasutatav tarkvarauuenduste tegemiseks.
sudo apt update
- pakettide nimekirja allalaadimine ning uuendamine (pakette endid ei muudeta)sudo apt upgrade
- eelnevalt uuendatud nimekirja põhjal kõikide uuenenud pakettide allalaadimine ning paigaldamine. Paljudes teistes paketihaldurites on need kaks käsku kombineeritudapt search <päring>
- tarkvarapakettide nimekirjast otsimine. Kasulik siis kui soovite tarkvara paigaldada, kuid ei tea selle paketi täpset nimetust, versiooni või olemasolu.sudo apt install <paketi nimi>
- uue paketi paigaldamine. See paigaldab automaatselt ka teisi pakette, millest paigaldatav sõltub (dependency) ning mõnikord ka muid soovituslikke pakette.
3. ülesanne - turvalogi ja logifailid
Ubuntusse vaikimisi paigaldatud rakenduste hulgas on logide vaatamise utiliit Logs. Selle leiab rakenduste hulgas olevast Utilities kaustast.
Logid on jaotatud kategooriatesse ning lisaks filtreeritavad buutimiste põhjal.