-Ratkaise Scan of the Month 15. Käsittele haitallisia ohjelmia turvallisesti. (Karvinen, T. 09.09.2013)

Samankaltaiset tiedostot
Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

WordPress Multisiten varmuuskopiointi

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

ICT4TN Tehtävänanto

WordPress:n asennus - Asenna WordPress (alkaen tilanteesta, jossa LAMP on asennettu)

Järjestelmän asetukset. Asetustiedostojen muokkaaminen. Pääkäyttäjä eli root. Järjestelmänhallinnan työkalut

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Julkaiseminen verkossa

VERKON ASETUKSET SEKÄ WINDOWSIN PÄIVITTÄMINEN

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Luento 4. Timo Savola. 21. huhtikuuta 2006

Kieliteknologian ATK-ympäristö Toinen luento

Linux ylläpitäjän opas. Tärkeimmät komennot, logit ja muuta hömppä *^_^* by Hannu Laitinen ETA14KT

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

Luento 3. Timo Savola. 7. huhtikuuta 2006

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

server "Ismo" $ uname -a Linux ismo #1 SMP Thu Sep 16 19:35:51 UTC 2010 i686 GNU/Linux $ cat /etc/issue Debian GNU/Linux 5.

WordPress Multisite Asennus ja ylläpito

LINUX-HARJOITUS, MYSQL

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Metropolia Ammattikorkeakoulu

Valppaan asennus- ja käyttöohje

RAPORTTI LIVE-ROMPUSTA

Ubuntu tunkkausta En US / Helsinki asennuksen jälkeen jotta loki5ac toimisi oikein Winen päällä.

Hakemistojen sisällöt säilötään linkitetyille listalle.

Linux-virtuaalipalvelimen ylläpito

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Mathcad Flexnet lisenssipalvelimen asennus

Unix-perusteet. Varmistaminen, tiedon pakkaaminen ja tiivistäminen

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla

Simulaattorin asennus- ja käyttöohje

XML tehtävien työnkulku

F-Secure virustorjuntaohjelmiston käyttö

H9 Julkaiseminen webissä

Päivitys käyttäen USB-tikkua

UCOT-Sovellusprojekti. Asennusohje

5. HelloWorld-ohjelma 5.1

CSV - XML ohjelman käyttöohje

SALITE.fi -Verkon pääkäyttäjän ohje

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Kieliteknologian ATK-ympäristö Neljäs luento

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa.

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Tikon ostolaskujen käsittely

2 Asennuksen poistaminen Uninstall.sh Esiasetukset Sivuston poisto Mush Mush.sh Komennot...

Juricon Nettisivu Joomlan käyttöohjeet

NETTIKIOSKIN ASENNUSOHJE. Ubuntu LTS

Office ohjelmiston asennusohje

Kieliteknologian ATK-ympäristö Viides luento

Kieliteknologian ATK-ympäristö Viides luento

Linux - käyttöoikeudet

L models. Käyttöohje. Ryhmä Rajoitteiset

YH1b: Office365 II, verkko-opiskelu

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Älä vielä sulje vanhoja

DOORSin Spreadsheet export/import

OpenOffice toimisto-ohjelma

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Yleinen ohjeistus Linux tehtävään

Unix. Markus Norrena

Tehtävä: FIL Tiedostopolut

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Ohjelmoinnin perusteet Y Python

Arch Linux asennusopas

Ubuntu - tiedostohallinta

Bitnami WordPress - Asenna WordPress koneellesi. Jari Sarja

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Unix-perusteet. Tulostaminen

UBUNTU. UBUNTU - Peruskäyttö. Työpöytä. GNU Free Documentation License. Sisäänkirjautuminen. Yläpaneelissa on kolme valikkoa. Paneelit ja valikot

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC

Tikon ostolaskujen käsittely

Tikon Ostolaskujenkäsittely versio SP1

MALWAREBYTES ANTI-MALWARE

