Sleuth Kit ja rootkitin jäänteiden etsiminen

Viikkoharjoitus 2, Linux palvelimena -kurssi: http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

Tässä raportissa käsitellään rootkitin jäännösten etsimistä. Työkaluna on Sleuth Kit.

Levykuva on sivulta: http://old.honeynet.org/scans/scan15/.

Testikoneena toimii sama kone kuin aikaisemmassa raportissa, eli vanha HP:n t650.fi.

En varmuuskopioinut järjestelmää, koska ei ollut yhtään turvattavia tiedostoja. Koko kovalevy oli formatoitu viikko sitten.

Latasin ensiksi Sleuth Kitin:

$ sudo apt-get sleuthkit

Jonka jälkeen latasin Scan Of The Month -sivuilta edellä mainitun levykuvan (honeynet.tar.gz). Navigoin Downloads -kansioon, jossa purin tiedoston:

$ tar -xvf honeynet.tar.gz

Tar.gz -tiedoston voi myös purkaa ihan graafisessa käyttöliittymässä.

Tässä vaiheessa tarkistin tiedostojen honeynet.tar.gz ja honeypot.hda8.dd MD5 -tiivisteet. Vertasin niitä sivuilla annettuihin tiivisteihin. Tiivisteet olivat 100 % identtisiä. Tässä vielä itse tiivisteet:

honeynet.tar.gz: 0dff8fb9fe022ea80d8f1a4e4ae33e21

honeypot.hda8.dd: 5a8ebf5725b15e563c825be85f2f852e

Kopioin honeypot.hda8.dd -levykuvan kotihakemistossa olevaan t/ -hakemistoon.

Seuraavaksi ajoin komennot:

$ tsk_recover honeypot.hda8.dd unallocated

$ tsk_recover -a honeypot.hda8.dd allocated

En vielä tee mitään kansioitten sisällöllä. Tein kansion output/ mihin tallennan sleuth kitin tuottamat tulokset.

Tutkiminen

Tein ils -komennolla listan metadata rakenteista. -m asetus tekee tulosteesta mactime -yhteensopivan. Tallensin tulokset output/ -hakemistoon:

$ ils -m honeypot.hda8.dd > output/hda8.ils

Tämän jälkeen ajoin tsk_gettimes -komennon (sama kuin fls -m):

$ tsk_gettimes honeypot.hda8.dd > output/gettimes_result.txt

Tätä tiedostoa käytin mactime -komennon kanssa luodakseni listan tapahtumista järjestelmässä:

$ mactime -b output/gettimes_result.txt 2001-03-15 > output/times2001-03-15.txt

$ mactime -b output/gettimes_result.txt 2001-03-14 > output/times2001-03-14.txt

$ mactime -b output/gettimes_result.txt 2001-03-13 > output/times2001-03-13.txt

Mactime -komennolle pitää määritellä vuoden päivä, miltä se poimii tiedot. Otin varmuuden 14. ja 15. päivien lisäksi listan 13. päivän tapahtumista. Less -työkalulla tuloksia tutkiessani huomasin, että kaikki sisälsivät samat tiedot, elikkä päivien 15. – 16. tapahtumat.

Seuraavaksi ajoin mactime -komennon hda8.ils -tiedostolle.

$ mactime -b output/hda8.ils 2001-03-15 > output/ils_times2001-03-15.txt

Ils ja fls tulosten tutkiminen

Avasin less -työkalulla times2001-03-15.txt -tekstitiedoston. Painoin end -näppäintä päästäkseni tiedoston loppuun asti. Huomasin useita mainintoja X11 -ohjelmiston tiedostoista ja lukuisia deletoituja tiedostoja. Päättelin siitä, kun samaiset tiedostot löytyivät unallocated/ hakemistosta, että nämä ovat ne deletoidut tiedostot. Tiedostojen seassa on etsimäni rootkit.

gettimes deleted files

Varsinkin yksi rivi pisti silmään:

gettimes epailyttava tiedosto

Kyseinen .tgz -tiedosto löytyy unallocated/ -hakemistosta.

