Archive | syyskuu 2012

Ip-Tables -tulimuuri

Sain Työasemat ja Tietoverkot -kurssilta tehtäväksi keksiä oman tehtävän kurssiin liittyvistä aiheista.

Keksimäni tehtävä kuuluu seuraavasti:

 

“Aseta IpTables-tulimuurin asetukset kuntoon, kerro millä komennoilla muokkaat yksittäisiä portteja esimerkiksi auki ja kiinni.”

 

Käytössäni on xubuntu linux 12.04 -käyttöjärjestelmä, jossa IpTables-tulimuuri on valmiiksi asennettu. Aion siis muokata jo olemassaolevaa asennusta.

 

Aloitetaan

 

23.9.2012

 

23:31 Firewall-scripti

 

Sivulta http://myy.helia.fi/~karte/iptables_firewall.html löytyy valmis shellscript, jota ajamalla saa tarvittavat porttiasetukset hoidettua. Huomaa että xubuntussa komennot ovat hieman erilaiset.

 

Ensin loin tiedoston nimeltä firewall komennolla

 

$ nano firewall

 

seuraavaksi siirsin copy-pastea käyttäen sivulta löytyvän scriptiohjelman tekstitiedostoon ja tallensin.

 

23:38 tiedoston kopiointi ja käyttö

 

kopioin tiedoston /usr/local/bin -kansioon komennolla

 

$ sudo cp firewall /usr/local/bin/

 

varmistin, että käyttöoikeudet on kunnossa komennolla

 

$ sudo chmod u+x /usr/local/bin/firewall

 

 

nyt pystyin ajamaan tiedoston käyttämällä komentoa

 

$ sudo firewall

 

 

23:44 tarkistus

 

komennolla

 

$ sudo iptables -L

 

voi tarkistaa tulimuurin läpäisyn: INPUT-osion alla olevat säännöt tarkoittavat internetistä tulevia pyyntöjä, FORWARD-osion alta löytyy määritelmät pyynnön edelleenohjaamiseen toiseen porttiin ja OUTPUT-osion alta löytyy omalta koneelta lähtevien pyyntöjen käsittely.

Jos siis halutaan avata portti ulkoatulevalle liikenteelle, tulee se määrittää INPUT-osion alle. Esimerkiksi portti 22, jota käytetään SSH-liikenteen ohjaamiselle, voidaan ottaa käyttöön komennolla

 

$ iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT

 

jossa INPUT tarkoittaa sisääntulevaa liikennettä, eth0 verkkoyhteyttä (langattomalla verkolla wlan0) ja ACCEPT hyväksyy liikenteen

 

lisätietoa sisään- ja ulostulevan porttiliikenteen ohjauksesta löytyy englanniksi osoitteesta http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

 

 

Lähde:

 

http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

http://myy.helia.fi/~karte/iptables_firewall.html

 

 

GNU Free Documentation License

 Version 1.3, 3 November 2008

 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Vanhan Linux-kokeen kokeilu

Työasemat ja Tietoverkot -kurssin Linux-kokeeseen valmistautuen päätin harjoituksen vuoksi tehdä vanhan kurssikokeen kotona ja laatia raportin muistamisen tueksi.

Tehtävänanto kuuluu seuraavasti:

“Karttakatu Oy

Me Karttakatu Oy:ssä teemme karttoihin liittyviä weppisovelluksia. Olemme muutaman hengen yritys.

Asenna työasema, jolla tavallisimmat toimistotyöt onnistuvat (weppisurffailu, tekstinkäsittely). (Asentuessa voit käydä kommentoimassa kavereiden blogeja).

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.

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

Tähtäätkö huipputulokseen? Pekka Winha haluaa käyttää MySQL tietokantaa. Asenna hänelle MySQL-tietokanta ja siihen PhpMyAdmin-weppiliittymä.”

Aion asentaa työasemaksi Xubuntu Linux 12.04 -käyttöjärjestelmän, jossa on webbisurffailua varten Firefox -selain. Kotisivujen luontia varten asennan käyttäjille Apache2-demonin ja siihen luon valmiiksi esimerkkisivut käyttäjille erikseen.

Aloitetaan

23.9.2012

18:06 Alustus

Käynnistin koneelleni Xubuntu Linux 12.04 -live-cd:n johon teen tarvittavat muokkaukset. Normaalisti asentaisin järjestelmän kokonaan koneelle, mutta tämä on harjoitustyö.

Valitsin kieleksi englanti (kielen voi tarvittaessa määrittää erikseen kaikille käyttäjille)

Vaihdoin näppäimistön oletuskielen suomeksi komennolla

 $ setxkbmap fi

18:07 mystatus-script

ennen käyttäjän luomista kirjoitin tehtävänannossa pyydetyn mystatus-shellscriptin ja lisäsin sen kansioon /etc/skel/

Tämä sen takia, että tiedosto kopioituu silloin automaattisesti uudelle käyttäjälle aina, kun uusi käyttäjä luodaan. Tämä nopeuttaa ylläpitäjän toimia huomattavasti.

Menen siis ensiksi omaan /home/xubuntu/ -kansiooni ja suoritan seuraavan komennon

$ nano mystatus

sen jälkeen kirjoitin tekstieditoriin seuraavan koodin:

#!/bin/bash

df -h

ifconfig

Seuraavaksi tallensin tiedoston, tein siitä kopion kohteeseen /usr/local/bin/ komennolla

$ sudo cp mystatus /usr/local/bin/

ja asetin kaikille käyttäjille oikeudet komennolla

$ sudo chmod a+x mystatus

nyt pystyn ajamaan scriptin kirjoittamalla $ mystatus

kopioin seuraavaksi script-tiedoston kansioon /etc/skel

$ sudo cp mystatus /etc/skel/

näin tiedosto kopioituu myös kaikkien uusien käyttäjien kotihakemistoon

18:40 käyttäjät

loin käyttäjät koneelle komennoilla

$ sudo adduser einari

$ sudo adduser pekka

$ sudo adduser åke

$ sudo adduser leila

laitoin salasanaksi heidän etunimensä, mikä on huono salasana, mutta testivaiheessa ei välttämätön. Todellisessa työtehtävässä tekisin jonkinlaisen salasanamuodostusohjeen tekstitiedostoon ja lisäisin sen /etc/skel/ -hakemistoon. Näin käyttäjät pääsisivät itse tarkistamaan ja vaihtamaan salasanansa omanlaisikseen.

 Jouduin tekemään poikkeuksen Åken tunnuksessa, sillä ääkkösiä ei suvaita tunnuksen nimessä. Kirjoitin vastaavasti käyttäjänimeksi ake ja kokonimeksi Åke Andersson, näin ei tule sekaannuksia

19:00 Toimistotyökalut

Asensin libreofficen komennoilla

$ sudo apt-get update

$ sudo apt-get install libreoffice

19:10 – 19:12 Kotisivujen luontimahdollisuus

