Kasvata hännästä demoni



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

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Luento 4. Timo Savola. 21. huhtikuuta 2006

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

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

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

LINUX-HARJOITUS, MYSQL

WordPress Multisiten varmuuskopiointi

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

Simulaattorin asennus- ja käyttöohje

AsioEduERP v12 - Tietoturvaparannukset

Yleinen ohjeistus Linux tehtävään

Valppaan asennus- ja käyttöohje

Visma Business AddOn Tositteiden tuonti. Käsikirja

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

Sähköpostitilin luonti

Metropolia Ammattikorkeakoulu

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

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Tikon tilaustenkäsittely ja Laskutus

Webpalvelin muistitikulle - Ohje

ICT4TN Tehtävänanto

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

linux linux: käyttäjän oikeudet + lisää ja - poistaa oikeuksia

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

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Webforum. Version 15.1 uudet ominaisuudet. Päivitetty:

Tikon ostolaskujen käsittely

WINHIT OMAVALVONTA. Omavalvonnan käyttöliittymän ja seurantalokin ohjekirja

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Asiointipalvelun ohje

KAIKKI LAITTEET KÄYNNISTETÄÄN UUDELLEEN ENNEN TARKISTUSTA

Yleinen ohjeistus Windows tehtävään.

PIKAOHJE USEIDEN VASTAANOTTAJIEN LISÄÄMISEEN YHTIÖN JAKELULISTOILLE

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

TI09. Seminaarityö Opintojakso: A Linux järjestelmät Opettaja: Tomi Pahula Opintojakson toteutus: Syksy 2011.

Mark Summary Form. Taitaja Skill Number 205 Skill Tietokoneet ja verkot. Competitor Name

Kieliteknologian ATK-ympäristö Viides luento

Outlookin konfigurointi. Huoltamosähköposti Sonerahosted

telnet telnet kone portti

Luento 2. Timo Savola. 31. maaliskuuta 2006

Kieliteknologian ATK-ympäristö Viides luento

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Objective Marking. Taitaja 2014 Lahti. Skill Number 205 Skill Tietokoneet ja verkot Competition Day 1. Competitor Name

Unix-perusteet. Unix/Linux-käyttöjärjestelmä ja sen ominaisuudet

Henkilökohtaista käyttäjäystävällistä tietoturvaa! NTG Solo Secure

Kieliteknologian ATK-ympäristö Neljäs luento

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

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

SUOMEN PANKKIYHDISTYS

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Mark Summary Form. Tulospalvelu. Competitor No Competitor Name Member

Käyttöohje. Ipa. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Elisa Yritysnumeropalvelun tavoitettavuuspalvelu Pääkäyttäjän ohjeet

Tikon ostolaskujen käsittely

Visma GATEWAY INSTALLER. asennusopas

ESRC:n uusiutumassa olevat kotisivut on toteutettu WordPress-ohjelmalla (WP). Samaa ohjelmaa käyttävät menestyksellä ainakin SSql, HSRC ja JSK.

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

TENNISVARAUSJÄRJESTELMÄ. OHJEKIRJA v.1.0

Työsähköpostin sisällön siirto uuteen postijärjestelmään

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Testidatan generointi

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Elisa Puheratkaisu Vakio Pääkäyttäjän ohjeet

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS TYÖASEMALLE

Valitse tunnistautumisvaihtoehto. Kun olet lukenut tekstin valitse seuraava. Mikäli valitsit sähköisen tunnistautumisen -> valitse sopivin vaihtoehto

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.

TEHTÄVÄ 5: Microsoft Virtual PC asennus ja hallinta

Zeon PDF Driver Trial

Enigmail-opas. Asennus. Avainten hallinta. Avainparin luominen

Ensimmäisessä vaiheessa ladataan KGU tietokanta Hallitse tietokantoja toiminnon avulla.

Sähköpostitilin käyttöönotto

JOHDANTO... 5 PÄÄKONFIGURAATIOTIEDOSTO KIELET KÄYNNISTÄMINEN JOHDANTO... 6

Vianova Systems Finland Oy:n Novapoint käytön tuki

GDAL ja WFS: suora muunnos ogr2ogr-ohjelmalla

Käyttöohje. MAITO metadatan hallintatyökalu. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

MS Aamubrunssi Aktiivihakemiston uutuudet

Toinen harjoitustyö. ASCII-grafiikkaa

Android. Sähköpostin määritys. Tässä oppaassa kuvataan uuden sähköpostitilin käyttöönotto Android Ice Cream Sandwichissä.

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

