Linux palvelimena kurssi (ict4tn003-7): Kotitehtävä 6

Tehtävän anto:

Valitse kaksi näistä
a) Tee deb-paketti, joka asentaa tekemäsi shell scriptin
b) Tee deb-paketti, joka muuttaa toisen paketin asetustiedostoa (divert, vaikea)
c) Allekirjoita paketit tai varasto
d) Etsi wepistä vanha “Linux palvelimena” koe ja ratkaise se
e) Kokeile PupeSoftia Ubuntulla

Valitsin vaihtoehdot a ja c.

—–

Tämän tehtävän tekoon koneena toimi:

Xubuntu 32bit live cd 12.04.1 ja Oracle VM VirtualBox (Virtuaalikone)

—–

1. Deb-metapaketin luonti

Aluksi päivitin pakettivaraston:

$ sudo apt-get update

Seuraavaksi asennetaan pakettityökalu nimeltä Equivs

$ sudo apt-get install equivs

Seuraavaksi siirrytään omaan kotihakemistoon (esim Xubuntun kotihakemistoon) ja luodaan metapaketin tekoon oma kansio:

$ cd

$ mkdir metapackage

$ cd metapackage

Seuraavaksi equivs-control komennolla luodaan asennustiedosto:

$ equivs-control kulmmii-metapackage.cfg

Tämän jälkeen voidaan lähteä muokkaamaan kulmmii-metapackage.cfg asennustiedostoa.

$ nano kulmmii-metapackage.cfg

Jonka jälkeen ruutuun ilmenee alla olevan näköinen sisältö:

metapackage

Sisältöön vaihdoin kohdat Package, Version, Maintainer, Depends.

metapackage2

 

Kun metapaketin cfg configuraatio tiedosto on muokattu ja luotu voidaan lähteä tekemään itse paketti komennolla:

$ equivs-build kulmmii-metapackage.cfg

buildmeta

 

Jonka jälkeen metapackage kansioon ilmestyi metapaketti nimeltä:

kulmmii-metapackage_0.1.all.deb

metatat

 

Kun paketti on luotu täytyy sen toiminta varmistaa ja testata lintian ohjelmalla ja asentaa gdebi ohjelmalla.

$ sudo apt-get install gdebi lintian

Jonka jälkeen paketin oikeellisuutta testataan lintian työkalulla.

todella

 

Koska ilmotuksia ei tullut, on paketti täysin validi ja toimintakelpoinen.

Paketti voidaan nyt asentaa gdebin avulla komennolla:

$ sudo gdebi kulmmii-metapackage_0.1_all.deb

todella2

 

Asennus on onnistunut, kun mitään virheilmoituksia ei saada.

Ohjelmat kannattaa käydä läpi vielä yksitellen käynnistämällä ne esim Terminalista komennoilla:

$ gimp

$ wireshark

$ thunderbird

—-

2. Metapaketin allekirjoitus

Luodaan julkinen ja yksityinen avain komennolla:

$ gpg –gen-key

metapak

Annoin seuraavaksi avainparin nimeksi ja sähköpostiosoitteeksi samat kuin paketin asetustiedostossa. (Suotavaa)

Seuraavaksi muutin paketin asetustiedostosta versionumeroksi 0.2.

$ nano kulmmii-metapackage.cfg

$ equivs-build -f kulmmii-metapackage.cfg    # -f on equivs-build työkalun full asetus

Testasin vielä uutta versiota lintian työkalulla:

$ lintian kulmmii-metapackage_0.2.all.deb 

Ja paketti luodaan komennolla:

$ gdebi kulmmii-metapackage_0.2.all.deb

————————-

Lähteet:

http://eliimatt.wordpress.com/tag/deb/

http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes

 

 

Linux palvelimena kurssi (ict4tn003-7): Kotitehtävä 5

Tehtävänä valita 2 seuraavista

Kotitehtävä optimointi:
Tee kaksi seuraavista
a) Asenna Varnish. Muuta jotain sen asetusta VCL-kielellä (esim iso-kuvat suoraan läpi – ei välimuistiin)
b) Analysoi ja nopeuta weppisivua YSlow -lisäkkeen avulla
c) Analysoi ja nopeuta weppisivua Firebug -lisäkkeen Net-välilehden avulla
d) Etsi jokin nopeuden analysoinnissa auttava palvelu wepistä ja käytä sitä
f) Asenna nginx käänteisproxyksi

—————————–

Tämän tehtävän tekoon koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

Xubuntu 32bit live cd 12.04.1

—————————–

Tehtävän tekoon valitsin kaksi seuraavaa:

a) Asenna Varnish. Muuta jotain sen asetusta VCL-kielellä (esim iso-kuvat suoraan läpi – ei välimuistiin)
b) Analysoi ja nopeuta weppisivua YSlow -lisäkkeen avulla

—————————–

1. Johdanto

Koska tehtävä vaatii Lampin (Linux Apache MySQL PHP) sekä hyväksi koekaniiniksi WordPressin niin lähdin asentamaan niitä Linuxin live cd:n avulla.

Ohjeet Lampin ja WordPressin asennukseen löytyy Kotitehtävästä 4, joten en lähde niitä erikseen dokumentoimaan.

https://kulmmii.wordpress.com/2013/02/11/linux-palvelimena-kurssi-ict4tn003-7-kotitehtava-4/

—————————–

2. WordPress suorituskyvyn tutkiminen ApacheBenchmarkilla ennen Varnishin asennusta

Komento sisältää 200 HTTP yhteyttä, 800 HTTP pyyntöä. (-c tarkoittaa HTTP yhteyksien määrää ja -n pyyntöjen määrää)

$ ab -c 200 -n 800 http://localhost/~xubuntu/wordpress