asensin Apache2 jotta käyttäjät pääsevät tekemään ja jakamaan omia kotisivujaan.

$ sudo apt-get install apache2

testasin että localhost toimii avaamalla firefoxin, samalla tuli myös firefoxin toiminta todettua

Tulostui seuraava teksti

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Näinollen Apache2 asentui oikein ja toimii, samoin firefox toimii ilman ongelmia.

19:59 index.html

Seuraavaksi halusin luoda testisivut jokaiselle käyttäjälle, joten ensiksi muokkasin Apachen moduulia hakemaan nettisivun /home/user-kansiosta

$ sudo a2enmod userdir

$ sudo service apache2 restart

nyt loin jokaiselle käyttäjälle public_html -kansion, jonne teen oletus- eli index.html-tiedostot

$ for S in ake einari leila pekka ; do sudo mkdir /home/$S/public_html/; done

seuraavaksi loin index.html:t komennolla

$ nano index.html

ja kopioin tiedostot kaikille käyttäjille komennolla

$ sudo cp index.html /home/[user]/public_html/

jossa [user] on käyttäjän nimi

 varmistetaan vielä että jokaisella käyttäjällä on oikeus kirjoittaa index.html-tiedostoaan, muuten he eivät pysty muokkaamaan sivustoaan lainkaan

$ for S in pekka leila ake einari ; do sudo chmod a+rwx /home/$S/public_html/index.html; done

nyt pitäisi sivut toimia, avasin nettiselaimen ja tarkistin osoitteesta localhost/~[user]/ jossa [user] on käyttäjätunnus, toimiiko index.html-tiedostot kaikilla käyttäjillä.

Ei toiminut joten seuraavaksi kokeilin uudestaan muokata apachen moduulia:

$ sudo a2enmod userdir

$ sudo service apache2 restart

nyt jokaisella käyttäjänimellä tulostui Hello World!, eli kotisivut toimivat.

20:30 PHP

Seuraavaksi asensin tehtävänannon mukaisesti kaikille käyttäjille PHP-käyttömahdollisuuden, joten ensiksi asensin apache2 kuuluvan PHP5-kirjaston:

$ sudo apt-get install libapache2-mod-php5

tämän jälkeen annoin komennon

$ sudoedit /etc/apache2/mods-enabled/php5.conf

ja ”uloskommentoin” eli lisäsin rivien 11-15 eteen merkin #

kyseinen silmukka estää PHP-tiedostojen käytön käyttäjän kotihakemistosta, joten toimintamme kannalta se on turha.

Tämän jälkeen kaikki index.html -tiedostot tulee muuttaa muotoon index.php. Tämä kävi helpoiten komennolla

$ for S in leila pekka einari ake ; do sudo mv /home/$S/public_html/index.html /home/$S/public_html/index.php; done

 ja varmistetaan käyttöoikeudet:

 $ for S in leila pekka einari ake ; do sudo chmod a+rwx /home/$S/public_html/index.php; done

nyt tiedostoilla voi tehdä PHP-koodausta ja se näkyy samalla tavalla nettiselaimella kuin aiemmin testattuamme html-tiedostot.

21:00 etäkäyttömahdollisuus

seuraavaksi piti jokaiselle käyttäjälle järjestää mahdollisuus etäkäyttää omaa käyttäjätunnustaan, joten asensin openSSH-palvelimen

$ sudo apt-get install openssh-server

seuraavaksi kokeilin yhdistää kaikkiin käyttäjätunnuksiin xubuntu-käyttäjätunnuksilla:

ensin selvitin koneeni ip-osoitteen

$ ip addr

 tämän jälkeen muodostin yhteyden suoraan ssh:lla komennolla

 $ ssh [user]@192.168.1.67

yhteys muodostui jokaisen käyttäjän kohdalla, näin ollen lähiverkossa yhteydenmuodostus onnistuu. Mikäli kotona haluaa kokeilla openSSH:n käyttöä, tulee oman reitittimen palomuuriin tehdä portille 22 aukko ulkoisille pyynnöille, jotta esimerkiksi kännykällä voi ottaa ssh-yhteyden koneeseen. Tämä asetus kuitenkin riippuu eri reitittimien hallintaliittymän asetuksista, jotka käytännössä ovat kaikissa erilaisia. Siksi en paneudu aiheeseen vielä tämän tarkemmin.

21:15 mySQL

Seuraavaksi asennan Pekka Winhalle mySQL-tietokannan asentamalla paketin

$ sudo apt-get install mysql-server

määritän salasanat ja tämän jälkeen lisään terokarvinen.com -sivulta poimimani php-sivun, jolla päästään käsiksi mySQL:n

$ ssh pekka@192.168.1.67

$ cd public_html/

$ nano database.php

 

tiedostoon lisäämäni koodi löytyy osoitteesta http://myy.helia.fi/~karte/fedora_linux_apache_mysql_php.html

kohdasta ”PHP database example

 

tämän jälkeen tallensin ja kirjoitin

 

$ exit

 

nyt mySQL-tietokantaan pääsee käsiksi osoitteesta http://192.168.1.67/~pekka/database.php ja Pekka voi sitä omalla käyttäjätunnuksellaan muokata

 

21:45 Lyhyesti

 

Kertauksena asensin käyttöjärjestelmän (live-cd tässä tapauksessa), loin neljä käyttäjää (adduser-komento), kaikille käyttäjille PHP-nettisivujen luomismahdollisuus (Apache2, PHP5-kirjasto ja index.php-tiedostot käyttäjäkansioihin), mahdollisuuden kirjautua etänä (openSSH-demoni, mahdolliset aukkojen tekemiset palomuuriin) ja Pekalle erikseen pääsyn mySQL-tietokantaan (mySQL-server, PHP-ajettava database-tiedosto käyttäjäkansioon)

 

 

Lähteet:

 

http://myy.helia.fi/~karte/fedora_linux_apache_mysql_php.html

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

https://kristerholmstrom.wordpress.com/

 

 

 

 

 

GNU Free Documentation License

 Version 1.3, 3 November 2008

 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Komennon ajaminen usealle käyttäjälle SSH-yhteydellä

Sain tehtäväksi muodostaa joko useaan koneeseen yhteyden ssh:lla tai useaan yhden koneen käyttäjään sekä suorittaa komentoja yhtäaikaisesti kaikille yhteyksille. Useiden koneiden alustamisen ja hallinnan kannalta tämä on oleellinen taito, joka säästää aikaa ja vaivaa sekä mahdollistaa konfiguroinnin etänä, jolloin esimerkiksi kaveria voi auttaa tai siirtää tiedostoja suoraan ssh-yhteyden päästä.

 

Päätin luoda virtuaalisen koneen virtualbox-ohjelmalla, johon luon useita käyttäjiä fyysisen koneeni kautta. Molempiin asensin xubuntu linux 12.04 -käyttöjärjestelmän.

 

02:35  Virtualbox