ohjeita kirjautumiseen ja käyttöön

1. päivä ip Windows 2003 Server ja vista (toteutus)

SSH Secure Shell & SSH File Transfer

TIETOKONE JA VERKOT IT PC & NETWORK SUPPORT TAITAJA 2001 LAHTI KÄYTTÖJÄRJESTELMIEN JA OHJELMISTOJEN ASENTAMINEN SEKÄ KONFIGUROINTI

NÄYTÖT JA TYÖSSÄOPPIMINEN -pikaohje

MixW ja Dx-vihjeet (ohje) oh3htu

EASY PILVEN Myynnin opas - Storage IT

Salausmenetelmät (ei käsitellä tällä kurssilla)

DOORS Word DOORS SoftQA Pekka Mäkinen

Ohjelmoinnin perusteet Y Python

Audio- ja videotiedostoja sisältävän PowerPoint-esityksen pakkaaminen

EASY Tiedostopalvelin - mobiilin käyttöopas

Using the QGIS Browser

Solve laskutus Sivu 1

Retrotec FanTestic ohjelman pikaopas

TIETOTURVALLISUUDESTA

Coolselector Asennusohje

YH2: Office365 II, verkko-opiskelu

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa)

XML tehtävien työnkulku

Ohjeet e kirjan ostajalle

Transkriptio:

Tehtävänanto -Ratkaise Scan of the Month 15. Käsittele haitallisia ohjelmia turvallisesti. (Karvinen, T. 09.09.2013) Scan of the month on The Honeynet Projectin kuukausittain julkaisema levykuva järjestelmästä, johon on oikeasti joku krakkeri murtautunut. Jokaiseen levykuvaan liitetään tehtäviä, joita ihmisten on tarkoitus tehdä ja nopeimmat ja parhaimmat saavat mainetta ja kunniaa. Scan of the month 15 on toukokuussa 2001 julkaistu tehtävä, jossa järjestelmään oli murtauduttu 15.03.2001 ja järjestelmään asennettiin rootkit ja myöhemmin rootkit poistetiin. Tehtävässä on tarkoitus tehdä step-by-steb ohje kuinka palauttaa ja löytää poistettu rootkit sekä kertoa kaikki rootkittiin liittyvät tiedostot. (The Honeynet Project. 05/2013.) Työympäristö Tein tehtävän koulun labrakoneella. Tietokone: HP Compaq 8200 Elite CMT PC (XL508AV) Tunnus: 1K015 PC 6 Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää, jonka asensin koneelle aikaisemmin polttamaltani LiveCD:ltä. Ensimmäisenä annoin komennon sudo apt-get update ja asensin libreofficen komennolla sudo apt-get install libreoffice. Scan of the Month 15 Latasin SotM 15:n levykuvan sisältävän tar.gz-tiedoston wget http://old.honeynet.org/scans/scan15/honeynet.tar.gz. Honeynetin sivuilla mainittiin honeynet.tar.gz-tiedoston MD5-tarkistussumma 0dff8fb9fe022ea80d8f1a4e4ae33e21. Komennolla md5sum honeynet.tar.gz sai MD5-tarkistussumman laskettua. Komento tulosti seuraavan: 0dff8fb9fe022ea80d8f1a4e4ae33e21 honeynet.tar.gz Tarkistussummat täsmäävät joten lataamani honeynet.tar.gz-tiedosto on honeynet projectin tiedosto eikä kukaan muu ole sitä muokannut. Komennolla tar -xf honeynet.tar.gz purin pakatun tiedoston honeynet-hakemistoon. Pakatussa tiedostossa oli levykuvatiedosto honeypot.hda8.dd. Tiedoston md5-tarkistussumma oli honeynetin mukaan 5a8ebf5725b15e563c825be85f2f852e. Md5sum honeypot.hda8.dd komennolla tulostuu seuraava: 5a8ebf5725b15e563c825be85f2f852e honeypot.hda8.dd Tiedosto oli siis oikea.

