Suorituskyky testailua

Yhteenveto

Projektimme aiheena oli suorituskyvyn testailua Windows:lla/Linuxilla ja tutkia miten hyvin Ubuntu toimii pelaamiskäytössä. Käytimme testeissä Uniengine benchmark-testejä sekä muutamia Steam-pelejä. Testeissä keskityimme tutkimaan ruudunpäivitys nopeuksia eli sekunnissa piirrettyjen kuvien määrää (suurempi luku = parempi arvo). Olisimme projektissa halunneet myös käyttää Phoronix test suite:n testejä, mutta emme saaneet ohjelmaa toimimaan Windows:lla.

Testeissä Windows voitti Linux järjestelmän maksimi fps tuloksissa, mutta minimi fps-tulokset olivat parempia Linuxilla. Keskimääräisissä fps-tuloksissa Windows voitti melko selvästi suurimman osan, mutta muutamissa asetuksissa Linux suoriutui paremmin.

Kaiken kaikkiaan meille jäi hyvä näkemys siitä, miten Linux toimii pelaamiskäytössä nykyään. Tavalliselle pelaajalle testeistä ilmikäyvät erot ovat hyvin pieniä, joissa Linux häviää Windows:lle ja pelit toimivat erittäin vakaasti. Geforce:n näytönohjain toimi moitteita Ubuntulla, kunhan asensi toimivan ohjainajurin järjestelmään ja muuta normaalista poikkeavaa Windows:iin verrattuna ei tarvinnut tehdä.

Aloitus & Nvidia ajurin asennus Ubuntulle

Toisin kuin Windowsilla, Ubuntu ei automaattisesti asentanut erilliselle näytönohjaimelle ajureita. Joten ennen testaamisen aloittamista asensimme ajurit, käyttäen Binarytides:n ohjeita.

Otimme käyttöön repositoryn, josta Nvidian ajurit löytyvät:

sudo add-apt-repository ppa:xorg-edgers/ppa -y

Asensimme viimeisimmän yhteensopivan ajurin:

sudo apt-get install nvidia-current

Tämän jälkeen boottasimme järjestelmän ja nyt järjestelmä tunnisti näytönohjaimen:

Screenshot from 2016-05-02 16:52:49

Asennus ei kuitenkaan toiminut aivan ongelmitta, näytönohjaimen tarjoama resoluutio oli väärä ja sitä ei pystynyt muuttamaan suuremmaksi kuin 4:3 1280×720. Pitkän etsiskelyn ja tuskailun jälkeen huomasimme, että komennolla jolla asensimme ajurin “nvidia-current” asentui todella vanha ajuriversio (310). Syy miksi ylipäätään käytimme tuota komentoa oli se, ettei käyttämästämme jakelusta löytynyt sitä tarkkaa versiota, jota Nvidia sivut tarjosivat. Asian korjaukseksi löysin apua Michael Laraberin tekemästä artikkelista, jossa mainittiin Geforce 700-sarjalaisten näytönohjainten toimivan moitteettomasti 331-version ohjainajureilla.

Haimme uuden ajurin samalla komennolla kuin aikaisemmin, mutta tällä kertaa asensimme suoraan 331-version, järjestelmä poisti vanhan asennuksen ja asensi uuden ajurin ongelmitta. Boottauksen jälkeen kone toimi oikeilla resoluutioilla ja ongelmia ei enään ilmennyt.

Suorituskyky mittaukset

Käytettävät suorituskyky testit:

Uniengine Valley

Uniengine Heaven

CS GO FPS Benchmark

Testaukseen liittyviä termejä

FPS = Piirrettyjä kuvia sekunnissa

Resoluutio = Ruudun tarkkuus

Anti-Aliasing = Pelimaailman reunojen pehmennys (suurempi arvo vähemmän “sahalaitoja”)

Uniengine Benchmarkit

Aloitimme suorituskyky testauksen lataamalla testit Uniengine:n kotisivuilta. Latauksen jälkeen saimme asennettua testit ongelmitta paitsi Windows puolelta puuttui, jokin pieni C++ 2010-lisäke jota ilman testit eivät toimineet.

Uniengine Valley tulokset

Teetimme Valley suorituskyky testin kolmella eri asetusvaihtoehdoilla, joissa grafiikka- sekä resoluutioasetukset olivat eri tasoiset: Basic, Extreme & ExtremeHD.

Basic (1280×720, High, 2xAA):

Screenshot from 2016-05-03 09:09:18

Extreme (1600×900, ultra, 8xAA):

Screenshot from 2016-05-03 09:10:50

ExtremeHD (1680×1050, ultra, 8xAA):

Screenshot from 2016-05-03 09:12:44

Uniengine Heaven tulokset:

Basic (1280×720, High, 2xAA):

Capture1

ExtremeHD (1680×1050, ultra, 8xAA):

Capture2

CS GO FPS Benchmark

Capture3

Dota 2

Capture4

Lähteet

http://terokarvinen.com/

How to install the latest Nvidia drivers on Ubuntu 14.04 Trusty Tahr

https://unigine.com/

https://fi.wikipedia.org/wiki/Kuvataajuus

 

 

Advertisements

Linux-projekti ympäristön luominen

