Apache – maailman suosituin palvelinohjelma

Tero Karvisen Työasemat ja tietoverkot -kurssilla oli vuorossa Apachen asennus ja tutustuminen. Apacheen en ollut aikaisemmin tutustunut, mutta oppitunnin jälkeen sen helppokäyttöisyys sai jopa pienen hymyn huulille.

Artikkelissa on käytetty samaa ASUS -kannettavaa kuin aikaisemmissakin. Asennuksen ajankohta oli maanantai 3. syyskuuta 2012 kello 21.10 – 23.00.

Artikkelissa kaikki esimerkki -sanat komentopäätteessä on oman koneenne nimen tilalla. Älkää ikinä asentako oman koneenne nimeksi esimerkkiä tai muuta yhtä mielikuvituksetonta, ja muistakaa hyvät,hankalasti arvattavat salasanat!

Apachen asennus

Asennuksen aloitin päivittämällä pakettivarastot ja sitten asentamalla paketin apache2.

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

Asennuksen aikana kysyessä levytilan muutoksesta vastasin kyllä “y“.

Apachen testikäyttöä

Asennuksen jälkeen kokeilin toimivuutta. Localhost on testi sivu missä näkee toimiiko sivu. Käynnistin Firefox -selaimen ja kirjoitin osoitekenttään localhost ja onnistuneesta asennuksesta merkkinä oli “It works!This is the default web page for this server.The web server software is running but no content has been added, yet.” -viesti. Testien suorittaminen suositeltavaa jokaisen muutoksen jälkeen, ettei vahingossa käy niin että kahden tunnin työ menee hukkaa yhden virheen takia.

Jotta voin kertoa kavereilleni palvelimestani, selvitin komennon ifconfigavulla oman ip-osoitteeni. Ip-osoitteen kirjoittaessa siis pääsee samalle sivulle.

Julkisen kansion teko ja sen määrittäminen käyttöön

Kaikki tiedostot public_html –kansiossa kotihakemistossa näkyvät internettiin. Joten teemme kansion kotihakemistoon ja määritämme sen apachen käyttöön. Ensin määritetään ja sen jälkeen käynnistetään palvelin uudestaan, jotta muutokset tulevat voimaan:

$ sudo a2enmod userdir
$ sudo service apache2 restart

Varmistin seuraavaksi pwd-komennolla, että olen kotihakemistossa. Jos ei ole niin kotihakemistoon pääsee tutulla cd-komennolla. Sitten tein kansion public_html ,alaviivaa ei saa unohtaa.

$ mkdir public_html

Seuraavaksi yritin päästä kansiooni selaimen kautta kirjoittaen käyttäjätunnukseni localhostin perään näin localhost/~esimerkki/. Sivu ilmoitti että 403 Forbidden error. Tämä ilmoitus tuli sen takia, koska minulla onkin kryptattu kotihakemisto en päässyt sivuille. Joten ei muuta kuin käyttöoikeuksia muuttamaan.

Käyttöoikeuksien muuttaminen

Käyttöoikeudet tarkistetaan ls -l-komennolla, ja koska on tarkoitus vain vaihtaa public_html -kansion käyttöoikeuksia, kirjoitin näin:

Ensin mennään public_html -kansioon,katsotaan oikeudet ja muutetaan niitä.

$ cd public_html
~:public_html$ ls -l
total 12
-rw-rw-r-- 1 esimerkki esimerkki 38 Sep  3 21:39 index.html

Tulosteesta huomasin, ettei käyttöoikeudet olleet oikein,joten muutin viimeisen väliviivan tilalle ajokomennon x komennolla:

$chmod ugo+x /home/esimerkki /home/esimerkki/public_html

Tämän jälkeen kun yritin samalla sivulle kuin hetki sitten, pääsin onnistuneesti sivulle.

Etusivun luonti

Jotta localhost/~esimerkki -sivustolle mentäessä näkisin jonkinlaisen sivun, tein public_html -kansioon tekstitiedoston. Ensin siis public_html -kansioon ja sitten tekstitiedoston luominen, jonka nimeksi annoin index.html.

$ cd public_html
:~public_html$ nano index.html

Kirjoitin tiedostoon “Hei maailma!”  ja painoin ctrl+x ja tallensin tiedoston. Avasin selaimen ja sivu toimi hienosti.

Apachen lokitiedosto

