Ero sivun ”Tietoturva” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
Rivi 29: Rivi 29:


== Käyttöoikeuksien hallinta ==
== Käyttöoikeuksien hallinta ==
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa käyttäjien oikeuksia järjestelmään. Käyttöoikeuksien hallinta suoritetaan tiedostojärjestelmän, käyttäjätunnusten ja käyttöoikeusryhmien avulla. Tässä pyritään selvittämään kuinka jokainen kotikäyttäjä voi hyötyä usean käyttäjän palvelinympäristöön tarkoitetuista tekniikoista. Hyvä periaate tässäkin on, että kaikki mikä ei ole välttämätöntä on kiellettyä.
Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa [[käyttäjä|käyttäjien]] oikeuksia [[tiedostojärjestelmä|tiedostojärjestelmään]]. Käyttöoikeuksien hallinta suoritetaan käyttäjien ja käyttäjäryhmien avulla, joilla rajoitetaan ohjelmien oikeuksia käsitellä tiedostojärjestelmää. Lisäksi Linuxin [[Linuxin hakemistorakenne|hakemistorakenteessa]] määritetään tarkkaan hakemistojen [[tiedoston oikeudet|käyttöoikeudet]] niiden tarkoituksen ja käyttöoikeuksien mukaan.


=== Käyttäjät ja ryhmät ===
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  (lisää linkit näille sivuille)dokumenttien kirjoittamiseen ja musiikin kuuntelemiseen.
Linux-järjestelmässä jokaisella käyttäjällä on henkilökohtainen käyttäjätunnus ja salasana, mikä liitetään yhteen tai useampaan käyttöoikeusryhmään. Ryhmien perusteella määrätään mikä on käyttäjälle sallittua järjestelmässä. Käyttäjät voidaan jakaa karkeasti kahteen ryhmään tehtäviensä perusteella:


* Tavallinen käyttäjä (ryhmät esim. "users, audio, video", tunnus "matti")
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ää.
** Internetissä surffaileminen, sähköpostin lukeminen
** Dokumenttien kirjoittaminen, kuvien käsitteleminen
** Elokuvien katsominen, musiikin kuunteleminen
** ''EI ohjelmien asentaminen tai järjestelmän asetusten muuttaminen''


* Pääkäyttäjä (ryhmä "root", tunnus "root")
Siis ohje yksinkertaistettuna:
** Käyttäjäoikeuksien hallinta, hakemistojen ja kiintolevyjen käyttöoikeuksien hallinta
** Ohjelmien asentaminen ja poistaminen
** Käyttöjärjestelmän asetusten muuttaminen
** Kiintolevyjen formatointi, osiointi, kuten Windows-osion poistaminen
** Linuxin täydellinen rikkominen
** ''EI elokuvien katsominen tai netissä surffaileminen''


Tavalliselta käyttäjältä "matti" on siis estetty kaikki toiminnot mitkä saattaisivat vahingoittaa itse järjestelmää. Vastavuoroisesti pääkäyttäjällä, vakiintunut käyttäjätunnus on "root", on täydellinen hallinta järjestelmään. Tämä käsittää myös täydellisen mahdollisuuden rikkoa järjestelmä, formatoida kiintolevy, asentaa viruksia tai muita haittaohjelmia.
# Kirjaudu sisään aina tavallisen "matti"-käyttäjän tunnuksilla, mikäli se ei ole välttämätöntä!
# Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse
# Käytä ohjelmien asennukseen ja järjestelmän asennukseen erityistä root-tunnusta, ja vain siihen
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön!


Vaikka järjestelmän pääkäyttäjä ja normaalikäyttäjä voivat todellisuudessa olla yksi ja sama henkilö, on tietoturvan kannalta edullista käyttää päivittäiseen käyttöön rajoitettuja käyttöoikeuksia. Näin vähennät huomattavasti riskiä sotkea Linuxia vahingossa.
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]] ja [[sudo]].