eduroamin käyttöohje Windows

H9 Julkaiseminen webissä

ASENNUSOHJEET INTERNET-ASENNUS. Navita Yritysmalli. YHTEYSTIEDOT Visma Solutions Oy Mannerheiminkatu LAPPEENRANTA Puh.

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Nettiposti. Nettiposti käyttöohje

Office ohjelmiston asennusohje

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Ohjeistus yhdistysten internetpäivittäjille

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Johdatus Ohjelmointiin

Linuxissa uusi elämä 1

Aineistosiirron testauksen aloituksen ohje Trafin sopimuskumppaneille

Linux - käyttöoikeudet

Versiohallinta ja Subversion Maunu Tuomainen

Käyttöohje Planeetta Internet Oy

Transkriptio:

Kasvata hännästä demoni tail-ohjelmalla (tail = häntä) voidaan helpolla tehdä jatkuvasti toimiva taustaohjelma (demoni), joka käsittelee jotakin jatkuvasti kasvavaa tekstitiedostoa. Tälläisia kasvavia tekstitiedostoja ovat esimerkiksi järjestelmän lokitiedostot. Niihin kertyy järjestelmän toiminnasta ja tilasta kertovaa tietoa. Ennen kuin otamme esimerkin käsittelyyn, tarkastellaan hieman joitakin tail-komennon parametrejä: -f, - -follow[={name descriptor] tail seuraa tiedoston loppua ja tulostaa uudet rivit sitä mukaa, kun niitä kirjoitetaan tiedostoon. Oletus on seurata tiedostokahvaa (descriptor), jolloin jos tiedosto siirretään eli nimetään uudelleen (logrotate tekee tämän normaaliasetuksilla kerran viikossa kaikille lokitiedostoille), ei uutta tiedostoa enää seurata. Oletus on järkevä silloin, kun tiedetään, että tiedostoa ei siirretä. Jos käytetään muotoa --follow=name, tail tarkistaa ajoittain, että tiedostokahva vastaa tiedoston nimeä ja jos se on muuttunut,tail siirtyy seuraamaan uutta samannimistä tiedostoa. -n, - -lines=ntail lukeenriviä tiedoston lopusta. JosNon 0,tail hyppää suoraan tiedoston loppuun ja jos lisäksi on käytetty-f-parametriä, tail tulostaa vain käynnistyksensä jälkeen kirjoitetut rivit. Lisäksitail-ohjelmalle pitää antaa tiedoston nimi, jota käsitellään. Tiedostoja voi olla myös useita ja vaikka tail-ohjelman man-sivulla väitetään, että tail tulostaa tiedoston nimen,

582 Kasvata hännästä demoni kun tiedostoja on useita, ei se sitä tee, kun tulostus menee putkeen. Useiden tiedostojen käsittely on kätevä ominaisuus esimerkiksi silloin, kun halutaan käsitellä useen palvelinohjelman lokitiedostoa. Käytännössä tämä tilanne voi tulla vastaan esimerkiksi, kun jokin palvelu on jaettu usealle koneelle vikasietoisuuden tai kapasiteetin takia. 46.1 Esimerkki Nimda-madon esto Apachelle Syyskuussa 2001 maailmalla levisi Microsoftin IIS-palvelimiin nimda-mato. Se yritti tarttua myös Linux-koneisiin, mutta ei tietenkään onnistunut. Yrityksistä oli kuitenkin se haitta, että nimda oli sitkeä ja yksi saastunut kone lähetti yhteensä 384 sivupyyntöä. Tämä paisutti Apachen lokia ja aiheutti turhaa liikennettä. Ongelman ratkaisuun on monta vaihtoehtoa ja eräs aivan hyvä oli olla välittämättä ongelmasta, koska sen merkitys oli mitätön. Perusteellinen ratkaisu olisi tarkkailla IP-pakettien sisältöä palomuurissa tai tarkkailla Apachelle tulevia sivupyyntöjä Apachen moduulilla. Näillä tavoilla voitaisiin ongelma poistaa hyvin aikaisessa vaiheessa. Tämän esimerkin ratkaisu perustuu siihen, että sivupyyntö pääsee Apachelle asti, siitä tulee lokimerkintä ja vasta siihen reagoidaan. Esimerkkinä ratkaisu on hyvä, sillä se esittelee hyvin yleispätevän tavan käyttää lokitiedostoja demonien luontiin. #!/bin/sh # Missä Apachen loki luuraa cd /var/log/httpd # Varmistetaan tiedostojen olemassaolo touch nimda.txt touch codered.txt # Tapetaan vanha ajossa oleva versio kill ps -C "tail -n100" h cut -f2 -d" " # Muuta -n suuremmaksi, jos on tarvetta. tail -n10000 --follow=name access_log \ awk # Pyydystetään nimda-mato /scripts\/root.exe/ { vanha=0 while(getline rivi < "nimda.txt"){if($1 ~ rivi) vanha=1 if(vanha==0){ # Matopesän nimi talteen print $1 >> "nimda.txt" system("/sbin/ipchains -A input -j DENY -i eth0 -p tcp -s " $1 " --destination-port 80") close("nimda.txt") # Pyydystetään Code Red -mato /default.ida/ {

46.2 Vastaava ongelma ja sen erilaisia ratkaisuja 583 vanha=0 while(getline rivi < "codered.txt"){if($1 ~ rivi) vanha=1 if(vanha==0){ # Matopesän nimi talteen print $1 >> "codered.txt" system("/sbin/ipchains -A input -j DENY -i eth0 -p tcp -s " $1 " --destination-port 80") close("codered.txt") - & Skriptin alussa tehdään alustavia toimenpiteitä, joista mielenkiintoisin on kill-rivi. Se tappaa skriptin mahdollisen edellisen käynnistyskerran jäljiltä toiminnassa olevan tail-ohjelman. Edelliseltä käynnistyskerralta olisi toiminnassa myös awk, mutta se kuolee, kun sitä putken kautta syöttävä tail kuolee. Varsinaisen työn tekevä osuus voidaan yksinkertaistaa: tail... awk {skripti - &.tail siis syöttää putkeen jatkuvasti uusia rivejä tiedostosta sitä mukaa, kun niitä tulee ja putken toisessa päässäawk käsittelee niitä. Merkintä-tarkoittaa, että putken syöte luetaan siinä kohtaa. Koko komeus laitetaan tausta-ajoon&-merkillä. Skripti voidaan käynnistää sellaisenaan konsolilta, mutta jos ollaan ssh:lla etäyhteydessä WWW-palvelinkoneeseen, skripti on käynnistettävä komennolla nohup./skripti. nohup ohjaa parametrinään olleen ohjelman tulosteen tiedostoon nohup.out ja ohjelma jatkaa toimintaansa vaikka ssh-yhteys katkeaisi. Kolmas vaihtoehto on laittaa käynnistys koneen käynnistysskripteihin, esimerkiksi tiedostoon/etc/rc.d/rc.local. Näin helppoa on oman demonin luominen. tail huolehtii useasta hankalasta yksityiskohdasta, kuten nukkumisesta työn teon välillä ja tiedostojen käsittelystä. 46.2 Vastaava ongelma ja sen erilaisia ratkaisuja Vuoden 2005 aikana alkoi ilmestyä Internetissä olevien palvelimien lokeihin ilmoituksia useista epäonnistuneista kirjautumisyrityksistässh:lla. Niitä saattoi olla satoja, jopa tuhansia vuorokaudessa. Jos järjestelmään on asennettu pakettilogwatch, tulee pääkäyttäjälle seuraavan tapaisia tiivistelmiä lokitiedostojen epätavallisista tapahtumista: --------------------- pam_unix Begin ------------------------ sshd: Invalid Users: Unknown Account: 1020 Time(s) Authentication Failures: test (85.234.136.215 ): 1 Time(s) mysql (85.234.136.215 ): 1 Time(s) unknown (221.8.13.200 ): 2 Time(s)

584 Kasvata hännästä demoni mail (85.234.136.215 ): 1 Time(s) unknown (roliveira.por.ulusiada.pt ): 562 Time(s) postgres (srv1.ipqtecnologia.com.br ): 1 Time(s) games (85.234.136.215 ): 1 Time(s) postgres (85.234.136.215 ): 1 Time(s) bin (srv1.ipqtecnologia.com.br ): 1 Time(s) root (85.234.136.215 ): 1 Time(s) unknown (85.234.136.215 ): 103 Time(s)... --------------------- SSHD Begin ------------------------ Failed logins from these: Victor/password from 193.136.185.21: 1 Time(s) a/password from 200.223.129.101: 1 Time(s) a/password from 221.8.13.200: 1 Time(s) abba/password from 85.234.136.215: 1 Time(s) abby/password from 85.234.136.215: 1 Time(s) abcd/password from 200.223.129.101: 1 Time(s) accept/password from 85.234.136.215: 1 Time(s) acer/password from 85.234.136.215: 1 Time(s) ad/password from 200.223.129.101: 1 Time(s) adm/password from 200.223.129.101: 1 Time(s) administracion/password from 200.223.129.101: 2 Time(s) administration/password from 200.223.129.101: 2 Time(s) Yllä on vain katkelmia murtoyritysten jättämistä jäljistä. Murtautujat käyttävät listaa tavanomaisista käyttäjätunnuksista ja salasanatkin arvataan. Koska jo olemattomaan käyttäjätunnukseen kirjautuminen on mahdotonta, ei murron onnistuminen ole kuin etäisesti mahdollista. Silti yrityksetkin ovat kiusallisia ja niihin varautuminen antaa kuvan tiukasta tietoturvasta. Vaivaan on kehitetty monia ratkaisuja, joita kuvataan esimerkiksi artikkelissa Protecting Linux against automated attackers (http://security.linux.com/article.pl?sid=05/09/15/1655234&tid=35). Artikkelissa kuvataan peräti kolme ohjelmaa, jotka käyttävät hyvin samanlaista perustekniikkaa kuin edellä tekemämme demoni. Niissä on paljon enemmän säätöjä, mutta äskeinen esimerkki onkin enemmänkin esimerkki siitä, miten pienellä vaivalla voi itsekin tehdä demonin omaan hätäiseen tarpeeseen. 46.2.1 Palomuurin asetusten muuttaminen Parempi tekniikka olisi käyttää suoraan palomuurin sääntöjä. Stephen Frost on tehnyt iptables:lle laajennoksen nimeltä IPTables/Netfilter Recent Module, joka löytyy osoitteesta

46.2 Vastaava ongelma ja sen erilaisia ratkaisuja 585 http://snowman.net/projects/ipt_recent/. Sen ideana on se, että ipt_recent muistaa edelliset yhteydet ja tiheästi toistuvat yritykset johtavat pakettien tiputtamiseen. Esimerkiksi palomuurisääntö: iptables -A INPUT -p tcp --dport ssh -m recent --update --seconds 60 -j DROP sallii vain yhden uuden ssh-yhteyden 60 sekunnin välein. Jos murtautuja yrittää tiuhempaan, kaikki yhteydet ensimmäisen jälkeen estetään eli yrityskertojen välillä pitää olla 60 sekunnin tauko. 46.2.2 Autentikoinnin asetusten muuttaminen Toinen parempi tekniikka on käyttää autentikoinnin laajennosta nimeltä pam_abl (Auto Black- List Module), jonka kotisivu on osoitteessa http://www.hexten.net/pam_abl/. Valmiin rpm-paketin voi ladata osoitteesta http://www.lineox.net/3.0/i386/extras/pam_abl-0.2.2-2.i386.rpm. Sen käyttöönotto vaatii tiedoston /etc/pam.d/system-auth muokkaamista. Alla olevassa listauksessa lisätty rivi on toisena: auth required /lib/security/pam_env.so auth required /lib/security/pam_abl.so config=/etc/security/pam_abl.conf auth sufficient /lib/security/pam_unix.so likeauth nullok Tämän lisäksi haluat ehkä muokata myös tiedostoa /etc/security/pam_abl.conf. Oletuksena sen sisältö on: # /etc/security/pam_abl.conf # debug host_db=/var/lib/abl/hosts.db host_purge=2d host_rule=*:10/1h,30/1d user_db=/var/lib/abl/users.db user_purge=2d user_rule=!root:10/1h,30/1d Ensimmäinen rivi määrittää tietokantatiedoston sijainnin, toinen säilyttää tiedot koneista, joista on yritetty sisään kaksi vuorokautta, kolmas, että kustakin koneesta voidaan yrittää korkeintaan 10 kertaa tunnissa ja 30 kertaa vuorokaudessa. Onnistuneet sisäänkirjautumiset eivät kuitenkaan syö yrityskertoja. Kolme viimeistä riviä asettaa vastaavat rajat käyttäjätunnuskohtaisesti, mutta ei pääkäyttäjän tunnukselle. Aivan vastaavaa tekniikkaa käytetään verkkopankeissa. Esimerkiksi Nordean verkkopankissa yrityskertoja on sallittu viisi ja seuraavana päivänä voi yrittää uudelleen.