Tiedostojen deletointi alkaa 13:17:36 ja loppuu seuraavana päivänä 18:28:30, jolloin viimeinen tiedosto deletoidaan (etc/rc.d/rc3.d/K83ypbind (deleted-realloc)). Tein deleted -kohtien etsimisestä helpompaa komennolla:

$ less output/times2001-03-15.txt | grep deleted

Luin less -työkalua käyttäen myös ils_times2001-03-15.txt -tekstitiedoston. Sain täten tietää inode arvot, eli metadata osoitteet (lukevat kyllä myös times2001-03-15.txt -tiedostossa).

ils times inodes

Purin lk.tgz -tiedoston tarkistaakseni sisällön. Sisältä löysin:

lk last sisalto

Cleaner on bash skripti, sauber tarkoittaa puhdistajaa, olettaisin sen puhdistavan lokitiedostoja. Install asentaa rootkitin.

 

Tehtävän tekemisessä auttoi huomattavasti:

Sleuthkit työkalujen dokumentointi: http://wiki.sleuthkit.org/index.php?title=TSK_Tool_Overview

Advertisements

Linux -järjestelmän asentaminen, Apache2, PHP, SSH ja MySQL

Tarkemmat tiedot: http://terokarvinen.com/2012/linux-koe-tyoasemat-ja-tietoverkot-25

Kyseessä on siis työasemat ja tietoverkot -kurssin Linux -osion koe. Etenen aika hitaasti, koska raportoin samaan aikaan.

Käytössä vanha HP:n pöytäkone t650.fi:

Käyttöjärjestelmänä Xubuntu 12.10 32-bit.

Xubuntua asentaessa tuli jonkin verran ongelmia. Xubuntun asennusohjelma LiveCD -tilassa sulkeutui itsestään ja asennusprosessi pysähtyi siihen. Kokeilin Ubuntu 12.04 LTS:llä, mutta tuli sama ongelma vastaan. Ratkaisin ongelman polttamalla levylle Xubuntu 12.04 LTS Alternate -levykuvan.

Normaalisti Xubuntu asennettaisiin LiveCD -tilassa, jossa pääsee kokeilemaan Xubuntun työpöytää ja mukana tulevia ohjelmia. Koska asennus LiveCD -tilassa ei toimi, käyttöjärjestelmä asennetaan hyvin paljon samaan tapaan kuin Windows XP, eli käyttöliittymä ei ole erityisen kaunis.

15:07 – Aloitin Xubuntun asentamisen.

  • Kieleksi englanti
  • Suomelainen näppäimistö
  • Aikavyöhykkeenä Helsinki
  • Alustin koko #1 osion
  • Xubuntun asentamisen kokonaiskesto: 15:07 – 15:54

Kello 15:57 tietokone oli taas auki ja Xubuntu oli asennettuna.

“Asiakas” haluaa työasemalla onnistuvan internetin selaaminen ja tekstinkäsittely. Mozillan Firefox on valmiina asennettuna ja tekstinkäsittelyä varten on AbiWord. Päätin kuitenkin asentaa LibreOfficen järjestelmään. Terminaaliin siis:

 $ sudo apt-get install libreoffice

Asiakas myös pyysi Apache2 -webpalvelinta, PHP -kooditukea sitä varten, openSSH etäyhteyksiä varten. Asennetaan kyseiset ohjelmistot seuraavaksi (kello on tässä vaiheessa 16:09). Asennetaan ensimmäiseksi Apache2 ja laitetaan päälle userdir kotisivuja varten:

$ sudo apt-get install apache2

Kokeillaan tässä vaiheessa toimiiko Apache2. Sen saa selville kun Firefox -selaimeen kirjoittaa “http://localhost”. Jos sivulla lukee “It works!”, Apache2 on asennettu onnistuneesti. Laitetaan päälle userdir:

$ sudo a2enmod userdir

Terminaalissa lukeekin mikä komento pitää antaa seuraavaksi, että saa kotisivut toimimaan. Kyseinen komento on:

$ sudo service apache2 restart

Tämä käynnistää Apache2 -demonin uudelleen. Kun se on uudelleen käynnistetty, userdir on käytössä. Nyt vain puuttuu public_html -kansio ja index.html -tiedosto kyseisen kansion sisältä. Tarkista oletko kotihakemistossa komennolla

$ pwd