Aloitin asentamalla virtualboxin, jotta saan kokeiltua etäyhteyttä toiseen “koneeseen” . Latasin koneelleni virtualbox-4.2 i386-version .deb-paketin, jonka asensin suoraan käyttäen Ubuntu software centerin pakkauksenhallintaa.

 

02:44 uusi virtuaalikone

käynnistin virtualboxin ja luon uuden koneen new-nappia klikkaamalla, nimeksi annoin “xubuntu”, käyttöjärjestelmän tyypiksi ubuntu linux.

Oletuksena virtualbox ehdottaa 512Mb varaamista välimuistista virtuaalikoneen käyttöön. Periaatteessa vähempikin riittää, mutta luultavasti tulen virtuaalikonetta jatkossakin käyttämään, joten pidän oletusasetuksen eli 512Mb.

Loin uuden virtuaalisen kiintolevyn koneelle, jonka tilanmääräksi asetin 4,35Gb ja tyypiksi Virtual Image disk. Nyt minulla on valmis virtuaalikone.

 

02:51 Virtuaalikoneen käyttöjärjestelmä

seuraavaksi aloin asentamaan virtuaalikoneelle käyttöjärjestelmää. Käytin aiemmin luomaani xubuntu linux 12.04 -live-cd:tä, jonka luonnin tein artikkelissa: https://kristerholmstrom.wordpress.com/2012/08/21/xubuntu-linux-12-04-asentaminen/

 

käynnistin virtuaalikoneen, jolloin ohjattu käyttöjärjestelmäasennus kysyy lähdettä, jossa käyttöjärjestelmäasennus löytyy, valitsen DVD-asemani ja laitoin live-CD:n sisään. Seuraavaksi asensin käyttöjärjestelmän kuten tavalliseenkin koneeseen.

 

04:00 Demoni

asensin openSSH-demonin virtuaalikoneelle, jotta saan muodostettua yhteyden omalta koneeltani.

 

04:03 IP-osoite

tarkistin koneen IP-osoitteen komennolla

 

$ ip addr

 

koska asetin virtuaalisen verkkokortin NAT-tilaan, ip-osoite oli muotoa 10.0.2.15.

OpenSSH-demoni oli asennettu ja IP-osoite tiedossa, joten seuraavaksi siirryin fyysisen koneeni puolelle muodostamaan yhteyttä.

 

04:10 yhdistäminen

 

avasin terminaalin ja kirjoitin komennon

 

$ ssh krister@10.0.2.15

 

jossa “krister” on käyttäjänimi virtuaalikoneella, johon haluan kirjautua.

Yritys epäonnistui, en onnistunut yhdistämään virtual boxille. Sain vain virheilmoituksen aikakatkaisusta

 

“ssh: connect to host 10.0.2.15 port 22: Connection timed out”

 

sensijaan kokeilin yhdistää virtuaalikoneelta fyysiselle koneelleni ja se onnistui. Ilmeisesti virtualbox suojaa portteja myös lähiverkosta tulevilta pyynnöiltä oletuksena.

Päätin tehdä tehtävän loppuun syöttäen komennot virtuaalikoneelta ja ohjailemalla fyysistä konettani.

 

04:20 julkinen avain

helpotin kirjautumistani luomalla julkisen avaimen varmennuksen, jolla virtuaalikone tunnistautuu fyysiselle koneelleni. Käytin komentoa

 

$ ssh-keygen

 

seuraavaksi siirsin julkisen avaimen ssh-yhteydellä fyysiselle koneelleni

 

$ ssh-copy-id krister@192.168.1.67

 

ohjelma ilmoitti että suoritti siirron onnistuneesti ja pyysi vielä muodostamaan ssh-yhteyden koneeseen, jotta voin varmistua avaimen toimivuudesta. Muodostin ssh-yhteyden ja salasanakyselyä ei tullut lainkaan, näinollen julkinen avainsalaus toimi.

 

04:30 uudet käyttäjät

 

seuraavaksi luon kaksi uutta käyttäjää koneelleni, kun olen kirjautuneena fyysiselle koneelleni

 

$ sudo adduser vieras

 

$ sudo adduser mikko

 

nyt minulla on kolme käyttäjää fyysisellä koneellani: krister, mikko ja vieras.

 

04:35 julkiset avaimet ja komennon etäajo

lisään julkiset avaimet myös näihin uusiin käyttäjätileihin. Katkaisen ensin ssh-yhteyden ja kirjoitan komennot

 

$ ssh-copy-id mikko@192.168.1.67

 

$ ssh-copy-id vieras@192.168.1.67

 

testasin vielä molemmat salaukset ja ne toimivat.

Nyt pystyin suorittamaan komentoja etänä kaikille käyttäjille yhteisesti

 

esimerkiksi haluan ajaa komennon “w” kaikilla käyttäjillä, kirjoitan:

 

$ for S in krister mikko vieras ; do ssh $S@192.168.1.67 w; done

komento toimi ja kaikista kolmesta käyttäjätunnuksesta tuli ssh:n välityksellä vastaukset.

 

Lähde:

http://myy.helia.fi/~karte/control_many_computers_with_ssh.html

 

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Ohjelmointikielten testaaminen Hello World -ohjelmalla

Sain kotitehtäväksi Työasemat ja Tietoverkot-kurssilta testata kolmea eri ohjelmointikieltä ja tulkkien toimivuutta.
Päätin tehdä testit seuraavilla ohjelmointikielillä: Java, Python ja C++.

Tein myös javalla edistyneemmän ohjelman, jonka lähdekoodin löytää osoitteesta

http://pastebin.com/eLsGBbks

ohjelman voi ajaa maalaamalla koodin hiirellä, kopioimalla leikepöydälle ( ctrl + c) ja luomalla tekstieditorilla LotteryNumberGenerator.java -nimisen tiedoston, johon koodi liitetään (ctrl + v).
Vaiheittaiset ohjeet java-tiedoston ajamiseen löytyy tästä raportista.

HUOM! LotteryNumberGenerator-ohjelma on ilmaisjaossa GNL-lisenssin mukaisesti. Tarkemmat tiedot lisenssistä raportin lopussa.

JAVA

18.9.2012

22:57  Tulkin asentaminen

asensin viimeisimmän java development kitin, eli lyhennettynä “jdk”, jotta pystyisin ajamaan java-tiedostoja suoraan komentorivitulkin kautta. Ensiksi päivitin pakkauslistan komennolla

$ apt-get update

seuraavaksi asensin jdk versio 6:n, koska sen pitäisi olla helposti yhteensopiva komentorivitulkilta ajettaessa. Jdk:ta on saatavilla myös uudempi versio 7, mutta en käyttänyt sitä testissä lainkaan.
Asensin käyttäen komentoa

$ sudo apt-get install openjdk-6-jdk

nyt koneellani pystyy luomaan java-tiedostoja ja ajamaan niitä tulkin avustuksella

23:04 Hello World -tiedosto

loin testaamista varten HelloWorld.java -tiedoston, joka tulostaa tekstin “Hello World!”.
Ensiksi siirryin kansioon, johon halusin luoda tiedoston