Apachen lokitiedostot sijaiset /var/log/apache2/ –kansiossa. Access.log -loki kertoo nimensä mukaan onnistuneet yhdistykset ja error.log -loki puolestaan epäonnistuneet. Esimerkkinä epäonnistuneesta lokitiedosta on tässä artikkelissa mainittu virheilmoitus 403 Forbidden error. Lokitiedoissa lukee selvästi että pääsy evätty (Permission denied). Lokissa on kerrottu mistä yhteys on otettu,milloin,syy ja käytetty selain.

[Mon Sep 03 21:46:37 2012] [error] [client 127.0.0.1] (13)Permission denied: access to /~esimerkki/ denied

Onnistuneesta lokitiedosta voidaan ottaa huomioon vaikka käyttöoikeuksien muuttamisen jälkeinen lokitieto /var/log/apache2/access.log -lokista.Lokissa on kerrottu mistä yhteys on otettu,milloin,syy ja käytetty selain.

127.0.0.1 - - [03/Sep/2012:22:01:31 +0300] "GET /~antti-ville/ HTTP/1.1" 200 394 "-" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0"

Telnet

Otin Telnetillä yhteyden Apachiin komennolla:

$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.

Tämän jälkeen on mahdollisuus kirjotella kaikenlaista turhaa, mutta myös mahdollisuus ottaa yhteys vaikka omiin sivuihin, jotka tein tämän artikkelin aikana.

esimerkki@xubuntu:~$ telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /~esimerkki/index.html
Hei maailma!
Connection closed by foreign host.
esimerkki@xubuntu:~$

Eli komento näytti mitä tiedostossa luki. Näistä tuli lokitiedostoihin merkintä onnistuneesta yhdistyksestä.

127.0.0.1 - - [03/Sep/2012:22:18:43 +0300] "GET /~esimerkki/index.html" 200 13 "-" "-"

Lähteet:

Tero Karvinen, Työasemat ja tietoverkot -kurssi – http://terokarvinen.com/2012/aikataulu-%E2%80%93-tyoasemat-ja-tietoverkot-ict1tn002-33-syksylla-2012

Telnet, Wikipedia http://en.wikipedia.org/wiki/Telnet

– Jokela Antti-Ville

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Ylläpitoa,asentamista ja ohjelmien päivittämistä

Tietokonetta käyttäessä täytyy huolehtia myös järjestelmän päivittämisestä ja tietoturvan päivittämisestä. Linuxisssa järjestelmän päivittämisen voi tehdä joko graafista käyttöliittymää käyttäen tai komentopäätteessä. Ohjelmien asentaminen onnistuu myös molempia tapoja käyttäen. Tässä ohjeessa tutustuin myös ohjelmien etsimiseen komentopäätteessä.

Järjestelmän päivittäminen

Jos haluaa päivittää graafista käyttöliittymää käyttäen päivitys onnistuu valikosta järjestelmä (system) -> päivitysten hallinta (update manager). Tällöin järjestelmä päivittää automaattisesti pakettivarastot ja hakee päivitykset.

Komentopäätteessä päivittäessä kannattaa aloittaa päivittämällä pakettivarastot.

esimerkki@xubuntu:~$ sudo apt-get update

Pakettivarastoiden päivittämisen jälkeen järjestelmä voidaan päivittää. Samalla myös päivittyy tietoturvapäivitykset. Ja vaikka Linuxille ei ole viruksia,niin käyttöjärjestelmän päivittäminen on erittäin suositeltavaa. Tietoturvaan kun vaikuttaa yksittäiset ohjelmatkin eikä vain se onko viruksia.

esimerkki@xubuntu:~$ sudo apt-get upgrade

Ohjelmien etsiminen ja asentaminen päätteessä.

Micropolis

Komentopäätteessä on mahdollista etsiä ohjelmia hakusanojen mukaan. Esimerkiksi jos haluaisi pelata kaupungin rakennus peliä, voisi hakusanat olla city ja games.

esimerkki@xubuntu:~$ apt-cache search city games
libopenbabel-dev - Chemical toolbox library (development files)
libopenbabel-doc - Chemical toolbox library (documentation)
libopenbabel4 - Chemical toolbox library
junior-games-text - Debian Jr. Text Games
libchemistry-openbabel-perl - Chemical toolbox library (perl bindings)
micropolis - real-time city management simulator
micropolis-data - real-time city management simulator - data
openbabel - Chemical toolbox utilities (cli)
opencity - 3D city simulator game
python-openbabel - Chemical toolbox library (python bindings)

Hakutuloksissa ennen viivaa “-” oleva nimi on paketin nimi, jolla saa asennettua pelin. Paketin nimen perässä on lyhyt kuvaus paketista. Asensin micropolis –nimisen pelin, koska kuvaus oli kaikista paras. Toinen vaihtoehto olisi voinut olla opencity.

