Tehtävä H3

Apache web-palvelimen asennus, logitiedostot ja käyttäjäkohtaiset kotisivut

Tein tehtävän kotona pöytäkoneellani, jossa on mm. Intel i5-3570K prosessori, 8GB RAM-muistia ja Asus GTX 1060 (6GB) näytönohjain.



a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.

Aloitin tehtävien tekemisen klo 10.2.2020 16:30 (UTC +2). Xubuntun kello oli 14:30 (UTC +0)

Käynnistin Xubuntun (18.04.3) USB-tikulta kokeilutilassa, ja avasin Terminalin näppäinyhdistelmällä WIN + T. Seuraavaksi annoin komennon setxkbmap fi, jolla sain suomalaisen näppäinasettelun käyttööni. Päivitin uusimmat paketit komennolla sudo apt-get update, ja asensin Apasche webpalvelimenen käyttäen komentoa sudo apt-get install -y apache2.

Komennoilla sudo ufw enable ja sudo ufw allow 80/tcp käynnistin palomuurin ja avasin palomuurista portin verkkosivuja varten. Avasin selaimen ja kirjoitin osoiteriville ”localhost”, jolloin Apachen testisivu aukesi, ja totesin palvelimen asentuneen onnistuneesti.

Apachen testisivu avautui selaimessa.

Kirjoitin selaimen osoiteriville localhost/~xubuntu, millä testasin käyttäjäkohtaisen sivun toimivuutta. Selain antoi virheilmoituksen 404 Not Found.

Käyttäjän xubuntu kotisivu ei auennut.

Annoin komentokehotteeseen komennon sudo a2enmod userdir, mikä mahdollisti käyttäjäkohtaisten sivujen luomisen. Apache piti vielä käynnistää uudelleen komennolla sudo systemctl restart apache2, jotta asetus tuli voimaan. Kirjoitin selaimen osoiteriville jälleen localhost/~xubuntu. Nyt selain antoi virheilmoituksen 403 Forbidden, minkä tulkitsin tarkoittavan käyttäjäkansiomoduulin olevan toiminnassa (virheilmoitus muuttui 404 -> 403, eli userdir -moduulin asennuksella oli jokin vaikutus).

Userdir -moduulin käyttöönoton jälkeen selaimen virheilmoitus muuttui.

Tässä vaiheessa aloin luomaan käyttäjän sivuja. Menin käyttäjän kotikansioon (tässä tapauksessa /home/xubuntu) ja loin sinne uuden kansion nimeltä public_html. Komennolla echo ”Kayttajan testisivu”|sudo tee /home/xubuntu/public_html/index.html tein käyttäjälle xubuntu sivun, jossa oli teksti ”Kayttajan testisivu”. Testatakseni sivun toimivuutta, avasin jälleen selaimen ja kirjoitin osoiteriville localhost/~xubuntu. Testisivu aukesi selaimessa, joten totesin tehtävän suoritetuksi.

Käyttäjän xubuntu kotisivu aukesi selaimella.

b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.

Logeissa olikin jo valmiiksi erilaisia rivejä liittyen edellisen tehtävän kotisivutesteihin.

Epäonnistunut sivulataus

127.0.0.1 - - [10/Feb/2020:15:07:27 +0000] "GET /~xubuntu HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

127.0.0.1 On kaiketi localhostin osoite

[10/Feb/2020:15:07:27 +0000] Logimerkinnän aikaleima, +0000 on käsittääkseni sama kuin UTC +0

GET /~xubuntu HTTP/1.1 Selain hakee ilmeisesti käyttäjän xubuntu kotisivua

404 488 Selaimen antama virhekoodi 404 voi johtua monesta eri syystä. Selain ei saa ladattua sivua. Tässä tapauksessa käyttäjän xubuntu sivuja ei vielä ollut olemassa. 488 on latauksen koko.

Mozilla/5.0 Selaimen kehittäjä

(X11; Ubuntu; Linux x86_64; rv:68.0) Käyttöjärjestelmä jossa Firefox pyöri

Gecko/20100101 Moottori jota Firefox käyttää

Firefox/68.0 Käytty selain ja sen versionumero

Onnistunut sivulataus

127.0.0.1 - - [10/Feb/2020:15:32:25 +0000] "GET /~xubuntu/ HTTP/1.1" 200 305 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

Tässä logirivissä ei ollutkaan muuta erilaista kuin koodi 200 305.
200 Sivulataus onnistui

305 on latauksen koko


d) Tee virhe johonkin Apachen asetustiedostoon, etsi ja analysoi tuo rivi. Etsimiseen sopivat esimerkiksi Apachen omat lokit, syslog sekä ‘apache2ctl configtest’.

Minulta meni hetki löytää Apachen asennussijainti. Lopulta kuitenkin löysin sen sijainnista /etc/Apache2. En oikein tiennyt, mitä lähtisin muokkaamaan. Lopulta arvoin vain jonkin tiedoston ja sieltä yhden asetusrivin. Avasin sudoeditillä tiedoston apache2.conf, josta poistin asetusrivin ”Include ports.conf”

Käynnistin Apachen uudelleen komennolla systemctl restart apache2, jotta muokkaamani asetus tulisi voimaan. Sain kuitenkin komentokehotteessa välittömästi virheilmoituksen.

Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

Tämän jälkeen navigoin itseni tiedostoon /var/log/syslog löytääkseni mahdollisia logimerkintöjä tapahtuneesta. Ja olihan logissa merkintöjä…