Levykuva Tein honeynet-hakemistoon hakemiston honey komennolla mkdir honey. Tämän jälkeen mounttasin levykuvan kyseiseen kansioon komennolla sudo mount -o loop,noexec,nodev,ro honeypot.hda8.dd honey/ (Karvinen, T. 11.09.2013.) Loopin avulla voi mountata levykuvia ja noexec,nodev,ro avulla voi turvallisesti mountata saastuneen levykuvan eikä levykuvalla olevat haittaohjelmat pysty tehdä mitään koneelle. Tämän jälkeen aloin tarkastelemaan honey-hakemistoon mountattua levykuvaa. Sudo find wc -l -komennolla sain laskettua tiedostojen määrän. Niitä oli 7040 kpl. find less -komennolla listasin kaikki levykuvalla olevat tiedostot ja katselin läpi mitä kaikkea sieltä löytyi. Tein aika mielenkiintoisen havainnon: Var-hakemisto oli täysin tyhjä. Palvelimen logeja ei ollut ollenkaan levykuvalla. Tree -ohjelmalla sai seuraavan hakemistopuun näkyviin:

Poistetut tiedostot Tunkeutuja oli poistanut asentamansa rootkitin palvelimelta, joten levykuvalta piti palauttaa poistetut tiedostot. Tero Karvisen mainitsemalla The Sleuth Kit -paketissa olevien ohjelmien avulla sai palautettua poistettuja tiedostoja (Karvinen, T. 11.09.2013.) Asensin paketin komennolla sudo apt-get install sleuthkit. Komennolla tsk_recover honeypot.hda8.dd extr/deleted palautin levykuvalta poistetut tiedostot hakemistoon extr/deleted. Komennolla tsk_recover -a honeypot.hda8.dd extr/allocated siirsin kaikki muut tiedostot hakemistoon extr/allocated Tarkastelin deleted-hakemistoa find less -komennolla ja sieltä löytyi oikealla näkyviä tiedostoja. Heti ensimmäisenä näkyy epäilyttävä tar-pakattu tiedosto lk.tgz. Tämä tiedosto kaikkein todennäköisimmin oli rootkit. Tar -tf lk.tgz listasin pakatun tiedoston sisällä olevat tiedostot: Purin tiedoston Tar -xf lk.tgz -komennolla sekä turvallisuuden takia poistin kaikista tiedostoista suoritus oikeudet komennolla chmod a-x *. Nyt pystyin tarkastelemaan tiedostoja:

Rootkit Install -tiedosto oli, yllätys yllätys, rootkitin asentava shell skripti. Less install -komennolla luin mitä kaikkea se tekee: Tyhmänä ihmisenä rootkitin tekijä oli kirjoittanut omalla kielellään tervehdysviestejä itselleen: Google translaten mukaan vieras kieli on romaniaa. Tästä pystyi päättelemään, että rootkitin tekijä oli romanialainen. Echojen jälkeen ensimmäisenä skripti muuttaa kaikkien rootkitin tiedostojen omistajaksi ja ryhmäksi root. Tässä kohtaa skripti korvasi rootkitin top, ifconfig, ps, netstat -ohjelmilla palvelimen omat top, ifconfig, ps, netstat -ohjelmat. Tämän jälkeen palvelimen ylläpitäjä ei voinut havaita rootkittia näitä ohjelmia käyttäen, koska ne poistavat listoilta kaikki rootkitin prosessit.