Concurrency Level:      200
Time taken for tests:   42.656 seconds
Complete requests:      800
Failed requests:        0
Write errors:           0
Total transferred:      7004000 bytes
HTML transferred:       6790400 bytes
Requests per second:    18.75 [#/sec] (mean)
Time per request:       10663.910 [ms] (mean)
Time per request:       53.320 [ms] (mean, across all concurrent requests)
Transfer rate:          160.35 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    9  86.1      0    1000
Processing:   217 10107 3725.3  10446   22532
Waiting:      203 9614 3563.6   9836   21851
Total:        220 10116 3730.1  10446   22538

Percentage of the requests served within a certain time (ms)
50%  10446
66%  11008
75%  11428
80%  11818
90%  12926
95%  18095
98%  20024
99%  21064
100%  22538 (longest request)

Testi osoitti, että 800 HTTP pyynnöstä kaikki onnistui. Palvelin pystyi käsittelemään 18.75 pyyntöä sekunnissa (keskimäärin). 

50% pyynnöistä käsiteltiin hitaammin kun 10 sekunttia, mikä on jo hidas tulos.

——-

3. Varnish (välityspalvelin) asennus

Varnish asentuu komennolla: $ sudo apt-get install varnish

3.1 Varnish configurointi toimintakuntoon

Koska Varnish toimii välityspalvelimena käyttäjän ja palvelimen Apachen välillä, täytyi portteja hieman muuttaa, niin että Varnish toimii web palvelimien käyttämässä default portissa 80 ja sisältö haetaan esimerkiksi portin 8080 kautta Apachen webpalvelimelta.

Ensimmäisenä täytyy lähteä muuttamaan Varnishin configuraatio tiedostoa komennolla:

$ sudo nano /etc/default/varnish

Johon muutetaan rivi:  DAEMON_OPTS=”-a :6082 \  (HUOM! Tämä siis oletuksena kohdassa Alternative 2, missä sisältö ei ole kommentoituna)

Riviin: DAEMON_OPTS=”-a :80 \      # Tämä on muutettu rivi, missä vaihdettu Varnish default portiksi kuuntelemaan porttia 80.

3.2 Apachen konfigurointi Varnish ystävälliseksi

Kun Varnishin portti on säädetty kuuntelemaan porttia 80, voidaan Apachea lähteä konfiguroimaan portille 8080. (huom. portti 80 on Apachen oletusportti)

Apachen portit on määritelty /etc/apache2/ports.conf tiedostossa.

$ sudo nano /etc/apache2/ports.conf

Josta löytyy heti conf tiedoston alusta rivit:

NameVirtualHost *:80
Listen 80

Näihin riveihin täytyy vaihtaa porteiksi 8080.

NameVirtualHost *:8080
Listen 8080

Ennen Varnishin käynnistämistä, täytyy tarkastaa vielä Apachen Virtual Hostin konfiguraatiot, koska ports.conf tiedostossa viitataan myös niihin.

$sudo nano /etc/apache2/sites-available/default

<VirtualHost *:80>   # Oletusportti 80, joka täytyy muuttaa portiksi 8080.

<VirtualHost *:8080>  # muutettu portti 8080, joka kuuntelee kaikkia VirtualHosteja.

3.3 Kun Varnish ja Apache on säädetty voidaan ne uudelleenkäynnistää

xubuntu@xubuntu:~$ sudo service apache2 restart

xubuntu@xubuntu:~$ sudo service varnish restart
* Stopping HTTP accelerator varnishd                                    [ OK ]
* Starting HTTP accelerator varnishd                                    [ OK ]

Varnish ja Apache2 on nyt uudelleen käynnistetty ja toimintakunnossa.

3.4 WordPress suorituskyvyn tutkiminen ApacheBenchmarkilla kun Varnish asennettuna

Komento sisältää 200 HTTP yhteyttä, 800 HTTP pyyntöä. (-c tarkoittaa HTTP yhteyksien määrää ja -n pyyntöjen määrää)

$ ab -c 200 -n 800 http://localhost/~xubuntu/wordpress

Concurrency Level:      200
Time taken for tests:   0.048 seconds
Complete requests:      800
Failed requests:        0
Write errors:           0
Non-2xx responses:      800
Total transferred:      503189 bytes
HTML transferred:       260800 bytes
Requests per second:    16778.17 [#/sec] (mean)
Time per request:       11.920 [ms] (mean)
Time per request:       0.060 [ms] (mean, across all concurrent requests)
Transfer rate:          10305.90 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        2    4   1.1      4       6
Processing:     3    7   2.0      6      13
Waiting:        1    5   1.9      5      11
Total:          6   11   2.2     10      18

Percentage of the requests served within a certain time (ms)
50%     10
66%     11
75%     12
80%     12
90%     14
95%     15
98%     16
99%     17
100%     18 (longest request)

Varnishin asennuksen jälkeen muutokset olivat merkittäviä ja tulokset tulivat huomattavasti nopeammin kuin ilman.

Testi osoitti, että 800 HTTP pyynnöstä kaikki onnistui myös Varnishin kanssa. 

Requests per second 16778 pyyntöä/sivua sekunnissa (keskimäärin). Aikaisempi tulos ilman Varnishia oli 18.75 pyyntöä sekunnissa (keskimäärin).

50% pyynnöistä käsiteltiin Varnishin asennuksen jälkeen 0.01 sekunnissa mikä on todella nopea aika verrattuna aikaisempaan n. 10 sekunnin (10446ms) aikaan.

Myös tiedonsiirtonopeus kasvoi aikaisemmasta 160.35 Kb/s nopeudesta nopeuteen 10305.90 Kb/s.

3.5 Ilman Varnishia vai Varnishin kanssa?

Varnishin asennus kasvatti palvelun tehoja huomattavilla mittasuhteilla. Varnish on ilmainen, joten siitä ei ylimääräisiä kustannuksia aiheudu.

4. Varnishin configurointi isoille tiedostoille

Tein samat testit kun Mikko oli blogissaan maininnut eli latasin vastaavan isotiedoston public_html kansioon.

$ cd public_html

xubuntu@xubuntu:~/public_html$ wget http://ubuntu.trumpetti.atm.tut.fi/releases//quantal/ubuntu-12.10-server-i386.iso

Jonka jälkeen tein Curlilla testin ( curl –head )

–head          Show document info only  eli näyttää documentin infon.

Curl on lähes vastaava kuin Wget, mutta erona on esim se että Curlissa on parempi tuki virhetilojen raportoinnille. ( http://linux.fi/wiki/Curl )

ubuntu@xubuntu:~/public_html$ curl –head http://localhost/~xubuntu/ubuntu-12.10-server-i386.iso
HTTP/1.1 503 Service Unavailable
Server: Varnish

503 Service Unavaible kertoo jo itsessään, että hommahan ei toimi. Varnish ei pysty käsittelemään näin isoa tiedosto

4.1 Varnish konfigurointi isojen tiedostojen lataukselle VLC kielellä

Koska oma tietotaito on Varnishin VLC kielelle aika olematon ja halusin kuitenkin kokeilla miten kyseinen homma toimii (ja koska tehtävänannossa oli mainittu siitä), jouduin hieman katsomaan mallia http://mikkott.wordpress.com/2013/02/18/varnishin-ja-nginx-asennus-ubuntu-serveriin/

$ sudo nano /etc/varnish/default.vlc

Mihin lisätään asetukset, jolla Varnish siirtää suoraan yli 10MB tiedostot, ilman että ne siirtyy välimuistiin.

sub vcl_recv {
 if (req.http.x-pipe && req.restarts > 0) {
  remove req.http.x-pipe;
  return (pipe);
 }
}

sub vcl_fetch {
 if (beresp.http.Content-Length ~ "[0-9]{8,}" ) {
  set req.http.x-pipe = "1";
  return (restart);
 }
}

xubuntu@xubuntu:~/public_html$ sudo nano /etc/varnish/default.vcl
xubuntu@xubuntu:~/public_html$ sudo service varnish restart
* Stopping HTTP accelerator varnishd                                    [ OK ]
* Starting HTTP accelerator varnishd                                    [ OK ]
xubuntu@xubuntu:~/public_html$ curl –head http://localhost/~xubuntu/ubuntu-12.10-server-i386.iso
HTTP/1.1 200 OK – Server: Apache/2.2.22 (Ubuntu)

Tulos näyttäisi olevan OK, joten se kelpaa koska myös tiedoston lataus onnistui.

5. Analysoi ja nopeuta weppisivua YSlow -lisäkkeen avulla

Ennen YSlow -lisäkkeen asennusta tarvitaan Firebug niminen lisäosa Firefoxille. Asennus tapahtuu joko Firefoxin sivuilta tai ohjelmasta suoraan.

firebug-addon-sivuilta

Latasin Firebugin suoraan Firefoxin sivuilta painikkeesta + Add to Firefox.

Seuraavaksi YSlow -lisäkkeen asennukseen joka tapahtui selaimen Tools ja Addons välilehdeltä.

yslow

Addons sivulta voidaan YSlow etsiä suoraan ja asentaa.

Valitaan YSlow 3.1.4 lisäosa ja install painikkeesta kyseinen lisäosa asentuu. YSlow asennuksen jälkeen ilmoitti, että selain täytyy käynnistää uudelleen:

yslow2

Tämän jälkeen voidaan vielä tarkastaa extension välilehdeltä, että Yslow on asentunut.

yslow3

Asennuksen jälkeen voidaan testata YSlowta WordPress sivulle. Tämä tapahtuu menemällä kyseiselle sivulle ja avaamalla YSlow Firebugilla paikasta: Tools -> Firebug -> Open Firebug.

yslowww

Jonka jälkeen aukeaa ikkuna, mistä voidaan klikata “Run Test” painiketta.

yslow4-result

YSlow tekee testin ja tuloksena tällä kertaa tuli 86 ja luokitus A. Parannettavia kohtia on testin mukaan 3 kpl, jotka ovat:

Maantieteellinen geolokalisointi (Grade F on Use a Content Delivery Network (CDN) tarkoittaa lähinnä sitä, että halutaan palvelu lähemmäksi käyttäjää.

Selaimen välimuistiin liittyvien Expires headereiden (otsakkeiden) palvelimen asetuksiin. Ohjelma sanoo näin: Expires headers are most often associated with images, but they can and should be used on all page components including scripts, style sheets, and Flash.

ETags määrittelyt (Grade F on Configure entity tags (ETags).

—–

Lähteet:

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

Mikko TT blogi – http://mikkott.wordpress.com

Eino L. blogi – http://eliimatt.wordpress.com

Kulmmii blogi – https://kulmmii.wordpress.com (omat muistiinpanot)

Linux palvelimena kurssi (ict4tn003-7): Kotitehtävä 4

Tehtävä:

a) Asenna WordPress, aloita tyhjältä koneelta (vagrant tai liveromppu).
Ota järkevät URLit (permalinks) käyttöön. Vaihda teema. Kirjoita esimerkki
artikkeli ja varmuuskopioi sisältö. Suojaa kone tulimuurilla.

b) Tee WordPressiin oma teema

—–

Tämän tehtävän tekoon koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

Xubuntu 32bit live cd 12.04.1

—–

Sisällysluettelo (otsikoiden perusteella)

1. Lampin asennus (Linux Apache MySQL PHP)
1.1 Apachen asennus
1.2 Apachen php-paketin asennus
1.3 MySQL ja PhpMyAdminin asennus
1.4 PhpMyAdminilla uusi tietokanta ja paikallinen käyttäjä

2. Palomuurin käyttönotto Xubuntussa

3. WordPressin asennus

4. WordPressiin säädöt kuntoon
4.1 Permalinkit käyttöön
4.2 WordPressin teeman vaihto
4.3 Esimerkki artikkeli ja varmuuskopioitu sisältö

5. Oman teeman luonti WordPressiin

—–

1. Ennen WordPressin asennusta asensin LAMP:in (Linux Apache MySQL PHP)

Aloitin tehtävän teon Xubuntun live cd:llä

1.1 Asentamalla Apachen

$ sudo apt-get update    [lataa uusimmat versiot paketeista ja päivittää]

$ sudo apt-get install apache2   [asentaa apachen uusimman version]

$ sudo a2enmod userdir   [enabloi käyttäjähakemiston public_html]

$ sudo service apache2 restart    [Apachen uudelleenkäynnistys kun muutokset tehty]

Nyt Apachen näyttää käyttäjien public_html kansion sisällön, kun se on luotu kotihakemistoon. Tätä voidaan testata kirjautumalla jonkun käyttäjän tunnuksilla ja luomalla kansio public_html  komennolla:

$ mkdir public_html 

Public_html kansiota voidaan testata lisäämällä index.html tiedoston sinne sisältöineen komennolla:

$ nano public_html/index.html

index.html tiedoston tallennuksen jälkeen Apachen toimivuutta voidaan kokeilla selaimella:  http://localhost/~käyttäjä/ tai ulkoinen ip/~käyttäjä jolloin index.html sisältö näkyi selaimessa.

——-

1.2 Seuraavaksi asensin Php-paketin Apacheen

Asensin Php-paketin xubuntuun komennolla:
$ sudo apt-get install php5

Ennen php:n testaamista täytyi php5.conf tiedostoa muokata hieman komennolla:
$ sudo nano /etc/apache2/mods-enabled/php5.conf 

php5.conf tiedostosta täytyi laittaa osa sisältöä kommentiksi [Kommentoidaan userdir-määritykset pois] rivit #-merkillä :
#<IfModule mod_userdir.c>
#          <Directory /home/*/public_html>
#          php_admin_value engine Off
#          </Directory>
#</IfModul>

ja tallentaa php5.conf tiedosto (ctrl x ja Yes)

Ennen lopullista php:n toimivuuden testaamista jouduin käynnistämään Apache:n uudelleen jotta uusi conf tiedosto tulisi käyttöön. Komennolla: $ sudo service apache2 restart

Nopea ja helppo keino testata PHP:n toimivuus oli lisätä public_html kansioon index.php tiedosto ja sinne muutaman rivin PHP koodi.

esim:

<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>

Selaimella http://localhost/~tunnus/ jolloin index.php aukeaa ja sivulla näkyy phpinfo sivusto.

phpinfo

——

1.3 MySQL ja PhpMyAdminin asennus

Kun Apache ja PHP oli toimintakunnossa, lähdin viimeisen eli MySQL:n kimppuun asentamalla sen. Koska itse tykkään käyttää tietokantaa graafisella käyttöliittymällä koin hyväksi asentaa samalla myös PhpMyAdmin-työkalun jolla se mahdollistetaan.

Asensin MySQL ja PhpMyAdmin komennolla:
$ sudo apt-get install mysql-server phpmyadmin

Asennuksen aikana tuli kysymys/varmistus siitä, että haluaa asentaa phpmyadminin ja vastasin YES jonka jälkeen, useamman kerran kysyttiin salasanoja (MySQL-tietokannan rootin salasanaa) joihin laitoin kaikkiin saman. Lopuksi valitaan kahdesta vaihtoehdosta Apache2.

Asennuksen aikana tuli vielä kysymys: Configure database for phpmyadmin with dbconfig-common johon vastasin Yes.

Jonka jälkeen asennus kysyy vielä tietokannan adminin salasanaa useampaan kertaan.

Tämän jälkeen linkitin phpmyadminin kansion www kansion sisälle komennolla:
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

Phpmyadminia kokeilin selaimella http://localhost/phpmyadmin/

Vanhan tottumuksen perusteella aikaisemman asennuksen pitäisi toimia ja phpmyadmin hallintasivun pitäisi toimia myös. Tällä kertaa ei toiminutkaa syystä tai toisesta, koska tuli virheilmoitus:

error

Errorissa sanotaan suoraan, että tarkista PHP configuration, koska mysqli extensionia ei löydy.

Hieman kaiveltua Googlesta asiasta löysin osoitteen, missä asiasta on puhuttu ja annetaan ohjeeksi:

Latest phpMyAdmin versions require mysqli extension and will no longer work with mysql one (note the extra “i” at the end of it’s name).

sudo apt-get install php5-mysql

Will install package containing both old one and the new one, so afterwards all you need to do is to add

extension=mysqli.so

in your php.ini, restart apache and it should work.

Lähde: http://stackoverflow.com/questions/10769148/extension-mysqli-is-missing-phpmyadmin-doesnt-work

Tein ylläolevan asennuksen ja kävin muokkaamassa php.ini tiedostoa. Löysin php.ini tiedoston komennolla:

xubuntu@xubuntu:~$ php –ini
PHP Warning:  Module ‘mysqli’ already loaded in Unknown on line 0
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini

Joka paljasti, että php.ini sijaitsee /etc/php5/cli/ kaniossa. Kävin muokkaamassa php.iniin kuvassa olevan kohdan:

mysqli

Tämän rivin lisäyksen jälkeen tallensin tiedoston ja käynnistin Apachen uudelleen:

$ sudo service apache2 restart

Jonka jälkeen kävin kokeilemassa http://localhost/phpmyadmin osoitetta uudelleen:

phpmyadmin

Jes. Phpmyadmin toimii ja kirjautui sisään normaalisti! 🙂 Tästä kaikesta ajankäytöstä ja osasta työvaiheista olisi voinut tietenkin välttyä käyttämällä tietokantaa suoraan Terminaalista (ilman phpmyadminia).

——–

1.4 PhpMyAdminilla uusi tietokanta ja paikallinen käyttäjä

Kun Apache, PHP, MySQL ja Phpmyadmin (MySQL:n hallintatyökalu) on käyttövalmiina lähdin luomaan PhpMyAdminilla uuden paikallisen käyttäjän ja tietokannan WordPressiä varten.

phpmyadmin-adduser

Käyttäjäksi tuli: wordpress ja Salasanaksi phpmyadminin generoima (vain tässä harjoituksessa käytössä): BLGmLy5aCZPz7v9Y

Kohdassa tietokannat (databases) voi käydä vielä tarkistamassa, että wordpress tietokanta on lisääntynyt ja että se toimii.

——–

2. Palomuurin käyttönotto Xubuntussa ( http://wiki.ubuntu-fi.org/Ubuntun_komennot  hyviä neuvoja)

Koska ubuntun firewall ei ole oletuksena asennettu täytyy se ensiksi asentaa:

$ sudo apt-get update

$ sudo apt-get ufw

Tämän jälkeen täytyy ufw-palomuuri käynnistää:

xubuntu@xubuntu:~$ sudo ufw enable
Firewall is active and enabled on system startup

Jonka jälkeen tuli ilmoitus, että palomuuri on aktiivinen ja käynnissä.

xubuntu@xubuntu:~$ sudo ufw status
Status: active

Tällä komennolla voidaan vielä tarkastaa, että palomuuri on päällä
—————-

3. WordPressin asennus

Nyt kun kone on valmisteltu WordPressin varalle voidaan hakea WP:n uusin versio osoitteesta: http://wordpress.org/latest.tar.gz

Tämä tapahtuu komennolla (public_html kansiossa):  $ wget http://wordpress.org/latest.tar.gz

Seuraavaksi paketin voi purkaa komennolla:
$ tar -xf latest.tar.gz

Tämän jälkeen näet wordpress nimisen kansion public_html kansiossa.

Nyt siirryin osoitteeseen http://localhost/~xubuntu/wordpressJolloin selaimeen ilmestyi tämän näköinen ikkuna:

wordpress-asennus1

Tässä vaiheessa klikkasin create a configuration file (luodaan conffi tiedosto WP:lle).

wordpress-asennus2

Tällä sivulla varmistettiin, että WordPressiä asentava on selvillä kuvassa näkyvistä viidestä kohdasta. Aikaisemmin tein nämä, joten painoin huoletta Let’s go!.

wordpress-asennus3

Tämän jälkeen täytetään tarvittavat tiedot ja klikataan Submit.

wordpress-asennus4

Yllä olevan kuvan näköinen sivu ilmestyi ja tekstissä sanottiin, että voit luoda manuaalisesti wp-config.php tiedoston ja kopioida sinne sivulla olevat tekstit. Loin wp-config.php tiedoston kansioon public_html/wordpress:

$ nano wp-config.php  ja kopioin sisällöt sinne.

Tämän jälkeen jatkoin ja painoin Run the install.

wp-asennus5

Jonka jälkeen tulee ilmoitus asennus onnistunut. Success!Klikkasin painiketta Log In.

wp-kirjautuminen

Jolloin ilmestyi kirjautumisvalikko ja kirjauduin sisään.

wp-loggedin

Niinkuin näkyy, kirjautuminen WordPressiin onnistui ja olen kirjautunut sisään Adminina.

—————

4. WordPressiin säädöt kuntoon

Koska tehtävänannossa sanottiin:

Ota järkevät URLit (permalinks) käyttöön. Vaihda teema. Kirjoita esimerkki
artikkeli ja varmuuskopioi sisältö. Suojaa kone tulimuurilla.

4.1 Permalinkit käyttöön

Lähdin säätämään WordPressiä hieman, aloitin permalinksien käyttöönotolla:

permalinks

Permalinksit voidaan ottaa käyttöön Settings -> Permalinks välilehdeltä valitsemalla jokin permalinkeistä. Valitsin kohdan post name. Jonka jälkeen klikkasin Save Changes painiketta.

Tämän jälkeen tuli ilmoitus:

htaccessupdate

Luin hieman pintaa syvemmältä osoitteesta: http://codex.wordpress.org/Using_Permalinks

Jossa kerrottiin, että mod_rewrite moduuli tulisi ottaa käyttöön, että saadaan paremmat permalinkit. Joten otin sen käyttöön:

$ sudo a2enmod rewrite

$ sudo service apache2 restart

Luin sivuilta lisää niin edellä mainittu .htaccess tiedosto täytyi luoda wordpress kansioon joten loin sen:

$ nano .htaccess

ja lisäsin sivuilla mainitut rivit sen sisälle:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~xubuntu/wordpress/
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~xubuntu/wordpress/index.php [L]
</IfModule>

Kun tiedot oli lisätty .htaccessin sisälle, varmuudenvuoksi käynistin Apachen vielä kerran uudelleen ja kävin wordpressin sivuilla tallentamassa permalinkin.

Tämän jälkeen kävin kokeilemassa, toimiiko permalinkki lisäämällä uuden postauksen kohdassa Posts -> add new ja publish kun postaus on kirjoitettu:

post

Jonka jälkeen postaus meni läpi ja permalinkki näyttäisi toimivan niinkuin pitää.

4.2 WordPressin teeman vaihto

Teemaa lähdin vaihtamaan kohdasta (Appearance -> Themes)

teema

Valitsin sivuilta valmiin teeman Twenty Eleven, jolloin tuli uusi sivu missä klikkasin Save & Activate. Tämän jälkeen uusi teema oli jo käytössä. (ylhäällä näkyi vielä ilmoitus Settings saved and theme activated. Visit site). Visit site oli suora linkki omaan uuteen WP sivuuni jossa uusi teema oli käytössä.

4.3 Esimerkki artikkeli ja varmuuskopioitu sisältö

Kirjoitin aikaisemmin lyhyen tekstin esimerkki artikkelina.

Aikaisemmin kirjoitettu postaus halutaan tehtävänannossa varmuuskopioida, joten lähdin varmuuskopioimaan sitä kohdasta Tools -> Export

export

Sivulla kysyttiin, mitä halutaan varmuuskopioida ja valitsin kaikki. (All content). Klikkasin painiketta Download export file jonka jälkeen koneelle latautui wordpressharjoitus.wordpress.2013-02-11.xml niminen tiedosto. Tiedosto sisälsi varmuuskopiot kaikesta WordPressissä tehdyistä postauksista, sivuista, kommenteista, muokatuista kentistä, kategorioista ja tageista.

—————-

5. Oman teeman luonti WordPressiin

Koska WordPressissä on olemassa kasapäin valmiita teemoja ja useiden teemojen luojat antavat luvan muokata omia teemojansa, niin helpointa olisi varmasti luoda Parent teemasta -> Child teema. Minimivaatimus Child teeman luontiin on luoda yksi erillinen tyylitiedosto, nimeltä style.css ja sen lisäksi vain asennettu ja aktivoitu valmis teema. Tätä tehtävää lähdin kuitenkin tekemään mielenkiinnosta sillä mielellä, että luon ohjeiden kanssa kokonaan oman uuden teeman:

Aloitin teeman luonnin luomalla kansion:

xubuntu@xubuntu:~/public_html/wordpress/wp-content/themes$ mkdir omateema

Seuraavaksi lähdin luomaan teemaan sisältyviä PHP tiedostoja.

Ensiksi lähdin tekemään header.php tiedostoa:

header

Jonka jälkeen koodissa jatkumona olevaa index.php tiedostoa (pääsisältö):

index

Seuraavaksi koodissa näkyvää sidebar.php:ta

sidebar

Ja koodissa viimeisenä mainittua footer.php:ta

footer

Lopuksi teemalle tarvittiin style.css  (tyylitiedosto):

style

Tämän jälkeen kävin katsomassa näkyykö teema WordPressissä ja saadaanko se otettua käyttöön.

Ja oma teema näkyi valikossa muiden teemojen joukossa.

omateema

Omaa teemaa esikatselin vielä kohdasta Live Preview, jolloin kuvaan ilmestyi oma teema ja sen runko. Myös oma aiemmin luotu postaus näkyi uudella teemalla.

omateema2

Lähteenä WP teeman tekoon käytin osoitteen http://www.siteground.com/tutorials/wordpress/wordpress_create_theme.htm sisältöä, josta itselle oli suuri apu. Tästä on hyvä lähteä tekemään omia teemoja!

Linux palvelimena kurssi (ict4tn003-7): Kotitehtävä 3

Tehtävät:

1. Tee Apachelle nimipohjainen virtuaalipalvelin (name based virtual host). Voit esimerkiksi laittaa samaan IP-osoitteeseen kaksi nimeä.

2. Tee erilaisia virheitä Apachen lokiin ja analysoi niihin liittyvät rivit.

———-

Tämän tehtävän tekoon koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

Käyttöjärjestelmänä asennettu Xubuntu Ubuntu 12.04 (precise) (kernel: 3.2.0-35-generic)

———-

1. Tee Apachelle nimipohjainen virtuaalipalvelin (name based virtual host). Voit esimerkiksi laittaa samaan IP-osoitteeseen kaksi nimeä.

1.1 Apachen asennus

Koska tehtävä vaatii Apachen ja sitä todennäköisesti sitä kaikilla ei ole (oletuksena) niin laitan vielä kertauden vuoksi ohjeet (komennot järjestyksessä) miten Apache asennetaan nopeasti ja helposti.

$ sudo apt-get update    [lataa uusimmat versiot paketeista ja päivittää]

$ sudo apt-get install apache2   [asentaa apachen uusimman version]

$ sudo a2enmod userdir   [enabloi käyttäjähakemiston public_html]

$ sudo service apache2 restart    [Apachen uudelleenkäynnistys kun muutokset tehty]

Nyt Apachen näyttää käyttäjien public_html kansion sisällön, kun se on luotu kotihakemistoon. Tätä voidaan testata kirjautumalla jonkun käyttäjän tunnuksilla ja luomalla kansio public_html  komennolla:

$ mkdir public_html 

Public_html kansiota voidaan testata lisäämällä index.html tiedoston sinne sisältöineen komennolla:

$ nano public_html/index.html

index.html tiedoston tallennuksen jälkeen Apachen toimivuutta voidaan kokeilla selaimella:  http://localhost/~käyttäjä/ tai ulkoinen ip/~käyttäjä jolloin index.html sisältö näkyi selaimessa.

miika

———

1.2 Kansion luonti omaan kotihakemistoon (Apachen virtuaalipalvelinta varten)

$ mkdir /public_html/miikakulmala.com

———

1.3 Seuraavaksi kun kansio oli luotu siirryin muokkaamaan /etc/hosts tiedostoa komennolla:

$ sudo nano /etc/hosts

Komennon jälkeen nano näytti /etc/hosts tiedoston sisällön, jossa ei ollut aluksi määrittelyitä muutakun localhostille.

etchosts

Lisäsin /etc/hosts tiedostoon 2 riviä:

127.0.1.1 http://www.miikakulmala.com [osoite viittaa paikalliseen ip-osoitteeseen]

127.0.1.1 miikakulmala.com  [osoite viittaa paikalliseen ip-osoitteeseen]

1.4 Seuraavaksi ryhdyin muokkaamaan Apache:n asetustiedostoja, jossa Apachelle määritellään virtuaaliset osoitteet. (Apachen asetuskansio sites-available)

$ cd /etc/apache2/sites-available/

Jossa loin uuden kopion default tiedostosta.

$ sudo cp default miikakulmala.com

Ja muokkasin nanolla miikakulmala.com sisältöä:

$ sudo nano miikakulmala.com

Jonka jälkeen lisäsin nämä rivit tiedostoon miikakulmala.com

jepjep

Hieman pintaa syvemmältä mitä nämä rivit sisältävät:

<Virtualhost *:80> = Sisältää virtuaalipalvelimen määrittelyt TCP portille 80 ja * kertoo, että tämä asetus koskee kaikkia koneen ip-osoitteita.

ServerName http://www.miikakulmala.com = Virtuaalipalvelimen/hostin nimi (jolle osoitettuun HTTP liikenteeseen tämä asetettu virtuaalipalvelin vastailee).

ServerAlias miikakulmala.com = Vaihtoehtoinen nimi johon virtuaalipalvelin vastailee myös.

DocumentRoot = viittaa tiedostojärjestelmän polkuun, missä virtuaalipalvelimen tiedostot sijaitsee.

1.5 Tämän jälkeen lisäsin /home/kulmmii/public_html/miikakulmala.com kansioon tiedoston index.html , jonne Tero Karvisen lyhyt html5 koodinpätkä, jonka jälkeen sivu näyttäytyisi kunnolla ja validisti heti alkuunsa.

1.6 Ennen varsinaisen osoitteen ja sivun kokeilua täytyi uusi Apachen virtuaalipalvelin vielä ottaa käyttöön komennolla:

$ sudo a2ensite miikakulmala.com

jonka jälkeen Apachen uudelleenkäynnistys täytyi tehdä:

$ sudo service apache2 reload

1.7 Kun Apachen asetukset oli asetettu, virtuaalipalvelin otettu käyttöön ja Apache käynnistettu uudelleen oli aika kokeilla mitä linuxin firefox sanoo osoitteelle http://www.miikakulmala.com

ja tässä tulos:

miikakulmalacom

Osoite: http://miikakulmala.com toimi myös ja ohjasi samalle sivulle. Eli homma näyttäisi toimivan.

———-

Testimielessä kokeilin tehdä myös toiselle uudelle käyttäjälle oman Apachen virtuaalihostin miikameikalainen.com samalla tavalla kun aikaisemminkin ja tuntu toimivan.
miikameikalainenweb

Muutin vielä testimielessä ip-osoitteet /etc/hosts tiedostoon 127.0.1.1 -> 192.168.1.75, jotta voin kokeilla myös muilla lähiverkon koneilla.

Copypastea nykyisestä /etc/hosts tiedostosta:

miika@wizard:~$ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    wizard
192.168.1.75    www.miikakulmala.com
192.168.1.75    miikakulmala.com
192.168.1.75    miikameikalainen.com
192.168.1.75    www.miikameikalainen.com

ja Apachen sites-available kansiossa oleva miikameikalainen.com (käytännössä sama kuin miikakulmala.com sisältö paitsi osoitteet eri ja DocumentRoot ohjaa eri käyttäjän public_html/ )
miika@wizard:~$ cat /etc/apache2/sites-available/miikameikalainen.com
<VirtualHost *:80>
ServerName http://www.miikameikalainen.com
ServerAlias miikameikalainen.com
DocumentRoot /home/miika/public_html/miikameikalainen.com
</VirtualHost>

Toisella lähiverkon koneella (missä on Windows 8) kokeiltuani huomasin, että Apachen palvelin toimii ainoastaan 192.168.1.75, jolloin selaimeen tulee “It works!” teksti. Kokeilin myös http://miikakulmala.com ja http://miikameikalainen.com, mutta syystä tai toisesta en saanut niitä toimimaan. Ehkä Soneran tarjoaman Thomson TG789vn modeemireitittimen asetuksista täytyisi vaihtaa jotakin DNS:n hallinnasta, jotta ne (Apachen virtuaaliset hostit) saisi toimintaan myös muille koneille.

———–

2. Tee erilaisia virheitä Apachen lokiin ja analysoi niihin liittyvät rivit.

2.1 Virhe 404 – Not found

Jossa kokeilin mennä http://miikameikalainen.com/apuva osoitteeseen.

notfound

Apachen /var/log/apache2/error.log tiedosto sanoo näin:

[Mon Feb 04 20:49:45 2013] [error] [client 192.168.1.75] File does not exist: /home/miika/public_html/miikameikalainen.com/apuva

Lähteet:

Karvinen, Tero 2012a. Short HTML5 page. http://terokarvinen.com/2012/short-html5-page

http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

http://httpd.apache.org/docs/2.4/vhosts/examples.html

Linux palvelimena kurssi (ict4tn003-7): Kotitehtävä 2

Rosvoja ja kunnon kansalaisia

Tehtävän sisältö:

On 15 March. 2001, a Linux honeypot was successfully compromised, a rootkit was download to the / partition and then deleted from the system. Your mission is to find and recover the deleted rootkit. If you are not sure where to begin on conducting this forensic analysis and recover the rootkit, we highly reccommend you start with the Forensic Challenge. The steps you will have to follow for the rootkit recovery are similar to the steps discussed there. We have posted only the / partion for download to keep this challenge simple. The compressed image is 13MB, (honeynet.tar.gz) MD5=0dff8fb9fe022ea80d8f1a4e4ae33e21. Once you have downloaded, untarred, and unzipped the partition image, it will be 255 MB and the checksum should be MD5=5a8ebf5725b15e563c825be85f2f852e.

  1. Show step by step how you identify and recover the deleted rootkit from the / partition.
  2. What files make up the deleted rootkit?

Bonus Question: 
Was the rootkit ever actually installed on the system? How do you know?

Tehtävänanto (lähde) löytyy osoitteesta:  http://old.honeynet.org/scans/scan15/

Lyhyesti suomeksi:

Tarkoituksena on siis löytää saastuneen palvelinkoneen juuresta otetusta levykuvasta rootkit (haittaohjelma) ja selvittää kuka sen on tehnyt ja mitä se tekee.

1. Ennen tehtävän aloitusta

Koska rootkit sanana ei kerro juurikaan, niin lähdin selvittämään hieman teoriapuolta rootkitista ja mitä tarvitaan saastuneen levykuvan analysointia varten.

Rootkit lyhyesti Wikipedian sanoin: Rootkit on ohjelmisto, joka asentuu tietokoneelle hyökkääjän saatua sen hallintaansa. Rootkit on myös usein troijalainen, joka välitetään toisen ohjelmiston avulla asennettavaksi. Yleensä rootkitit pyrkivät piilottamaan itsensä asentumalla itse käyttöjärjestelmään jonkin siinä olevan tietoturva-aukon avulla, sekä tuhoamalla jäljet tartunnasta ja piilottamalla tietokoneella olevat vieraat prosessit tai verkkoyhteydet. Rootkittiin kuuluu usein etähallintamahdollisuus (takaovi).

Luettuani hieman rootkitistä linuxilla, löysin tähän tehtävään sopivaksi ohjelmaksi täysin ilmaisen (open source) Sleuthkit ohjelman ja yhtä sen toiminnoista nimeltä tsk_recover. Sillä oli mahdollista palauttaa annetusta levykuvasta poistettuja ja olemassa olevia tiedostoja tarkempaa tutkimusta varten. (tsk_recover – Export files from an image into a local directory).

Tämän tehtävän tekoon koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

—————————————–

2. Tehtävään vaadittavan sisällön lataus ja ohjelmiston asennus

Koska tehtävänanto jo itsessään vaikuttaa ja kuulostaa hieman epäilyttävältä koneen kannalta, tein sen turvallisuus syistä Xubuntu 32bit (versio 12.04) live cd:n avulla.

2.1 – Aloitin tehtävän lataamalla tehtävään kohdistetun levykuvan honeynet.tar.gz (http://old.honeynet.org/scans/scan15/honeynet.tar.gz) Xubuntun /home/xubuntu/Downloads kansioon. Komento lataamiseen Downloads kansiossa:

$ wget http://old.honeynet.org/scans/scan15/honeynet.tar.gz

2.2 – Tämän jälkeen ennen tarvittavien ohjelmien asennusta päivitin pakettien hallinnan ajantasalle.

$ sudo apt-get update

2.3 – Sleuthkit ohjelmiston asennus. Ohjelma sisältää monia työkaluja, keinoja tutkia järjestelmää ja honeynet.tar.gz levykuvaa.

$ sudo apt-get install sleuthkit

—————————————–

3. Tiedoston honeynet.tar.gz purku ja käsittely

3.1 – Kun tehtävään vaadittava paketti (honeynet.tar.gz) on ladattu ja sen tutkimiseen vaadittava ohjelma Sleuthkit asennettu voidaan lähteä purkamaan honeynet.tar.gz tiedostoa Downloads kansiossa komennolla:

$ tar -xvf honeynet.tar.gz

Jolloin huomataan, että Downloads kansioon on ilmestynyt honeynet kansio. Kansio sisältää honeypot.hda8.dd (levykuva) ja README (tekstitiedosto) tiedostot.

3.2 – Koin, että downloads kansio oli huono paikka honeynet -kansion sisällön tutkimiseen, joten siirsin sen parempaan (tutumpaan) paikkaan komennolla:

$ mv honeynet /home/xubuntu/rosvo

3.3 – Varsinaisten levykuvan honeypot.hda8.dd tutkimisen aloitin Sleuthkitistä löytyvän tsk_recover toiminnon ajamisella levykuvalle. Tsk_recoverilla pystyy palauttamaan ei käytössä (unallocated) ja käytössä olevia (allocated) tiedostoja. Tein tämän /home/xubuntu/rosvo kansiossa, komennolla:

$ tsk_recover ./honeypot.hda8.dd ./unallocated

Jonka jälkeen tuli ilmoitus: Files Recovered: 37 

Tämän jälkeen halusin tietää myös paljonko käytössä olevia (allocated) tiedostoja saan levykuvalta.

$ tsk_recover -a ./honeypot.hda8.dd ./allocated

Jonka jälkeen tuli ilmoitus: Files Recovered: 1614

Huom! Oletuksena ilman -a vaihtoehtoa, tsk_recover palauttaa vain ei käytössä olevia (unallocated) tiedostoja, joten se on hyvä tehdä niin päästään käsiksi myös jaettuihin tiedostoihin.

3.4 – Tästä eteenpäin mielenkiintoni heräsi, että mitä unallocated ja allocated kansiot oikeen sisältävät joten alotin niiden hierarkian tutkimisen komennoilla:

$ ls -l unallocated/ 

Unallocated kansio sisältää: etc kansion, $OrphanFiles kansion, lk.tgz tiedoston 

$ ls -l allocated/

Allocated kansio sisältää kansiot: bin, dev, etc, lib, root, sbin, tmp

Kokeilin myös komentoa $ tree , joka avaa allocated kansion sisällön kaikkien hakemistojen näkymät hienoon “puu” hierarkiaan. Tämä komento ei kuitenkaan kerro mitä näkyville tulevat tiedostot sisältävät, ainoastaan sen mitä tiedostoja löytyy mistäkin hakemistosta, hakemiston alihakemistosta jne. Eli täytyi keksiä hyvä keino tiedostojen tarkempaan syyniin ja mistä lähteä liikkeelle.

3.5 – Epäilyttävien ja silmiinpistävien tiedostojen listalle pääsi ainakin unallocated kansiossa olevat $OrphanFiles kansio, lk.tgz tiedosto joita en ainakaan ennen ole linuxissa tavannut, joten aloitin tutkimalla niitä. Googlettamalla tietoa $OrphanFiles kansiosta sain vastauksen ainakin yhteen kysymykseen.

Mikä on $OrphanFiles kansio ? 

$OrphanFiles on Sleuth Kit ohjelmiston muodostama virtuaalinen kansio, joka sisältää osittainen poistetut, “orvot” tiedostot, joilla ei ole enää hakemistopolkua ja nimeä. “Orpojen” tiedostojen varsinainen data on kuitenkin vielä tallessa, mikäli kyseisiä tiedostojärjestelmän lohkoja ei ole varattu uuteen käyttöön. Tälläisiä tiedostoja voi jäädä levylle kun ohjelmat “kaatuvat” tai kun tiedosto poistetaan, mutta se on vielä avattuna jollakin prosessilla. (lähde: http://eliimatt.wordpress.com/tag/tietoturva/ )

Koska $OrphanFiles kansion tiedostojen voidaan olettaa sisältävän myös rootkitin tiedostoja, aloitin heti tutkimalla niitä:

$ cd \$OrphanFiles/

Kansio $OrphanFiles sisälsi 26 tiedostoa, joista kaikki tiedostot alkoivat OphranFile- (jokin numeropääte).

Alotin tutkimalla tiedostoja yksitellen $ cat komennolla, jolloin paljastui että tiedostot sisälsivät mitä erikoisempia normaaliin ohjelmistoon kuulumattomia komentoja, toimintoja ja sisältöä (tekstiä). 

Huomioni kiinnittyi varsinkin kolmeen tiedostoon:

/OrphanFile-2041 = sisältää viittauksia: rootkittiin, linsnifferiin ym..
/OrphanFile-2047 = # Sorts the output from LinSniffer 0.03 [BETA] by Mike Edulla <medulla@infosoc.com>

/OrphanFile-2059 = tappaa kaikki linsniffer prosessit, poistaa tcp.login, luo tcp.login ja tuo linsnifferin sisällön tcp.logiin.

xubuntu@xubuntu:~/rosvo/unallocated/$OrphanFiles$ cat OrphanFile-2059
killall -9 linsniffer
rm -rf tcp.log
touch tcp.log
./linsniffer >tcp.log &

Kaikissa kolmessa em. tiedostossa oli viittauksia linsniffer nimiseen ohjelmaan.

Jätin hetkeksi $OrphanFiles kansion rauhaan tutkittuani tiedostot ja lähdin tutkimaan lk.tgz.

$ tar -xvf lk.tgz

Joka purki tgz paketista last kansion.

Siirryin last kansioon, jossa aloin tutkimaan tiedostoja tarkemmin. Kansio last sisälsi 23 toimintoa/komentoa, joista silmiinpistävin oli jälleen kerran ilmestynyt linsniffer.

Tein Googlella taustatutkimuksia linsnifferille ja oikeaan osuikin epäilyt.

Powerful Linux ethernet sniffer (http://www.securityfocus.com/tools/223)

“linsniffer is an ethernet sniffer. It sits and listens on a network and
grabs every packet it sees.” (lähde: http://www.mail-archive.com/redhat-list@redhat.com/msg02383.html)

Eli jos oikein käsitin niin linssniffer kuuntelee ja poimii kaikkea ethernet verkossa tapahtuvaa liikennettä (paketteja) ja salasanoja verkkoliikenteestä. Ei kuulosta kovinkaan luotettavalta ohjelmalta.

3.6 – Otin lk.tgz paketista puretun last kansion vielä tarkempaan syyniin

Install scripti sisälsi täysin samat tiedot kuin OrphanFile-2041, tämä herätti hieman epäilyjä ja voisin todeta, että rootkit todellakin oli asennettu koneelle, koska rootkitin asennus scriptiltä tämä minusta näytti. install scriptissä oli vaiheita rootkitin ominaisuuksille, kuten tietojen keräys, lähetys Samassa paketissa oli myös linsniffer.

sense scripti sisälsi samat tiedot kuin OrphanFile-2047

3.7 Koska allocated kansiota en ole vielä tarkemmin katsellut, aloitin sen tutkimisen. Aloitin tutkimisen install scriptissä mainituista kansioista ja tiedostoista, koska oletin että se jos jokin ohjaa koko rootkittiä.

Tässä muutama esimerkki kansio/tiedosto mitä install scriptistä löytyi ja mille install scripti teki omat editoinnit (myös itselle muistiin).

/dev/ida/.drag-on/tcp.log (selvitettynä alempana)
/dev/rpm = Sisältää viittauksia linsnifferiin taas

xubuntu@xubuntu:~/rosvo/allocated/dev$ cat rpm
3 sl2
3 sshdu
3 linsniffer
3 smurf
3 slice
3 mech
3 muh
3 bnc
3 psybnc

/dev/last = sisältää ip-osotteiden alkuja ja portteja?

xubuntu@xubuntu:~/rosvo/allocated/dev$ cat last
1 193.231.139
1 213.154.137
1 193.254.34
3 48744
3 3666
3 31221
3 22546
4 48744
4 2222

/sbin/ifconfig = Sisälsi paljon tietoa, mistä ei saanut selkoa.
/bin/netstat = Samoin netstat sisälsi paljon tietoa, mistä ei saanut erityisesti mitään selkoa.

Lähdin tutkimaan tarkemmin em. kansioita/tiedostoja tcp.logia. Ensimmäisenä huomasin, että /dev/ida/ kansio ei sisältänyt mitään joten myös oletin ettei sielä ole mitään. Oli pakko selvittää milloin ja mihin tuo .drag-on hakemisto menee ja miksi kansion edessä on piste. Wikipedia vastaa näin:  “In Unix-like operating systems a file or directory that starts with a period/full stop character (for example: /home/user/.config) is to be treated as hidden, that is the ls command does not display them. Use ls with the flag -a (ls -a) to include them.” Joten kokeilin sillä, koska näyttää olevan piilohakemisto.

xubuntu@xubuntu:~/rosvo/allocated/dev/ida$ ls -a
.  ..  ..   .drag-on

xubuntu@xubuntu:~/rosvo/allocated/dev/ida$ cd .drag-on/

xubuntu@xubuntu:~/rosvo/allocated/dev/ida/.drag-on$ ls -a
.   linsniffer  mkxfs  sense  ssh_host_key     tcp.log
..  logclear    s      sl2    ssh_random_seed

Ja install scriptissä mainittu tcp.log löytyi vihdoin! katsotaanpa mitä se sisältää.

xubuntu@xubuntu:~/rosvo/allocated/dev/ida/.drag-on$ cat tcp.log

cr272065-a.wlfdle1.on.wave.home.com => asdf1 [21]

—– [Timed Out]

ns2.giant.net => asdf1 [23]
da#da,~daO~daO~daU~ #’da[~dac~!dan~da~?

tcp.log tiedostoa luettua, selvisi että se sisältää ainakin hostin ja salasanan / merkkijonon?

4. Konkluusio

Aikaa tehtävän tekemiseen meni useita tunteja, koska piti ottaa selvää asioista tarkemmin. Myös tietyistä linuxin komennoista, mitkä ei aikaisemmin olleet tuttuja. Vastauksieni oikeellisuudesta, en voi mennä ihan täysin sataprosenttisesti takuuseen, koska tutkiminen oli osittain myös hakuammuntaa. En edelleenkään ole varma miten install scripti toimii täysin, mutta olen varma siitä, että rootkitin asennusscriptiksi se on suunniteltu. Tästä voisin olettaa, että järjestelmässä mistä levykuva on otettu, on ollut rootkit jo asennettuna.

install scriptin sisältämät tiedot oli myös $OrphanFiles kansiossa mihin jo ennalta poistettujen tiedostojen jämät menevät. ($OrphanFiles – Sleuth Kit ohjelmiston muodostama virtuaalinen kansio, joka sisältää osittain poistetut, “orvot” tiedostot, joilla ei ole enää hakemistopolkua ja nimeä). En tiedä voiko tästä tehdä mitään johtopäätöksiä?

Hyvä apu tehtävän tekemiseen löytyi:

Wikipedia

Tehtävä 3. Rosvoja ja kunnon kansalaisia

http://eliimatt.wordpress.com/tag/tietoturva/

Linux palvelimena kurssin tehtävä 1

Tags

, , , ,

Linux-koe, työasemat ja tietoverkot 25
Me Karttakatu Oy:ssä teemme karttoihin liittyviä weppisovelluksia. Olemme muutaman hengen yritys.

1. Asenna työasema, jolla tavallisimmat toimistotyöt onnistuvat (weppisurffailu, tekstinkäsittely).

Asensin työaseman polttamalla Xubuntun 64bit iso tiedosto cd :lle , jonka jälkeen käynnistin tietokoneen uudelleen live cd:n avulla. Linuxin asennuksen aikana ei syntynyt epäselviä tilanteita, koska asennuksen aikana ohjeet olivat erittäin selvät ja helppokäyttöiset. Joten kukatahansa kuka esim. Windowsin osaa asentaa, osaa asentaa myös Xubuntun. Xubuntussa on valmiina kevyt ohjelmisto tekstinkäsittelyyn, webbisurffailuun ym joten niitä ei erikseen tarvinnut asentaa.

Koneena toimi:

HP Elitebook 2560p (kannettava tietokone)
Prosessori: Intel(R) Core(TM) i5-2450M CPU @ 2.50GHz
Muistit: 8099 MiB
Kovalevy: 500gt Hitachi (SCSI)

Dualboot Windows 7 ja asennettu Xubuntu Ubuntu 12.04 (precise) (kernel: 3.2.0-35-generic)

——————————————–

2. Työntekijämme ovat Einari Vähäkäähkä, Pekka Winha, Åke Andersson ja Leila Laila. He  haluavat kehittää PHP-kotisivuja etäkäyttöyhteydellä. Asenna tarvittavat palvelut ja tee esimerkkisivut.

2.1 Ensimmäisenä lisäsin käyttäjille omat tunnukset (max. 8 merkkiä pitkä) ja salasanat

Komennolla: $ sudo adduser einavaha   
Salasanaksi: akhaak1ran
Full Name: Einari Vähäkäähkä
Linux varmisti nimen: chfn: name with non-ASCII characters: ‘Einari Vähäkäähkä’ johon voi vastata kyllä eli ‘Y’.

Toistin edellisen vaiheen kaikkien käyttäjien kohdalla vaihtaen käyttäjätunnuksen ja salasanaksi (monimutkainen salasana) tietoturvan takaamiseksi.

—-
Pekka Winha
tunnus: pekwinha
salasana: kawi14NaH
—–
Åke Andersson
tunnus: andersake
salasana: sson193ApB
——-
Leila Laila
tunnus: leilalai
salasana: am15wQxKp
——–
Kun lisäsin käyttäjät tarkastin, että käyttäjät olivat varmasti lisääntyneet. Pääkäyttäjänä voidaan tarkistaa lisätyt käyttäjät komennolla:

$ ls /home/ tai $ cat /etc/passwd (molemmat toimivat)

——————————-

2.2 Palveluita mitä käyttäjät tarvitsevat PHP sivujensa käyttämiseen on Apache, SSH-etäkäyttöyhteys ja varsinainen PHP tuki. Joten ne täytyi asentaa.

Ensimmäisenä asensin Apachen- webserverin komennoilla:

$ sudo apt-get update    [lataa uusimmat versiot paketeista ja päivittää]

$ sudo apt-get install apache2   [asentaa apachen uusimman version]

Asennukseen meni hetki. Asennuksen onnistumisen pystyi tarkistamaan kirjoittamalla selaimeen http://localhost  jolloin selaimeen tuli valkoisella pohjalla mustaa tekstiä “It works”. Cool.

Asennuksen jälkeen Apachen käyttäjille tarkoitettu kotisivuhakemisto  /home/public_html/
täytyi enabloida eli asettaa sallituksi komennolla:
$ sudo a2enmod userdir

Edellisen komennon jälkeen Apache web-pavelin täytyi käynnistää uudelleen, jotta muutokset tulivat voimaan. Tämä tapahtuu komennolla:
$ sudo service apache2 restart

Nyt Apachen näytti käyttäjien public_html kansion sisällön kun se oli luotu. Tätä voidaan testata kirjautumalla jonkun käyttäjän esim. Pekka Winhan tunnuksilla komennolla: $ su pekwinha

Pekka Winhan kotikansiossa ei ole vielä public_html kansiota joten se täytyi erikseen luoda komennolla: $ mkdir public_html

Public_html kansiota testasin lisäämällä index.html tiedoston sinne sisältöineen komennolla:
$ nano public_html/index.html

index.html tiedoston tallennuksen jälkeen Apachen toimivuutta kokeilin selaimella:  http://localhost/~pekwinha/ jolloin index.html sisältö näkyi selaimessa.

2.3 PHP:n asennus Xubuntuun

Asensin Php-paketin xubuntuun komennolla:
$ sudo apt-get install php5

Ennen php:n testaamista täytyi php5.conf tiedostoa muokata hieman komennolla:
$ sudo nano /etc/apache2/mods-enabled/php5.conf 

php5.conf tiedostosta täytyi laittaa osa sisältöä kommentiksi [Kommentoidaan userdir-määritykset pois] rivit #-merkillä :
#<IfModule mod_userdir.c>
#          <Directory /home/*/public_html>
#          php_admin_value engine Off
#          </Directory>
#</IfModul>

ja tallentaa php5.conf tiedosto (ctrl x ja Yes)

Ennen lopullista php:n toimivuuden testaamista jouduin käynnistämään Apache:n uudelleen jotta uusi conf tiedosto tulisi käyttöön. Komennolla: $ sudo service apache2 restart

Nopea ja helppo keino testata PHP:n toimivuus oli lisätä public_html kansioon index.php tiedosto ja sinne muutaman rivin PHP koodi. Selaimella http://localhost/~tunnus/ jolloin index.php aukeaa.

2.4 Lopuksi asensin OpenSSH-palvelimen, jotta käyttäjät pääsevät etäyhteydellä palvelimeen

Aluksi testasin normaalin SSH-yhteyden toimivuuden ennen varsinaisen OpenSSH-palvelimen asennusta. Kun totesin SSH-yhteyden toimivaksi aloitin OpenSSH-palvelinohjelmiston asennuksen komennolla:
$ sudo apt-get install openssh-server

Asennus kesti muutaman kymmenen sekunnin jonka jälkeen testasin SSH-yhteyttä Pekka Winhan käyttäjällä:
$ ssh pekwinha@localhost

Tämän jälkeen SSH-palvelin kysyi Pekka Winhan salasanaa. Salasanan syötön jälkeen huomasin onko SSH-pavelin toiminnassa. Käyttäjä kirjautuu sisään normaalisti jos hommat toimii. Kirjautuminen ulos SSH-yhteydestä komennolla: $ exit

3. Kaikkien käyttäjien käyttöön skripti (shell script) nimeltä “mystatus”, joka näyttää vapaan levytilan (df -h) ja koneen ip-osoitteen.

$ cd /usr/local/bin   [siirtyy /usr/local/bin kansioon]

$ sudo nano mystatus.sh   [luo mystatus.sh tiedoston sudolla]

mystatus.sh tiedostoon tulee rivit:
#!/bin/bash
df -h
ip addr

Tämän jälkeen asetin kaikille käyttäjille oikeudet kyseiseen mystatus.sh tiedostoon komennolla: $ sudo chmod +x mystatus.sh

mystatus.sh scriptiä kokeilin komennolla: $ ./mystatus.sh
tai vaihtoehtoisesti omasta /home/tunnus kansiosta komennolla: $ bash /usr/local/bin/mystatus.sh
jolloin scriptissä olevat komentojen toiminnot tulivat näkyviin terminaaliin.

3. Pekka Winha haluaa käyttää MySQL tietokantaa. Asenna hänelle MySQL-tietokanta ja siihen PhpMyAdmin3.1 MYSQL-tietokannan ja PhpMyAdmin asennus

Asensin MySQL ja PhpMyAdmin komennolla:
$ sudo apt-get install mysql-server phpmyadmin

Asennuksen aikana tuli kysymys/varmistus siitä, että haluaa asentaa phpmyadminin ja vastasin YES jonka jälkeen, useamman kerran kysyttiin salasanoja (MySQL-tietokannan rootin salasanaa) joihin laitoin kaikkiin saman.

Tämän jälkeen linkitin phpmyadminin kansion www kansion sisälle komennolla:
$ sudo ln -s /usr/share/phpmyadmin/ /var/www/phpmyadmin

Phpmyadminia kokeilin selaimella http://localhost/phpmyadmin/ jonka jälkeen tuli hallintapaneelin kirjautumisvalikko. Kirjautumisvalikkoon laitoin asennuksen aikana syötetyn rootin käyttäjätunnuksen ja salasanan joka on root ja rootin salasana.

Kun olin kirjautunut sisään roottina lisäsin “käyttöoikeudet” välilehdeltä Pekka Winhalle oman käyttäjänimen ja tietokannan kohdasta “lisää uusi käyttäjä”. Asennuksen aikana tietokanta lisätään kohdasta: Luo samanniminen tietokanta ja anna kaikki oikeudet. Tämän jälkeen kirjauduin sisään phpmyadminiin Pekan käyttäjätunnuksilla ja kokeilin toimivuutta.

—————————————————————–

Hyvä apu tehtävien tekoon löytyi osoitteesta:
http://tuomassippola.wordpress.com/