Tässä Linux-projektissa käytämme minun kotikonettani testiympäristönä, jossa testailemme pelien suorituskykyä Windows 10 sekä Ubuntu 14.04 -käyttöjärjestelmissä. Minulla on koneessa C-levylle asennettuna Windows 10 Pro 64 bit, jota käytämme testeissä Windows osion puolesta. Tyhjälle E-levylle asennetaan Ubuntu 14.04 64 bit -käyttöjärjestelmä. Yritin asennella alunperin dual boottia pelkästään E-levylle, mutta useiden ongelmien jälkeen totesin, että on helpompaa asentaa molemmat käyttöjärjestelmät omille asemilleen.

Tietokoneen kokoonpano:

Nvidia Geforce 770 GTX 2gt

Intel i7-4770 3.40 Ghz

16 gt RAM-muistia

Samsung EVO 840 120 gt SSD (Windows)

Seagate 1 tb SATA3-levy (Ubuntu)

Aloitus

Aluksi loin Ubuntu 14.04 live USB:n unetbootilla. Muistitikkuna käytössä oli Transcend JetFlash 790K 3.1/3.0 8 GB Flashdrive. Asennusmedian luomisessa ei ongelmia syntynyt ja toimenpiteessä kesti noin 15 minuuttia.

Ubuntu asennus

Asennusmedian valmistuttua, boottasin tietokoneen USB-tikulta ja asennusohjelma käynnistyi ongelmitta. Varasin tyhjältä E-levyltä noin 400 gigatavua Ubuntun käyttöön sekä Swap-osiolle 10 gigatavua. Tämän jälkeen ohjelma ajoi asennuksen ongelmitta. Asennuksen valmistuttua tietokone buuttasi itsensä ja sitä ennen täytyi poistaa asennusmedia laitteesta, jotta kone käynnistyi normaalisti.

Koneen käynnistyttyä uudelleen, pystyin Ubuntun käynnistysvalikossa valitsemaan käynnistetään E-levyltä Ubuntu vai C-levyllä sijaitseva Windows 10.

Screenshot from 2016-04-20 23:10:34

Asennuksen onnistuttua testailin vielä, että kone on verkossa ja pystynkö ajamaan päivitykset Ubuntuun. Tämän lisäksi testasin miten Steam asentuu näin Linux puolella. Ensiksi ajoin terminaalista komennon:

Sudo apt-get install steam -y

Tämän jälkeen ohjelma asentui ongelmitta ja myös käynnistyi onnistuneesti.

Seuraavalla viikolla pystymme aloittamaan suorituskyky mittauksia testiympäristössä, koska ympäristö on nyt saatu luotua onnistuneesti ja kaikki vielä ainakin tähän mennessä toimii.

 

Linux Live USB luonti & Puppet testailua

Tehtävänanto:

h1. Lue aikataulussa mainittu lukuläksy (Hello Puppet, RAL, Modules and Classes, Publish on Github, esitiedot).

Tee Linux USB livetikku ja pidä se mukana tunnilla. Suositus Xubuntu 14.04 LTS amd64 desktop; USB3 tikku.

Tee (ja tietysti testaa) Puppet-moduli, joka jotain lukuläksyn aiheista. Raportoi.

Julkaise raportti wepissä (esim. GitHub.com), palauta linkki Moodleen.

Aloitus

Aloitin luomalla Live USB:n Xubuntu 14.04 versiosta. Suoritin toimenpiteen vanhan blogikirjoituksen pohjalta, jonka aikanaan tein Linux Palvelimena -kurssille. Levykuvan luonnissa sekä siirrossa tikulle kesti noin puoli tuntia ja tämän jälkeen käynnistin koneen tikulta ja Xubuntu toimi moitteitta.

Käytetty USB-tikku: Transcend JetFlash 790K 8GB USB 3.1/3.0 Flash Drive

Tietokoneen kokoonpanon tiedot selviää tästä!

Puppet testailua

Aloitin Puppetiin tutustumisen tekemällä Tero Karvisen tutustusmisharjoituksen “Hello Puppet revisited – on Ubuntu 12.04 LTS“.

Ennen työskentelyn aloitusta, ajoin seuraavat komennot:

setxkbmap fi

– Vaihdon näppäimistöasetukset suomalaiseksi

sudo apt-get update

– Päivitin Xubuntun

Seuraavaksi asensin Puppetin:

sudo apt-get install Puppet

Ohjelma asentui ilman häiriöitä. Seuraavaksi tein testiksi Puppet “One linerin”:

puppet apply -e ‘file { “/tmp/helloPuppet”: content => “Hello Lauri!\n” }’

Komennolla:

cat /tmp/helloPuppet

Konsoliin tulostui: Hello Lauri!, joten one linerin luonti onnistui.

Sitten tein Kansion, johon kaikki Puppet moduulit tallennetaan:

mkdir puppet

Sitten tein uudelle moduulille kansion sekä tiedoston puppet -kansion alle:

mkdir -p modules/hello/manifests/

-Kansio moduulille

nano modules/hello/manifests/init.pp

– Moduulitiedosto johon tiedot:

class hello {
file { ‘/tmp/helloModule’:
content => “Moro Moro!\n”
}
}

Tallensin init.pp:n ja ajoin moduulin komennolla:

puppet apply –modulepath modules/ -e ‘class {“hello”:}’
Tämän jälkeen testasin moduulin toimivuuden komennolla:

cat /tmp/helloModule

Moduuli osottautui toimivaksi, sillä ruudulle tulostui “Moro Moro!” eli ensimmäisten moduulien luominen onnistui.

 

 

 

 

 

Ubuntu 12.04 & Win 10 vertailu pelaamiskäytössä

Johdanto

Projektin tarkoituksena on tehdä tutkimus miten hyvin Linux pohjainen käyttöjärjestelmä toimii pelauskäytössä. Vertailu kohteeksi projektiin on valittu Windows 10. Projekti toteutetaan Tero Karvisen pitämän Linux Projekti-kurssin kurssityönä. Toteutamme projektin 2 hengen ryhmätyönä Viktor Nurmelan kanssa. Testejä toteutetaan yhdellä työasemalla, jolla ajetetaan eri grafiikkamoottoreiden rasitustestejä sekä Steam-pelien testejä Windows:lla ja Ubuntulla.

Työvälineet

Käytämme testaus ympäristönä minun (Lauri Puurula) työasemaa, johon aluksi asennamme dual boot:n Windows:lle sekä Ubuntulle. Windows:sta käytämme Win 10 Professional 64 bit -ohjelmistoversiota ja Linux:sta Ubuntu 12.04 64 bit -käyttöjärjestelmää. Dokumentoinnissa käytetään Libre Officea sekä viikoittaisten raporttien julkaisussa WordPress blogia.

Testikoneen kokoonpano:

Prosessori: Intel i7-4770 3.40Ghz

Näytönohjain: Nvidia Geforce GTX 770

Keskusmuisti: 16 Gt

Kiintolevy: Western Digital Caviar Blue 1 Tb (7200 Rpm)

Käyttöjärjestelmät: Win 10 Professional 64 bit, Ubuntu 12.04 64 bit

Testauskohteet

Testaus kohteina toimii Steam -videopelijakelu palvelun pelit sekä erilaiset grafiikkarasitus testit, jotka ovat yhteensopivia molemmille alustoille. Tavoitteena on tehdä monipuolinen testaus useammalla eri grafiikkamoottorilla, jotta tutkimuksesta tulee kattava.

Testimenetelmät

Yleisesti testitapauksissa mitataan ruudun päivitys nopeuksia eli fps:ää (minimi, keskiverto sekä maksimi), joista kerätään yhdistetyt tulokset molempien järjestelmien suoritumisesta.

Aikataulu

Vko 14 – Dual boot asennus, Ubuntun valmistelu, testausvälineiden & menetelmien kartoitus

Vko 15 – Testausten tekeminen Ubuntulla

Vko 16 – Testausten tekeminen Windows:lla

Vko 17 – Raportointi sekä tulosten analysointi (jäädytys)

Vko 19 – Valmiin projektin esittely

Aikataulu on alustava ja mikäli ylimääräistä aikaa jää, projektissa testataan myös emulaattorien toimivuutta (esim. Wine, playonlinux) versus pelkkä Nvidia ajureiden asennus.

Web-palvelimen suorituskyvyn mittaus

Tehtävänanto:

H7: http://terokarvinen.com/2015/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-17-ilta-ja-18-paiva-syksylla-2015

Kokoonpano:

Ubuntu 15.04 64 bit Live USB

Intel Core i7-4770 3.40GHz

Ram muisti 16 Gt

GeForce GTX 770 2 Gt

Aloitus

Tässä tehtävässä en tiennyt aluksi mistä lähteä liikkeelle ja tsekkasin mitä palvelin mittaus työkaluja muut olivat käyttäneet. Katsoin Kristian Latvan blogia ja siellä oli lähdetty liikkeelle Apache2 omalla mittaustyökalulla. Valitsin tutkittavaksi sivustoksi edellisessä harjoituksessani luoman WordPress -sivun: http://localhost/~ubuntu/wp-admin/about.php. Ajoin seuraavan komennon:

ab -n1000 -c500 -k5 http://localhost/~ubuntu/wp-admin/about.php

Komento lähettää siis 1000 pyyntöä localhostiin ja 500 samanaikaisesti, tulokseksi testin ajosta sain seuraavaa:

Screenshot from 2015-10-13 19:02:12

Tästä voidaan todeta, että sivusto pystyy käsittelemään 433.21 pyyntöä sekunnissa, sivusto käsitteli kaikki pyynnöt 2.308 sekunnissa eikä yhtäkään käsittelyä epäonnistunut. Tulokset vaikuttavat hyviltä varsinkin, koska yksikään pyyntö ei epäonnistunut.

Testataan silti tehostaisiko esimerkiksi Varnish välityspalvelin sivujen toimintaa. Aloitetaan asentamalla sovellus kirjoittamalla terminaaliin:

sudo apt-get install varnish