Siis ohje lyhyesti:
[[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.
 
# Käytä Linuxia aina tavallisen käyttäjän tunnuksilla, mikäli se ei ole välttämätöntä!
# Lisää käyttöoikeudet
# Käytä root-tunnusta vain ja ainoastaan asentaessa ohjelmaa tai muuttaessa asetuksia.
# Jos vieras ohjelma vaatii pääkäyttäjän tunnusta, mieti kahdesti onko ohjelma välttämätön!
 
=== Miksi nähdä vaivaa? ===
Internet mahdollistaa virusten ja haittaohjelmien tehokkaan levittämisen. Ohjelmat tuskin koskaan ovat täydellisen virheettömiä ja ohjelmavirheiden kautta myös haittaohjelmat saattavat päätyä koneelle ilman käyttäjän huomaamista.
 
Monelle Windows-käyttäjälle on käynyt, että virus sotkee käyttöjärjestelmän ja uudelleenasentaminen on välttämätöntä. Miksi? Koska Windows oletuksena antaa käyttäjälle täydet oikeudet järjestelmään ja näin vahingossa tai tietämättä käynnistetty haittaohjelma pääsee sotkemaan koko käyttöjärjestelmän.
 
Linux-järjestelmissä perinteinen lähtökohta on erilainen. Mieluummin vaaditaan pääkäyttäjän tunnus ja salasala kaikkiin käyttöjärjestelmän muutoksiin, kuin asennetaan vahingossa viruksia tai haittaohjelmia.
 
Kannattaa muistaa, että tietoturva on aina kompromissi käytettävyyden ja suojausmenetelmien välillä.
 
=== Helpottavia ohjeita ja komentoja===
 
Käyttääksesi pääkäyttäjän tunnusta esimerkiksi asentaaksesi ohjelman, sinun ei tarvitse kirjautua ulos järjestelmästä vaan tarkoitukseen käytetään apuohjelmaa millä jokin toinen ohjelma voidaan suorittaa pääkäyttäjän oikeuksilla.
 
Työpöytäympäristöissä (Gnome, KDE) on omat graafiset ohjelmansa (gksudo, ksud) jotka kysyvät root-käyttäjän salasanan ja suorittavat ohjelman pääkäyttäjän oikeuksilla. Esimerkiksi Ubuntussa Synaptic-paketinhallinnan käynnistäminen kysyy pääkäyttäjän salasanan automaattisesti.
 
Komennot konsoliin. Kaikki kysyvät root-tunnuksen salasanan ja tallentavat toiminnon järjestelmän lokeihin.
 
{|width=100% border=0
|bgcolor=#f0f0f0|sudo KOMENTO
|bgcolor=#f0f0f0|Suorittaa KOMENNON pääkäyttäjän oikeuksilla
|-----
|bgcolor=#f0f0f0|su
|bgcolor=#f0f0f0|Käynnistää uuden kuoren (shell) pääkäyttäjän oikeuksilla
|-----
|bgcolor=#f0f0f0|su -c KOMENTO
|bgcolor=#f0f0f0|Suorittaa KOMENNON pääkäyttäjän oikeuksilla
|}
 
 
Katso myös (lisää linkit näille sivuille):
 
* Käyttäjien hallinta
* Tiedostojärjestelmä
* Ohjeita komentoihin


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

Versio 22. marraskuuta 2006 kello 19.28

Rant

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ää palomuuria, tcp-wrapperia, SELinuxia ja IDSia (eli hyökkäyksentunnistusjärjestelmiä).

Käyttöjärjestelmän päivittäminen

Kaikista käyttöjärjestelmistä löytyy ajoittain ohjelmointivirheitä, 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. 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.

Käyttöoikeuksien hallinta

Olennainen osa Linux-tietoturvaa on mahdollisuus rajoittaa käyttäjien oikeuksia tiedostojärjestelmään. Käyttöoikeuksien hallinta suoritetaan käyttäjien ja käyttäjäryhmien avulla, joilla rajoitetaan ohjelmien oikeuksia käsitellä tiedostojärjestelmää. Lisäksi Linuxin hakemistorakenteessa määritetään tarkkaan hakemistojen käyttöoikeudet niiden tarkoituksen ja käyttöoikeuksien mukaan.

Linuxin tietoturvaa parantaa tavallisen- 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 hyvin rajoitetut, mahdollistaen kuitenkin normaalin päivittäisen toiminnan kuten (lisää linkit näille sivuille)dokumenttien kirjoittamiseen ja musiikin kuuntelemiseen.

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ää.

Siis ohje yksinkertaistettuna:

  1. Kirjaudu sisään aina tavallisen "matti"-käyttäjän tunnuksilla, mikäli se ei ole välttämätöntä!
  2. Älä lisää normaalille käyttäjätunnukselle oikeuksia, mitä et välttämättä tarvitse
  3. Käytä ohjelmien asennukseen ja järjestelmän asennukseen erityistä root-tunnusta, ja vain siihen
  4. Jos vieras ohjelma vaatii pääkäyttäjän tunnusta tai salasanaa, mieti kahdesti onko ohjelma välttämätön!

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 ja sudo.

Työpöytäympäristöistä löytyy vastaavat ohjelmat myös graafisena. Gnomessa sudo-komentoa vastaa gksudo ja KDE:ssä ksud. Esimerkiksi Ubuntussa Synaptic-paketinhallinnan käynnistäminen kysyy pääkäyttäjän salasanan automaattisesti, käyttäen kyseistä gksudo-ohjelmaa.

SELinux ja GRSecurity

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.

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.

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 palvelin-ohjelma TCP-wrapperia.

Säännöt rakentuvat niin, että ensin pitää kieltää kaikki hosts.deny tiedostossa ja sitten sallia yhteyksiä hosts.allow tiedostossa.

Esimerkki perussäädöistä, joissa sallitaan vain .fi verkko-osoitteiden yhteydenotto SSHD-palvelinohjelmistoon.

/etc/hosts.deny: SSHD: ALL

/etc/hosts.allow SSHD: .fi

Palomuuri

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

Virustorjunta

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.