Feb 10 17:59:00 xubuntu systemd[1]: Stopping The Apache HTTP Server...
Feb 10 17:59:00 xubuntu apachectl[7958]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Feb 10 17:59:00 xubuntu systemd[1]: Stopped The Apache HTTP Server.
Feb 10 17:59:00 xubuntu systemd[1]: Starting The Apache HTTP Server...
Feb 10 17:59:00 xubuntu apachectl[7963]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Feb 10 17:59:00 xubuntu apachectl[7963]: no listening sockets available, shutting down
Feb 10 17:59:00 xubuntu apachectl[7963]: AH00015: Unable to open logs
Feb 10 17:59:00 xubuntu apachectl[7963]: Action 'start' failed.
Feb 10 17:59:00 xubuntu apachectl[7963]: The Apache error log may have more information.
Feb 10 17:59:00 xubuntu systemd[1]: apache2.service: Control process exited, code=exited status=1
Feb 10 17:59:00 xubuntu systemd[1]: apache2.service: Failed with result 'exit-code'.

Rivien alussa on aikaleima sekä käyttäjän nimi.

systemd[1] Linuxin järjestelmä, joka mm. vastaa eri toimintojen käynnistämisestä. https://www.linode.com/docs/quick-answers/linux-essentials/what-is-systemd/

apachectl[7963] apachectl toimii ilmeisesti jonkinlaisena Apachen käyttöliittymänä.
https://www.commandlinux.com/man-page/man8/apachectl.8.html
7963:sta en löytänyt tietoa.

AH00558 Ei löydä serverin nimeä
https://bobcares.com/blog/apache-error-ah00558/

Logitekstien perusteella Apache ei tainnut käynnistyä ollenkaan. Yritin avata selaimella käyttäjän xubuntu kotisivut, mutta selain antoi 404 errorin. Korjasin muuttamani asetuksen ja käynnistin Apachen uudelleen. Kotisivut aukesivat ja kaikki vaikutti toimivan muutenkin normaalisti.

Olin käyttänyt tähän mennessä tehtävien tekemiseen yli neljä tuntia, joten jätin loput kaksi tehtävää seuraavalle päivälle.

m) Vaihda Apachen oletussivu. Eli laita palvelimen etusivulla (ilman tildeä) näkyvä sivu niin, että alkuperäinen on jonkun käyttäjän kotihakemistossa ja voit muokata sitä ilman pääkäyttäjän oikeuksia.

Aloitin tehtävän tekemisen kello 11.2.2020 klo 20:00 tekemällä tehtävän a) uudelleen.

Tein kansioon /home/xubuntu/publicSite/ tiedoston index.html johon kirjoitin ”Uusi aloitussivu”. Tämän jälkeen navigoin kansioon /etc/apache2/sites-available/ ja loin sinne tiedoston komennolla sudoedit testataan.com.conf. Tiedostoon kirjoitin alla olevan kuvan mukaiset rivit.

testataan.com.conf

Seuraavaksi annoin komentokehotteeseen komennon sudo a2ensite testataan.com.conf, jolla sain kyseisen asetustiedoston asetukset voimaan. (oikeasti asetukset eivät ole vielä tässä vaiheessa voimassa). Kirjoitin vielä komennon sudo a2dissite 000-default.conf, joka poisti käytöstä oletussivuasetukset. Jotta molempia asetustiedostoja koskevat komennot astuisivat voimaan, oli apache käynnistettävä uudelleen komennolla sudo systemctl restart apache2.

Avasin selaimen ja kirjoitin osoiteriville ”localhost” jolloin käyttäjälle xubuntu tekemäni index.html sivu aukesi. Totesin tehtävän suoritetuksi.

Apachen oletussivu vaihdettu käyttäjän sivuksi.


i) Kuinka monta eri HTTP Status:ta (200, 404, 500…) saat aiheutettua lokeihin? Selitä, miten aiheutit tilanteet ja analysoi yksi rivi kustakin statuksesta.

Yritin kikkailla monella eri tavalla, mutta en saanut luotua uusia koodeja logeihin. Aiemmin analysoin koodit 200 ja 404. Löysin edellisen päivän logitiedostoista 301, 303 ja 403 koodit.

127.0.0.1 - - [10/Feb/2020:15:17:37 +0000] "GET /~xubuntu HTTP/1.1" 403 491 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 

Tämä virhe tuli siinä vaiheessa, kun olin ottanut userdir-moduulin käyttöön, ja kirjoitin selaimen osoiteriville localhost~xubuntu. En ollut vielä luonut käyttäjälle sivuja, joten selain ei niitä voinut ladata. Wikipedian mukaan serveri ymmärtää pyynnön, mutta ei voi avata sivua (koska sivua ei ole).

3xx statuskoodit liittyvät Wikipedian mukaan osoitteen uudelleenohjaukseen. (”This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.”)

127.0.0.1 - - [10/Feb/2020:15:32:25 +0000] "GET /~xubuntu HTTP/1.1" 301 572 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 
127.0.0.1 - - [10/Feb/2020:15:40:43 +0000] "GET /~xubuntu/ HTTP/1.1" 304 180 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 

En saanut suoritettua tätä tehtävää toivomallani tavalla. Etsin statuskoodeista tietoa googlettamalla eri lähteitä, mutta en ymmärtänyt, mitä niissä asiasta kerrottiin. Ehkä olisi auttanut, jos olisin saanut luotua tietoisesti jonkin statuskoodin logitietoihin, ja osannut yhdistää sen tapahtuneeseen.

Lopetin tehtävän suorittamisen. Kaiken kaikkiaan käytin aikaa H3:n tekemiseen ainakin seitsemän tuntia.

Lähteet

Jätä kommentti

Design a site like this with WordPress.com
Aloitus