$ cd /home/krister/codes/

kansion “codes” olin aiemmin luonut mkdir-komennolla. Suosittelen käyttämään erillistä kansiota omille kooditiedostoille ja mielellään tekemään myös omat kansiot jokaiselle käyttämälle kielelle erikseen. Näin tiedostot on jälkikäteen helpompi löytää ajamista ja muokkaamista varten.

Tiedosto luodaan esimerkiksi komennolla

$ nano HelloWorld.java

seuraavaksi kirjoitin koodin ja tallensin ctrl + X painamalla. Kirjoittamani HelloWorld-koodin löytää osoitteesta

http://pastebin.com/Hmbt7vzH

23:21 Ohjelma ajettavaan muotoon

seuraavaksi loin tiedostosta .class-tiedoston, jotta tulkki pystyy tunnistamaan kooditiedostoni. Käytin komentoa

$ javac HelloWorld.java

lopuksi ajoin valmiin ohjelman komennolla

$ java HelloWorld.java

jolloin komentoriville tulostui teksti “Hello World!”. Ohjelma ja tulkki toimivat näinollen kuten pitääkin.

PYTHON

18.9.2012

Python-ohjelmien ajaminen komentorivitulkissa on todella helppoa ja yksinkertaista, sillä python-tulkki löytyy oletuksena linux-asennuksesta. Loin tässäkin HelloWorld-ohjelman, joka tulostaa Hello World! -tekstin

23:24 tiedoston luominen & testaaminen

koska tulkki on valmiiksi asennettu, pääsin suoraan tekemään ajettavan ohjelmatiedoston komennolla

$ nano HelloWorld.py

tällä kertaa riitti, että kirjoitin tiedostoon aluksi #!/usr/bin/python, eli polun, jota kautta tiedetään millä ohjelmalla tiedosto tulee ajaa. Seuraavaksi tein pari rivinvaihtoa enterillä ja kirjoitin

print “Hello World!”

tallensin tiedoston ja ajoin ohjelman komennolla

$ python HelloWorld.py

jolloin ohjelma tulosti “Hello World!” kuten pitikin. Näin ollen Python-tulkki toimii samoin HelloWorld-ohjelmani.

23:40

C++

C-kieli lähentelee jo puhdasta konekieltä, josta C++ on kenties helpoin omaksua java- tai python-pohjatiedoilla. Tässäkin testissä kokeilin asentaa C-tulkin ja ajaa HelloWorld-ohjelman, joka tulostaa “Hello World” -tekstin.

19.9.2012

00:00 Tulkin asennus

asensin komentorivitulkilla C-tulkin version 4.5 seuraavalla komennolla

$ sudo apt-get install gcc-4.5

tämän jälkeen loin /home/krister/codes/ -kansioon tiedoston HelloWorld.cpp komennolla

$ nano HelloWorld.cpp

kirjoittamani koodi löytyy osoitteesta

http://pastebin.com/D0pBqjrv

seuraavaksi tallensin tiedoston ctrl + X painamalla

00:17 tiedoston muokkaus

annoin tulkin tehdä ajettavan version tiedostostani, joten kirjoitin komennon

$ g++ HelloWorld.cpp -o HelloWorld.

Nyt ohjelman pystyi ajamaan bashilla komennolla

$ ./HelloWorld.

Jolloin ohjelma tulosti tekstin “Hello, World!”. Näinollen C-tulkki asentui oikein ja pystyy kääntämään koodia ongelmitta sekä ohjelmani oli kelvollinen.

 

Lähde:

http://en.wikipedia.org/wiki/Hello_world_program_examples

http://terokarvinen.com/

 

 

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/&gt;
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

OpenSSH-palvelimen asennus ja käyttö

Sain etätehtäväksi asentaa koneelleni linuxilla hyvin tärkeän ohjelman, eli openSSH-demonin.

Lyhyesti SSH:sta: kyseessä on suora yhteys eli protokolla kahden päätelaitteen (serveri, kännykkä, tietokone jne.) välillä ja mikä tärkeintä, yhteys on salattu suojausavaimella. Suojaus on nykyään erittäin tärkeää ettei avointa yhteyttä käytetä ulkopuolisen toimesta väärin, esimerkiksi murtautumalla avoimesta portista ja kaappaamalla serverin tai tietokoneen hallinta. SSH:ssa suojaus tapahtuu suojausavaimia käyttämällä, jotka lähetetään yhteydessä oleviin päätelaitteisiin. Ennen datan lähettämistä toiselle koneelle, se salataan käyttämällä salausavaimen määrittämää salausalgoritmia ja vastaavasti puretaan samalla avaimella vastaanottavassa päädyssä. Periaatteessa algoritmi voisi olla mikä tahansa tunnettu salausmenetelmä, mutta Internet Engineering Task Force, eli IETF on määrittänyt SSH-yhteyksille vakituisen standardisuojausalgoritmin, jotta vältyttäisiin salauksien yhteensopivuusongelmilta.

OpenSSH-server-ohjelman tarkoituksena on Apachen tavoin toimia isäntäpalvelimena, joka muodostaa SSH-yhteyden sitä pyytävän asiakasohjelman kanssa (esimerkiksi kännykkä). Tämä mahdollistaa oman tietokoneen etäkäytön internet-yhteyden välityksellä sekä kiinteiden, salattujen yhteyksien luomisen erilliselle palvelimelle.

Kokeilin OpenSSH:n toimivuutta omalla kannettavalla tietokoneellani, johon olen asentanut Xubuntu Linux 12.04 -käyttöjärjestelmän

Asentaminen

11.9.2012

23:41Asennus

asensin OpenSSH-demonin käynnistämällä Xubuntun, avaamalla komentokehotteen eli Terminaalin ja käyttämällä komentoa

$ sudo apt-get install openssh-server

Terminaali ilmoitti demonin vaativan 891 kb kiintolevytilaa ja kysyi, haluanko jatkaa asennusta, johon vastasin kirjoittamalla “Y” eli yes.

23:46 Salasana

Seuraavaksi määritin käyttäjälle salasanan, jotta kuka tahansa ei pääsisi käsiksi yhteyteen koneeseeni. Tämän vaiheen voi ohittaa, jos ei käytä linuxin Live-CD:tä ja linux-käyttäjälle on asetettu kirjautumiseen salasana. Kirjoitin terminaaliin komennon

$ passwd

jolloin käyttäjältä kysytään nykyistä salasanaa, uutta salasanaa ja uusi salasana uudestaan

23:50 Testaus localhostina

Nyt openSSH-server asentui kannettavalle tietokoneelleni ja seuraavaksi kokeilin sen toimivuutta yhdistämällä demonille localhostina, eli verkkokortti toimii sekä asiakkaana, että palvelinhostina.

Kirjoitan komennon

$ ssh krister@localhost

jossa krister on linuxini käyttäjätilin nimi