Oikealla näkyvässä kuvassa on seuraava skriptin kohta. Kyseinen kohta teki tiedostot rpm ja last /dev/-hakemistoon joihin oli listattu prosessien nimiä sekä IP-osoitteita. Nämä todennäköisesti olivat yllä mainittuihin ohjelmiin kuuluvia tiedostoja. Nämä tiedostot kertoivat ohjelmille mitkä tiedot täytyy piilottaa käyttäjältä. Kuitenkin kun tutkin ps ja netstat ohjelmien sisältöä strings ps ja strings netstat -komennoilla, yhtäkään kyseisiin tiedostoihin viittaavaa riviä ei löytynyt vaan vaikutti siltä, että ohjelmat saivat asetukset /dev/dsx (ps) ja /dev/caca (netstat) tiedostoista. Toisin sanoen, skriptin tekijä teki erittäin suuren virheen. String netstat less String ps less

Tarkistin seuraavaksi levykuvalta jos sieltä löytyisi kyseiset hakemistot ja tiedostot ja kappas vain, kyllä löytyi. Tästä pystyi päättelemään, että rootkit oli varmasti asennettu palvelimelle. Lisäksi tarkistin nuo kolme ip-aluetta ja ne kuuluivat romanialaisille palveluntarjoajille. Tämä todisti, että skriptin tekijä oli romanialainen. Seuraavaksi skripti teki hakemistot /dev/ida/.drag-on/ sekä /dev/ida/.. (huomaa välilyönti.. jälkeen) yrittäen piilottaa ne palvelimen ylläpitäjän näkyviltä. Kuitenkin oli tyhmä idea antaa nimeksi pisteellä alkava nimi koska ne näkyi heti ensimmäisenä kun listasi /dev/-hakemiston koko sisällön. Näihin hakemistoihin skripti sitten kopioi rootkitin ohjelmat linsniffer, logclear, sense ja ssh-serveriin liittyviä tiedostoja. Kyseiset hakemistot ja ohjelmat löytyivät palvelimelta. Linsniffer oli verkkoliikennettä kuunteleva ohjelma, joka kaappaa verkossa kulkevat paketit. Tällä ohjelmalla oli tarkoitus kaapata esim. käyttäjien syöttämiä salasanoja, jotka eivät kulje kryptattuna verkon yli. Logclear sisälsi seuraavat rivit:

Logclear skriptin ajattaessa kaikki linsniffer prosessit tapetaan ja tcp.log tiedosto poistetaan. Tämän jälkeen tehdään uusi tcp.log-tiedosto ja linsniffer ajetaan uudelleen ja sen tiedot siirretään tähän uuteen tcp.log-tiedostoon. Sense oli ohjelma, joka muokkaa linsnifferin tuottaman datan järkevämpään muotoon. Strings mkxfs less -komennolla sain tutkittua mitä tiedoston mkxfs sisältä löytyy. Tiedoston sisältö vaikutti todella paljon ssh serveriltä. Mkxfs oli siis ssh-serveri, jonka avulla tunkeutuja pystyi myöhemmin pääsemään järjestelmään käsiksi helposti. Tiedosto s oli muokattu ssh serverin asetustiedosto. Tämä tiedosto aiheuttaa sen, että rootkitin ssh-serveri käyttää rootkitin ssh_host_key ja ssh_random_seed tiedostoja. Sl2-tiedosto oli strings sl2 -komennon perusteella jonkunlainen internettiin liittyvä ohjelma. Kuitenkaan en saanut itse selville mitä se tekee. Päätin tarkistaa Peter Kosinairin tekemästä ratkaisusta mikä tämä ohjelma on. Hän oli havainnut tämän ohjelman olevan Denial of Service -hyökkäysohjelma eli tunkeutuja olisi voinut käyttää palvelinta DoS-hyökkäyksien tekemiseen.(kosinair, P. 25.05.2001). Seuraavaksi skripti kopioi inetd.conf-tiedoston hakemistoon /etc/. Koska komennossa oli -f attribuutti, tiedosto ylikirjoitti sen nimisen tiedoston jos hakemistossa oli sellainen jo valmiiksi. Tässä inetd.conf-tiedossa oli telnet ja pop-3 laitettu päälle. Pop-3 toimi oudosta