esimerkki@xubuntu:~$ sudo apt-get install micropolis

FreeCAD

Halusin etsiä linuxille suunnitteluohjelmaa, joka vastaisi mahdollisimman hyvin AutoCAD-ohjelmaan. Olin jo aikaisemmin kuullut FreeCAD -nimisestä ohjelmasta, joten halusin löytää ko. ohjelman. Etsiessäni suoraan ohjelman nimellä vastauksia tuli kolme.

antti-ville@baana:~$ apt-cache search freecad
freecad - Extensible Open Source CAx program (alpha)
freecad-dev - FreeCAD development files
freecad-doc - FreeCAD documentation

Asensin siis freecad-paketin ja ohjelma asentui onnistuneesti.

Bootchart

Boothchart ohjelmalla on mahdollisuus katsoa missä vaiheessa käynnistystä mikäkin ohjelma käynnistyy ja kuinka kauan tietokoneen käynnistys kestää. Ohjelma tuli vastaan kun etsin keinoa nopeuttaa Xubuntun käynnistymistä. Bootchartin loki löytyy /var/log/bootchart.

esimerkki@xubuntu:~$ apt-cache search bootchart
esimerkki@xubuntu:~$ sudo apt-get install bootchart

Lokitiedostoista tietoa tietokoneen tapahtumista

Tietokone tallentaa lokeihin muun muassa sisäänkirjautumiset ja niiden yritykset. Tarkastelin lokia, johon tallennetaan käyttöoikeuksien muutokset. Siis jos ajaa komentoa järjestelmäkäyttäjänä (sudo). Loki löytyi /var/log/auth.log sijainnista.

Lokista näkee edellä tehdyt asennukset:

xubuntu sudo:esimerkki :TTY=pts/0;PWD=/home/esimerkki;USER=root;COMMAND=/usr/bin/apt-get update
xubuntu sudo:pam_unix(sudo:session):session opened for user root by (uid=1000)
xubuntu sudo:pam_unix(sudo:session):session closed for user root

Ensimmäisenä lokitiedostosta näkee koneen nimen,xubuntu, seuraavana on pääkäyttäjän nimi, jonka jälkeen tulee sijainti ja komennon sijainti. Seuraavilla riveillä on maininta, että istunto on aloitettu pääkäyttäjälle ja että se on suljettu. Rivien alussa on myös aikaleimat, joista näkee kuinka kauan istunnot ovat kestäneet.

Jos joku muu yrittää tehdä pääkäyttäjän oikeuksia tarvittavia tehtäviä,ja laittaa salasanan väärin edes kerran niin lokiin tulee merkintä. Esimerkkinä yritin ajaa komennon sudo apt-get install nethack.Ja kun kysyttiin salasanaa painoin enter-painiketta ja lopuksi ctrl+c ,jotta salasanojen kysely loppuisi. Tässä vaiheessa tuli sitten ilmoitus, että yksi virheellinen salasana yritys. Lokissa tämä tapahtuma näkyy seuraavanlaisesti:

xubuntu sudo:pam_unix(sudo:auth):authentication failure;logname=uid=1000euid=0tty=/dev/pts/1 ruser=esimerkki rhost=  user=esimerkki
xubuntu sudo:pam_unix(sudo:auth):conversation failed
xubuntu sudo:pam_unix(sudo:auth):auth could not identify password for [esimerkki]
xubuntu sudo:esimerkki:1 incorrect password attempt;TTY=pts/1;PWD=/home/esimerkki;USER=root;COMMAND=/usr/bin/apt-get install nethack

Lokissa näkyy myös paljon muita tietoja, joiden näkyvyyttä en ollut edes ajatellut. Esimerkkinä näistä on ajoitetut ohjelmat, joita cron ajaa. Mutta löytyi myös yksi rivi,jonka tarkoitusta en saanut aivan kokonaan avattua.

Sep  2 17:19:54 xubuntu polkitd(authority=local): Registered Authentication Agent 
for unix-session:/org/freedesktop/ConsoleKit/Session112 (system bus name :1.512 [/usr/
lib/policykit-1-gnome/polkit-gnome-authentication-agent-1], 
object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)

Tästä sain selville sen verran, että polkitd -ohjelma/muu on tehnyt jotain, mutta mitä? No onneksi olen Tero Karvisen Työasemat ja tietoverkot-kurssilla niin voin kysyä häneltä tähän vastausta.