seuraavaksi Terminaali kysyi, haluanko yhdistää palvelimelle vaikka palvelimen varmennetta ei tunnistettu. Kirjoitan “yes” eli kyllä, sillä tunnen ja luotan kyseiseen palvelimeen (kyseessähän on oma tietokoneeni, johon yhdistän).

Tämän jälkeen palvelin pyytää salasanaa, johon tietysti kirjoitan käyttäjätilini salasanan.

Nyt olen onnistuneesti kirjautunut omalta koneeltani omalle koneelleni käyttäen SSH-yhteyttä. Asian voi vielä todentaa tapahtumalokista, joka on /var/log/Auth.log

Avasin 10 viimeisintä merkintää komennolla

$ tail /var/log/Auth.log

joka tulosti seuraavaa:

neljänneksi viimeisellä rivillä on merkintä salasanan hyväksymisestä ja kolmanneksi viimeinen rivi ilmoittaa istunnon avautuneen krister-nimiselle asiakkaalle, eli yhteys avattiin onnistuneesti ja pystyin etäkäyttämään konettani.

00:17 Testi ulkoiselta palvelimelta

Tein vielä yhden yhdistämistestin yhdistämällä omalta koneeltani kouluni myy-palvelimelle ja sieltä edelleen takaisin omalle koneelleni (openSSH-demoniin)

Lyhyesti vielä kaaviona yhteysreitti:

Oma kone (asiakas) —-SSH—-> koulun myy-palvelin —-SSH—-> Oma kone (OpenSSH)

Lopputuloksena pystyn ohjaamaan omaa konettani samalla tavalla kuin edellisessä testissä, tässä tapauksessa komentodata vain kulki koulun myy-palvelimen välityksellä.

Suljin ensin aiemman localhost-yhteyteni komennolla

$ exit

00:22 Testaus

Aluksi tarkistin IP-osoitteeni omalle koneelleni komennolla

$ ip addr

IP-osoite löytyi koneeni tapauksessa kohdasta “3: wlan0:”, koska minulla on langaton wlan-yhteys. Kiinteällä ethernet-kaapelilla IP-osoitteeni lukisi kohdassa “2: eth0”

seuraavaksi yhdistin koulun palvelimelle komennolla

$ ssh [opiskelijanumero]@myy.haaga-helia.fi

palvelin kysyi jälleen salasanaa, jonka jälkeen yhteys koulun palvelimelle muodostui.

Seuraavaksi yhdistin takaisin omalle koneelleni komennolla

$ ssh krister@[IP-osoitteeni]

Tästä tuli kuitenkin virheilmoitus: ssh: connect to host XXX.XXX.X.XX port 22: No route to host.

Luultavasti kyseinen virhe johtuu modeemini palomuurista, jolla on oma IP-osoitteensa.

Lähde:

http://terokarvinen.com/

http://fi.wikipedia.org/wiki/SSH

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

PHP:n käyttö nettisivuilla

Sain Työasemat ja tietoverkot -kurssilla tehtäväksi asentaa Apache-palvelindemonin sekä PHP-kirjaston kotisivujen luomista varten. Lisäksi minun piti tehdä PHP-sivu, joka tulostaa nettiselaimeen ”Hei maailma!” ja sivu, joka käyttäjän antamien tietojen perusteella laskee henkilön painoindeksin.

Apache-palvelindemoni ylläpitää palvelinta ja kommunikoi asiakasselaimien kanssa, jolloin tavallisella nettiselaimella pääsee käyttäjän määrittämälle kotisivulle IP-osoitteen avulla.
PHP tarjoaa HTML:ää laajemmat mahdollisuudet luoda mm. lomakekenttiä ja grafiikkaa sekä tietokantoja kotisivulle. Lisäksi PHP on yleensä valmiiksi tuettu eri nettiselaimissa, joten se on valmiiksi yhteensopiva asiakaskoneille.

Mikäli Apachen asennus ja käyttö tai komentokehotteen komennot tuntuvat haastavilta, olen kirjoittanut perusasioista artikkelit: https://kristerholmstrom.wordpress.com/2012/09/05/apache-2-asennus-xubuntulle/
https://kristerholmstrom.wordpress.com/2012/09/03/komentokehotteen-kaytto-asennuksessa-ja-yllapidossa/

9.9.2012

23:12 Boottaus ja Apachen asennus

aloitin käynnistämällä koneeni Xubuntu linux 12.04 -live CD:llä ja avasin terminaalin. Aluksi minun piti asentaa Apache, jotta pystyisin jakamaan PHP-kotisivun. Apache asennetaan samalla tavalla kuten muutkin ohjelmat, eli komennolla

$ sudo apt-get update
$ sudo apt-get install apache2

23:23 Apachen moduulin muokkaus
Seuraavaksi muutin apache2-moduulin hakemaan oletusnettisivutiedostoa käyttäjähakemistosta. Ensin kuitenkin menin terminaalilla kohteeseen /home/xubuntu/ ja loin uuden kansion nimeltä public_html. Seuraavaksi loin HTML-tiedoston komennolla

$ nano index.html

Huomaa että tiedoston nimi tulee olla index, jotta Apache osaa sitä etsiä oletuksena.
Apache-moduuli muutetaan komennolla

$ sudo a2enmod userdir

seuraavaksi apache piti uudelleenkäynnistää, mikä tapahtuu komennolla

$ sudo service apache2 restart

23:30 Apachen testaaminen

tässä vaiheessa oli hyvä kokeilla, miten apache toimi, joten toimin asiakkaana ja käynnistin nettiselaimen, jonka osoiteriville kirjoitin IP-osoitteeni sekä käyttäjäkansion nimen.
IP-osoite selviää komennolla

$ ip addr

osoitteeni on siis http://192.168.1.67/~xubuntu/
kyseisestä osoitteesta tulostui index.html-tiedostoni tieto kun syötin osoitteen nettiselaimeeni.
23:35
PHP-tulkki asennetaan lataamalla Apache2 erillinen mod-kirjasto, joten asennus tapahtui hieman eri tavalla kuin muissa ohjelmissa. Käytin komentoa

$ sudo apt-get install libapache2-mod-php5

Tämän jälkeen kävin muuttamassa php5-asennuslogia, jotta tulkki toimisi oikein. Käytin komentoa

$ sudoedit /etc/apache2/mods-enabled/php5.conf

sen jälkeen ”kommentoin ulos” kaikki rivit välillä <ifModule mod_userdir.c> … </ifModule>, eli lisäsin rivien eteen #-merkin, jolloin rivit muuttuvat kommenteiksi, eikä tulkki silloin huomio rivejä lainkaan.

23:46 PHP-tiedoston luominen

Seuraavaksi index.html-tiedosto piti muuttaa PHP:ta tukevaksi tiedostoksi. Tämä onnistui siirtymällä kansioon /home/xubuntu/public_html/ ja antamalla komennon

$ mv index.html index.php

nyt tiedosto pystyi sisältämään PHP-koodia ja Apache tulkitsemaan sitä.