Jos hakemisto jossa olet on “/home/*käyttäjänimi*”, olet oikeassa paikassa. Kirjoitetaan:

$ mkdir public_html

Tehdään sinne index.html -tiedosto:

$ nano public_html/index.html

Näin avautuu tekstieditori nano. Kirjoitetaan tiedostoon väliaikaisesti “Moi.” ja tallennetaan tiedosto. Tämä tapahtuu Ctrl + x -näppäinyhdistelmällä ja painamalla sen jälkeen y:tä kun kysytään, halutaanko tallentaa muutokset. Kirjoitetaan Firefox -selaimen osoitepalkkiin “http://localhost/~*käyttäjänimi*”. Sivulla pitäisi lukea “Moi.”

Asennetaan seuraavaksi PHP5 -tuki Apache2 -webpalvelimeen. Haetaan ja asennetaan PHP5 -moduuli Apache2:sta varten:

$ sudo apt-get install php5

Navigoidaan hakemistoon /etc/apache2/mods-available komennolla:

$ cd /etc/apache2/mod-available

php5.conf -tiedostoa pitää editoida, jotta Apache2 pystyy käyttämään PHP -ohjelmointikieltä. Kirjoitetaan:

$ sudo nano php5.conf

Tiedoston sisällä on ohjeetkin tätä varten, mutta kerrotaan se tässäkin: nano editorissa, “kommentoidaan ulos” eli laitetaan # -merkit kaikkien rivien eteen alkaen <IfModule mod_userdir.c> -rivistä viimeiseen </IfModule> riviin asti (älä laita # -merkkiä vikan rivin eteen!). Painetaan Ctrl+x ja kun kysytään, halutaanko tallentaa muutokset, valitaan kyllä (y). Käynnistetään apache2 uudelleen:

$ sudo service apache2 restart

Nyt PHP -koodin pitäisi toimia. Tätä voi kokeilla kirjoittamalla vaikka index.html -tiedostoon:

<?php
print("Terve")
?>

Yllä oleva koodi tulostaa aikaisemman “Moi.” perään “Terve”.

Tiedostopääte pitää muuttaa .html:stä .php:ksi jos haluaa koodin toimivan. Jos index.html on kansiossa, kyseinen sivu avataan automaattisesti kun avaa osoitteen “##.##.##.##/~*käyttäjänimi*”, “127.0.0.1/~*käyttäjänimi*” tai “localhost/~*käyttäjänimi*”.

Klo 17:00 – asennetaan OpenSSH:

$ sudo apt-get install openssh-server

Tässä tapauksessa asennetaan openssh-server, koska haluamme etäkäyttää tietokonetta muilta koneilta.

Siirrytään käyttäjien luontiin. “Asiakkaan” yrityksessä ovat työntekijät Einari Vähäkäähkä, Pekka Winha, Åke Andersson ja Leila Laila. He haluavat kehittää PHP -sivuja etäkäyttöyhteydellä. Joten heille luodaan omat käyttäjätunnukset ja esimerkkisivut.

$ sudo adduser *käyttäjänimi*

Täytä tiedot mitä kysytään.

sudo adduser + questions

Kun kaikki käyttäjätunnukset ovat luotu, kirjaudutaan kaikilla sisään vuorotellen ja luodaan public_html -kansiot kotihakemistoihin ja niihin index.php -tiedostot. Samalla voi tarkistaa toimiiko käyttäjätilit.

Esimerkki index.php:

esimerkki-index.php

Toinen tapa millä saman voi tehdä on käyttää OpenSSH:ta. Yhdistäminen ja sisäänkirjautuminen tapahtuu komennolla:

$ ssh *käyttäjänimi*@*iposoite*

Tässä tapauksessa, jos haluamme tehdä Leila Lailalle tällä tavalla esimerkki index.php tiedoston, vastaava olisi:

$ ssh lailalei@127.0.0.1

Muuten sama prosessi uudestaan, eli tehdään kotihakemistoon kansio public_html ja sinne index.php.

ssh mkdir nano index.php

Koko prosessi kesti noin 15 minuuttia, mukaan lukien testaus.

Tässä vaiheessa on toteutettu “asiakkaan” kaksi ensimmäistä toivetta, eli tekstinkäsittely ja nettiselain sekä PHP-sivujen etäkehitys. Minulta meni noin 3 tuntia kokonaisuudessaan (mukaan lukien dokumentointi).

Seuraavaksi teemme skriptin “mystatus” mikä näyttää vapaan levytilan ja ip-osoitteen. Luodaan ensiksi itse skripti nanolla:

$ nano mystatus

Tiedostoon kirjoitetaan komennot

df -h

ja

ip addr

Tässä vaiheessa voi tallentaa ja sulkea nanon ja kokeilla skriptiä:

$ bash mystatus

Tuloksen pitäisi näyttää tältä:

bash mystatus

Avataan taas nano (nano mystatus). Kirjoitetaan ennen komentoja:

#!/bin/bash

Esimerkki:

nano mystatus

Tallennetaan ja suljetaan nano. Kirjoitetaan komento:

$ ./mystatus

Vastaukseksi tulee “bash: ./mystatus: Permission denied”, niin kuin pitääkin. mystatus -skriptin oikeudet pitää määritellä chmod -komennolla. Tässä tapauksessa annan kaikille oikeudet lukea ja ajaa skriptin:

$ chmod a=rx mystatus

Tämän jälkeen komennon “./mystatus” pitäisi toimia. Komennossa “a” viittaa kaikkiin, “r” lukuoikeuksiin ja “x” ajo-oikeuksiin.

Jotta skripti toimisi ilman “./” etuliitettä, tiedosto pitää kopioida /usr/bin/ -hakemistoon:

$ sudo cp -i mystatus /usr/bin/

-i asetus komennossa kysyy, halutaanko ylikirjoittaa, jos kohdehakemistossa on saman niminen tiedosto. Tämä estää sen, että vahingossa ylikirjoittaisi jonkin mahdollisesti tärkeän tiedoston.

Nyt “mystatus” skriptin pitäisi toimia kuin minkä tahansa komennon. Skriptin luontiin, testaamiseen ja dokumentointiin meni puoli tuntia.

“Asiakas” halusi myös lisäksi Pekka Winhalle MySQL -tietokannan sekä sen hallintaa varten phpMyAdmin -verkkokäyttöliittymän. Asennetaan ensiksi mySQL -palvelin:

$ sudo apt-get install mysql-server

Luo salasana kun sitä pyydetään.

Seuraavaksi phpMyAdmin:

$ sudo apt-get install phpmyadmin

Tässä ruudussa välilyöntiä pitää painaa, että voi pistää rastin ruutuun. Sen jälkeen enter:stä pääsee eteen päin.

phpmyadmin auto-configuration

Seuraavassa ruudussa valitaan yes:

phpmyadmin package configuration

Ja tehdään vielä salasana phpMyAdmin -käyttöliittymälle:

phpmyadmin package configuration password

Nyt voi kokeilla, onnistuiko asennus kirjoittamalla selaimeen osoitteeksi “http://*oma ip-osoite*/phpmyadmin. Sivun pitäisi näyttää tältä:

phpmyadmin webUI

 

 

Hello World -ohjelma 3 eri ohjelmointikielellä

Tässä artikkelissa käsittelen helloworld -ohjelman luomista kolmella eri ohjelmointikielillä.

C++:

Ensiksi pitää hankkia c++ -kääntäjä. Linuxilla on g++, avoimen lähdekoodin c++ -käännin. Latasin ja asensin ohjelman komennolla $ sudo apt-get install g++, jonka jälkeen loin helloworld.cc -nimisen tiedoston nanolla (nano helloworld.cc). Kirjoitin tiedostoon:

#include <iostream>
using namespace std;

int main() {

std::cout << “Hello World!” << std::endl;
return 0;

}

Ja annoin komennon $ g++ helloworld.cc kääntääkseni lähdekoodin. Tuloksena oli a.out -niminen tiedosto, jonka ajoin komennolla $ ./a.out. Ohjelma tulosti terminaaliin “Hello World!” -tekstin.

 

C#:

Asensin ensiksi mono-mcs:n komennolla $ sudo apt-get install mono-mcs. Tämän jälkeen kirjoitin tiedoston nimeltä HelloWorld.cs:

class HelloWorld {
static void Main() {
System.Console.WriteLine(“Hello World!”);
}
}

Ja annoin komennon $ mcs HelloWorld.cs. Tuloksena oli HelloWorld.exe, jonka ajoin komennolla $ mono HelloWorld.exe. Terminaaliin tulostui “Hello World!”.

 