Lähteet:

Tero Karvinen, Työasemat ja tietoverkot -kurssi – http://terokarvinen.com/2012/aikataulu-%E2%80%93-tyoasemat-ja-tietoverkot-ict1tn002-33-syksylla-2012
                          Commands for Admin – http://terokarvinen.com/2008/commands-for-admin-4

– Jokela Antti-Ville

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Muutama hyödyllinen komento aloittelijalle

Aloittelijalle tulee Xubuntua ja yleensäkin Linuxia käyttäessä komentopääte jossain vaiheessa tutuksi. Seuraavaksi yritän selventää muutamalla esimerkillä komentopäätteen toimintaa ja näyttämään samalla pari kätevää komentoa.

Komentopäätteen perusteet

Päätteen avulla tietokoneelle voi tehdä mitä vain, niin hyvää kuin erittäin pahaa.
Linuxissa kaikki tiedostot on juuressa ” / “, jossa on kansiot asennuksille,lokeille ja muille tiedostoille. Tässä on havainnollistava kuva tiedostojärjestelmästä (sis. vain tärkeimmät hakemistot aloittelevalle käyttäjälle) :

/  #ns. juuri
    home/     # käyttäjien kotihakemistot,eli esim. /home/esimerkki
         esimerkki/
           Documents/ # eli jos asiakirjat tallennetaan Documents-
                        kansioon polku on /home/esimerkki/Documents

    media/    # usb-muistit ja vastaavat löytyvät täältä
    etc/      # järjestelmän asetustiedostot tulevat tänne
    bin/      # ohjelmien binäärit löytyvät täältä, jos joskus 
                tarvii muokata niitä

Oman sijainnin päätteessä saa selville pwd-komennolla. Pääte avautuu oletusarvoisesti /home/esimerkki. Eri kansioihin mennään cd -komennolla, ja edelliseen kansioon pääsee cd .. -komennolla. Kansioiden sisällön saa näkyviin ls -komennolla.

esimerkki@xubuntu:~$ pwd
/home/esimerkki
esimerkki@xubuntu:~$ ls
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
esimerkki@xubuntu:~$ cd Documents
esimerkki@xubuntu:~/Documents$ cd ..
esimerkki@xubuntu:~$ pwd
/home/esimerkki

Kansioiden teko ja uudelleen nimeäminen

Kansioiden teko päätteessa tapahtuu komennolla mkdir.Uudelleen nimeäminen tapahtuu mv -komennolla. Samalla komennolla tapahtuu tiedostojen ja kansioiden siirto. Tiedostojen poisto tapahtuu rm -komennolla, mutta poistamisessa täytyy olla erityisen varovainen, koska mitään varmistuksia ei kysytä eikä ns. roskakoria ole olemassa. Rm -komento ei oletusarvoisesti poista kansioita, mutta kirjoittaessa rm -r komento poistaa myös kansion sisältöineen.

esimerkki@xubuntu:~$ mkdir uusikansio 
esimerkki@xubuntu:~$ ls
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
uusikansio
Videos

Nimetään uusikansio uudestaan,esimerkiksi uudempikansio:ksi.

esimerkki@xubuntu:~$ mv uusikansio uudempikansio

Komennolla mv voi siis myös vaihtaa sijaintia. Siirretään uudempikansio Documents-kansioon.

esimerkki@xubuntu:~$ mv uudempikansio ./Documents
esimerkki@xubuntu:~$ cd Documents
esimerkki@xubuntu:~/Documents$ ls  #listaamalla sisällön huomaamme
uudempikansio                      #kansion siirtyneen onnistuneesti.

Tiedostojen kopioiminen tapahtuu komennolla cp.Kansioita kopioitaessa joudutaan lisäämään -r edellisen perään. Kopioimisen suhteen kannattaa myös olla varovainen, ja lukea vaikka komennon ohjesivu, man cp. Esimerkissä yllä siirretty uudempikansio kopioidaan varmuuskopio-kansioksi. Jos kansion sisällä olisi tiedostoja, nekin kopioitaisiin.

esimerkki@xubuntu:~/Documents$ cp -r uudempikansio ./varmuuskopio

 

 

Lähteet:

Tero Karvinen, työasemat ja tietoverkot -kurssi ja komentopäätteen perusteet http://terokarvinen.com/2012/aikataulu-%E2%80%93-tyoasemat- ja-tietoverkot-ict1tn002-33-syksylla-2012
http://terokarvinen.com/2009/command-line-basics-4

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

– Jokela Antti-Ville