23:52 PHP-koodi

PHP-koodin selventämiseen tässä artikkelissa menisi paljon aikaa ja tilaa, enkä välttämättä saisi annettua kovinkaan syvällistä kuvaa ohjelmoinnista, joten annan linkin, jonka kautta voi tutustua PHP-ohjelmointiin tarkemmin, erityisesti HTML-pohjaisena:

http://www.php.net/manual/en/tutorial.forms.php

Muokkasin seuraavaksi index.php:ta niin, että se tulosti lauseen ”Hei Maailma!”

kyseinen lause tulostuu kirjoittamalla kotisivutiedostoon <? PHP print(”Hei Maailma!”); ?>

En saanut painoindeksilaskuria vielä toimimaan, mutta lisään koodin tähän artikkeliin kun saan sivun näyttämään tuloksen oikein.

lähde: http://terokarvinen.com/2012/aikataulu-–-tyoasemat-ja-tietoverkot-ict1tn002-33-syksylla-2012

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Apache 2 asennus xubuntulle

Sain kotitehtäväksi asentaa Apache 2 -verkkopalvelimen kotikoneelleni sekä testata yhteydenottoa “Demoniin” (verkkopalvelua tarjoava ohjelma, joka esittää esimerkiksi omat kotisivut asiakaskoneelle heti pyynnön saavuttua. Tässä tapauksessa demoni on Apache). Yhteydenotto suoritetaan silmukoimalla, eli verkkokortista luodaan virtuaalinen haamuversio joka sitten toimii asiakaskoneena. Todellisuudessa datayhteys tekee vain lenkin verkkokortin kautta.

Lisäksi minun tuli tehdä normaali sivunlataus, sekä tahallisesti suoritettu “sivua ei löydy” -lataus, jotta molemmista tulee merkinnät lokiin. Nämä merkinnät minun tuli sitten löytää Apachen lokihakemistosta /var/log/Apache2/.

Lisäksi minun tuli testata Telnet-yhteyden muodostamista Demoniin ja kokeilla mitä tapahtuu.

Aloitetaan

4.9.2012

21:01 Apache-asennus

Suoritin Apache2 asennuksen komentokehotteen kautta samalla tavalla kuin minkä tahansa muunkin ohjelman asennuksen, eli komennolla

$ sudo apt-get install apache2

21:05 Silmukointi

kun apache2 asentui koneelleni, halusin testata sitä silmukoinnilla, eli avataan nettiselain (esim. Firefox) ja kirjoitetaan sinne osoite http://localhost, terminaalista pääsee suoraan komennolla

$ firefox “http://localhost

Seuraavan tekstin pitäisi ilmestyä mikäli kaikki on kunnossa:

It works!

This is the default web page for this server.

The web server software is running but no content has been added, yet.

Selaimellani kyseinen teksti ilmestyi eli kaikki kunnossa ja asennus onnistui!

21:10 IP-osoitteen selvittäminen

Seuraavaksi halusin tietää demonin IP-osoitteen, eli osoitteen, jolla joku muu kone pystyy vierailemaan palvelimellani. Se selviää komennolla

$ ip addr

komento toi kolme eri yhteyttä, jotka on kytkettynä koneeseeni, eli

  1. lo – tarkoittaa silmukointia, eli tämän kautta verkkokortti ottaa yhteyttä omaan koneeseen
  2. eth0 – ethernet-paikka 0 eli modeemin ja koneen välille tuleva ethernet-kaapeli
  3. wlan0 – langaton verkko

itselläni ainoastaan wlan0 antoi toimivan IP-osoitteen kohdassa inet

Ote terminaalista:

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000

link/ether c4:17:fe:82:39:cd brd ff:ff:ff:ff:ff:ff

inet XXX.XXX.X.XX/24 brd 192.168.1.255 scope global wlan0

inet6 fe80::c617:feff:fe82:39cd/64 scope link

valid_lft forever preferred_lft forever

tässä tapauksessa oman koneeni apachen IP-osoite on XXX.XXX.X.XX.

IP-osoitteen voi testata selaimella samaan tapaan kuin aiemmin testasin localhost-osoitetta syöttämällä osoitteen muodossa http://XXX.XXX.X.XX/

21:25 Moduulin käyttöönotto

seuraavaksi halusin luoda pienen testisivun joka näkyisi selaimella.

Ensimmäiseksi pitää käynnistää apache2:n moduuli, joka hakee käyttäjähakemistosta oletussivua muodossa index.html esim. /home/xubuntu/public_html/index.html

loin public_html -kansion menemällä ensin home-kansioon komennolla

$ cd

seuraavaksi loin kansion komennolla

$ mkdir public_html

käynnistin vielä moduulin komennolla

$ sudo a2enmod userdir
$ sudo /etc/init.d/apache2 restart

21:31 Kotisivun avaaminen selaimella

kokeilin public_html – kansion selaamista selaimella osoitteessa http://XXX.XXX.X.XX/~(käyttäjä)/ ilman sulkuja.

Ilmoitukseksi tuli

Not Found error 404

tämä meni oikein sillä moduuli oletuksena etsi avattavaa index.html -tiedostoa, jota ei ole vielä luotu. Näin sain samalla kirjattua Apache2-lokiin epäonnistuneen latauksen, kuten tehtävänannossa pyydettiin.

21:39 Index.html tiedoston luominen

loin index.html -tiedoston, joka ajetaan moduulin kautta.

Yksinkertainen html-sivu voi olla testimielessä muotoa

<html>

<body>

<p> moi </p>

</body>

</html>

nyt selain näytti sivulla http://XXX.XXX.X.XX/~(käyttäjä)/ sivun, jossa luki

moi

samalla lokiin kirjattiin onnistunut sivun avaus, kuten tehtävänannossa haluttiin.

21:51 Apache-loki

avaan Apachen lokin tutkimista varten menemällä kansioon

$ cd /var/log/apache2/

avaan access.log -tiedoston nanolla:

$ nano access.log

Lokissa löytyy yhteydenottotiedot asiakkaalta, joten poimin kaksi viimeisintä riviä:

192.168.1.67 – – [05/Sep/2012:05:46:29 +0300] ”GET /krister/ HTTP/1.1” 404 501 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0”

192.168.1.67 – – [05/Sep/2012:05:47:51 +0300] ”GET /~krister/ HTTP/1.1” 200 387 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0”

ensimmäisellä rivillä löytyi numero 404, mikä tarkoittaa että moduulilta on pyydetty username-kansiosta index.html nimistä sivua, mutta sitä ei ole löytynyt.

Toisella rivillä löytyi samasta kohdasta numero 200 mikä tarkoittaa että pyydetty sivu löytyi ja avautui onnistuneesti

molemmilla riveillä ilmoitusnumeron edessä oleva 1.1 viittasi siihen että sivua haettiin nimenomaan html 1.1 muodossa. Sitä aiempi päiväys kertoo tarkalleen milloin sivua on yritetty hakea ja lopusta löytyvä Firefox/11.0 kertoi selaimen tiedot aina versionumerointiin asti.