hakemistosta /usr/cyrus/bin/pop3d ja oudolla käyttäjällä cyrus. Mikään tässä rootkitissä ei viittannut siihen, että kyseistä hakemistoa tai käyttäjää edes käytettäisiin. Lisäksi skripti kopioi services-tiedoston /etc/-hakemistoon, mutta tällaista tiedostoa ei edes ollut rootkitissä mukana. Tämä vaikutti siltä, että joku muu kuin tämä tunkeutuja oli tehnyt tämän rootkitin ja tunkeutuja itse oli vain muokannut sitä itselleen sopivaksi ja nämä kaksi komentoa olivat jäänteitä alkuperäisestä skriptistä. Tätä päättelyä tuki myös rootkitista löytyvä käyttämätön ohjelma cleaner, jonka oli tehnyt saksalainen henkilö. Seuraavaksi skripti poistaa /usr/bin/lsattr tiedoston ja lisää tiedoston /etc/rc.d/rc.sysinit loppuun rivin /usr/bin/lsattr -t1 -X53 -p. Rc.sysinit-tiedoston on boottauksen aikana suoritettava tiedosto eli boottauksen aikana suoritettiin kyseinen rivi. Tämän jälkeen rootkitin lsattr-tiedosto kopioitiin /usr/bin/lsattr-hakemistoon ja sen oikeuksiksi annettiin 500 eli vain root pystyy lukemaan ja ajamaan tiedoston, mutta ei muokkaamaan. Tämän jälkeen tiedostolle annettiin immutable attribuutti eli tiedostoa ei pystytty muokkaamaan, poistamaan tai siihen ei pystytty tekemään linkkiä. Rootkitin lsattr-tiedoston sisällä oli tällainen shell skripti: Tämä skripti aiheutti sen, että jokaisen boottauksen yhteydessä rootkitin ssh-serveri ajettiin käyttäen s-tiedostoa asetustiedostona sekä linsniffer-ohjelma laitettiin taustalle pyörimään ja keräämään tiedot tcp.log-tiedostoon. Seuraavaksi skriptiin oli laitettu sleep 1-komento eli skripti odotti sekunnin ajan ennen kuin seuraavat komennot ajettiin. Tämä oli lisätty todennäköisesti sen takia, ettei palvelin hidastuisi skriptin takia. Palvelimen hidastuminen voisi paljastaa skriptin. Tämän jälkeen skripti etsi palvelimelta jos siellä olisi apachen tavallisimpia cgi-bin-hakemistoja ja siirsi last.cgi-tiedoston sellaiseen, jos sellainen löytyi. Palvelimelta ei kuitenkaan löytynyt näitä hakemistoja, joten tiedostoa ei siirretty mihinkään. Last.cgi-tiedosto oli todennäköisesti, jonkunlainen selaimen kautta toteutettavaan etäkäyttöön tarkoitettu tiedosto.

Seuraavaksi skripti keräsi koneelta tietoja computer-tiedostoon ja lähetti kyseisen tiedoston sisällön sähköpostilla osoitteisiin last@linuxmail.org ja bidi_damm@yahoo.com. Lopuksi skripti poisti palvelimelta kaikki last, lk.tgz, computer, ja lk.tar.gz -tiedostot/hakemistot yrittääkseen peitellä jälkiään. Rootkit vaikutti todella paljon jonkun romanialaisen scriptkiddien sähläykseltä.