Muokataan hieman Varnish:n asetuksia niin, että sovellus kuuntelee porttia 80. En ole varma miksi näin tehdään, mutta Kristian Latva oli blogissaan tehnyt näin (http://terokarvinen.com/oldsite/otherauthors/kristian-latva-2013-linux-palvelimena/.

sudoedit /etc/default/varnish

DAEMON_OPTS=”-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m”

Seuraavana asetetaan Varnish -sovellusta hakemaan tiedot portista 8099:

sudoedit /etc/apache2/ports.conf

NameVirtualHost 127.0.0.1:8099
Listen 127.0.0.1:8099

Muutetaan Apache:n asetukset vielä niin, että Apache kuuntelee porttia 8099:

sudoedit /etc/apache2/ports.conf

NameVirtualHost 127.0.0.1:8099
Listen 127.0.0.1:8099

Vaihdoin default -tiedostosta vielä portin oikein:

sudoedit /etc/apache2/sites-available/default

<VirtualHost 127.0.0.1:8099>

Tämän jälkeen käynnistin Apache2 ja Varnish uudelleen, mutta localhostin päivittäminen ei enää onnistunut tämän jälkeen:

Screenshot from 2015-10-14 10:02:11

Aikani yritin portteja vaihdella ja lukea mikä meni väärin, mutten itse osannut vikaa selvittää ja toivoisin opettajalta tähän apua. Osaltani viimeinen varsinainen harjoitus kurssilla päättyi tähän.

Lähteet:

http://www.terokarvinen.com

http://terokarvinen.com/oldsite/otherauthors/kristian-latva-2013-linux-palvelimena/

https://tuomassippola.wordpress.com/2014/03/17/web-palvelimen-suorituskyky-ja-kaanteisproxy/

WordPress asennus LAMP -stäkillä

Tehtävänanto:

H6: http://terokarvinen.com/2015/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-17-ilta-ja-18-paiva-syksylla-2015

Kokoonpano:

Ubuntu 15.04 64 bit Live USB

Intel Core i7-4770 3.40GHz

Ram muisti 16 Gt

GeForce GTX 770 2 Gt

WordPress:m lataus

Aloitin tehtävän työstämisen ensin asentamalla LAMP:n ja sallimalla kotisivujen käytön. Latasin WordPressin tervapallon lähteestä: https://wordpress.org/latest.tar.gz. Purin tiedoston Home -kansioon, johon tar-tiedosto latautui. Testasin samalla toimiiko html-koodi localhostissa päivittämällä selaimen ja näyttää toimivan:

Screenshot from 2015-10-13 12:12:24

Tietokannan luominen

Ennen kuin pystyin jatkamaan WordPress:n asennukseen, minun täytyi luoda tietokanta mysql:ään:

mysql -u root -p

Kirjauduttuani, loin tietokannan nimeltä purtsiwp ja annoin oikeudet:

Create database purtsiwp;

GRANT ALL PRIVILEGES ON purtsiwp.* TO purtsiwp@localhost IDENTIFIED BY “passu”;

FLUSH PRIVILEGES;

Katsoin ohjeet näihin komentoihin Tuomas Sippolan WordPress -blogista (https://tuomassippola.wordpress.com/2014/03/09/wordpressin-asennus/). Komennot annettuani poistuin mysql:stä:

exit

WordPress asennus

Lamp toimintakunnossa Check!, Tietokanta Check!service apache2 restart Check!, nyt oli aika siirtyä itse WordPress:n asennukseen avaamalla selain sivulta, jossa asennuksen aloitus oli auki:

Screenshot from 2015-10-13 12:24:59

Siirryin eteenpäin painikkeesta Lets go!

Seuraavassa ikkunassa syötin omat tietoni seuraavasti:

Screenshot from 2015-10-13 12:27:49

SeuraavanaWordPress ilmoittaa, että se ei pysty tekemään ”wp-config.php” -tiedostoa. Siirryin public_html -kansiooni ja loin sinne tiedoston wp_config.php ja sen sisään kopioin tekstin sisällön WordPress kentästä. Näiden toimintojen jälkeen painoin Run install.

Tämän jälkeen ilmestyi tällainen ikkuna ja syötin siihen vaaditut kentät:

Screenshot from 2015-10-13 12:44:22

Tämän jälkeen tuli ikkuna:

Screenshot from 2015-10-13 12:46:03

Kirjautuminen ja Permalinks käyttöönotto

Seuraavana kirjauduin WordPressiin sisälle ja tein esimerkki postauksen, jossa lukee “Terve” ja sisältönä “asdasdasdasd”. Menin Postaukseen ja katsoin URL-osoitetta, joka näytti vähintään sekavalta:

http://localhost/~ubuntu/wp-admin/post.php?post=4&action=edit

Päätin ottaa Permalinks käyttöön ja katsoin esimerkkiä Tuomas Sippolan blogista, sillä itselläni ei ollu aavistustakaan miten se pitäisi tehdä. Siirryin ensimmäisen public_html kansioon ja avasin tiedoston .htaccess:

cd /home/ubuntu/public_html

nano .htaccess

.htaccess -tiedostoon seuraavat tiedot:

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

Tämän jälkeen syötin komennot:

sudo a2enmod rewrite

sudo service apache2 restart

Nämä suoritettuani päivitin sivun ja permalinkki toimii, blogi sivu näkyi urlissa tässä muodossa: http://localhost/~ubuntu/2015/10/13/terve/

Teeman vaihto

Seuraavana vaihdoin teeman, joka onnistui menemällä valikoissa:

Appearance -> Themes

Sieltä valitsin tämän näköisen teeman:

Screenshot from 2015-10-13 13:16:57

Kuvan lisääminen

Tämän jälkeen testasin vielä miten kuvien lisäys toimii. Menin editoimaan tekemääni testipostausta ja koitin sinne uppia kuvaa, mutta WordPress herjaa seuraavaa virheilmoitusta:

Screenshot from 2015-10-13 13:16:57.png Unable to create directory wp-content/uploads/2015/10. Is its parent directory writable by the server?
Katsoin taas miten Tuomas Sippola oli ongelman korjannut. Ensiksi piti luoda uusi kansio polun /home/ubuntu/public_html/wp-content alle nimeltä uploads ja antaa kansiolle oikeudet komennolla:
chmod 777 uploads/
Tämän jälkeen kuvan lisäämiseen blogiin toimii.
Lähteet:
terokarvinen.com

Nimipohjainen virtuaalipalvelin

Tehtävänanto:

h5. Tee nimipohjainen virtuaalipalvelin Apachelle (name based virtual hosting). Muista laittaa sekä http://www.example.com että example.com. Voit simuloida asiakkaan nimipalvelua muuttamalla /etc/hosts -tiedostoa.

Kokeile virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta tai monista muista paikoista. Linodella ja Amazonilla saattaa olla ilmainen kokeilupaketti, DigitalOcean on halvin. Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä oman vagrantilla.

Kokoonpano:

Ubuntu 15.04 64 bit Live USB

Intel Core i7-4770 3.40GHz

Ram muisti 16 Gt

GeForce GTX 770 2 Gt

Ennen tehtävän aloittamista olin asentanut LAMP -paketin ja sallin käyttäjien kotisivuhakemistot. Aloitin tekemällä aiemmin luotuun public_html -kansioon uuden kansion, nimeltään puurula.com:

$ cd public_html

$ mkdir puurula.com

Tähän kansioon tein vielä tiedoston index.html, johon kirjoitin testin vuoksi vain ”Testi, testi”:

$ nano index.html

Tämän jälkeen menin Apachen asetustiedostoon, siirtymällä polulle:

$ cd /etc/apache2/sites-available

Tähän hakemistoon tein uuden tiedoston komennolla:

$ sudoedit puurula.com

Tiedostoon kirjoitin seuraavanlaisen tekstin:

<VirtualHost *:80>
    ServerName www.puurula.com
    ServerAlias puurula.com
    DocumentRoot /home/xubuntu/public_html/sippola.com
</VirtualHost>

Tämän jälkeen tallensin tiedoston ja otin kyseisen sivun käyttöön komennoilla:

$ sudo a2ensite puurula.com

$ sudo service apache2 reload

Seuraavaksi piti vielä muokata hosts -tiedostoa, joka löytyy järjestelmän asetuksista kansiosta /etc:

$ cd /etc

$ sudoedit hosts

Tiedostoon piti laittaa koneen ip-osoite ja siihen viittaava sivu, jotka olivat tässä testi-tapauksessa sisäverkon ip-osoite ja haluamani nimi. Tallensin lopuksi tiedoston, joka näytti tältä:

127.0.0.1 localhost
127.0.1.1 ubuntu
my-ip puurula.com
 
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Viimeisenä kokeilin, että homma toimii. Menin siis selaimella osoitteeseen puurula.com ja aiemmin tekemän index.html toimi, sivulle aukesi “Testi,testi”.

Lähteet

www.terokarvinen.com

https://jvaris.wordpress.com/category/linux/

Metapakettien tekemistä Linuxilla

Tehtävänanto:

h4:
– Tee metapaketti, joka asentaa suosikkiohjelmasi. Katso, että se menee läpi lintianista.
– Tee pakettivarasto repreprolla
– Paketoi jokin skriptisi, niin että paketti asentaa järjestelmän käyttäjille uuden käskyn

Kokoonpano:

Ubuntu 15.04 64 bit Live USB

Intel Core i7-4770 3.40GHz

Ram muisti 16 Gt

GeForce GTX 770 2 Gt

Metapaketin luominen

Ensimmäisenä kertailin Tero Karvisen matskuista, kuinka metapakettien luonti onnistuu (http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes). Lähdin liikkeelle päivittämällä järjestelmän ja asentamalla tarvittavan paketinteko ohjelman equivs:

sudo apt-get update

Universe päälle (super -> software sources -> ruksi universen kohdalle -> close)

Päivitysten uudelleen ajo ja sitten:

sudo apt-get install -y equivs

Tehdään asetustiedosto ja tehdään paketti:

equivs-control lauris-ipknow.cfg

nano lauris-ipknow.cfg

Kirjottelin paketista tämän näköisen:

Screenshot from 2015-09-23 08:58:00

Seuraavaksi tallennan cfg filun CTRL+X ja yes.

Sitte luodaan paketti:

equivs-build lauris-ipknow.cfg

Asennetaan gdeb ja testataan toimiiko paketti:

sudo apt-get install -y gdeb

sudo gdebi -n lauris-ipknow_1.0.0_all.deb

This package is uninstallable
Dependency is not satisfiable: Libreoffice

Hups, oli tullut kirjoitus virheen, avasin nanolla uudestaan lauris-ipknow.cfg:n, korjasin kirjoitusvirheen ja vaihdoin versionumeroksi 1.0.1. ja tein uuden paketin. Ajoin gdebin uudestaan:

sudo gdebi -n lauris-ipknow_1.0.1_all.deb

Asentui onnistuneesti, koitetaan vielä meneekö läpi linitianista:

linitian lauris-ipknow_1.0.1_all.deb

Ei herjannut mitään jes!

Pakettivaraston tekeminen

Aloitin repositoryn tekemisen tarkastelemalla Karvisen ohjetta (http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository). Ensimmäiseksi asensin Apachen ja sallin kotisivuhakemiston käytön:

sudo apt-get install -y apache2

sudo service restart apache2

sudo a2enmod userdir

Seuraavaksi täytyi luoda public_html kansio kotihakemistoon. Siirryin kansioon, tein sen alle repository/conf kansion ja sinne uusi tiedosto:

nano repository/conf/distributions

Kyseiseen tiedostoon kirjoitin seuraavat tiedot:

Codename: vivid
Components: main
Suite: precise
Architectures: i386 amd64 source

Sitten rerepron asennus:

sudo apt-get install -y reprepro

Seuraavana viedään uusin paketti palvelimelle:

reprepro -VVVV -b public_html/repository/ includedeb vivid lauris-ipknow_1.0.1_all.deb

Muokataan repository.list tiedostoa, kirjoittamalla sinne seuraava rivi:

deb http://127.0.0.1/~ubuntu/repository vivid main

Testataan toimiiko paketin hakeminen:

sudo apt-get install lauris-ipknow

Screenshot from 2015-09-23 09:33:14

Skriptin paketoiminen

Katselin millaisia skripteja muut olivat tehneet, koska en oikein itsekseni liikkeelle päässyt. Päätin kokeilla tehdä samanlaisen kalenteri skriptin, joka näyttää viikkonumerot. Katsoin mallia Tuukka Meriläisen blogista (http://tuukkamerilainen.com/metapakettien-ihanuutta/).

Luodaan bash skripti

nano kalenteri

Sinne sisään:

#!/bin/bash

ncal -w

Suoritusoikeuksien lisääminen ja testaus:

chmod 700 kalenteri
./kalenteri

ja toimii…

  September 2015    
Su     6 13 20 27   
Mo     7 14 21 28   
Tu  1  8 15 22 29   
We  2  9 16 23 30   
Th  3 10 17 24      
Fr  4 11 18 25      
Sa  5 12 19 26      
   36 37 38 39 40

Seuraavana lisäsin pakettiin Files -kohtaan rivin: kalenteri  /usr/local/bin ja korotin versionumeron paketissa 1.1.0.

Luodaan uusi paketti versio ja asennetaan:

equivs-build lauris-ipknow.cfg

sudo gdebi -n lauris-ipknow_1.0.1_all.deb

Lähteet:

http://www.terokarvinen.com

http://tuukkamerilainen.com/metapakettien-ihanuutta/

HoneyNet Scan of the Month 15

Tehtävänanto:

Ratkaise HoneyNet Scan of the Month 15. http://old.honeynet.org/scans/scan15/

Käsittele oikeita haittaohjelmia sisältävää kuvaa huolella, äläkä vie sitä tärkeille tuotantokoneille. Ratkaisut tehtävän selviävät levykuvasta, mitään ulkopuolisia järjestelmiä ei saa häiritä.

Raportoi, kuinka ratkaiset tehtävän.

Vastaa tehtävänannon kysymyksiin:
– “Show step by step how you identify and recover the deleted rootkit from the / partition.”
– What files make up the deleted rootkit?

Lisätehtävinä voit halutessasi vastata:
– “Bonus Question: Was the rootkit ever actually installed on the system? How do you know?”
– Mitä tekijään viittaavia tietoja levykuvasta löytyy?
– Selitä vaiheittain, miten rootkit toimii.

Lähde: http://terokarvinen.com/2015/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-17-ilta-ja-18-paiva-syksylla-2015

Kokoonpano:

Tein harjoituksen koulun koneella 16.9. Tietokoneen komponentit:

Prosessori: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz

Välimuisti: 8gt

Näytönohjain: integroitu

Järjestelmä: Ubuntu 15.04 64 bit live USB

Levykuvan lataaminen

Aloitin harjoituksen asettamalla suomenkielisen näppäimistön:

xkbmap fi

Lataamalla päivitykset Ubuntuun:

sudo apt-get update

Menin osoitteeseen http://old.honeynet.org/scans/scan15/ ja latasin sieltä tiedoston honeynet.tar.gz, joka sisälsi tärvellyn levykuvan. Kopioin tiedoston Downloads-kansiosta Home-kansioon graaffisen puolen kautta. Purin zipatun tiedoston hakemistoon.

Poistettujen tiedostojen palauttaminen

Jatkoin harjoitusta etenemällä Tero Karvisen tekemien ohjeiden mukaan (http://terokarvinen.com/2013/forensic-file-recovery-with-linux). Loin kansiot:

mk dir allocated deleted

Ajoin palautus komennon:

tsk_recover -a honeynet.hda8.dd allocated/

Ei menny komento läpi, oli jääny universe laittamatta päälle ja puuttuu kuulemma sleuthkit sovelluskin. Nooh… käväsin graafisella ikkunalla muuntelemassa software sources asetuksia niin, että pystytään sleuthkit äppi lataamaan (Super -> software sources -> täppä kohtaan Community-maintained -> close). Sitte ajoin järjestelmä updaten uusiksi ja latailin sleuthkitin:

sudo apt-get update

sudo apt-get install -y sleuthkit

Sovellus asentui mutkitta ja jotain systeemi päivitteli. Koitin uusiks komentoa:

tsk_recover -a honeynet.hda8.dd allocated/

Järjestelmä ilmoitti takaisin: Files Recovered: 1614

Jatkoin komennolla tsk_recover honeynet.hda8.dd deleted/

Järjestelmä ilmoitti takaisin: Files Recovered: 37

Tutkinnan aloitus
Aikani tutkiskelin ja availin tiedostoja allocated ja deleted kansiossa. Tein muun muassa aikajanan Karvisen oppaan mukaan komennoilla:

tsk_gettimes honeypot.hda8.dd > rawtimes

mactime -b rawtimes | less

Avasin tiedoston ja tutkiskelin sitä selailemalla ylös, alas, mutta en saanut kiinni numeroiden ja kirjaimien vilinästä.

Olin aivan solmussa ja päätin tutkia miten joku muu oli tästä eteenpäin jatkanut.  Lueskelin Janne Kuuselan tekemää ratkaisua tehtävään ja huomasin, että levy kuva olisi kannattanut mounttaa. Päätin jatkaa harjoitusta tekemällä mountille kansion.mkdir sda1

Mount komento:

sudo mount -o “loop,nodev,noexec,ro” honeypot.hda8.dd sda1/

Virheilmoitus:

ubuntu@ubuntu:~$ sudo mount -o “loop,nodev,noexec,ro” hda8.dd sda1/
mount: hda8.dd: failed to setup loop device: No such file or directory
ubuntu@ubuntu:~$ sudo mount -o “loop,nodev,noexec,ro” honeypot.hda8.dd sda1/
mount: wrong fs type, bad option, bad superblock on /dev/loop1,
missing codepage or helper program, or other error

In some cases useful info is found in syslog – try
dmesg | tail or so.

En saanut tiedostoa Mountattua, googlettelukaan ei tuottanut itselläni tulosta (oma arvaukseen perustuva arvio miksi mounttaus ei toimi, johtuu tikusta liian vähän tilaa tai vastaavaa). Joten päätin luopua saamasta ratkaisua tätä kautta. Tutkiskelin blogeja mitä muita tapoja oli selvittää ratkaisu tehtävään.

Tuomas Sippola oli blogissaa löytänyt ratkaisun tehtävään tutkimalla aikajana dataa ja todennut sieltä, että epämääräisiä viittauksia tiedostojen poistoon löytyi. Avasin oman version aikajanasta ja liuta tällaisia merkintöjä sattui eteeni:

“0|$OrphanFiles/OrphanFile-30188 (deleted)|30188|-/rrwxr-xr-x|0|0|66736|984677103|952425102|984707102|0
0|$OrphanFiles/OrphanFile-30191 (deleted)|30191|-/rr-xr-xr-x|0|0|60080|984677352|952452206|984707102|0
0|$OrphanFiles/OrphanFile-48284 (deleted)|48284|-/rrwxr-xr-x|0|0|42736|984677122|952425102|984707102|0
0|$OrphanFiles/OrphanFile-56231 (deleted)|56231|-/rrw-r–r–|0|0|33135|984655056|984655056|984655056|0

Rullasin allocated ja deleted kansiot jälleen läpi, deleted kansion alla sijaitsi lk.tgz zippi, jonka purin graafisella puolella. Ilmestyi last kansio ja sen alta tällaisia tiedostoja:

Screenshot from 2015-09-16 11:00:07

Kaiken näköistä epäilyttävää tavaraa jo silmäilemällä löytyy esim “logclear, cleaner“. Availin tiedostoja ja katselin niiden sisältöjä.

Install tiedostosta kävi ilmi, että koneeseen oli asennettu rootkit:

Screenshot from 2015-09-16 11:30:28

rm -rf /sbin/ifconfig
mv ifconfig /sbin/ifconfig
rm -rf /bin/netstat
mv netstat /bin/netstat
rm -rf /bin/ps
mv ps /bin/ps
rm -rf /usr/bin/top
mv top /usr/bin/top
cp -f mkxfs /usr/sbin/

Rootkit poisti tiedostoja /bin hakemistosta, joita ilman järjestelmää ei voi buutata.

Screenshot from 2015-09-16 11:06:56

Cleaner” vaikutti näiden rivien perusteella putsaavan lokeja koneelta.

Lähteet:

http://www.terokarvinen.com

https://tuomassippola.wordpress.com/2014/02/09/honeynet-scan-of-the-month-15/

https://jtkuusela.wordpress.com/2013/09/18/linux-palvelimena-ict4tn003-9-ja-10-syksylla-2013-kotitehtava-h3-ratkaise-scan-of-the-month-15-kasittele-haitallisia-ohjelmia-turvallisesti/

http://old.honeynet.org/scans/scan15/

Lokien seurantaa Linuxilla

Tehtävänanto:
– Kerää kuormitustietoja munin -ohjelmalla
– Kuormita konetta stress:llä
– Käytä tunnilla käytyjä työkaluja arvioidaksesi kuormitusta: cpu, mem, io…
– Lopuksi analysoi munin keräämiä käyriä
– Aiheuta valitsemaasi lokiin muutamia rivejä ja analysoi niistä 2-3 riviä perusteellisesti

Lähde: http://terokarvinen.com/2015/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-17-ilta-ja-18-paiva-syksylla-2015

Kokoonpano:

Tein harjoituksen koulun koneella 9.9. Tietokoneen komponentit:

Prosessori: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz

Välimuisti: 8gt

Näytönohjain: integroitu

Järjestelmä: Ubuntu 15.04 64 bit live USB

Munin sekä Stress -sovelluksien asennus

Aloitin päivittämällä järjestelmän ja asentamalla Munin komennoilla:

sudo apt-get update

sudo apt-get install -y munin

Järjestelmä asensi päivitti järjestelmän ja asensi sovelluksen ongelmitta. Seuraavaksi asensin tietokoneen kuormitus sovelluksen Stress, joka oli tuttu jo edellisen viikon harjoituksista. Ajoin komennon:

sudo apt-get install -y stress

Asennus ei onnistu vaan terminaali antoi virheilmoituksen: E: Package ‘stress’ has no installation candidate. Tämä tarkoittaa sitä, ettei käyttämäni 15.04 Ubuntu anna oletuksena ladata muita kuin “perusohjelmia” asennettavaksi, joten on muutettava Ubuntu Software -asetuksia. Asetukset löytyvät painamalla Super-näppäintä, kirjoittamalla hakukenttään “software sources” ja painamalla enter avautuu alla kuvassa näkyvä ikkuna:
Screenshot from 2015-09-09 09:29:05

Kohtaan jossa lukee (universe), täytyy laittaa ruksi ja sen jälkeen close (http://askubuntu.com/questions/148638/how-do-i-enable-the-universe-repository). Tämän jälkeen järjestelmä pyytää päivitystä, jonka jälkeen annettuani asennuskomento stress -ohjelmalle se asentui ongelmitta.

Koneen kuormittaminen ja resurssien seuraaminen

Aloitin kuormituksen avaamalla Stress-sovelluksen:

stress

Tämän jälkeen kopioin sovelluksessa näkyvän esimerkki rivin, joka tekee prosesseja koneen kuormittamiseksi, asetin timeout kohtaan 120s, jottei rasitustesti sulkeudu liian nopeasti:

Screenshot from 2015-09-09 09:46:05

Lyötyäni komennon, avasin erillisen terminaali ikkunan ja avasin top:n:

top

Eteeni avautui käynnissä olevat prosessit ja painoin Shift+P nähdäkseni mitkä sovellukset kuormittavat järjestelmää tällä hetkellä eniten:

Screenshot from 2015-09-09 09:51:16

Tällä hetkellä järjestelmää kuormitti eniten stress-ohjelmalla aikaan saadut prosessit. keskeytin rasituksen vaihtamalla Terminaali ikkunaan, jossa stress oli auki, painoin Ctri+C ja sovellus sulkeutui.

Munin lokien seuraaminen

Avasin Munin lokit komennolla:

Firefox /var/cache/munin/www/

Etsin sieltä ikkunan, jossa näkyi CPU usage ja valitsin sieltä CPU usage – by day, sillä kuormitus testini käsittivät lähinnä prosessorin kuormitusta.

Screenshot from 2015-09-09 11:22:18

Kuvasta näkyy, että kone on yhtäkkiä saanut prosessipiikin tekemäni Stress-sovelluksen kuormitusten vuoksi. Otanta ei ole hirveän pitkä, koska käytin Linuxia koulun koneella vain muutaman tunnin.

Lokin tutkiminen

Päätin tutkia järjestelmän syslogia ja etsin sieltä kohdan, jossa olin liittänyt USB-tikun koneeseen.

Sep  9 11:53:02 ubuntu kernel: [    5.507487] usb-storage 2-1.7:1.0: USB Mass Storage device detected

Järjestelmä tunnistaa 9.9. klo 11:53:02, että koneeseen on liitetty Usb-muistio tietokoneen etupaneeliin oletuskäyttäjä ubuntun toimesta.

Sep  9 11:53:02 ubuntu kernel: [    5.507180] usb 2-1.7: SerialNumber: 4C530202840524107034

Hetkeä myöhemmin järjestelmä todentaa USB-muistin tuotekoodin.

Sep  9 11:53:02 ubuntu kernel: [    5.507177] usb 2-1.7: Manufacturer: SanDisk

Järjestelmä tunnistaa Muistin valmistajaksi SanDiskin.

Sep  9 11:53:02 ubuntu kernel: [    5.507175] usb 2-1.7: Product: Cruzer Fit

Tuote on Cruzer Fit- mallin USB-muisti.

Sep 9 11:53:02 ubuntu kernel: [ 5.346697] scsi host8: usb-storage 2-1.4:1.0
Sep 9 11:53:02 ubuntu kernel: [ 5.346750] usbcore: registered new interface driver usb-storage
Sep 9 11:53:02 ubuntu kernel: [ 5.347811] usbcore: registered new interface driver uas

Järjestelmä on rekisteröinyt USB-tikun käyttöä varten ja asentanut tarpeellisen ajurin, jotta tikulta voidaan lukea tiedostoja tai siirtää tikulle.

Lähde: http://www.terokarvinen.com