22.06 Telnet-yhteys

Otan yhteyden demoniin käyttäen telnet-yhteyttä komennolla

$ telnet localhost 80

kirjoitin kokeilumielessä sanan “moi”, tulos oli:

<!DOCTYPE HTML PUBLIC ”-//IETF//DTD HTML 2.0//EN”>

<html><head>

<title>501 Method Not Implemented</title>

</head><body>

<h1>Method Not Implemented</h1>

<p>moi to /index.html not supported.<br />

</p>

<hr>

<address>Apache/2.2.22 (Ubuntu) Server at 127.0.1.1 Port 80</address>

</body></html>

Connection closed by foreign host.

Telnet-yhteydellä yritin siis kirjoittaa komentoja suoraan index.html-sivulle, joka ei sitä lainkaan tukenut, näinollen isäntä eli demoni sulki yhteyden.

Lähde:

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

 

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Komentokehotteen käyttö asennuksessa ja ylläpidossa

Aiemmin olen asentanut ohjelmia linuxille käyttäen mm. Ubuntu Software Centerin pakkauksenhallintaa. Ohjelmien asennuksen voi kuitenkin ajaa myös terminaalin avulla bsd-komennoilla, mikä antaa käyttäjälle vapaammat kädet ohjelman asennukseen.  Sain tällä kertaa tehtäväksi asentaa 3 vapaavalintaista ohjelmaa käyttäen komentokehotetta niiden etsimiseen ja asentamiseen. Sen lisäksi tutkin Auth.logia, johon kirjataan istunnon aikana suoritetut sudo-käyttökerrat, eli milloin on tarvittu järjestelmänvalvojan oikeuksia. Lopuksi tehtävääni kuului asentaa myös päivitykset kaikkiin ohjelmiini, ajureihin, tietoturvaan sekä käyttöjärjestelmän jakelupäivitykseen — tietysti komentokehotteella.

Ohjelman asennus komentokehotteella

1.9.2012

22:36  Pakettilistan päivitys
Aloitin avaamalla terminaalin ja päivittämällä pakettihallinnan (jotta kaikki viimeisimmät ohjelmat löytyisivät haulla) käyttäen komentoa $ sudo apt-get update. Admin-salasanan syöttämisen jälkeen apt hakee saatavilla olevat paketit ja ilmoittaa haun suoritetuksi.

22:39 Ohjelmapaketin etsiminen
Seuraavaksi halusin etsiä asennettavan ohjelman pakkauslistalta, joten kirjoitan terminaaliin komennon $ apt-cache search <avainsana>, jolla terminaali listaa annetulla hakutermillä löytyvät ohjelmat ja pelit. (Huom! Sudoa ei tarvitse käyttää tässä, sillä nyt suoritettiin vain pakettinimietsintä “cachesta” eli varastosta) Kokeilin hakea minulle aiemmin tuttua fantasiastrategiapeli Wesnothia, eli syötän komennon $ apt-cache search wesnoth. Terminaali luetteli minulle pakkaukset ja niihin liittyvät kuvaukset, joiden perusteella oli helppo etsiä oikea paketti. Halusin pelin kokonaisena, joten valitsin pakettirivin “wesnoth-all – fantasy turn-based strategy game – complete suite (transitional package)”.

22:45 Asennus
Asensin pelin komennolla $ sudo apt-get install wesnoth-all. Salasanan syöttämisen jälkeen terminaali ilmoitti minulle

“After this operation, 436 MB of additional disk space will be used.
Do you want to continue [Y/n]?”

eli asennus vaatii 436 MB kovalevytilaa. Kovalevylläni oli tarpeeksi vapaata tilaa, joten kirjoitin “Y” (ilman sulkuja). Seuraavaksi paketinhallinta aloitti paketin lataamisen koneelle ja ilmoitti prosentteina asennuksen edistymisen jokaisen yksittäisen ladatun tiedoston kohdalla. Näin käyttäjän on helpompi ongelmatilanteista tarkistaa, minkä tiedoston lataamisessa on ollut ongelmia. Latauksen jälkeen pakkaushallinta raportoi jokaisen yksittäisen paketin purkamisesta koneelle.
23:00  Testaamaan!
Kun peli on vihdoin asennettu koneelle, sitä on tietysti testattava, jotta voidaan luottaa asennuksen onnistumiseen. Pelin avaus terminaalista onnistuu yksinkertaisesti komennolla $ wesnoth, jolloin terminaali hakee automaattisesti pelin /home/krister/.cache/wesnoth -hakemistosta. Mikäli ei tiedä millä komennolla pelin/ohjelman saa auki, terminaaliin voi kirjoittaa komennon $ dpkg –listfiles <hakusana>, esimerkiksi $ dpkg –listfiles wesnoth, jolloin terminaali ilmoittaa paketin löytyvän hakemistosta /usr/share/doc/wesnoth, näinollen peli aukeaa komennolla $ wesnoth.
Minulla peli käynnistyi oikein oletusresoluutiolla 1024×720, eikä pelin luomisessa ilmennyt ongelmia.

23:15 Kertaus on opintojen äiti
Halusin asentaa kokeiluksi myös kaksi hyötyohjelmaa. Valitsinkin ohjelman joka ilmoittaa koneen sensorien lämpötilan ja ohjelman, jolla voin kääntää ja kirjoittaa java-ohjelmointikieltä.
23:17 Haku lämpötilaohjelmalle
Hakukomennolla $ apt-cache search temperature löytyi kiinnostava pakkausrivi “fancontrol – utilities to read temperature/voltage/fan sensors”, kokeilin siis asentaa kyseisen ohjelman.
23:20  Haku java-tulkille
Olen jo pitkään käyttänyt java-tulkkina ohjelmaa nimeltä netbeans, joten yritin hakea sitä suoraan hakukomennolla $ apt-cache search netbeans. Oikea paketti vaikutti löytyneen riviltä “netbeans – Extensible Java IDE”, joten ryhdyin asentamaan myös kyseistä ohjelmaa.
23:23 Fancontrol-asennus
Aloitan fancontrol-ohjelman asennuksen tutulla sudo-komennolla $ sudo apt-get install fancontrol. Asennuksen jälkeen terminaali antoi seuraavan ilmoituksen
“ureadahead will be reprofiled on next reboot
Setting up fancontrol (1:3.3.1-2ubuntu1) …”
ilmeisesti minun kuului käynnistää kone uudestaan, jotta mittausprofiili voidaan luoda. Testasin tätä netbeans-asennuksen jälkeen.
23:30 Netbeans-asennus
Suoritan netbeans-asennuksen komennolla $ sudo apt-get install netbeans. Jo ensimmäisen asennetun ohjelman tapaan terminaali kysyi että haluanko asentaa ohjelman koneelleni [Y/no], johon vastaan kirjoittamalla “Y” (ilman lainausmerkkejä). Jälleen pakkaushallinta luetteli ladatut paketit ja tiedostot, sekä niiden purkamisen suorittamisen.

