Linux palvelimet ICT4TN021-3010 Harjoitus 3

Apache2 Web Server


Tehtävän suorittaminen aloitettu 6.2.2020 klo. 18.20

Laitteen tiedot, jolla tehtävä suoritettiin:

  • CPU: Intel i5-4670k
  • GPU: Nvidia GTX 1060 6 Gt VRAM
  • RAM: 16 Gt DDR3
  • Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03
a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.
Apachen asennus

Aloitin asentamalla Apachen antamalla terminaalissa komennot ”sudo apt-get update” ja ”sudo apt-get install apache2”. Testasin palvelimen toimivuutta avaamalla Firefoxin ja laittamalla hakukenttään ”localhost”, jolloin selaimeen avautui Apachen default-sivu. Tästä voin päätellä asennuksen onnistuneen.

Tämän jälkeen laitoin vielä palomuurin päälle komennolla ”sudo ufw enable” ja tein siihen reiän nettisivua varten komennolla ”sudo ufw allow 80/tcp”.

Käyttäjien kotisivujen luonti

Aloitin käyttäjien kotisivujen luonnin pistämällä päälle userdir-moduulin komennolla ”sudo a2enmod userdir”, jonka jälkeen käynnistin Apachen myös uudelleen komennolla ”sudo systemctl restart apache2”, jolloin tekemäni muutos tuli voimaan. Kirjoittamalla Firefoxin osoitekenttään localhost/~xubuntu/, esille tuli sivu, joka antoi 403 Forbidden -virheen.

Tämä johtunee siitä, että en ole vielä tehnyt varsinaista nettisivua käyttäjälle. Navigoin itseni kansioon /home/xubuntu, jonne voin tehdä haluamani kansion ja tiedostot nettisivua varten. Loin kansioon ”public_html” nimisen kansion, jonka sisään loin vielä ”index.html” nimisen tiedoston. Kyseiseen tiedostoon kopioin lyhyen html5-pohjan osoitteesta: http://terokarvinen.com/2012/short-html5-page, jonka jälkeen tein pohjaan vielä haluamani muutokset. Tallensin muutokset ja päivitin selaimen välilehden, jossa 403 error aikaisemmin oli. Voilà!


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

Siirryin takaisin root-kansioon, josta komennolla ”cd /var/log/apache2” pääsin kansioon, jossa Apachen lokitiedostot olivat. Tarkastelin ensin access.logia komennolla ”tail access.log”, jolloin sain kymmenen viimeisintä tapahtumaa lokitiedostosta. Analysoin viimeisimpää riviä. locahost IP-osoite rivin alussa kertoo pyynnön lähteen, tämän jälkeen seuraa timestamp hakasuluissa. ”GET” todennäköisesti merkitsee pyyntöä ja sen seuraama /~xubuntu/ pyynnön kohdetta. HTTP/1.1 määrittää kyseisen protokollan olevan käytössä. Luku 200 kuvaa onnistunutta toimintoa ja luku 507 vastauksen kokoa tavuissa (mikäli muistin oikein…). Loppuosa rivistä kertoo tietoja pyynnön tehneen laitteen selaimesta ja käyttöjärjestelmästä.

Seuraavaksi analysoin epäonnistunutta sivulatausta error.log-tiedostosta. Viimeisimmällä sivulla on mitä todennäköisimmin aikaisempi 403 Forbidden virhe. Jälleen kerran aluksi rivillä on tapahtuman timestamp. Seuraavissa kaksissa hakasuluissa on todennäköisesti virheen tyyppi ja sen tunnistuskoodeja (en jäänyt selvittämään tätä kohtaa ajan takia sen tarkemmin). Tämän jälkeen tulevissa hakasuluissa kerrotaan virheen tuottaneen clientin IP-osoite. Tämän jälkeen seuraa vielä yksi virhekoodi ”AHO1630”, ja plaintextillä virheen syy (joka tässä kontekstissa tarkoittaa todennäköisimmin sitä, että verkkosivun tiedostoja ei löytynyt halutusta/haetusta sijainnista).


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