Tiedostojen aikatiedot Sudo find -printf '%T+ M %p\n%a+ A %p\n%c+ C %p\n' sort less -komennolla sain listattua aikajanan kaikista levykuvalla olevista tiedostoista (Karvinen, T. 11.09.2013.) Kirjoittamalla /2001-03-15 sain näkyviin kaikki tunkeutumispäivänä tehdyt muutokset. Kyseisenä päivänä palvelimella oli joku kahteen kertaan käynyt tekemässä muutoksia todella moneen tiedostoon ensin klo 13 jälkeen ja sitten klo 19 jälkeen lisäksi seuraavana päivänä klo 03:45:02 on todella epäilyttävältä kuulustovia tiedostoja. Käytetystä aikavyöhykkeestä ei ollut tietoa. Kuvasta näkee, että skripti ajettiin klo 03:45:02 ja sen ajaminen päättyi klo 03:45:03. Tiedot ovat aakkosjärjestyksessä joten niistä ei saa täysin selvää kuvaa missä järjestyksessä komennot suoritettiin eikä kuvassa ole poistettuihin tiedostoihin liittyviä tietoja. Tsk_gettimes honeypot.hda8.dd > rawtimes -komennolla sai dumpattua levykuvalla olevien poistettujen tiedostojen aikatiedot rawtimes-tiedostoon (Karvinen, T. 11.09.2013.) Mactime -b rawtimes grep deleted less -komennolla pystyin selaamaan dumpattuja tietoja poistetuista tiedostoista

Tässä kuvassa on aikajana kyseiseltä ajalta. Sekunnit eivät täsmänneet täysin ja moni tiedostoista näkyi $OrphanFiles/OrphanFile-xxxx nimisenä. Perässä oleva numero on tiedoston index note. Kosinarin ratkaisussa luki näitä inodeja vastaavat tiedostot. 30188:67 <-> /bin/netstat ; original (clean) version 30191:60 <-> /bin/ps ; original (clean) version 48284:43 <-> /sbin/ifconfig ; original (clean) version 8100:177 <-> /tmp/?/w ; temporary file created by `makewhatis' ; which is regularly called by cron 2039:602 <-> /last/ssh 2040:1 <-> /last/pidfile 2041:4 <-> /last/install 2042:1 <-> /last/linsniffer ; damaged copy of linsniffer 2043:2 <-> /last/cleaner 2044:4 <-> /last/inetd.conf 2045:4 <-> /last/lsattr 2046:12 <-> /last/services 2047:4 <-> /last/sense 2048:1 <-> /last/ssh_config 2049:1 <-> /last/ssh_host_key 2050:1 <-> /last/ssh_host_key.pub 2051:1 <-> /last/ssh_random_seed 2052:1 <-> /last/sshd_config 2053:9 <-> /last/sl2 2054:5 <-> /last/last.cgi 2058:54 <-> /last/top 2059:1 <-> /last/logclear 2060:1 <-> /last/s 2061:622 <-> /last/mkxfs (Kosinair, P. 25.05.2001) Kyseiset Orphanfilesit olivat siis poistettuja rootkitin tiedostoja ja tiedostoja joita rootkit poisti.

Lähteet: Karvinen, T. 09.09.2013. Aikataulu Linux palvelimena ict4tn003-9 ja -10 syksyllä 2013. Luettavissa: http://terokarvinen.com/2013/aikataulu-%e2%80%93-linux-palvelimena-ict4tn003-9-ja-10-syksylla-2013 #comment-19977. Luettu: 16.09.2013. Karvinen, T. 11.09.2013. Forensic File Recovery with Linux Undelete. Luettavissa: http://terokarvinen.com/2013/forensic-file-recovery-with-linux. Luettu: 16.09.2013. Karvinen T. 04.06.2006. Raportin kirjoittaminen. Luettavissa: http://terokarvinen.com/raportin_kirjoittaminen.html. Luettu: 16.06.2013. Kosinair, P. 25.03.2001. Scan of the Month 15. Luettavissa: http://old.honeynet.org/scans/scan15/proj/som32.txt. Luettu: 17.06.2013. The Honeynet Project. Scan of the Month 15. Luettavissa: http://old.honeynet.org/scans/scan15/. Luettu: 16.09.2013. Tietoja: Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html Pohjana Tero Karvisen Linux-kurssi, www.iki.fi/karvinen