23:35 Netbeans-testaus
Testasin netbeansin toimivuutta kirjoittamalla komennon $ netbeans. Netbeans avautui normaaliin desktop-näkymäänsä ja kokeilin ajaa hello world -ohjelman (ohjelma tulostaa “hello world!” -tekstin). Kääntö onnistui hyvin, värimerkitseminen toimii ja debuggaus-ominaisuus on käytössä. Versioksi asentui kaikkein viimeisin, eli Netbeans 7.1.2
23:40  Reboot (harvinaista kyllä)
käynnistin koneen uudestaan, jotta voin testata fancontrol-ohjelman toimivuutta.
23:45 Fancontrol-testaus
kokeilin ajaa $ fancontrol -komennon, jotta saan ohjelman auki, terminaali ilmoittaa seuraavaa: “Loading configuration from /etc/fancontrol …
Error: Can’t read configuration file”
todennäköisesti järjestelmällä ei ole tarvittavia oikeuksia ohjelman suorittamiseen, joten ajoin ohjelman adminina sudo-komennolla, eli $ sudo fancontrol.
Terminaali antaa edelleen saman virheilmoituksen, joten seuraavaksi kokeilin hakea oikeaa command line -termiä komennolla $ dpkg –listfiles fancontrol. Termi oli oikein, joten en itse keksi enempää syitä miksi ohjelma ei toimi

Auth.log avaaminen, tutkiminen ja tulkitseminen

Sain tehtäväksi tutkia kansiossa /var/log/ olevaa auth.logia, johon kirjataan kaikki sudo-komennon käytöt.

3.9.2012

00:20 Lokin etsiminen
liikuin komennolla $ cd /var/log/ oikeaan kansioon ja avasin lokin käyttäen gedit-tekstieditoria, eli komento on $ gedit auth.log.

Seuraavaksi minun tuli etsiä yksi onnistunut ja yksi epäonnistunut yritys käyttää sudoa sekä hieman analysoida taustoja.

00:38 Onnistunut sudon käyttö
Auth.logia silmäilemällä löydän kohdan, jossa sudoa on käytetty onnistuneesti:

“Sep 2 23:17:42 krister-Aspire-5738 sudo: krister : TTY=pts/2 ; PWD=/home/krister ; USER=root ; COMMAND=/usr/bin/apt-get install wesnoth-all
Sep 2 23:17:42 krister-Aspire-5738 sudo: pam_unix(sudo:session): session opened for user root by (uid=1000)
Sep 2 23:21:56 krister-Aspire-5738 sudo: pam_unix(sudo:session): session closed for user root”

ensimmäisessä merkinnässä ilmoitettiin, että käyttäjätunnus ja salasana on annettu, käyttäjäistunnon arvo on root eli järjestelmänvalvoja ja suoritettava komento on wesnoth-all -paketin asennus.
Seuraavassa merkinnässä ilmoitettiin että root-istunto on nyt avattu komentorivitulkin toimesta, jotta asennus voidaan koneelle suorittaa. Viimeisessä merkinnässä ilmoitettiin root-istunnon sulkeutuneen, kun komento on saatu suoritettua.

Annettuun tehtävääni liittyen katsoin samalla myös ensimmäisen onnistuneen sudo-komennon käytön lokista, joka näyttäisi olevan päivitetyn pakkauslistan hakeminen, eli:

Sep 2 22:38:29 krister-Aspire-5738 sudo: krister : TTY=pts/2 ; PWD=/home/krister ; USER=root ; COMMAND=/usr/bin/apt-get update
Sep 2 22:38:29 krister-Aspire-5738 sudo: pam_unix(sudo:session): session opened for user root by (uid=1000)
Sep 2 22:38:35 krister-Aspire-5738 sudo: pam_unix(sudo:session): session closed for user root
00:45 Epäonnistunut sudo-komennon käyttö
“Sep 3 00:23:30 krister-Aspire-5738 sudo: krister : TTY=pts/3 ; PWD=/home/krister ; USER=root ; COMMAND=/usr/sbin/fancontrol
Sep 3 00:23:30 krister-Aspire-5738 sudo: pam_unix(sudo:session): session opened for user root by (uid=1000)
Sep 3 00:23:30 krister-Aspire-5738 sudo: pam_unix(sudo:session): session closed for user root”

tunnus ja salasana on annettu normaalisti, kuten myös komento, tässä tapauksessa komento on ollut avata ohjelma fancontrol. Root-istunto oli avautunut normaalisti, mutta kellonajoista huomaa että se myös sulkeutui samalla sekunnilla, mikä tarkoittaa, että istuntoa ei ollut käytetty mihinkään eikä komento ollut toiminut oikein, jolloin istunto suljettiin turhana.

Päivitys

Tehtävänäni oli päivittää xubuntu Linuxissa olevat ohjelmani, tietoturvapäivitykset sekä jakeluversion päivitys.

3.9.2012

1:00 Aloitetaan
helpointa on päivittää kaikki ohjelmat kerralla, joten haetaan aluksi päivitettävä tietokanta komennolla $ sudo apt-get update

1:01 Asennus
seuraavaksi asensin löytyneet päivitykset komennolla $ sudo apt-get upgrade, jolloin pakkaustenhallinta aloitti päivitysten purkamisen ohjelmisojen kansioihin. Samalla myös tietoturvapäivitykset asentuivat normaalien ohjelmapäivitysten rinnalla.

1:03 Jakeluversion tarkistus
komennolla $ sudo do-release-upgrade, pakkaustenhallinta tarkistaa onko käyttöjärjestelmästä saatavilla uudempaa jakeluversiota ja asentaa sen. Sain ilmoituksen että uutta julkaisua ei löytynyt, jolloin nyt käytössä oleva Xubuntu linux 12.04 on uusin ajan tasalla oleva jakelujulkaisu.

Yhteenveto

Komentokehotteen käyttö asennuksessa on käytännössä yhtä vaivatonta kuin desktop-version käyttö. Suurimpana erona lienee mahdollisuus ongelmatilanteissa tarkastella virheilmoituksia suoraan komentohistoriasta, johon pakkauksenhallinta raportoi pakettien haun ja asennuksen yksi kerrallaan.

Tällä kertaa testissä ollut peli Wesnoth ja java-tulkki Netbeans 7.1.2 asentuivat virheettömästi, mutta Fancontrol-ohjelman käynnistämisen kanssa näytti olevan ongelma, johon on etsittävä ratkaisu.

Päivitysten asennus onnistui vaivattomasti komennoilla $ sudo apt-get update ja $ sudo apt-get upgrade, sekä jakeluversion haku komennolla $ sudo do-release upgrade.

lähteet:
http://linux.fi/wiki/Ubuntun_päivittäminen

http://terokarvinen.com/2008/commands-for-admin-4

 

 

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.