Java:

Java -ohjelmointia varten tarvitsee Linuxilla openjdk:n, eli open java development kitin. Kirjoittaa $ sudo apt-get install openjdk ja painaa tabulaattoria, niin saa listan openjdk -paketeista. Uusin tämän artikkelin aikana oli openjdk-7-jdk, mutta latasin silti openjd-6-jdk:n. Pitää muistaa ladata openjdk-#-jdk -niminen paketti, koska muut eivät ole development kittejä. Lataamisessa voi kestää hiukan: itselläni kesti noin kaksi minuuttia tasaisella 748 kbps nopeudella.

Kun olin asentanut openjdk, aloin tekemään HelloWorld.java -lähdekoodia ($ nano HelloWorld.java). Koodi näytti tältä:

public class HelloWorld {
public static void main(String[]args) {
System.out.println(“Hello World!”);
}
}

Käänsin lähdekoodin komennolla $ javac HelloWorld.java, ja tuloksena oli HelloWorld.class, jonka join komennolla $ java HelloWorld. Ohjelma tulosti terminaaliin “Hello World!”.

 

Lähteet:

HelloWorld -ohjeet: Programming Languages on Linux – Installing and Using on Ubuntu

Lähdekoodit (c++ ja c#, javan kirjoitin itse): Transwiki:List of hello world programs

myy.haaga-helia.fi:lle kirjautumisen automatisointi (OpenSSH)

Raportoin tässä raportissa onnistuneesta julkisen avaimen luonnista ja sen käytöstä myy.haaga-helia.fi -palvelimella.

10:55 – Onnistuin luomaan julkisen avaimen ja annoin avaimen käyttäjälleni myyllä, mutta ilmeni sama bugi kuin oppitunnilla, eli ”Agent admitted failure to sign using the key.”

11:19 – Päätin kokeilla tehdä prosessin laittamalla SSH_AUTH_SOCK=0 komentojen eteen. Tämä ei korjaa bugia, vaan on menetelmä millä kiertää bugi. Laitoin SSH_AUTH_SOCK=0 käyttöön koko istunnalle komennolla

$ export SSH_AUTH_SOCK=0

11:22 – Annoin komennon

$ ssh-copy-id kayttajatunnus@myy.haaga-helia.fi

ja annoin salasanan jonka olin luonut julkiselle avaimelle.

11:25 – Kokeilin kirjautua sisään. Minulta pyydettiin taas julkisen avaimen salasanaa (passphrase). Annoin sen ja pääsin sisään.

11:26 – Kokeilin kirjautua uudelleen sisään. Salasanaa (passphrase) kysytään joka kerta.

11:27 – Loin uuden julkisen avaimen ja annoin sen kayttajatunnus@myy.haaga-helia.fi:lle.

$ ssh-keygen

$ ssh-copy-id kayttajatunnus@myy.haaga-helia.fi

Tällä kertaa en laittanut passphrasea. Pyydettiin salasanaa, ja avain oli kopioitu. Kirjauduin onnistuneesti sisään eikä salasanaa pyydetty.

Lähteet:

Karvinen, Tero. ICT01TN002 -kurssin materiaali <http://terokarvinen.com/&gt;

OpenSSH -palvelimen ja julkisen avaimen käytön raportti

Tässä raportissa kerron onnistuneesta openssh-server –palvelinohjelmiston asennuksesta ja sen käytöstä. Raportoin myös julkisen avaimen luomisesta ja käyttämisestä.

Edit: auth.log:n aikaleimat ovat eri aikavyöhykkeellä, 2 tuntia Suomen aikaa jäljessä, eli CET.

10:00 – Annoin komennon

$ sudo apt-get update

ja asensin openssh-server –ohjelmistopaketin komennolla

$ sudo apt-get install openssh-server

10:03 – Muutin salasanani (default salasana: enter) hyvään salasanaan.

10:05 – Onnistuneesti kirjauduin sisään localhostilla.

$ ssh ubuntu@localhost

10:08 – Yritin kirjautua sisään tietokoneen ip-osoitteella localhostin sijaan.

$ ssh ubuntu@10.0.0.4

Sain virheilmoituksen ”permission denied”. Olin kirjoittanut salasanan väärin.

auth.log:ssa kyseinen tilanne näytti tältä:

Feb 11 08:09:38 ubuntu sshd[6575]: pam_unix(sshd_auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=ubuntu.local user=ubuntu

Feb 11 08:09:39 ubuntu sshd[6757]: Failed password for ubuntu from 10.0.0.4 port 53810 ssh2

10:16 – Yritin uudelleen kirjautua, ja sain salasanan oikein tällä kertaa.

auth.log:

Feb 11 08:16:57 ubuntu sshd[6645]: Accepted password for ubuntu from 10.0.0.4 port 53811 ssh2

Feb 11 08:16:57 ubuntu sshd[6645]: pam_unix(sshd:session): session opened foruser ubuntu by (uid=0)

10:19 – Loin uuden käyttäjän petteri, ja sille hyvän salasanan.

$ sudo adduser petteri

10:22 – Onnistuneesti kirjauduin ssh:lla sisään petteri –käyttäjän käyttäjätunnuksilla.

$ ssh petteri@10.0.0.4

Kirjauduin ulos ja ryhdyin automatisoimaan kirjautumisen.

10:24 – Loin julkisen avainparin komennolla

$ ssh-keygen

sen jälkeen annoin julkisen avaimen petteri –käyttäjälle komennolla

$ ssh-copy-id petteri@10.0.0.4

10:25 – Kokeilin kirjautumista petteri –käyttäjätunnuksilla. Kirjauduin automaattisesti sisään. Kirjautumisen automatisointi oli valmis.

auth.log:

Feb 11 08:25:58 ubuntu sshd[7365]: Accepted publickey for petteri from 10.0.0.4 port 53816 ssh2

Feb 11 08:25:58 ubuntu sshd[7365]: pam_unix(sshd:session): session opened for user petteri by (uid=0)

 

Lähteet

Karvinen, Tero. ICT01TN002 -kurssin materiaali. <http://terokarvinen.com/&gt;

LAMP -ympäristön pystyttäminen

Tässä artikkelissa raportoin onnistuneesta LAMPin käyttöönotosta Linux Ubuntun LiveCD -tilassa.

Ohjelmistot, mitä käytettiin olivat tietenkin: L = Linux, A = Apache, M = MySQL ja P = PHP. Tietokantojen ja taulukoitten luontiin käytettiin PHPMyAdminiä, joka ei ilmeisesti ole avoimen lähdekoodin ohjelmisto.

Ohitan nyt tähän mennessä perustoiminnot, kuten mitä tehdään ennen kuin asennetaan jotain. Menen siis suoraan asiaan.

Asensin Apache2 -webbipalvelimen onnistuneesti. Laitoin modin userdir päälle ja käynnistin Apache2:n uudelleen.

$ sudo a2enmod userdir

$ sudo service apache2 restart

Uudelleenkäynnistyksen jälkeen tarkistin toimiiko localhost. Localhost toimi, mutta tarvittiin public_html -hakemisto /home/user -hakemistoon.

$ mkdir public_html

Siirryin public_html -hakemistoon ja tein sinne tiedoston index.html. Tässä vaiheessa en kirjoittanut tiedostoon muuta kuin “Moi” testaussyistä.

Tarkistin localhostin ja omalla IP-osoitteella sivun tilan. Koska ei ilmennyt mitään ongelmia ja Moi luki sivulla, lisäsin html -ohjelmoinnilla sivulle nimen ja lisää tekstiä. Tähän kaikkeen kesti noin viisi minuuttia. Skandinaavisia kirjaimia en laittanut päälle, koska osaaminen puuttui. Jatkoin sitten asentamalla MySQL -tietokantapalvelimen ja PHPMyAdmin -tietokantahallintaohjelmiston.

$ sudo apt-get install mysql-server phpmyadmin

Ekalla yrityksellä unohdin pistää rastin (tähden) ruutuun, kun kysyttiin, että haluanko mysql:n virittävän apache2 -palvelimen tukemaan mysql:ää. Lopputuloksena oli kasa virheilmoituksia PHPMyAdmin:n asennuksen aikana. Koska poistoprosessin aikana ilmestyi myös virheilmoituksia, estäen poiston, sammutin Linuxin liveCD -tilan ja käynnistin uudelleen. Jouduin täten myös asentamaan apache2:n uudelleen. Käytin tähän aikaa noin 20 minuuttia.

Toisella kerralla onnistuin. PHPMyAdmin -sivu aukeni ja pääsin sisään hallitsemaan tietokantoja. Lisäsin tietokannan LAMP_test, ja sinne taulun nimeltä “asunto”. Tauluun laitoin kolme saraketta ja lisäsin kaksi riviä siihen. Tähän kesti noin 15 minuuttia.

Kokeilin tässä vaiheessa toimiko php. Muutin index.html -tiedoston index.php:ksi, lisäsin siihen yksinkertaisen laskutoimituksen (2+2) ja testasin sivua. Firefox tarjosi sivua ladattavaksi, joten tiesin php:n olevan pois päältä. PHPMyAdmin asentaa php -modin Apache2 -palvelimeen kun sen asentaa, joten modi oli valmiina, se ei vaan ollut päällä. Menin /etc/apache2/mods-enabled/ -hakemistoon ja avasin sudolla php5.conf -tiedoston muokattavaksi.

$ sudo nano php5.conf

Kuten oli opastettu, lisäsin opastettuihin kohtiin #-merkin. Sen jälkeen käynnistin apache -palvelimen uudelleen. Kokeilin sivua uudelleen, ja sivu ilmestyi. Sivulla oli myös haluttu tulos, eli 4. Tähän kesti noin viisi minuuttia.

Tein yksinkertaisen PHP-ohjelman, joka lukee tietokantaa. Parametreina tietokannalle oli aikaisemmin mainittu tietokanta “LAMP_test” ja taulu oli “asunto”. Tallensin PHP-sivun (hello.php) public_html -hakemistoon ja kokeilin sitä Firefox:ssa. Sivulle tulostui “Connected successfully” ja taulun tiedot. Koska kopioiminen nano -editoriin ei onnistu, kirjoitin ohjelman mallin mukaan käsin. Ohjelman luominen ja testaaminen kesti noin 10 minuuttia.

Lähteet:

LAMP -ohjeet (englanninkieliset)

Command Line Basics

Commands for Admins

Install Apache Web Server on Ubuntu

Analyysi 3 lokitiedoston rivistä

Käytin Ubuntun sijasta tässä tehtävässä Linux Mintiä.

Seuraavat 2 riviä ovat syslogista:

Jan 25 15:54:04 mint dbus[1237]: [system] Activating service name=’com.ubuntu.DeviceDriver’ (using servicehelper)

Eli tammikuun 25. kyseiseen kellonaikaan järjestelmä ilmoittaa käynnistävänsä palvelun com.ubuntu.DeviceDriver. En ole varma siitä, mikä mint dbus on, mutta arvelisin sen olevan driver bus. DeviceDriver viittaa siihen, että palvelu joka käynnistettiin käsittelee ajureita. com.ubuntu onkin selvä: Mint perustuu Ubuntuun.

Jan 25 15:54:04 mint dbus[1237]: [system] Successfully activated service ‘com.ubuntu.DeviceDriver’

Jatkoa aikaisemmalle. Tässä ilmoitetaan, että kyseinen palvelu on onnistuneesti käynnistetty.

Seuraava rivi on otettu auth.log -lokitiedostosta:

Jan 25 16:17:01 mint CRON[5194]: pam_unix(cron:session): session closed for user root

Eli taas päivämäärä ja kellon aika ensiksi. mint viittaa käyttöjärjestelmään. CRON -ilmaisusta en ole varma, enkä cron:session -ilmaisustakaan. cron:session nyt selvästi liittyy CRONiin, ja session kertoo sessiosta. 5194 -numerosarjastakaan en tiedä. Ilmoitus kuitenkin kertoo, että sessio on suljettu käyttäjältä root.