Navigoin itseni sijaintiin, josta Apachen asetustiedostot löytyvät komennolla ”cd /etc/apache2”, josta siirryin vielä ”mods-available/” kansioon. Täällä tein muutoksen userdir.conf-tiedostoon komennolla ”sudoedit userdir.conf” ja lisäsin tiedostoon tekstin ”ASDASDASD”.

Tämän jälkeen ajoin komennon ”apache2ctl configtest”, joka palautti virheellisen asetustiedoston sijainnin ja ongelmakohdan plaintextinä.

Tämän jälkeen korjasin tiedoston ennalleen ja ajoin configtestin uudestaan, jolloin sain vastauksen ”Syntax OK”.


Tauko 19:40-20:00

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

Sain aikaisemmissa tehtävissä aiheutettua lokeihin ja analysoitua jo statukset 403 sekä 200. Kirjoittamalla väärän osoitteen (esim. localhost/~xubuntuu/ (yksi u-kirjain liikaa)) sain aiheutettua statuksen 404 Not found. access.log-tiedostossa statuksen rivi näyttää miltei identtiseltä aikaisempien statuksien kanssa, mutta status-koodin tilalla on 404 ja vastauksen koko on myös eri suuruinen.


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.

Navigoin itseni jälleen kansioon, jossa Apachen asetustiedostot sijaitsevat komennolla ”cd etc/apache2/”, josta siirryin vielä kansioon ”sites-available/”. Loin tänne uuden .conf-tiedoston sudoedit-komennolla, johon kirjoitin kuvassa näkyvän sisällön.

Tämän jälkeen laitoin vielä uuden .conf-tiedoston päälle komennolla ”sudo a2ensite testih3.com.conf” ja otin samalla default-sivun .conf-tiedoston pois komennolla ”sudo a2dissite 000-default.conf”. Tämän jälkeen käynnistin Apache-demonin vielä uudelleen komennolla ”sudo systemctl reload apache2”, jonka jälkeen käyttäjän sivu näkyi pelkällä ”localhost”-osoitteella.


n) Laita kaksi nimeä samaan IP-osoitteeseen. Voit simuloida nimipalvelun toimintaa /etc/hosts -tiedoston avulla. Eli niin, että samalla palvelimella osoitteella teronlenkkisivu.com tulee eri sisältö kuin osoitteella opipentest.com.

Aloitin luomalla toisen kansion ”SiteKakkonen” /home/xubuntu sijaintiin, jonka sisälle loin myös uuden index.html-tiedoston. Tämän jälkeen loin Apachen sites-available kansioon toisen .conf-tiedoston, johon kirjoitin kuvan mukaisen sisällön.

Tämän jälkeen laitoin .conf tiedoston päälle komennolla ”sudo a2ensite sitekakkonen.com.conf”. Käynnistin Apache-demonin uudestaan, jotta muutokset tulisivat voimaan. Tämän jälkeen lisäsin /etc/hosts -tiedostoon kuvan mukaiset IP-osoitteet ja domainit.

Jolloin sain molemmat sivut näkymään omien domainiensa alla.

Tehtävä suoritettu 6.2.2020 klo. 21:20


Muokkaukset:

23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.

Lähteet

Karvinen, Tero 2020: Aikataulu, h3. http://terokarvinen.com/2020/aikataulu-linux-palvelimet-ict4tn021-3010-torstai-aamu-alkukevat-2020-5-op#h1, Luettu 6.2.2020

Karvinen, Tero 2006: Raportin kirjoittaminen. http://terokarvinen.com/2006/raportin-kirjoittaminen-4, Luettu 6.2.2020

Karvinen, Tero 2012: Short HTML5 page. http://terokarvinen.com/2012/short-html5-page, Luettu 6.2.2020

The Apache Software Foundation: Name-based Virtual Host Support. https://httpd.apache.org/docs/2.4/vhosts/name-based.html, Luettu 6.2.2020

Gratschew, Tommy 31.1.2020: Linux palvelimet ICT4TN021-3010 Harjoitus 2. https://tgratschew.news.blog/2020/01/31/linux-palvelimet-ict4tn021-3010-harjoitus-2/, Luettu 6.2.2020

4 thoughts on “Linux palvelimet ICT4TN021-3010 Harjoitus 3

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website with WordPress.com
Get started
%d bloggers like this: