Ero sivun ”Tietoturva” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Lisätty tietoa raja-anturasta)
 
(58 välissä olevaa versiota 17 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
== Rant ==
'''Tietoturvassa''' on monesti kysymys asenteista. Unixin rakenteen (ja siihen liittyvien perinteiden) sekä vapaiden ohjelmien runsauden ansiosta virukset ja "spyware" eivät juurikaan vaivaa Linuxia. Tämä ei kuitenkaan tarkoita, että Linux olisi [[Haittaohjelmat|haittaohjelmille]] immuuni.
Tietoturvassa on monesti kysymys asenteista, tosin onneksi Linuxille on erittäin vähän viruksia ja spywarea. Kannattaa silti huolehtia järjestelmän tärkeimmät päivitykset ajantasalle. Lisävarmuuden tuomiseksi voi myös käyttää [[Palomuurit|palomuuria]], [[tcp-wrapper]]ia, [[SELinux]]ia ja [[IDS]]ia (eli hyökkäyksentunnistusjärjestelmiä). *NIX-tyylisten järjestelmien vanhimpia tietoturvaetuja on [[root|pääkäyttäjän]] säästeliäs käyttö, jatka tätä perinnettä! Hyvä tapa olisi jättää pääkäyttäjäterminaali kokonaan avaamatta, ja hoitaa pääkäyttäjäoikeuksia vaativat hommat [[su]]:n tai [[sudo]]n avulla.


== Käyttöjärjestelmän päivittäminen ==
Suurimmat riskit työpöytä-Linuxeissa ovat palvelujen säätö- tai [[ohjelmointivirhe]]et (varo siis turhien palvelujen avaamista maailmalle) ja selainten tietoturva-aukot. Kannattaa huolehtia järjestelmän tärkeimmät päivitykset ajantasalle: Linuxeja koetelleet madot ovat hyödyntäneet ongelmia, jotka asianmukaisesti ylläpidetyissä asennuksissa oli korjattu aikoja sitten.


Kaikista käyttöjärjestelmistä löytyy ajoittain ohjelmointivirheitä,
Lisävarmuuden tuomiseksi voi myös käyttää [[palomuuri]]a (joka helpottaa palvelujen rajaamisen aiotuille käyttäjille), [[TCP Wrapper]]ia (tavallaan palvelukohtainen palomuuri), SELinuxia ja [[IDS]]ia (hyökkäyksentunnistusjärjestelmiä). Kaksi ensinmainittua ovat helppoja ottaa käyttöön eivätkä vaikuta koneen tavalliseen käyttöön (ellei palomuuria säädä liian tiukaksi).
jotka heikentävät koneen turvallisuutta. Valmistajat julkaisevat
päivityksiä jotka korjaavat virheet, mutta päivitysten asentaminen on käyttäjän vastuulla.
Linuxin tapauksessa tarvittavat toimenpiteet riippuvat jonkin verran siitä, minkä valmistajan
jakelupaketti on käytössä.


Alla on annettu ohjeet yleisimpien jakeluiden päivittämiseen.
[[Unix]]-tyylisten järjestelmien vanhimpia tietoturvaetuja on [[root|pääkäyttäjän]] säästeliäs käyttö, jatka tätä perinnettä! Hyvä tapa olisi jättää pääkäyttäjäterminaali kokonaan avaamatta, ja hoitaa pääkäyttäjäoikeuksia vaativat hommat [[su]]:n, [[sudo]]n tai [[doas]]n avulla.
Mikäli käytössäsi niin vanha jakelu että valmistajalta ei enää saa
siihen tietoturvapäivityksiä lainkaan, on koko järjestelmä syytä
päivittää uudempaan versioon.


* [[Debianin päivittäminen|Debian GNU/Linux]]
== Käyttöjärjestelmän ja ohjelmien päivittäminen ==
* [[Fedoran ja Red Hatin päivittäminen|Fedora Linux]]
 
* [[Gentoon päivittäminen|Gentoo Linux]]
Kaikista ohjelmistoista löytyy ajoittain ohjelmointivirheitä, jotka heikentävät tietokoneen turvallisuutta. Valmistajat julkaisevat päivityksiä jotka korjaavat ohjelmistojen virheitä, mutta päivitysten asentaminen on käyttäjän vastuulla. Linuxin tapauksessa tarvittavat toimenpiteet riippuvat jonkin verran siitä, mikä [[jakelu|jakeluversio]] on käytössä.
* IT Linux, Lineox ja Spectra Linux: Kts. [http://www.raimokoski.com http://www.raimokoski.com]
 
* [[Mandrivan päivittäminen|Mandriva Linux]]
Kannattaa tarkistaa säännöllisesti (ehkä kerran viikossa) onko uusia päivityksiä saatavilla, ellei muistutuksia tule automaattisesti. Yleensä jokaisella jakelulla on oma sähköpostilista, millä tiedotetaan käyttöjärjestelmän ja ohjelmien tietoturvaan liittyvistä päivityksistä. Päivitykset asentuvat yleensä muutamalla hiiren klikkauksella tai parilla komennolla komentorivillä, kunhan "asennuslähteet" on oikein säädetty.
* [[Fedoran ja Red Hatin päivittäminen|Red Hat Linux]]
 
* SOT Linux: Päivityksiä ei enää julkaista, käyttäjiä suositellaan vaihtamaan johonkin toiseen jakeluun.
Jos osa ohjelmista on asennettu muualta kuin jakelun virallisista lähteistä, näiden ohjelmien päivityksistä pitää huolehtia erikseen. Asennuslähteen lisäämisen tai ulkopuolisen ohjelman asentamisen yhteydessä olisi hyvä selvittää, miten päivitykset tai tietoturvatiedotus on hoidettu tämän lähteen tai ohjelman osalta.
* [[SUSEn päivittäminen|SUSE Linux]]
 
* [[Ubuntun päivittäminen|Ubuntu Linux]]
Alla on annettu ohjeet yleisimpien jakeluversioiden ja niiden tukemien ohjelmistopakettien päivittämiseen.
* [[Slackware|Slackware Linux]]
Mikäli käytössä on niin vanha versio jakelusta että valmistaja ei enää tarjoa
siihen tietoturvapäivityksiä, on jakelu syytä päivittää uudempaan versioon.
 
* [[pacman#Päivittäminen|Arch Linuxin päivittämien]]
* [[Debianin päivittäminen]]
* [[Fedoran päivittäminen]]
* [[Gentoon päivittäminen]]
* [[SUSEn päivittäminen]]
* [[Ubuntun päivittäminen]]


== Käyttöoikeuksien hallinta ==
== Käyttöoikeuksien hallinta ==
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa [[käyttäjä|käyttäjien]] oikeuksia [[tiedostojärjestelmä|tiedostojärjestelmään]]. Käyttöoikeudet määritetään käyttäjä ja ryhmäkohtaisesti. Lisäksi Linuxin [[Linuxin hakemistorakenne|hakemistorakenteessa]] määritetään tarkkaan hakemistojen [[tiedoston oikeudet|käyttöoikeudet]] niiden tarkoituksen ja käyttöoikeuksien mukaan. Nämä yhdessä luovat pohjan tietoturvalliselle käyttöjärjestelmälle.
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa [[käyttäjä|käyttäjien]] oikeuksia [[tiedostojärjestelmä|tiedostojärjestelmään]]. Käyttöoikeudet määritetään käyttäjä- ja ryhmäkohtaisesti. Lisäksi Linuxin [[Linuxin hakemistorakenne|hakemistorakenteessa]] määritetään tarkkaan hakemistojen [[tiedoston oikeudet|käyttöoikeudet]] niiden tarkoituksen ja käyttöoikeuksien mukaan. Nämä yhdessä luovat pohjan tietoturvalliselle käyttöjärjestelmälle.


Linuxin tietoturvaa parantaa tavallisen- ja pääkäyttäjän erottaminen toisistaan. Pääkäyttäjällä eli erityisellä [[käyttäjä|root-tunnuksella]], on kaikki oikeudet käyttöjärjestelmään ja näin myös suurin riski vahingoittaa käyttöjärjestelmää. Tavallisen käyttäjän oikeudet taas ovat hyvin rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan kuten dokumenttien kirjoittamiseen ja musiikin kuuntelemiseen.
===Pääkäyttäjä===
Linuxin tietoturvaa parantaa tavallisen [[käyttäjä]]n ja pääkäyttäjän erottaminen toisistaan. Pääkäyttäjällä, eli erityisellä [[root]]-tunnuksella, on kaikki oikeudet käyttöjärjestelmään ja näin myös suurin riski vahingoittaa käyttöjärjestelmää. Tavallisen käyttäjän oikeudet taas ovat rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan, kuten dokumenttien kirjoittamisen, musiikin kuuntelemisen ja oman ympäristönsä muokkaamisen, jopa ohjelmien asentamisen omaan käyttöönsä.


Vaikka kotikäyttäjälle kahden käyttäjätunnuksen ja salasanan muistaminen kuulostaa absurdilta, on se ehdottomasti helpoin keino parantaa henkilökohtaista tietoturvaa. Esimerkiksi virusten ja haittaohjelmien levittäminen internetissä on helppoa ja ohjelmien virheiden vuoksi sellainen voi joutua myös omalle koneelle. Käyttämällä aina rajoitettua käyttäjätunnusta vähennät huomattavasti riskiä sotkea koko käyttöjärjestelmää.
Vaikka kotikäyttäjälle kahden käyttäjätunnuksen ja salasanan muistaminen voi kuulostaa turhalta, on se ehdottomasti helpoin keino parantaa henkilökohtaista tietoturvaa. Esimerkiksi virusten ja haittaohjelmien levittäminen internetissä on helppoa ja ohjelmien virheiden vuoksi sellainen voi joutua myös omalle koneelle. Käyttämällä aina rajoitettua käyttäjätunnusta vähennät huomattavasti riskiä sotkea koko käyttöjärjestelmää.


Siis ohje yksinkertaistettuna:
Siis ohje yksinkertaistettuna:
Rivi 37: Rivi 38:
# Kirjaudu sisään aina tavallisen "matti"-käyttäjän tunnuksilla, ei root-tunnuksilla!
# Kirjaudu sisään aina tavallisen "matti"-käyttäjän tunnuksilla, ei root-tunnuksilla!
# Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse
# Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse
# Käytä root-tunnusta ainoastaan ohjelmien ja järjestelmän asennukseen, ei mihinkään muuhun
# Käytä root-tunnusta ainoastaan ohjelmien ja järjestelmän asennukseen, kaikkia käyttäjiä koskeviin säätöihin yms. järjestelmän ylläpitoon, ei tavalliseen työhön
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön!
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön! Ohjelmia voi asentaa myös ajamatta asennusohjelmaa pääkäyttäjänä.
 
Suorittaaksesi ohjelman pääkäyttäjän tunnuksilla sinun ei tarvitse kirjautua ulos järjestelmästä. Voit kirjautua pääkäyttäjäksi eri [[virtuaalikonsoli|virtuaalikonsolilla]] tai [[terminaaliemulaattori|pääteikkunassa]]. Komentoriviltä minkä tahansa yksittäisen ohjelman voi suorittaa pääkäyttäjän oikeuksilla komennoilla [[su]] tai [[sudo]]. Pelkkä "su" vaihtaa pääkäyttäjän oikeuksiin "exit"-käskyyn saakka. sudon voi säätää niin, ettei salasanaa tarvitse antaa joka käskyn yhteydessä.
 
Useimmista [[jakelu]]ista löytyy vastaavat ohjelmat myös graafisena. [[GTK]]-pohjaisissa ympäristöissä ([[GNOME]], [[Xfce]] ym.) käytetään yleensä [[gksu]]a (tuki sulle ja sudolle) tai [[gksudo]]a (tuki sudolle). [[KDE]]:ssä käytetään [[kdesu]]a (tuki sulle, myös sudoa varten muokattuja versioita olemassa).  Järjestelmän asetusohjelmien avaaminen tavallisena käyttäjänä aiheuttaa yleensä pääkäyttäjän salasanan kysymisen joko gksu(do)n tai kdesun avulla. Koko työpöytäympäristöä ei pidä käynnistää pääkäyttäjänä.
 
===Palveluiden tunnukset ja ryhmät===
Jotta tietoturva-aukko yhdessä palvelimessa tai vastaavassa ohjelmassa ei mahdollistaisi koko järjestelmän haltuunottoa, palvelimet ajetaan yleensä jokainen omalla tunnuksellaan. Usein palvelimella on käytössään myös oma [[ryhmä]]. Näin murtautuja saa käyttöönsä vain rajalliset oikeudet. Pyrkimyksenä on, että palvelimen tunnuksella ei olisi oikeuksia muokata muita tiedostoja kuin mitä palvelimen toiminta vaatii.
 
Useimmiten palvelin on käynnistettävä pääkäyttäjän oikeuksin, jotta sillä olisi mahdollisuus käyttää tiettyjä [[TCP]]/[[UDP]]-portteja (<1024) tai muita erikoistoimintoja. Otettuaan käyttöön portin tai muun resurssin ohjelma luopuu pysyvästi näistä oikeuksista (katso [[setuid]]). Jotkut ohjelmat tarvitsevat jatkossakin pääkäyttäjäoikeuksia, mutta käyttävät  näitä säästeliäästi, suorittaen (valta)osan koodistaan palvelinkohtaisella tunnuksellaan, joko [[seteuid]]-kutsun tai [[fork|lapsiprosessien]] avulla.
 
Palvelimen (tai toiminnon) ryhmää käytetään esimerkiksi sähköpostin (mail), pelien (games), päätelaitteen (tty) ja kirjautumislokin (utmp) tapauksessa. Tiedostot ovat yksittäisen käyttäjän tai pääkäyttäjän omistuksessa, mutta ryhmäoikeuksien kautta eri ohjelmilla on oikeus kirjoittaa näihin tiedostoihin. Samaa järjestelmää voi käyttää mielivaltaisia uusia palvelimia luotaessa.
 
Aikoinaan palvelimet, jotka eivät tarvinneet pääkäyttäjäoikeuksia, ajettiin yleensä tunnuksella ja ryhmällä nobody. Tämä johti kuitenkin siihen, että ongelma yhdessä palvelimessa mahdollisti hyökkäykset muihin tätä tunnusta käyttäviin palvelimiin. Nykyään nobody on hyvin vähäisessä käytössä, mutta on käytettävissä ellei johonkin käyttöön halua luoda uusia tunnuksia. nobody-tunnusta käyttävistä palveluista mainittakoon [[NFS]], joka käyttää tätä tunnusta silloin kun se on asetettu olemaan luottamatta asiakaskoneen tarjoamiin käyttäjätunnuksiin ([[UID]]-numeroihin).
 
==Selaimet==
Useimmat [[www-selaimet]] ovat hyvin monimutkaisia ja nopeasti kehittyviä ohjelmia ja sen myötä alttiita ohjelmointivirheille. Selaimissa esiintyvät tietoturva-aukot korjataankin useimmiten hyvin nopeasti. Tärkeää on valita sellainen suosittu selain, jota päivitetään aktiivisesti, kuten [[Firefox]], [[Chrome]] tai [[Opera]].


Suorittaaksesi ohjelman pääkäyttäjän tunnuksilla sinun ei tarvitse kirjautua ulos järjestelmästä. Konsolissa ohjelman voi suorittaa pääkäyttäjän oikeuksilla komennoilla [[su]] tai [[sudo]].
Tärkein puolustuskeino on ohjelmien ja kirjastojen pitäminen päivitettyinä. Esimerkiksi [[JavaScript]]in kautta ei voi tulla haittaohjelmia ellei selaimessa ole vakavaa tietoturva-aukkoa. Suosituimmat selaimet päivitetään kuitenkin niin nopeasti tietoturva-aukkojen paljastuttua ettei käytännössä JavaScriptin kautta ole mahdollista tulla haittaohjelmia.


[[Työpöytäympäristö|Työpöytäympäristöistä]] löytyy vastaavat ohjelmat myös graafisena. [[Gnome|Gnomessa]] sudo-komentoa vastaa [[gksudo]] ja [[KDE|KDE:ssä]] [[ksud]]. Esimerkiksi Ubuntussa Synaptic-paketinhallinnan käynnistäminen kysyy pääkäyttäjän salasanan automaattisesti, käyttäen kyseistä [[gksudo]]-ohjelmaa.
Suurin tietoturvauhka selaimissa on kuitenkin niiden lisäosat ja liitännäiset. Selaimen lisäohjelmat tulisi valita harkiten niin että vain tarvittavat lisäohjelmat asennetaan, turhia lisäohjelmia ei tulisi koskaan asentaa. Etenkin [[Flash]]in ja [[Java]]-liitännäisen tietoturva-aukkoja hyödynnetään aktiivisesti, eikä niiden kehittäjiä juurikaan kiinnosta korjata ohjelmiaan nopealla aikataululla. Flashia tai Javaa ei tule missään tapauksessa asentaa selaimeen. Jos selaimessa on valmiiksi mukana Flash, kuten Chromessa, tulisi se kytkeä manuaalisesti pois päältä selaimen asetuksista. Monet kuitenkin käyttävät Flashia tai Javaa varoituksista huolimatta, tietäen niiden haitallisuuden. Tässä tapauksessa kannattaa vähintäänkin asettaa selaimen asetuksista selain kysymään ennen kuin Flash ja Java sisältöä suoritetaan.
 
Selaimen tietoturvaa lisääviä lisäosia voi asentaa oman harkinnan mukaan. Ohessa muutamia esimerkkejä.
* [[uBlock Origin]] - Mainokset tulee aina estää sillä niidenkin avulla levitetään haittaohjelmia. [https://www.viestintavirasto.fi/kyberturvallisuus/tietoturvanyt/2014/02/ttn201402071359.html] [https://www.viestintavirasto.fi/kyberturvallisuus/tietoturvanyt/2016/04/ttn201604111832.html]
* [[HTTPS Everywhere]] - Monet kirjautumista vaativat sivustot käyttävät TLS-salausta vain kirjautumisvaiheessa eikä sen jälkeen. Tämä mahdollistaa "[[wikipedia:fi:Mies välissä -hyökkäys|mies välissä]]" -hyökkäyksen, sillä evästeet kulkevat verkon yli salaamattomina. Tästä syystä kannattaakin käyttää aina kun mahdollista salattua HTTPS-yhteyttä.
* [[NoScript]] -  Lisäosat kannattaa sallia vain luotetuilta sivustoilta, kuten esimerkiksi nettipankin sivuilta. NoScriptillä pystyy nopeasti sallimaan tai estämään sivustojen JavaScriptit, Flashin ja Javan.
* [[RequestPolicy]] - Kätevä lisäosa jonka avulla voidaan estää kaikki ulkopuolisista verkkotunnuksista tuleva sisältö.


==Käynnistettävät tiedostot ja "autorun"==
==Käynnistettävät tiedostot ja "autorun"==


GNU/Linux on myös suojautunut tehokkaasti muilta ehkä hieman perinteisemmiltä [[virus|virusten]] levitystavoilta. Hyvinä esimerkkinä toimivat ns. piilotetut tiedostoformaatit ja oletusformaatit käynnistettäville tiedostoille. [[Windows|MS Windows]] [[käyttöjärjestelmä|käyttöjärjestelmät]] pitävät oletuksena kaikkia [[.exe]], [[.bat]], [[.com]], [[.pif]], [[.vbs]] sekä [[.scr]] tiedostoja käynnistyvinä, tämä tarkoittaa sitä että käyttäjä voi suoraan käynnistää ohjelman vain tuplaklikkaamalla. GNU/Linux käyttöjärjestelmä taas käsittelee kaikkia tiedostoja suoraan tekstitiedotoina ja niille täytyy ensin antaa käynnistysoikeus ennen kuin ne pystytään ajamaan. Tämä käytännössä lisää yhden kynnyksen lisää tiedostojen käynnistämiseen hieman tottakai vaikeuttaen tiedostojen käynnistämistä, mutta antaen käynnistäjälle harkinta-aikaa ja miettimistä sen suhteen että onko ohjelma varmasti oikein käynnistettävä. Tottakai paketeissa voidaan toimittaa jo valmiita binääripaketteja jotka ovat käynnistettävissä, mutta jos joku lähettää sinulle [[sähköposti|sähköpostissa]] .exe-tiedoston, et voi sitä ajaa ennen kuin olet antanut sille ajo-oikeudet.
Linux-jakeluissa sähköpostiohjelmia ei yleensä ole säädetty ajamaan liitteenä tulevia ohjelmia, vaikka liitettä klikattaisiinkin.
 
Kun tiedosto on tallennettu tiedostojärjestelmään, se, tulkitaanko se ohjelmaksi, määräytyy [[Tiedoston_oikeudet|tiedoston oikeuksiin]]
sisältyvien suoritusoikeusbittien, ei tiedostopäätteen tai edes tiedoston sisällön perusteella. Näin ohjelmaa ei tallennuksen jälkeenkään pääse vahingossa ajamaan. Käyttäjä voi niin halutessaan erikseen asettaa tiedostolle suoritusoikeudet.


Muita GNU/Linuxissa huomioituja ongelmia tiedostoihin liittyen ovat mm. tunnettujen tiedostojen piilotetut päätteet. Esimerkkinä ottakaamme tästä vaikka virus.jpg.exe-tiedosto, jossa on kaksiosainen tiedostopääte. Jos MS Windows-käyttöjärjestelmässä on päällä "piilota tunnetut tiedostomuodot" niin käyttäjälle näkyviin jää vain virus.jpg. Tämä monelle peruskäyttäjälle kertoo sen että kyseessä on pelkkä kuvatiedosto vaikka todellisuudessa sen käynnistyttyä lähtisi virus leviämään. Todellisuudessahan tiedosto on .exe-tiedosto, mutta Windows piilottaa loppuosan tiedostomuodosta. GNU/Linuxissa ei automaattista tiedostomuotojen tunnistusta ole viety näin pitkälle, joten voimme katsoa puutteen vain omaksi eduksemme. Ongelmaa ei myöskään ole [[CD-levy|CD-levyjen]] automaattikäynnistyksen kanssa, joka mahdollistaa useiden ohjelmien ajamisen kysymättä käyttäjältä mitään. Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin on silti tärkeää että käyttäjältä edes kysyttäisi että ajetaanko pyydetyt ohjelmat automaattisesti.
Sähköpostiohjelma tai tiedostoselain voidaan toki ohjelmoida niinkin, että ohjelmia pääsee klikkaamalla ajamaan, mutta tämä olisi turhaa tietoturvan vaarantamista.


Sama koskee [[CD-levy|CD-levyjen]] ja muitten irrotettavien medioitten autorun-ohjelmia: niitä ei yleensä ajeta ellei käyttäjä erikseen sitä pyydä.
Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin automaattikäynnistys on helppo tapa tehdä CD:stä [[Haittaohjelmat#Troijan hevoset|Troijan hevonen]] (katso [[wikipedia:en:2005_Sony_BMG_CD_copy_prevention_scandal|Sonyn rootkit]]).


===Binäärien ajaminen ja pakettien kautta leviävät virukset===
===Binäärien ajaminen ja pakettien kautta leviävät virukset===


Entä jos lataat jostain paketin jossa on sisällä haittaohjelma nimeltä "su", sama millä kirjaudutaan sisään toisella käyttäjällä. Purat paketin kotihakemistoon jonka jälkeen siellä löytyy käynnistettävä ohjelma nimeltä "su", teet normaalit [[lähdekoodi|lähdekoodin]] kääntämiseen liittyvät "./configure && make" toiminnot ja kun olet asentamassa pakettia järjestelmään ja vaihtamassa root-käyttäjäksi komennolla "su"... Mitä tapahtuu ? Vastaus on yksinkertainen, GNU/Linux järjestelmä ajaa binäärit oletuksena [[PATH]]-ympäristömuuttujan sisältämistä hakemistopoluista. Käytännössä tämä tarkoittaa sitä että jos pitää ajaa erillinen tiedosto tietystä hakemistosta pitää siihen eteen liittää merkintä "./", jos siis meidän su-viruksemme kirjoittaja haluaisi ohejlmansa tulevan ajetuksi niin se tulisi ajaa komennolla "./su" eikä "su". Komento "su" ajetaan ennaltamääritellyistä binääripolkujen sisältämistä paikoista – riippumatta siitä olisiko samanniminen ohjelma käynnistyksen aikaisessa hakemistossa.
Mitä siis tehdä, jos netistä löytyy (tai sähköpostissa tulee) ohjelma, jonka haluaa ajaa. Jos kyseessä on valmis ajettava tiedosto, riittää että tallettaa sen jonnekin, asettaa suoritusoikeudet ja ajaa sen:
[[chmod]] a+x troijan_hevonen
[[cwd|.]]/troijan_hevonen
 
Ohjelmalla on yleensä kaikki samat oikeudet kuin sen käynnistäjälläkin, eli ellei ohjelmaan luota, se pitää vähintään ajaa tähän tarkoitukseen erikseen luodulla tunnuksella, mieluiten ei ollenkaan.


Etuliite ./ (millä kerrotaan, että ohjelma on [[työhakemisto]]ssa) tarvitaan, jollei ohjelmaa ole asennettu ohjelmille tarkoitettuun hakemistoon (jotka on lueteltu [[PATH]]-[[ympäristömuuttuja|muuttujassa]]). Tällä järjestelyllä estetään (pää)käyttäjää vahingossa ajamasta ohjelmaa, jolle on annettu jonkin toisen ohjelman nimi (tai sellaisen väärinkirjoitettu muoto).
Jos ohjelma tulee paketoituna ([[tar]], [[RPM|rpm]], [[deb]] tms.), paketin asentaminen asentaa tiedostot paketoijan määräämään paikkaan, mahdollisesti ylikirjoittaen muita tiedostoja (varsinkin jos paketin asentaa pääkäyttäjänä) ja asettaen tiedosto-oikeudet kohdalleen. Pakettiin saattaa kuulua myös asennuksessa ajettavia skriptejä. Pakettia ei siis pidä asentaa epämääräisistä lähteistä ja hiukankin epävarmoissa tapauksissa se pitäisi asentaa tarkoitukseen erikseen luodulla tunnuksella (jolle annetaan vain tarvittavat oikeudet asennuksen ajaksi, yleensä kirjoitusoikeudet varta vasten luotuun hakemistoon).


== SELinux ja GRSecurity ==
== SELinux ja GRSecurity ==


[http://www.nsa.gov/selinux/ SELinux] on patchi ("korjaus") joka mahdollistaa tarkemman auditoinnin ("turvallisuustarkastelut") järjestelmän suorittamien toimenpiteiden suhteen. Lähes kaikille tapahtumille on mahdollista määrittää "turvatasot". NSA on kehittänyt SELinuxin, jonka takia voidaankin olettaa sen täyttävän erittäin korkean turvallisuusluokituksen.  
[[SELinux]] on kernelin moduuli joka mahdollistaa tarkemman auditoinnin ("turvallisuustarkastelut") järjestelmän suorittamien toimenpiteiden suhteen. Lähes kaikille tapahtumille on mahdollista määrittää "turvatasot". SELinuxin on kehittänyt NSA, jonka takia voidaankin olettaa sen täyttävän erittäin korkean turvallisuusluokituksen.


Säädettävyyden mukana tulee vaikeus; kuka jaksaa säätää kaiken pilkkua viilaten? Tämä on SELinuxin suurin ongelma: sen käyttöönotto on erittäin työläs.
Säädettävyyden mukana tulee vaikeus; kuka jaksaa säätää kaiken pilkkua viilaten? Tämä on SELinuxin suurin ongelma: sen käyttöönotto on erittäin työläs.


SELinux on 2.6-sarjan kernelissä ("ytimessä") mukana ja sen kehitys tapahtuu ytimen ohessa. 2.4-sarjalaisiin tämä on saatavissa erillisenä patch-settinä ("korjaussarjana").  
SELinux on 2.6-sarjan kernelissä ("ytimessä") mukana ja sen kehitys tapahtuu ytimen ohessa. 2.4-sarjalaisiin tämä on saatavissa erillisenä patch-settinä ("korjaussarjana").


[http://www.grsecurity.net/ GRSecurity] on kilpaileva "tuote" joka ei ole mukana valtavirrassa, mutta se tekijän mukaan mahdollistaa vielä suuremmat tietoturvatason säädöt.  
[[grsecurity]] on kilpaileva "tuote" joka ei ole mukana valtavirrassa, mutta se tekijän mukaan mahdollistaa vielä suuremmat tietoturvatason säädöt.


Molemmat tuotteet ovat hyödyllisiä jos niille on tarvetta. Yleensä pärjätään normaaleillakin turva-asetuksilla, mutta vaihtoehdot ovat hyväksi.
Molemmat tuotteet ovat hyödyllisiä jos niille on tarvetta. Yleensä pärjätään normaaleillakin turva-asetuksilla, mutta vaihtoehdot ovat hyväksi.
===Katso myös===
*[[Fedoran SELinux-asetukset]]
*[https://www.nsa.gov/ia/mitigation_guidance/security_configuration_guides/operating_systems.shtml#linux2 NSA:n tietoturvaoppaat] (pdf)


== TCP-wrapper ==
== TCP-wrapper ==


TCP-wrapper on käyttöoikeuskirjasto, jolla voidaan määritellä monimutkaisempia sääntöjä, ketkä pääsevät mihinkin verkkopalveluun ottamaan yhteyttä. Komennolla ldd /polku/ohjelmistoon | grep libwrap voi tarkistaa tukeeko palvelinohjelma TCP-wrapperia.
[[tcpwrappers|TCP-wrapper]] on käyttöoikeuskirjasto, jolla voidaan määritellä monimutkaisempia sääntöjä, ketkä pääsevät mihinkin verkkopalveluun ottamaan yhteyttä. Komennolla ldd /polku/ohjelmistoon | grep libwrap voi tarkistaa tukeeko palvelinohjelma TCP-wrapperia. Palvelun voi myös jättää tcpd:n käynnistettäväksi yhteyskohtaisesti [[inetd]]:n kautta, jolloin tcpd huolehtii rajoituksista.


Säännöt rakentuvat niin, että ensin pitää kieltää kaikki <tt>hosts.deny</tt> tiedostossa ja sitten sallia yhteyksiä <tt>hosts.allow</tt> tiedostossa.
Säännöt rakentuvat niin, että ensin pitää kieltää kaikki <tt>hosts.deny</tt>-tiedostossa ja sitten sallia yhteyksiä <tt>hosts.allow</tt>-tiedostossa (näin siis yleensä kotikoneella).


Esimerkki perussäädöistä, joissa sallitaan vain .fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.
Esimerkki perussäädöistä, joissa sallitaan yhteydenotto SSHD-palvelinohjelmistoon vain verkkotunnusten omalafka.fi ja jokinlafka.fi alaisista koneista.


/etc/hosts.deny:
/etc/hosts.deny:
  SSHD: ALL
  ALL: ALL


/etc/hosts.allow:
/etc/hosts.allow:
  SSHD: .fi
  sshd: .omalafka.fi
sshd: .jokinlafka.fi EXCEPT UNKNOWN
 
Nimien käyttö ip-osoitteiden sijaan aiheuttaa turvallisuusreiän: se, joka itse hallitsee omat nimipalvelimensa, voi asettaa koneen nimen haluamakseen. Ylläolevat säännöt kuitenkin riittävät automaattisten hyökkäysten torjumiseen, ainakin jollei omalafka.fi ole arvattavissa koneen oman nimen tms. perusteella. EXCEPT UNKNOWN suojaa hyökkäysiltä vaatimalla yhteensopivuus ip-osoitteella saadun nimen ja tällä nimellä saadun ip-osoitteen välillä, mutta samalla yhteydet voivat estyä nimipalvelin- tai verkko-ongelmien takia.


== Palomuuri ==
== Palomuuri ==
Rivi 91: Rivi 133:


==SSH==
==SSH==
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty.
Jos ajat [[SSH]]-palvelinta, kannattaa tarkistaa että soveltuvat [[SSH-turvatoimet]] on tehty. sshd käyttää yleensä sekä omia asetuksiaan, että pam-kirjastoa ja normaaleja unix-salasanoja. Asetusten yhteisvaikutus ei ole intuitiivinen, joten asiaa koskevien varoitusten lukeminen on hyvin suotavaa. Parasta on rajoittaa yhteydet muutamaan luotettavaan ip-osoitteeseen.
 
==PRISM==
Kattava yhdysvaltalainen vakoiluohjelma, jonka seurauksena lukuisat ohjelmistot sekä palvelut, joita myös Linux-pohjaiset käyttöjärjestelmät voivat käyttää ja siten altistua, ovat potentiaalisesti tietoturvariskejä. 
 
* [https://fi.wikipedia.org/wiki/PRISM_%28ohjelma%29 https://fi.wikipedia.org/wiki/PRISM_%28ohjelma%29]
* [https://prism-break.org/fi/ https://prism-break.org/fi/ - Vaihtoehtoja yleisesti käytetyille ohjelmille sekä palveluille.]
 
==Avoin lähdekoodi vs suljettu lähdekoodi==
Suljetun lähdekoodin ratkaisujen käyttäminen on aina arvanheittoa siitä, että sen kyseisen sovelluksen kehittäjät ovat fiksumpia kuin loput 7 miljardia ihmiskunnasta, toisaalta avoimen lähdekoodin sovellus voi olla yhtä lailla riski ellei sen lähdekoodia ole tarkastettu. Kaikesta huolimatta avoimen lähdekoodin sovellusten käyttäminen etenkin suositumpien sovellusten kohdalla voi olla loogisempi ratkaisu, koska silloin useampi silmä on todennäköisesti jo tarkastanut lähdekoodin.


==Katso myös==
==Katso myös==
[[Langattoman verkon tietoturva]]
*[[Haittaohjelmat]]
*[[Langattoman verkon tietoturva]]
 
==Aiheesta muualla==
* [http://write.flossmanuals.net/tietoturvan-perusteet/johdanto/ FLOSS Manuals - Tietoturvan perusteet]
* [https://www.kyberturvallisuuskeskus.fi/fi/haavoittuvuudet?limit=20&offset=0&query=Linux&sort=updated kyberturvallisuuskeskus.fi - Ajankohtaista tietoa ohjelmistohaavoittuvuuksista]


[[Luokka:Tietoturva]]
[[Luokka:Tietoturva]]
{{Malline:Palvelin}}

Nykyinen versio 7. maaliskuuta 2022 kello 18.37

Tietoturvassa on monesti kysymys asenteista. Unixin rakenteen (ja siihen liittyvien perinteiden) sekä vapaiden ohjelmien runsauden ansiosta virukset ja "spyware" eivät juurikaan vaivaa Linuxia. Tämä ei kuitenkaan tarkoita, että Linux olisi haittaohjelmille immuuni.

Suurimmat riskit työpöytä-Linuxeissa ovat palvelujen säätö- tai ohjelmointivirheet (varo siis turhien palvelujen avaamista maailmalle) ja selainten tietoturva-aukot. Kannattaa huolehtia järjestelmän tärkeimmät päivitykset ajantasalle: Linuxeja koetelleet madot ovat hyödyntäneet ongelmia, jotka asianmukaisesti ylläpidetyissä asennuksissa oli korjattu aikoja sitten.

Lisävarmuuden tuomiseksi voi myös käyttää palomuuria (joka helpottaa palvelujen rajaamisen aiotuille käyttäjille), TCP Wrapperia (tavallaan palvelukohtainen palomuuri), SELinuxia ja IDSia (hyökkäyksentunnistusjärjestelmiä). Kaksi ensinmainittua ovat helppoja ottaa käyttöön eivätkä vaikuta koneen tavalliseen käyttöön (ellei palomuuria säädä liian tiukaksi).

Unix-tyylisten järjestelmien vanhimpia tietoturvaetuja on pääkäyttäjän säästeliäs käyttö, jatka tätä perinnettä! Hyvä tapa olisi jättää pääkäyttäjäterminaali kokonaan avaamatta, ja hoitaa pääkäyttäjäoikeuksia vaativat hommat su:n, sudon tai doasn avulla.

Käyttöjärjestelmän ja ohjelmien päivittäminen[muokkaa]

Kaikista ohjelmistoista löytyy ajoittain ohjelmointivirheitä, jotka heikentävät tietokoneen turvallisuutta. Valmistajat julkaisevat päivityksiä jotka korjaavat ohjelmistojen virheitä, mutta päivitysten asentaminen on käyttäjän vastuulla. Linuxin tapauksessa tarvittavat toimenpiteet riippuvat jonkin verran siitä, mikä jakeluversio on käytössä.

Kannattaa tarkistaa säännöllisesti (ehkä kerran viikossa) onko uusia päivityksiä saatavilla, ellei muistutuksia tule automaattisesti. Yleensä jokaisella jakelulla on oma sähköpostilista, millä tiedotetaan käyttöjärjestelmän ja ohjelmien tietoturvaan liittyvistä päivityksistä. Päivitykset asentuvat yleensä muutamalla hiiren klikkauksella tai parilla komennolla komentorivillä, kunhan "asennuslähteet" on oikein säädetty.

Jos osa ohjelmista on asennettu muualta kuin jakelun virallisista lähteistä, näiden ohjelmien päivityksistä pitää huolehtia erikseen. Asennuslähteen lisäämisen tai ulkopuolisen ohjelman asentamisen yhteydessä olisi hyvä selvittää, miten päivitykset tai tietoturvatiedotus on hoidettu tämän lähteen tai ohjelman osalta.

Alla on annettu ohjeet yleisimpien jakeluversioiden ja niiden tukemien ohjelmistopakettien päivittämiseen. Mikäli käytössä on niin vanha versio jakelusta että valmistaja ei enää tarjoa siihen tietoturvapäivityksiä, on jakelu syytä päivittää uudempaan versioon.

Käyttöoikeuksien hallinta[muokkaa]

Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa käyttäjien oikeuksia tiedostojärjestelmään. Käyttöoikeudet määritetään käyttäjä- ja ryhmäkohtaisesti. Lisäksi Linuxin hakemistorakenteessa määritetään tarkkaan hakemistojen käyttöoikeudet niiden tarkoituksen ja käyttöoikeuksien mukaan. Nämä yhdessä luovat pohjan tietoturvalliselle käyttöjärjestelmälle.

Pääkäyttäjä[muokkaa]

Linuxin tietoturvaa parantaa tavallisen käyttäjän ja pääkäyttäjän erottaminen toisistaan. Pääkäyttäjällä, eli erityisellä root-tunnuksella, on kaikki oikeudet käyttöjärjestelmään ja näin myös suurin riski vahingoittaa käyttöjärjestelmää. Tavallisen käyttäjän oikeudet taas ovat rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan, kuten dokumenttien kirjoittamisen, musiikin kuuntelemisen ja oman ympäristönsä muokkaamisen, jopa ohjelmien asentamisen omaan käyttöönsä.

Vaikka kotikäyttäjälle kahden käyttäjätunnuksen ja salasanan muistaminen voi kuulostaa turhalta, on se ehdottomasti helpoin keino parantaa henkilökohtaista tietoturvaa. Esimerkiksi virusten ja haittaohjelmien levittäminen internetissä on helppoa ja ohjelmien virheiden vuoksi sellainen voi joutua myös omalle koneelle. Käyttämällä aina rajoitettua käyttäjätunnusta vähennät huomattavasti riskiä sotkea koko käyttöjärjestelmää.

Siis ohje yksinkertaistettuna:

  1. Kirjaudu sisään aina tavallisen "matti"-käyttäjän tunnuksilla, ei root-tunnuksilla!
  2. Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse
  3. Käytä root-tunnusta ainoastaan ohjelmien ja järjestelmän asennukseen, kaikkia käyttäjiä koskeviin säätöihin yms. järjestelmän ylläpitoon, ei tavalliseen työhön
  4. Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön! Ohjelmia voi asentaa myös ajamatta asennusohjelmaa pääkäyttäjänä.

Suorittaaksesi ohjelman pääkäyttäjän tunnuksilla sinun ei tarvitse kirjautua ulos järjestelmästä. Voit kirjautua pääkäyttäjäksi eri virtuaalikonsolilla tai pääteikkunassa. Komentoriviltä minkä tahansa yksittäisen ohjelman voi suorittaa pääkäyttäjän oikeuksilla komennoilla su tai sudo. Pelkkä "su" vaihtaa pääkäyttäjän oikeuksiin "exit"-käskyyn saakka. sudon voi säätää niin, ettei salasanaa tarvitse antaa joka käskyn yhteydessä.

Useimmista jakeluista löytyy vastaavat ohjelmat myös graafisena. GTK-pohjaisissa ympäristöissä (GNOME, Xfce ym.) käytetään yleensä gksua (tuki sulle ja sudolle) tai gksudoa (tuki sudolle). KDE:ssä käytetään kdesua (tuki sulle, myös sudoa varten muokattuja versioita olemassa). Järjestelmän asetusohjelmien avaaminen tavallisena käyttäjänä aiheuttaa yleensä pääkäyttäjän salasanan kysymisen joko gksu(do)n tai kdesun avulla. Koko työpöytäympäristöä ei pidä käynnistää pääkäyttäjänä.

Palveluiden tunnukset ja ryhmät[muokkaa]

Jotta tietoturva-aukko yhdessä palvelimessa tai vastaavassa ohjelmassa ei mahdollistaisi koko järjestelmän haltuunottoa, palvelimet ajetaan yleensä jokainen omalla tunnuksellaan. Usein palvelimella on käytössään myös oma ryhmä. Näin murtautuja saa käyttöönsä vain rajalliset oikeudet. Pyrkimyksenä on, että palvelimen tunnuksella ei olisi oikeuksia muokata muita tiedostoja kuin mitä palvelimen toiminta vaatii.

Useimmiten palvelin on käynnistettävä pääkäyttäjän oikeuksin, jotta sillä olisi mahdollisuus käyttää tiettyjä TCP/UDP-portteja (<1024) tai muita erikoistoimintoja. Otettuaan käyttöön portin tai muun resurssin ohjelma luopuu pysyvästi näistä oikeuksista (katso setuid). Jotkut ohjelmat tarvitsevat jatkossakin pääkäyttäjäoikeuksia, mutta käyttävät näitä säästeliäästi, suorittaen (valta)osan koodistaan palvelinkohtaisella tunnuksellaan, joko seteuid-kutsun tai lapsiprosessien avulla.

Palvelimen (tai toiminnon) ryhmää käytetään esimerkiksi sähköpostin (mail), pelien (games), päätelaitteen (tty) ja kirjautumislokin (utmp) tapauksessa. Tiedostot ovat yksittäisen käyttäjän tai pääkäyttäjän omistuksessa, mutta ryhmäoikeuksien kautta eri ohjelmilla on oikeus kirjoittaa näihin tiedostoihin. Samaa järjestelmää voi käyttää mielivaltaisia uusia palvelimia luotaessa.

Aikoinaan palvelimet, jotka eivät tarvinneet pääkäyttäjäoikeuksia, ajettiin yleensä tunnuksella ja ryhmällä nobody. Tämä johti kuitenkin siihen, että ongelma yhdessä palvelimessa mahdollisti hyökkäykset muihin tätä tunnusta käyttäviin palvelimiin. Nykyään nobody on hyvin vähäisessä käytössä, mutta on käytettävissä ellei johonkin käyttöön halua luoda uusia tunnuksia. nobody-tunnusta käyttävistä palveluista mainittakoon NFS, joka käyttää tätä tunnusta silloin kun se on asetettu olemaan luottamatta asiakaskoneen tarjoamiin käyttäjätunnuksiin (UID-numeroihin).

Selaimet[muokkaa]

Useimmat www-selaimet ovat hyvin monimutkaisia ja nopeasti kehittyviä ohjelmia ja sen myötä alttiita ohjelmointivirheille. Selaimissa esiintyvät tietoturva-aukot korjataankin useimmiten hyvin nopeasti. Tärkeää on valita sellainen suosittu selain, jota päivitetään aktiivisesti, kuten Firefox, Chrome tai Opera.

Tärkein puolustuskeino on ohjelmien ja kirjastojen pitäminen päivitettyinä. Esimerkiksi JavaScriptin kautta ei voi tulla haittaohjelmia ellei selaimessa ole vakavaa tietoturva-aukkoa. Suosituimmat selaimet päivitetään kuitenkin niin nopeasti tietoturva-aukkojen paljastuttua ettei käytännössä JavaScriptin kautta ole mahdollista tulla haittaohjelmia.

Suurin tietoturvauhka selaimissa on kuitenkin niiden lisäosat ja liitännäiset. Selaimen lisäohjelmat tulisi valita harkiten niin että vain tarvittavat lisäohjelmat asennetaan, turhia lisäohjelmia ei tulisi koskaan asentaa. Etenkin Flashin ja Java-liitännäisen tietoturva-aukkoja hyödynnetään aktiivisesti, eikä niiden kehittäjiä juurikaan kiinnosta korjata ohjelmiaan nopealla aikataululla. Flashia tai Javaa ei tule missään tapauksessa asentaa selaimeen. Jos selaimessa on valmiiksi mukana Flash, kuten Chromessa, tulisi se kytkeä manuaalisesti pois päältä selaimen asetuksista. Monet kuitenkin käyttävät Flashia tai Javaa varoituksista huolimatta, tietäen niiden haitallisuuden. Tässä tapauksessa kannattaa vähintäänkin asettaa selaimen asetuksista selain kysymään ennen kuin Flash ja Java sisältöä suoritetaan.

Selaimen tietoturvaa lisääviä lisäosia voi asentaa oman harkinnan mukaan. Ohessa muutamia esimerkkejä.

  • uBlock Origin - Mainokset tulee aina estää sillä niidenkin avulla levitetään haittaohjelmia. [1] [2]
  • HTTPS Everywhere - Monet kirjautumista vaativat sivustot käyttävät TLS-salausta vain kirjautumisvaiheessa eikä sen jälkeen. Tämä mahdollistaa "mies välissä" -hyökkäyksen, sillä evästeet kulkevat verkon yli salaamattomina. Tästä syystä kannattaakin käyttää aina kun mahdollista salattua HTTPS-yhteyttä.
  • NoScript - Lisäosat kannattaa sallia vain luotetuilta sivustoilta, kuten esimerkiksi nettipankin sivuilta. NoScriptillä pystyy nopeasti sallimaan tai estämään sivustojen JavaScriptit, Flashin ja Javan.
  • RequestPolicy - Kätevä lisäosa jonka avulla voidaan estää kaikki ulkopuolisista verkkotunnuksista tuleva sisältö.

Käynnistettävät tiedostot ja "autorun"[muokkaa]

Linux-jakeluissa sähköpostiohjelmia ei yleensä ole säädetty ajamaan liitteenä tulevia ohjelmia, vaikka liitettä klikattaisiinkin.

Kun tiedosto on tallennettu tiedostojärjestelmään, se, tulkitaanko se ohjelmaksi, määräytyy tiedoston oikeuksiin sisältyvien suoritusoikeusbittien, ei tiedostopäätteen tai edes tiedoston sisällön perusteella. Näin ohjelmaa ei tallennuksen jälkeenkään pääse vahingossa ajamaan. Käyttäjä voi niin halutessaan erikseen asettaa tiedostolle suoritusoikeudet.

Sähköpostiohjelma tai tiedostoselain voidaan toki ohjelmoida niinkin, että ohjelmia pääsee klikkaamalla ajamaan, mutta tämä olisi turhaa tietoturvan vaarantamista.

Sama koskee CD-levyjen ja muitten irrotettavien medioitten autorun-ohjelmia: niitä ei yleensä ajeta ellei käyttäjä erikseen sitä pyydä. Vaikka CD-levyjen kautta ei viruksia juurikaan levitetä niin automaattikäynnistys on helppo tapa tehdä CD:stä Troijan hevonen (katso Sonyn rootkit).

Binäärien ajaminen ja pakettien kautta leviävät virukset[muokkaa]

Mitä siis tehdä, jos netistä löytyy (tai sähköpostissa tulee) ohjelma, jonka haluaa ajaa. Jos kyseessä on valmis ajettava tiedosto, riittää että tallettaa sen jonnekin, asettaa suoritusoikeudet ja ajaa sen:

chmod a+x troijan_hevonen
./troijan_hevonen

Ohjelmalla on yleensä kaikki samat oikeudet kuin sen käynnistäjälläkin, eli ellei ohjelmaan luota, se pitää vähintään ajaa tähän tarkoitukseen erikseen luodulla tunnuksella, mieluiten ei ollenkaan.

Etuliite ./ (millä kerrotaan, että ohjelma on työhakemistossa) tarvitaan, jollei ohjelmaa ole asennettu ohjelmille tarkoitettuun hakemistoon (jotka on lueteltu PATH-muuttujassa). Tällä järjestelyllä estetään (pää)käyttäjää vahingossa ajamasta ohjelmaa, jolle on annettu jonkin toisen ohjelman nimi (tai sellaisen väärinkirjoitettu muoto).

Jos ohjelma tulee paketoituna (tar, rpm, deb tms.), paketin asentaminen asentaa tiedostot paketoijan määräämään paikkaan, mahdollisesti ylikirjoittaen muita tiedostoja (varsinkin jos paketin asentaa pääkäyttäjänä) ja asettaen tiedosto-oikeudet kohdalleen. Pakettiin saattaa kuulua myös asennuksessa ajettavia skriptejä. Pakettia ei siis pidä asentaa epämääräisistä lähteistä ja hiukankin epävarmoissa tapauksissa se pitäisi asentaa tarkoitukseen erikseen luodulla tunnuksella (jolle annetaan vain tarvittavat oikeudet asennuksen ajaksi, yleensä kirjoitusoikeudet varta vasten luotuun hakemistoon).

SELinux ja GRSecurity[muokkaa]

SELinux on kernelin moduuli joka mahdollistaa tarkemman auditoinnin ("turvallisuustarkastelut") järjestelmän suorittamien toimenpiteiden suhteen. Lähes kaikille tapahtumille on mahdollista määrittää "turvatasot". SELinuxin on kehittänyt NSA, jonka takia voidaankin olettaa sen täyttävän erittäin korkean turvallisuusluokituksen.

Säädettävyyden mukana tulee vaikeus; kuka jaksaa säätää kaiken pilkkua viilaten? Tämä on SELinuxin suurin ongelma: sen käyttöönotto on erittäin työläs.

SELinux on 2.6-sarjan kernelissä ("ytimessä") mukana ja sen kehitys tapahtuu ytimen ohessa. 2.4-sarjalaisiin tämä on saatavissa erillisenä patch-settinä ("korjaussarjana").

grsecurity on kilpaileva "tuote" joka ei ole mukana valtavirrassa, mutta se tekijän mukaan mahdollistaa vielä suuremmat tietoturvatason säädöt.

Molemmat tuotteet ovat hyödyllisiä jos niille on tarvetta. Yleensä pärjätään normaaleillakin turva-asetuksilla, mutta vaihtoehdot ovat hyväksi.

Katso myös[muokkaa]

TCP-wrapper[muokkaa]

TCP-wrapper on käyttöoikeuskirjasto, jolla voidaan määritellä monimutkaisempia sääntöjä, ketkä pääsevät mihinkin verkkopalveluun ottamaan yhteyttä. Komennolla ldd /polku/ohjelmistoon | grep libwrap voi tarkistaa tukeeko palvelinohjelma TCP-wrapperia. Palvelun voi myös jättää tcpd:n käynnistettäväksi yhteyskohtaisesti inetd:n kautta, jolloin tcpd huolehtii rajoituksista.

Säännöt rakentuvat niin, että ensin pitää kieltää kaikki hosts.deny-tiedostossa ja sitten sallia yhteyksiä hosts.allow-tiedostossa (näin siis yleensä kotikoneella).

Esimerkki perussäädöistä, joissa sallitaan yhteydenotto SSHD-palvelinohjelmistoon vain verkkotunnusten omalafka.fi ja jokinlafka.fi alaisista koneista.

/etc/hosts.deny:

ALL: ALL

/etc/hosts.allow:

sshd: .omalafka.fi
sshd: .jokinlafka.fi EXCEPT UNKNOWN

Nimien käyttö ip-osoitteiden sijaan aiheuttaa turvallisuusreiän: se, joka itse hallitsee omat nimipalvelimensa, voi asettaa koneen nimen haluamakseen. Ylläolevat säännöt kuitenkin riittävät automaattisten hyökkäysten torjumiseen, ainakin jollei omalafka.fi ole arvattavissa koneen oman nimen tms. perusteella. EXCEPT UNKNOWN suojaa hyökkäysiltä vaatimalla yhteensopivuus ip-osoitteella saadun nimen ja tällä nimellä saadun ip-osoitteen välillä, mutta samalla yhteydet voivat estyä nimipalvelin- tai verkko-ongelmien takia.

Palomuuri[muokkaa]

Useimmiten verkkoon liitettävät laitteet on syytä suojata palomuurilla. Linux-palomuureista tietoutta löytyy Palomuurit-artikkelista.

Virustorjunta[muokkaa]

Linuxille on tehty todella vähän viruksia, mutta esim. Windows-järjestelmien sähköpostia liikuttavissa palvelimissa tai tiedostosäilöissä voi olla tarpeen käyttää virustorjuntaa. Aiheesta lisää sivulla Virustorjunta.

SSH[muokkaa]

Jos ajat SSH-palvelinta, kannattaa tarkistaa että soveltuvat SSH-turvatoimet on tehty. sshd käyttää yleensä sekä omia asetuksiaan, että pam-kirjastoa ja normaaleja unix-salasanoja. Asetusten yhteisvaikutus ei ole intuitiivinen, joten asiaa koskevien varoitusten lukeminen on hyvin suotavaa. Parasta on rajoittaa yhteydet muutamaan luotettavaan ip-osoitteeseen.

PRISM[muokkaa]

Kattava yhdysvaltalainen vakoiluohjelma, jonka seurauksena lukuisat ohjelmistot sekä palvelut, joita myös Linux-pohjaiset käyttöjärjestelmät voivat käyttää ja siten altistua, ovat potentiaalisesti tietoturvariskejä.

Avoin lähdekoodi vs suljettu lähdekoodi[muokkaa]

Suljetun lähdekoodin ratkaisujen käyttäminen on aina arvanheittoa siitä, että sen kyseisen sovelluksen kehittäjät ovat fiksumpia kuin loput 7 miljardia ihmiskunnasta, toisaalta avoimen lähdekoodin sovellus voi olla yhtä lailla riski ellei sen lähdekoodia ole tarkastettu. Kaikesta huolimatta avoimen lähdekoodin sovellusten käyttäminen etenkin suositumpien sovellusten kohdalla voi olla loogisempi ratkaisu, koska silloin useampi silmä on todennäköisesti jo tarkastanut lähdekoodin.

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]

v  k  m
Palvelin
 Ylläpito  SSH | Tietoturva | Käyttäjien hallinta | Systemd | iptables | Security-Enhanced Linux | AppArmor
 Palvelintyypit  Web-palvelin | Sähköposti | Tietokanta | NFS | Samba
 Komentorivi  Komentorivin perusteet | Komentorivikomennot | Bash-skriptaus
 Tekstieditoreja  nano | vi | emacs
Palvelin-luokka