Tietoturva
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.
- Debian GNU/Linux
- Fedora Linux
- Gentoo Linux
- IT Linux, Lineox ja Spectra Linux: Kts. http://www.raimokoski.com
- Mandriva Linux
- Red Hat Linux
- SOT Linux: Päivityksiä ei enää julkaista, käyttäjiä suositellaan vaihtamaan johonkin toiseen jakeluun.
- SUSE Linux
- Ubuntu Linux
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:
- 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.
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.