Ero sivun ”Tietoturva” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(→‎Käyttöoikeushallinta: - Kirjoitettu uudelleen selkokielisemmin. Osan voinee siirtää asiaan liittyville sivuille.)
Rivi 27: Rivi 27:
* [[Ubuntun päivittäminen|Ubuntu Linux]]
* [[Ubuntun päivittäminen|Ubuntu Linux]]


== Käyttöoikeushallinta ==
== Käyttöoikeuksien hallinta ==
Oleellista Linuxin tietoturvassa on käyttöoikeushallinta. Pääkäyttäjänä (root) ei pidä tehdä mitään paitsi silloin kun on ehdoton pakko. Koska pääkäyttäjä ohittaa kaikki käyttöoikeustarkistukset, sillä on mahdollista tehdä erittäin paljon tuhoa.
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ä.


Esimerkki Microsoft Windows -käyttöjärjestelmän tunteville: Jos yrität alustaa osion, jolla Windows on asennettuna, samalla kun käytät sitä, et voi näin tehdä, koska Windows ei siihen pysty/ei anna tehdä.
=== Käyttäjät ja ryhmät ===
Mutta samalla kun käytät Linuxia, on sinun myös mahdollista sotkea käyttöjärjestelmälevysi, koska Linux ei aseta tällaisia rajoituksia pääkäyttäjälle.
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:


Pääkäyttäjällä tehtävät ylläpito-operaatiot suoritetaan ylläkuvatun kaltaisten riskien vuoksi yleensä sudo -ohjelmalla. Sudo tallentaa lokitiedostoon joka kerta kuka sitä käytti ja mitä tämä suoritti.
* Tavallinen käyttäjä (ryhmät esim. "users, audio, video", tunnus "matti")
** Internetissä surffaileminen, sähköpostin lukeminen
** Dokumenttien kirjoittaminen, kuvien käsitteleminen
** Elokuvien katsominen, musiikin kuunteleminen
** ''EI ohjelmien asentaminen tai järjestelmän asetusten muuttaminen''


Onkin hyvä luoda itselleen ns. normaali käyttäjätunnus ja antaa sille normaaliin käyttöön tarvittavat oikeudet. Esimerkiksi Debianissa normaalikäyttäjälle annetaan yleensä oikeudet video, audio, floppy ja dialout-ryhmiin, jolloin oikeudet riittävät mikserin, televisiokorttien/webkameroiden, levykkeiden ja sarjaportin käyttöön.  Muitakin oikeuksia voidaan antaa ja ottaa pois käyttötarpeen mukaan.
* Pääkäyttäjä (ryhmä "root", tunnus "root")
** 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''


Lisäksi kiintolevyille voi tehdä osioita joille pääsevät ainoastaan tietyt käyttäjät.
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.
 
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.
 
Siis ohje lyhyesti:
 
# 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 17.04

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

Käyttäjät ja ryhmät

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")
    • 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")
    • 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.

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.

Siis ohje lyhyesti:

  1. Käytä Linuxia aina tavallisen käyttäjän tunnuksilla, mikäli se ei ole välttämätöntä!
  2. Lisää käyttöoikeudet
  3. Käytä root-tunnusta vain ja ainoastaan asentaessa ohjelmaa tai muuttaessa asetuksia.
  4. 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.

sudo KOMENTO Suorittaa KOMENNON pääkäyttäjän oikeuksilla
su Käynnistää uuden kuoren (shell) pääkäyttäjän oikeuksilla
su -c KOMENTO 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 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.