Palvelinten hallinta / Oma moduli

Kurssi Palvelinten hallinta – Tero Karvinen

http://terokarvinen.com/

oma github – tili: https://github.com/ainetdinkirik

Lopputehtävänä oman modulin luonti:

Teen oman modulin, joka asentaa Golden Dict sanakirja-ohjelman, jonka kautta voi käyttää useita eri sanakirja-kirjastoja. Asennan GCIDE-kirjaston tässä modulissa.

Aloitan modulin luonnin “helloworld – periaatteella” eli teen esin pienet askeleet yksitellen, jonka jälkeen luon modulin. Asennan aluksi Xubuntu 16.04.03 – try without install – versioon Golden Gitin:

installaa golden dictin

Ohjelma asentuu ja kokeilen sen toimivuutta komennolla: “goldendict”, jolloin avautuu:

goldendict muokkaamaton

F3 painikkeella aukeaa ikkuna, josta siirrytään kohtaan “Dictionaries”, jossa näkyy käytössä olevat kirjastot:

golden dict ei lisättyä kirjastoa

Ja kun en ole tässä vaiheessa vielä lisännyt ylimääräisiä kirjastoja näkyy oletuksena vain “English Wikipedia”

Asennan GCIDE – kirjaston:

installaa gcide

Tämän jälkeen avaan uudelleen Golden Dictin. Tässä käsin tehdyssä vaiheessa ei Golden Dict automaattisesti ota GCIDE-kirjastoa käyttöön vaan se pitää käsin hakea seuraavan kuva mukaan. (Jatkossa modulin tehtyä tämä vaihe putoaa ja Golden Dict ottaa automaattisesti kirjaston käyttöön. Näkyy myöhemmin raportissa).

Kirjaston haku

Tämä näkymä aukeaa Golden Dictin avatessa ja painaessa F3. Kohdasta “Add” painamalla päästään hakemaan ladattu kirjasto ja se löytyy polusta: “/usr/share/dictd” (Tämä vaihe poistuu siis myöhemmässä vaiheessa, modulin automatisoituessa). Tämän jälkeen klikataan “Rescan now” ja “Dictionaries” välilehti näyttää seuraavalta:

kirjaston haettu

Testiksi haen sanalla “water” sanakirjasta tietoa ja onnistunut haku näkyy alla:

haettu sana

 

Nyt on käsintehty version onnistunut ja luon modulin, joka hoitaa asennukset. Init.pp tiedosto näyttää seuraavalta:

iniiitti .png

Teen github-tililleni uuden repositoryn nimellä “golden-dict”, jonne työnnän modulini: https://github.com/ainetdinkirik/golden-dict

Otan tässä vaiheessa tyhjän Xubuntu 16.04.03 käyttöön, asennan gitin ja puppetin ja haen modulini kloonaamalla sen repostani komennolla “git clone https://github.com/ainetdinkirik/golden-dict.git”. Siirrän kansiot “modules” sekä “manifests” hakemiston “/etc/puppet/” alle ja ajan modulin komennolla: “sudo puppet apply /etc/puppet/manifests/site.pp”

moduli toimii

Nyt minulle asentuu Golden Dict ja GCIDE – kirjasto automaattisesti ja ne synkkaavat saman tien yhteen, eli tässä vaiheessa ei tarvitse tehdä ohjelmalle mitään muutoksia. Komennolla “goldendict” aukeaa ohjelma ja homma pelaa:

testattu moduli goldendict

 

 

Palvelinten hallinta H5

Kurssi – Palvelinten hallinta – Tero Karvinen

http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5

Tämän viikon kotitehtävät tehty yhdessä opiskelijakolleigoiden:

Mikko Hyvärinen – https://mikkohyvarinen.wordpress.com/

Janne Alhonen – https://testwordpresscom5123.wordpress.com/kotitehtava/

Github – tilini:
https://github.com/ainetdinkirik

Tehtävät tehty labraluokassa.

Tämän viikon tehtävät:

h5.
a) Asenna Puppetin orjaksi vähintään kaksi eri käyttöjärjestelmää. (Tee alusta, pelkkä tunnilla tehdyn muistelu ei riitä).
b) Säädä Windows-työpöytää. Voit esimerkiksi asentaa jonkin sovelluksen ja tehdä sille asetukset.

a)

Aloitimme tekemällä Jannen koneesta xubuntu puppetmasterin. Tehty H2 – ohjeen mukaan:

https://kirikainetdin.wordpress.com/2017/11/05/palvelinten-hallinta-h2/

Valitsimme Jannen master-koneen nimeksi “jannemaster.local”, koska kaikki kolme konettamme sijaitsivat labraluokassa. Teimme Jannen koneelle testiksi “helloFromMaster” – moduli ajettavaksi orjan koneelta.

Teimme Mikon koneesta ensimmäisen orjan xubuntu – käyttöjärjestelmällä.

Laitettu Mikon puppet.conf – tiedostoon tiedo masterista, joka on Jannen kone:

puppetconf

Pingattu testiksi onnistuneesti Mikon xubuntu-orjalta Jannen masteria sekä cat – komennolla katsottu modulin sisältö onnistuneesti:

mikko-tmp-onnistui

Puppetmasterilla asennettiin ssh ja tehtiin asetuksiin muutokset niin, että confit ajettaessa orjan koneelta käyttää se porttia 8888 oletuksena olevan 22 sijaan:

ssh connection refused

Kuten kuvasta näkee ei yhteyden ottaminen onnistu oletusportilta.

puppetconf

Portti on kuvan mukaisesti vaihtunut orjan hakiessa asetukset masterilta.

Teimme Kirikin koneesta windows-orjan.

Windows – tikku tehtiin edellisellä opetuskerralla, jonka laitoin sammuneeseen tietokoneeseen ja käynnistettäessä valitsin F9. Pääsin bootti – valikkoon, josta valitsin windows – tikkuni. Tämän jälkeen pääsin asentamaan windowsia. Annoin koneelle nimeksi “orja” ja loin vahvan salasanan. Kaikkiin kysyttyihin asennustietoihin, joissa pyydettiin mm. lupaa koneen mikrofonin käytölle valitsin “ei”.

Windows asentui, jonka jälkeen pois “User account control settings” pois käytöstä:

UAC asennukset.PNG

Tässä kohtaa käynnistin tietokoneen uudelleen. Muutin puppet.confeihin windowsilla jannen koneen nimen hakemistosta “C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf” Conffit muokataan notepadilla järjestelmänvalvojana:

puppetconffit windows mikkoP

Sitten hain puppetista version: https://downloads.puppetlabs.com/windows/puppet-3.8.5-x64.msi

Asensin puppetin, jonka jälkeen latasin Bonjour:n, jotta saisimme .local yhteyden toimimaan. Bonjour asennetaan järjestelmänvalvojana. Tämän jälkeen pystyin pingaamaan onnistuneesti Jannen master-konetta:

Ping jannemaster

Tässä vaiheessa avasin command promptin järjestelmänvalvojana ja ajoin komennon “puppet agent -tdv”

Nyt oli Jannen vuoro ajaa komento “sudo puppet cert –list”, jolla se haki hyväksymättömät sertifikaatiot. Sieltä löytyi minun koneeni tiedot, jotka Janne hyväksyi komennolla “sudo puppet cert –sign ja koneen tiedot”

Tässä vaiheessa minun koneella ajettiin komento “puppet agent -tdv” uudelleen ja sertifikaatiot olivat hyväksyttyinä ja yhteys rullasi xubuntu puppetmasterin ja windows – orjan välillä.

Jannen koneella luotiin “hellowindows” – tiedosto ajettavaksi windows – koneelta. hellowindows

Jannen koneella ajettiin komento “sudo service puppetmaster restart” ja minun Windows – koneella komento “puppet agent -tdv”.

Ajo onnistui ja lopputoloksena hellotero – tiedosto löytyi C:/ – polun juuresta:

heheii helloutero

 

b)

Jannen koneella teimme modulin “class gedit”

vlcasennus

Joka muutettiin lopulta “class vlc”

moduli ajettiin windows – koneella ja lopputuloksena asentui windowsille toimiva vlc – ohjelma:

VLC asennettu

Palvelinten hallinta H4

Kurssi – Palvelinten hallinta – Tero Karvinen

http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5

Tämän viikon kotitehtävät tehty yhdessä opiskelijakolleigoiden:

Mikko Hyvärinen – https://mikkohyvarinen.wordpress.com/

Janne Alhonen – https://testwordpresscom5123.wordpress.com/kotitehtava/

Github – tilini:

https://github.com/ainetdinkirik

Harjoitusten tekoon käytetty lähteenä Joona Leppälahden ohjetta:

https://github.com/joonaleppalahti

Tehtävät tehty labraluokassa.

Tämän viikon tehtävät:

h4.

a) Kokeile Ansible

b) Kokeile Salt:tia

Seuraavalle tunnille 2 tyhjää USB-tikkua mukaan.

Mieti, minkä oman modulin / projektin haluat tehdä tällä kurssilla.

Aloita kertaamaan kurssikirjallisuutta kokeeseen: tunnit, Puppet 3.8 Reference Manual, Puppet Cookbook.

a)
Teimme Jannen koneesta masterin ja Mikon ja Kirikin koneista orjat. Kaikille koneille asensimme Ansiblen komennolla:
“sudo apt-get install ansible”
Masterin koneen ansiblen hosts-tiedostoon päivitimme orjien koneiden IP:t komennolla:
“sudoedit /etc/ansible/hosts”, [test] osion alle.
ansiblehoststest
Tämän jälkeen asensimme kaikille koneille ssh:n komennolla:
“sudo apt-get install ssh”
Masterin koneella lisäsimme julkisen avaimen orjien koneille komennoilla:
“ssh-keygen -t rsa”
“ssh-copy-id xubuntu@172.28.171.50”
“ssh-copy-id xubuntu@172.28.172.49”
Tämän jälkeen testasimme masterin koneelta orjien pingaamisen:
ansibletestpingcomplete
Pingaaminen onnistui.
Playbook
Seuraavaksi kirjoitimme masterin koneella YAML-formaatissa olevan ohjeen, joka määrittää orjien tehtävät. Ensiksi pelkästään pingaamista varten komennolla:
“sudoedit /etc/ansible/apache.yml” ja tiedostoon sisälle:
playbookapache
Playboot ajettiin komennolla:
playbookping'
Ja pingaamisen onnistumisen jälkeen koitimme asentaa apachen orjakoneille muokkaamalla YAML-tiedostoa:
ansibleapachefiel
Ja asennus onnistuu alla olevan kuvan mukaisesti:
apachenasennusorjille
Testasimme vielä molemmilla koneilla apachen toimivuutta:
Skreensot apache
localhosttestsuccess
b)
Asensimme masterin koneelle salt-masterin ja orjien koneelle salt-minionin komennoilla:
“sudo apt-get install salt-master”
sekä
“sudo apt-get install salt-minion”
Masterin koneella muokkasimme /etc/hosts tiedostoa komennolla
“sudoedit /etc/hosts”
Ja tiedostoon masterin IP-osoite ja nimi:
hostmastername
Tämän jälkeen muokkasimme tiedostoa salt/minion masterin IP:llä komennolla:
“sudoedit /etc/salt/minion” jonne:
Miiikkkoo Peeeee
Tämän jälkeen tarkistimme masterin koneella tunnistusavaimet komennolla:
“sudo salt-key -F master”:
saltkeyaccepted.png
Jonka jälkeen kommennolla:
“sudo salt-key -a”
Hyväksyttiin hyväksymätön avain. Ja pingasimme orjaa onnistuneesti:
saltpingAvaimet
Onnistumisen jälkeen asensimme testin vuoksi Jannen master-koneelta minun orja-koneelle kolme ohjelmaa: Gimp, Vlc sekä tree:

gimpasennussalttreeasennus

Ja vlc komennolla:

“sudo salt xubuntu pkg.install vlc

Ja onnistuneet tulokset löytyvät orjan koneelta:

Gimp asennus onnistunut

vlc asennettu

tree asennettu

H3 Palvelinten Hallinta

 

Kurssi Palvelinten Hallinta – Tero Karvinen – http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5

Käytetyt lähteet:

http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine

https://github.com/mhyvarinen

https://github.com/TatuE

 

Kotitehtävät tälle viikolle:

h3.
a) Asenna useita orjia yhteen masteriin. Ainakin yksi rauta- ja useampia virtuaalisia orjia.
b) Kerää tietoa orjista: verkkokorttien MAC-numerot, virtuaalinen vai oikea… (Katso /var/lib/puppet/)
c) OrjaSkripti: Tee skripti, joka muuttaa koneen Puppet-orjaksi tietylle masterille. Voit katsoa mallia Tatun tai Eemelin ratkaisuista.

Tehtävät tehty yhdessä opiskelijakollegoiden Janne Alhonen sekä Mikko Hyvärinen kanssa. Mikko toimi “master” – koneena ja Kirik “rautaorja2” – koneena. Kaikkia koneita ja virtuaalikoneita hallittu kuitenkin yhdessä ja tehtävien kohdat on tehty yhdessä.

 

a)

Muutettu Mikon koneen nimi “master” – nimeksi, joka toimii tehtävässä Masterin roolissa ja Kirikin koneeksi “rautaorja2”, joka toimii vaadittuna fyysisenä koneena eli rautaorja.

“sudo hostnamectl set-hostname master”

ja hosts tiedostoon tehty master – IP määritykset

“sudoedit /etc/hosts”

eka kohta

Orjalle määritykset nimeen “rautaorja2” ja IP – määrityksissä masterin IP – osoitteen lisäksi 127.0.1.1 perään “xubuntu rautaorja”

Seuraavaksi asensimme master – koneelle puppetmasterin komennolla

sudo apt-get install -y puppetmaster”

Tässä kohtaa pysäytimme puppetmasterin komennolla:

“sudo service puppetmaster stop”

Ja muokkasimme puppet.conf tiedostoa komennolla:

sudoedit /etc/puppet/puppet.conf

Ja tietoihin lisäykset:

“dns_alt_names = puppet, master, puppet.master”

Tämän jälkeen vuorossa puppetmasterin käynnistys komennolla:

sudo service puppetmaster start

Orjalle asensimme Puppetin komennolla:

Sudo apt-get install puppet”

Ja muutokset puppet conffeihin komennolla:

sudoedit /etc/puppet/puppet.conf

Ja tiedostoon lisäys:

“[agent]

server = master”

Puppetin uudenlleenkäynnistys ja enablointi:

“sudo service puppet restart”

“sudo puppet agent – – enable”

Tämän jälkeen listasimme ja signeerasimme cert listin avulla masterin koneella:

“sudo puppet cert – – list”

“sudo puppet cert –sign rautaorja2.tielab.haaga-helia.fi”

Jonka jälkeen orjalla käydään ajamassa cert list komenton:

“sudo puppet cert – – list”

Nyt master ja rautaorja2 ovat yhteyksissä ja luomme masterin koneella helloworld – modulin menemällä masterin koneella:

“cd /etc/puppet”

Ja luomalla kansion:

“sudo mkdir -p manifests/ modules/helloworld/manifests/”

Jonne tiedosto site.pp komennolla:

“sudoedit manifests/site.pp”

Tiedostoon sisälle:

“include helloworld”

Ja ajoimme teimme modulitiedoston init.pp komennolla:

“sudoedit modules/helloworld/manifests/init.pp”

Tiedostoon sisälle koodinpätkä:

“class helloworld {
file { ’/tmp/helloFromMaster’:
content => ”Harjoitus 3 testi”
}
}”

Komento ajettiin masterin koneella:

“sudo puppet apply /etc/puppet/manifests/site.pp”

Tämän jälkeen testattu helloworldia rautaorjan koneella komennolla:

rautaorja helloworld testi.png

Ja kuvassa näkyy onnistunut testi.

Tämän jälkeen halusimme tehdä saman kahdella virtuaalikoneella, joten asensimme vagrant virtualboxin komennolla:

sudo apt-get -y install vagrant virtualbox”

Asennuksen jälkeen komennot:

“vagrant init bento/ubuntu-16.04”

“vagrant up”

“vagrant ssh”vagrant ssh.png

Ja kuten kuvassa näkyy, alhaalla onnistunut virtuaalikoneen käynnistys.

Koska halusimme kaksi virtuaalikonetta muokkasitte Vagranfileä komennolla:

“nano Vagrantfile” 

Ja tiedoston tiedot korvataan Tero Karvisen sivuilta löytyvillä koodinpätkillä:

http://terokarvinen.com/2017/multiple-virtual-computers-in-minutes-vagrant-multimachine

# http://TeroKarvinen.com/
Vagrant.configure(2) do |config|
config.vm.box = “bento/ubuntu-16.04”

config.vm.define “slave01” do |slave01|
slave01.vm.hostname = “slave01”
end

config.vm.define “slave02” do |slave02|
slave02.vm.hostname = “slave02”
end
end”

Jonka jälkeen taas komento:

“vagrant up”

ja nyt pystyimmekin ottamaan yhteyden valitsemaan koneeseen komennolla:

“vagrant ssh slave01”

Koneen käynnistyttyä teimme sille samat toimenpiteet, kuin rautaorjalle, jonka jälkeen sama toistettiin slave02. Näin master – koneella on yksi rautaorja- ja kaksi virtuaaliorjakonetta.

cert listit.png

Yllä näkyy cert listillä vielä myöhemmin skriptin avulla luotu kolmas virtuaaliorja sekä nuo aikaisemmin luodut orjat.

b)

Yritimme eri keinoilla päästä lukemaan /var/lib/puppet/” sisältöä tuloksetta. Käytimme tehtävässä komentoja “cd, -tail, cat”. Saimme koneiden cert listin kautta MAC osoitteet esille:

cert listit

c)

Loimme Mikon master – koneella skriptin, jolla asentaa orja suoraan masterin alaisuuteen. Käytimme opiskelija Tatu Erkinjuntti malliskriptiä, jota muokkasimme omiin tarpeisiimme sopivaksi:

https://github.com/TatuE

Luomamme skriptit löytyvät Mikon githubtililtä:

https://github.com/mhyvarinen

Skripti, joka tarvitaan orjan asennukseen:

https://raw.githubusercontent.com/mhyvarinen/slavescript/master/orjuuttaja.sh

sudo apt-get update

sudo apt-get install -y puppet git

git clone https://github.com/mhyvarinen/orjuuttaja.git

sudo cp -r orjuuttaja /etc/puppet/modules/

cd /etc/puppet/

sudo puppet apply –modulepath modules/ -e ‘class {“orjuuttaja”:}’

sudo puppet agent –enable

sudo service puppet restart

echo ” ”
echo “Orjuutus valmis”
echo ” ”

Skriptin läpiviemisen jälkeen täytyy orjan /etc/hosts/” tiedostoon muokata masterin IP – osoite ja hostname sekä syöttää komennot:

“sudo service puppet restart”

“sudo puppet agent –enable”

suorittaa cert –list komennot orjalla sekä masterilla.

Palvelinten hallinta H2

Kurssi Palvelinten hallinta – Tero Karvinen – http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5

Tehtävissä käytetty apuna toisen, saman kurssin opiskelijan Rasmus Ekmanin tekemiä ohjeita – https://rasmusekmanblog.wordpress.com/2017/11/02/h2-palvelinten-hallinta-linux/

sekä Eemeli Aaltosen skriptiä osoitteesta – https://github.com/poponappi/essential-tools

H2 b – kohta tehty yhdessä toisen opiskelijan Janne Alhosen kanssa – https://testwordpresscom5123.wordpress.com/

Minun github – tili löytyy – https://github.com/ainetdinkirik

Tehtävien teossa käytetyt koneet:

a) Oma läppäri sekä muistitikku, jotka kuvailtu aiemmissa harjoituksissa.

b) Haaga-Helian labraluokan tietokoneet yhteistyössä Janne Alhosen kanssa

 

Viikon tehtävänanto:

h2.

a) Gittiä livenä: Tee ohjeet ja skriptit, joilla saat live-USB -tikun konfiguroitua hetkessä – ohjelmat asennettua ja asetukset tehtyä.

b) Kokeile Puppetin master-slave arkkitehtuuria kahdella koneella. Liitä raporttiisi listaus avaimista (sudo puppet cert list) ja pätkä herran http-lokista (sudo tail -5 /var/log/puppet/masterhttp.log).

 

a)

Tein Githubin tililleni seuraavan skriptin:

Screenshot_2017-11-05_17-36-20

Kyseinen skripti on Eemeli Aaltosen käsialaa ja se löytyy osoitteesta – https://github.com/poponappi/essential-tools

Skriptiin tehty muutokset niin, että ne vastaa minun github – tililtä löytyviin tiedostoihin ja asennettaviin ohjelmiin. Skriptin ajamalla tulee haettua tuoreet päivitykset ohjelmille, asennetuksi ohjelmat tree sekä puppet, ssh asennus-moduli, skandinaaviset ääkköset sekä kellonaika-asetukset Helsingin aikavyöhykkeen mukaan.

Testattu skriptin toimivuutta live-tikulla. Laitettu live-tikku tietokoneeseeni ja avattu “Try Xubuntu without install” moodissa. Mitään asetuksia en tässä vaiheessa tee vaan syötän ainoastaan kaksi komentoa, joilla toisella haen skriptin ja toisella ajan sen:

koko wget gitista

asennettu

Skriptin ajaminen onnistuu ja asennettavat ohjelmat ja määritykset onnistuvat. Testataan ssh:n toimivuutta ja määrityksiä. Sshd_config – tiedostossa minulla on määritys ssh – yhteydessä käytettävästä portista, joka on määritetty olevan 8888 oletuksena olevan 22 sijasta.

valmis koko homma

Ssh – yhteyden ottaminen portin 8888 kautta onnistuu ja näin totean testin onnistuneeksi.

 

b) HUOM TÄMÄ KOHTA TEHTY YHDESSÄ JANNE ALHONEN KANSSA

Tehtävässä on tavoitteena käyttää Mestari-koneella Orja-konetta ja oppia käytettävää arkkitehtuuria. Tähän tehtävään tarvitaan siis kaksi konetta, josta syystä toteutettu tämä yhdessä toisen opiskelijan Janne Alhonen kanssa. Molemmat käytimme Haaga-Helia ammattikorkeakoulussa sijaitsevia labra-luokan koneita. Käytössä livetikku, jota itse olen käyttänyt aiemmissa harjoituksissa ja Jannen livetikun tiedot löytyvät hänen sivuiltaan (linkki raportin yläosassa).

Päätimme toimia kokoonpanolla Janne – Master ja Kirik – Slave.

Muutettu kuvan mukaisesti Jannen koneen xubuntu – käyttäjän nimi “Mestari” nimeksi ja vastaavasti Kirikin koneen käyttäjän nimi “Orja” nimeksi.

hostnamectlmaster

Ja syötetään komennolla “sudoedit /etc/hosts/” tietoihin mestarille kohdan: 127.0.1.1 perään “xubuntu mestari” ja vastavuoroisesti orjalle “xubuntu orja”

hostname

Molemmilla koneilla käynnistettiin uudelleen avahi demoni komennolla

“sudo service avahi-daemon restart”

Tämän jälkeen käytettiin ping komentoa toisillemme:

Mestari Ping

orjaping

Latasimme Mestarin koneelle puppetmasterin komennolla “sudo apt-get install puppetmaster”, jonka jälkeen pysäytimme puppetmaster-demonin komennolla “sudo service puppetmaster stop”. Tämän jälkeen deletoimme ssl tiedoston Mestarin koneelta komennolla ” sudo rm -r /var/lib/puppet/ssl” ja lisäsille Mestarille nimimääritykset conffitiedostoon komennolla “sudoedit /etc/puppet/puppet.conf” ja muutoksent “dns_alt_names” – rivin määrityksiin seuraavanlaisesti:

puppetconftiedostomestari

Tässä vaiheessa puppetmasterin uudelleenkäynnistys komennolla “sudo service puppetmaster start”

Asensimme Orjan koneelle nyt puppet – demonin komennolla “sudo apt-get install puppet” ja sille tehtiin conffi tiedostoon muutokset niihin menemällä komennolla “sudoedit /etc/puppet/puppet.conf” Ja conffeihin seuraava [agent] määritelmä:

Orja conffit

Tämän jälkeen luotu tiedosto, jolla annettu Orjalle käynnistymisoikeudet komennolla “sudoedit /etc/default/puppet” ja tyhjään tiedostoon määritykset:

START=yes

Tässä vaiheessa käynnistimme puppet – demonin uudelleen komennolla “sudo service puppet restart”

Orjan sertifikaatit lisättiin masterille:

certifikaatinajo

Mestarilla luotiin manifesti hamistoon /etc/puppet/ komennolla “sudo mkdir -p manifests/ modules/helloworld/manifests/” ja siellä siellä tehty komennolla “sudoedit manifests.site.pp.” tiedot:

include helloworld

jonka jälkeen teimme helloworld moduulin komennolla “sudoedit modules/helloworld/manifests/init.pp” ja sisällön loimme:

class helloworld {
file { ‘/tmp/helloFromMaster’:
content => “See you at http://terokarvinen.com/tag/puppet\n”
}
}

(lisätty tähän väliin mainosta terokarvisen nettisivuille tehtävän keskelle)

Ajettu moduli komennolla “sudo puppet apply -e ‘class{“helloworld”:}”

Tässä vaiheessa käynnistetty orjan puppet – demoni uudelleen komennoilla “sudo service puppet restart”, “sudo service puppet reload” ja “sudo puppet agent –enable”.

Orjalla syötetty komento “cat /tmp/helloFromMaster” ja seuraava tulostuu:

Valmis

Tehtävä onnistui hakemalla Orjan koneella tarvittavat asetukset Mestarin koneelta.

cert list ja Mestarin logista pätkää:

certlist

logit

Palvelinten Hallinta H1

Uusi kurssi alkoi nimeltä Palvelinten Hallinta, jonka opettajana toimii Tero Karvinen. Ensimmäisen tunnin pohjalta tulleet kotitehtävät löytyvät osoitteesta: http://terokarvinen.com/2017/aikataulu-palvelinten-hallinta-ict4tn022-3-5-op-uusi-ops-loppusyksy-2017-p5#comment-23224 ja tehtävä käsitellään tässä blogissa.

Tehtävässä käytössä sama Asuksen läppäri ja live-tikku, joista tiedot aiemmissa tehtävissä.

h1. a) Asenna jokin muu demoni kuin Apache. Raportoi, miten rakensit, selvitit ja testasit kunkin osan (esim. sudo puppet resource, puppet describe, lähteet…). Julkaise myös modulisi lähdekoodi niin, että sen voi helposti ottaa käyttöön.

 

a) Hain github – tililtäni tiedostot, jotka olin ensimmäisellä lähiopetustunnilla sinne julkaissut käyttäjänimellä “ainetdinkirik”. Sieltä löytyy kansio nimeltä “koekansio”, jonka alle työstin apache2 – asennusmoduulia ja hello world moduulia. Tällä kertaa kokeilin tehtävänannon mukaisesti asentaa uutta moduulia ja oman taitotasoni mukaan lähin kokeilemaan ssh – demonin asennusta.

Asensin puppetin komennolla “sudo apt-get install puppet”. Loin tämän jälkeen kansiot ja tiedoston /etc/puppet/modules/sshd/manifests/init.pp. Tähän tiedostoon tein määritelmät:

class sshd {

package {‘ssh’:

ensure => ‘installed’,

allowcdrom => ‘true’

}

}

Tällä määrittelen modulin asentamaan ssh:n, jos se ei ole valmiiksi asennettuna koneella komentoa syötettäessä. “Allowcdrom” on määritelmä, jota vaaditaan, että moduli toimii live-tikun kanssa.

Ajettu moduli komennolla: “sudo puppet apply -e ‘class {“sshd”:}’”

Komennon ajettuani kokeilin ssh:n olemassaoloa kirjoittamalla komentokehotteeseen “ssh”, jolloin demoni näkyi asennettuna.

Siirsin kansiot ja tiedoston “koekansio” kansioon, jotta voisin sen helposti jakaa github – tililleni. Käyttäjäperäisestä ongelmasta eli osaamattomuudestani en tässä kuitenkaan onnistunut. Tästä syystä en raportoi vielä tätä ensimmäistä kotitehtävääni Githubiin vaan tänne tuttuun wordpressiin.

H6

Tero Karvinen Linux Palvelimet kurssin viimeinen etätehtävä vuorossa. Kurssin tehtävät ja materiaalit löytyvät osoitteesta:

http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Tämän viikon tehtävä eli H6 muodossa:

h6

a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt

Käytössä sama Asus-läppäri, kuin kaikissa aiemmissa harjoituksissa ja viimeharjoituksessa luotu live-tikku xubuntu – käyttöjärjestelmällä 16.04, jolla korvasin aiemman 17.04 version, jonka kanssa tuli edellisessä harjoituksessa yhteensopivuusongelmia.

 

a)

Aloitettu pakollisella komennolla “sudo apt-get update”, jolla haetaan ohjelmien uusimmat päivitystiedostot, jonka jälkeen asennettu aakkoset komennolla “setxkbmap fi”.

Asennettu python3 komennolla “sudo apt-get install python3”. Tämän jälkeen tehty kotihakemistooni kansio “testaus” komennolla “mkdir testaus”, jonne tallennan testattavat koodikieltä sisältävät kansiot. Siirrytty “testaus”-kansioon ja luotu tiedosto “hei.py” komennolla “nano hei.py”.

Lisätty tiedostoon python-koodipätkä: image5

Tämän jälkeen syötin terminaaliin komennon “python3 hei.py”, jolloin tulostui alla näkyvä tervehdys “Hei maailma!”

image3

Toinen testattava kieli on bash, jonka hain komennolla “sudo apt-get bash”.

Luotu bash-tiedosto komennolla “nano heima.sh”.

Tiedostoon syötetty koodinpätkä:

image4

Terminaaliin syötetty komento “sh heima.sh”, jolloin alla oleva tervehdys tulostui esiin.

image2

Kolmantena kielenä asennettu Golang komennolla “sudo apt-get install golang”.

Luotu tiedosto komennolla “nano heimaailma.go”, jonne lisätty koodinpätkä:

image7

Syötetty komento “go build heimaailma.go”, jotta koodinpätkän saisi toimimaan. Nyt syöttämällä komennon “./heimaailma” tulostui seuraava:

image6

H5 / Messut

Tero Karvinen – Linux Palvelimet kurssi.

Tehtävänannot löytyvät osoitteesta:

http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op#h5

a) Messuraportti. Kirjoita arvioiva kuvaus kolmesta tuotteesta tai esityksestä. Muista myös arvioida ja vertailla – ei pelkästään toistaa mainoslauseita. Käytä arvioidessa kaikkia aiempia, esimerkiksi töissä ja kursseilla oppimiasi tietoja. Tässä muutama kysymys, joista voi olla apua kirjoittessa (mutta joihin vastaaminen ei vielä riitä vastaukseksi). Minkä ongelman tuote ratkaisee Mitä tuote maksaa (esim. halvin aloitus vs tyypillinen käyttötapaus, ensimmäisen vuoden hinta)? Millä tekniikoilla tuote on toteutettu (tietokannat, ohjelmointikielet, käyttöjärjestelmät, palvelimet, protokollat…)? Tärkeimmät kilpailijat? Kilpaileeko jokin vapaa ohjelmisto tämän kanssa (vai onko tämä jo valmiiksi vapaa ohjelma)? Mitä ajatuksia tuote tai palvelu herättää? Millainen yritys on tuotteen taustalla? Ota blogiisi myös artikkeliasi tukevia kuvia.

d4) (ryhmä 4-ti) Asenna LAMP ja lue tietokantaa PHP-ohjelmalla. (Pitkähkö tehtävä)
e4) (ryhmä 4-ti) Asenna WordPress ja luo esimerkkisisältöä.

 

a) Raporttiin valitsin kolme esitystä/tuote-esittelyä, joihin kävin tutustumassa Cyber Security Nordic – messuilla.

Ensimmäisenä vierailupisteenä oli Jetico, jonka tuotteena oli palvelu, joka kryptaa asiakkaan hallussa olevat laitteet niin, että vääriin käsiin joutuessaan pysyvät tärkeät tiedot tallessa. Yrityksellä on myös tyhjennyspalvelu, jossa se poistaa tallennettua tietoa levyasemilta ja muisteista niin, että kaikki tarvittava poistuu ja katoaa kokokaan palauttamisen estämiseksi. Tuotteen hinnoittelua kysyessä paljastui, että tuotetta esittelevä henkilö ei itse ollut yrityksen tai tuotteen asiantuntija, mutta osasi kertoa pääpiirteittäin tuotteen toiminnoista. Hän arvioi perustuotteen hinnaksi noin 40€ kuitenkaan lupaamatta mitään faktapohjaa. Esitys oli aika lailla pintaraapaisu ilman syvempää tietoa. Käytetyistä ja luotetuista kryptauksen algoritmeista paljastui käytettäviksi AES (Rijndael), Twofish sekä Serpent.

image1

 

Toinen vierailtu piste kuului Ciscolle. Ciscon pisteellä esiteltiin mm. pilvessä toimivaa tietoturvapalvelua Cisco Umbrellaa, joka soveltuu niin yrityksille, kuin yksittäisille koneille. Cisco ei ollut myymässä palvelua suoraan pisteellä ja he painottivat toimittavansa palvelua yhteistyökumppaneilleen, jotka markkinoivat palvelua eteenpäin kuluttajille ja yrityksille. Ja painotuksena myös, että Cisco toimii alle 60 – hengen voimin Suomessa ja että päätoiminta on Yhdysvaltalais-johtoista. Yritys tarjoaa suojaa tietoturvauhkia ja hyökkäyksiä vastaan keskitettynä yhden katon alle.

image1[16576]

 

Kolmantena pisteenä oli erittäin mielenkiintoinen uudenlainen Suomessa kehitetty konsepti yritykseltä Cysec Icewall Cysec Vault. Yritys tarjoaa palvelua isoille yrityksille, jossa se tallentaa sata prosenttisesti kaiken liikenteen mitä yrityksen verkossa liikkuu. Palvelun ei ole tarkoitus estää murtoyrityksiä vaan murron tapahtuessa he pystyvät selvittämään syyllisen ja toteamaan varmuudella mitä hyökkääjä on tehnyt ja yrittänyt. Palvelussa on patenttihakemus loppusuoralla ja se on kehitetty vuonna 2014. Idea on uudenlainen ja mielestäni erittäin järkevä. Kun murtautuminen on kerran paljastunut saadaan selvää dataa siitä mihin tietoturvaongelmaan täytyy panostaa ja missä on parannettavaa. Esittelijöiden mukaan tämä on tulevaisuuden tietoturvan suunta pelkän uhkien torjumisen sijaan. Tällä tavalla saadaan myös muista yrityksistä paljastuneet hyökkäykset loppumaan omassa yrityksessä, kun mitätöidään hyökkääjän asearsenaali.

image3

 

 

d4) Koulussa testatessa sekä kotona uudemman kerran testatessa LAMP:n asennusta tuli vastaan ylitsepääsemätön ongelma mySQL:n asennuksen kanssa. Lokeihin tuli erroria, jotka eivät poistuneet opettajan avustuksellakaan. Ongelman syyksi selvisi minun Live-tikun versio 17.04. Kokeiltu asentaa live-tikulle xubuntu versio 16.04 ja ongelma poistui samantien. MySQL:llä siis jotain ongelmia tuon uudemman xubuntu-version kanssa, joten suosittelen lämpimästi vanhempaa versiota, jos törmäät vastaavaan ongelmaan.

Asennettu LAMP käyttäen Tero Karvisen asennus ohjetta:

http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

Tulkitsin tehtävänannossa määrätyn “lue tietokantaa PHP-ohjelmalla” tarkoittavan sitä, että PHP tulostaa tietokannasta jotain nettisivulle. Tein hakemiston public_html jonne PHP tiedoston index.php, jonne laitoin koodirimpsua testiksi tulostamaan yhteenlaskun ja hakemaan mySQL tietokantaani lisäämääni sisältöä.

image2 – kopio

Ja lopputulos oli onnistunut näyttäen tältä:

image1 – kopio

e4)

Koulussa nähtiin erittäin nopea demonstraatio wordpressin asennukseen. Siitä ei päähän kerennyt tallentumaan juuri mitään, joten etsitty googlea apuna käyttäen kahdet eri ohjeet wordpressin asennukseen ubuntu 16.04:lle. Pitkien kamppailujen jälkeen sain salakirjoitettua tiedostoja, luotua hakemistoja ja muutettua hakemistoja, mutta mitään konkreettista en saanut ulos enkä osaa sanoa onnistuiko mikään vaihe todella.

 

Harjoitus 4

Linux palvelimet kurssi jatkuu kotitehtävällä nro 4. Kaikki kurssin tehtävät löytyvät osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op#h4

Tämän kerran tehtävät ovat:

r) Kokeile julkista virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta, OVH:lta tai monista muista paikoista. Edullisinta on käyttää GitHub Education -paketista DigitalOceanin palveluita.

Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä testipalvelimen vagrantilla, mutta tämä ei ole yhtä jännittävää.

x) Laita julkinen domain-nimi osoittamaan koneeseesi. NameCheap ja Gandi ovat tunnettuja nimien vuokraajia. GitHub Education -paketista saa NameCheapilta .me domainin ilmaiseksi vuodeksi.

s) Laita julkiselle palvelimellesi käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna.

y) Etsi julkisen palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla geoiplookup tai whois.

Käytössä on sama läppäri sekä livetikku, joiden specsit löytyvät aikaisemmista harjoituksista kirjattuina.

 

r) Hain Github Education Packista alennuskoodin Digitalocean julkiseen virtuuaalipalvelimeen. Vuokrasin sieltä itselleni julkisen palvelimen käyttööni viideksi kuukaudeksi tehtävänannon ohjeiden mukaisesti.

Avattu oman ubuntun kautta ssh-yhteys palvelimeen komennolla “ssh root@palvelimen IP-osoite”.

Tehty reikä palomuuriin, jonka kautta käyttää omaa liikennettä komennoilla:

sudo ufw allow 22/tcp
sudo ufw enable

Tämän jälkeen tein oman käyttäjän palvelimelle käyttäjätunnuksella “kirik”:

sudo adduser kirik
sudo adduser kirik sudo
sudo adduser kirik adm
sudo adduser kirik admin

Laitettu käyttäjälle salasana ja koitettu toimivuutta ottamalla yhteys palvelimeen: ssh kirik@palvelimen IP-osoite.

Homman toimiessa lukittu root – käyttäjä turvallisuustekijöiden vuoksi komennolla:

sudo usermod –lock root

ja muutettu ssh_config:stä “PermitRootLogin” tilaan “no”, jonka jälkeen käynnistetty palvelin uudelleen.

Hyväksytty myös porttiliikenne komennolla: sudo ufw allow 80/tcp, apachea ja muuta omaa käyttöä varten.

 

x) Tehtävänantona oli laittaa julkinen domain-nimi osoittamaan koneeseeni käyttäen esim. Namecheap palvelua. Hain Github Education Packista itselleni vuoden ilmaisen käytön Namecheapiin. Palvelu ei minun taidoilleni ollut kovin selkeä ja yritin kahden tunnin ajan löytää keinoa ratkaista tämä tehtävänanto. En onnistunut omin voimin ja muiden raportteja lukiessa löytyi ilmoituksia “asennettu namecheap ohjeiden mukaan”. Tämän vuoksi jäi tämä tehtävä onnistumatta.

 

// PÄIVITYS: Koulukaverin konsultoinnin jälkeen havaittu pieni “rasti ruutuun puuttuu”- virhe, jonka jälkeen onnistuikin Namecheapin ohjeilla loppuun saakka.

 

s) Seuraavaksi piti laittaa julkiselle palvelimelle käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna. Aikaisemman harjoituksen tavoin tein kotihamistoon testisivun, jonne laitoin pelkkää tekstiä toimivuuden todentamiseksi:

image1

 

y) Neljäs tehtävä oli etsiä julkisen palvelimeni lokeista esimerkkejä murtautumisyrityksistä.

Menty palvelimen rekistereihin komennolla:

cd /var/log/

jonne syötin lokien reaaliaikaisen seuraamisen onnistumiseksi komennon:

tail -F auth.log

Parin sekunnin odottelun jälkeen löytyi jo ensimmäinen murtautumisyritys:

image122

IP 58.218.198.170 yrittää kovasti läpäistä root-käyttäjän salasanaa ja täten päästä palvelimelleni. IP:n takaa löytyy todennäköisesti jokin botti, koska palvelimen käynnistettyä alkoi saman tien murtoyritykset. Onnekseni root-käyttäjällä on hyvä salasana ja toiseksi olen lukinnut root-käyttäjän, joten minäkään en pääse siihen salasanallani kirjautumaan, joten murtautumisyritys jää todennäköisesti vain yritykseksi.

IP osoittaa haun jälkeen kohdemaakseen Kiinan ja operaattorin olevan china telecom. Jonkin aikaa murtautumisyrityksiä seurattua huomaan, että hyökkäykset tulevat pääsääntöisesti Kiinasta ja osa myös Brasiliasta.

Harjoitus H3

Tero Karvisen Linux Palvelimet – kurssin 3. viikon kotitehtävä vuorossa. Tehtävät löytyvät kokonaisuudessaan osoitteesta

http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Tehtävänanto kokonaisuudessa oli tälle viikolle:

h3

Tämä h2 tehtävä on päivitetty siten, että voit ratkoa tehtäviä valintasi mukaan LAMP:illa, Python Flask + Postgrella tai jollain muulla valitsemallasi kehikolla. Helppoja rivi tiistaina opetetuilla aiheilla voisi olla esim a-b-i tai a-b-h. Ja guruille tässä on paljon haastavia vapaaehtoisia tehtäviä.

a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla. Tämä a-kohta on vaihdettu.

b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.Tee jokin seuraavista (yksi riittää, useampi vapaaehtoisena lisätehtävänä):

c) Tee virhe weppipalvelimella ajettavaan koodiin (esim PHP tai Python), etsi se lokista ja analysoi tuo lokirivi

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

e) Asenna ja kokeile PhpMyAdmin:a tai jotain muuta valmista weppiliittymää tietokantojen hallinnointiin.

f) Tee palvelimella ajettava weppiohjelma, joka tekee käyttäjälle jonkin yksinkertaisen laskun (esim. painoindeksi BMI)

g) Tee palvelimella ajettava weppiohjelma, joka käyttää tietokantaa. Voit tehdä jonkin yksinkertaisen CRUD-ohjelman, esimerkiksi TODO-listan

h) Tee Apachelle uusi sivu, joka näkyy suoraan palvelimen pääsivulla, mutta jonka sivuja voi muokata normaalin käyttäjän oikeuksilla (name based virtual host, DocumentRoot käyttäjän kotihakemistoon).

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

j) Asenna LAMP (Linux, Apache, MySQL, PHP). Testaa kunkin komponentin toiminta. Testaa lopuksi kokonaisuus. (Voit aloittaa tilanteesta, jossa Linux-käyttöjärjestelmä on jo asennettu, mutta ei muita (AMP) osia.

k) Kokeile jotain Flaskin uutta ominaisuutta flask-testipalvelimessa. Voit kokeilla esim. muotteja (templates), tietokantaa tai syötteiden ottamista lomakkeilta (forms).

l) Asenna Python Flask + PostgreSQL + Apache mod WSGI. Testaa kunkin komponentin toiminta. Testaa lopuksi kokonaisuus. (vaikea)

Näistä valitsin oman tasoni mukaan helpomman polun, eli tehtävät a, b sekä i.

Ensimmäisten kahden harjoituksen tavoin teen tehtävät omalla Asuksen kannettavalla tietokoneella:

Tehtävässä käytetty tietokone:

Asus G551J

Intel Core i7-4710HQ @ 2.50GHz

RAM 8Gt

Windows 10 64bit

NVIDIA Geforce GTX 860M

sekä ensimmäisessä harjoituksessa luodulla XUbuntu live-tikulla.

image1

A) Avattu terminaalinäkymä ja syötetty komento “sudo apt-get update”, jolla haettu uusimmat päivytykset.

Tämän jälkeen asennettu Apache2 palvelin komennolla “sudo apt-get install apache2”.

Omalla IP-osoittella sekä kirjoittamalla “localhost” URL-kenttään avautui toimiva palvelinsivu:

image3

Luotu oma Virtualhost komennolla “sudoedit /etc/apache2/sites-available/kirik.conf”, jonne löin komennot: ”

<VirtualHost *:80>
DocumentRoot /home/xubuntu/public_html/

<Directory /home/xubuntu/public_html/>
Require all granted
</Directory>
</VirtualHost>

Enabloin confit ja otin defaultit pois käytöstä komennoilla:

sudo a2ensite kirik.conf
sudo a2dissite 000-default.conf

jonka jälkeen uudelleenkäynnistin apache – palvelimen.

Tein oman public-html kansion sivustoa varten:

mkdir public_html/

jonne tein index,html tiedoston, jonne laitoin testitekstiä.

Tehävänannon mukaisesti sain sivun toimimaan osoitteilla “omaIP/~xubuntu/” sekä “localhost/~xubuntu”. Kuvassa näkyy vain jälkimmäin testaus, koska en halua omaa IP-osoitettani nettiin näytille:

image6

B) Etsitty lokista onnistunut sekä epäonnistunut latauskerta.

Siirryin kohteeseen: /var/log/apache2 ja syötin komennon “sudo tail -F*”, jonka avulla sain viimeiset lokitiedot kaikista hakemistossa olevista kolmesta lokista “access.log, error.log other_whosts_access.log”.

Löytyi onnistunut latauskerta, jonka lokirivi kertoo:

127.0.1.1:80 127.0.0.1 – – [08/Sep/2017:10:47:30 +0000] “GET / HTTP/1.1” 200 500 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0”

“127.0.1.1:80 127.0.0.1” Viittaa localhostin IP-osoitteeseen, joka on oma tietokone tässä tapauksessa ja :80 on http:n käytössä oleva portti. “[08/Sep/2017:10:47:30 +0000]” kertoo päivämäärän eli 8. syyskuuta 2017 sekä kellonajan, joka on 10:47:30. Kellonaika on GMT+0, eli kello on Suomen ajassa tätä harjoitusta tehdessä 13:47:30.

“GET / HTTP/1.1″ 200 500” Hakupyyntö webbiselaimelta sekä onnistunut palautekoodi “200 ok” “500” viittaa merkkimäärän, joka palautteessa lukee.

“(X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0” Ilmaistaan käytetyn Ubuntun mallia sekä Firefoxin versiota.

 

Epäonnistunut latauskerta:

127.0.1.1:80 127.0.0.1 – – [08/Sep/2017:10:47:47 +0000] “GET / HTTP/1.1” 404 496 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0”

“404 496” Kertoo epäonnistuneen latauskerran virhekoodin: Page not found. Ja 496 palautteen merkkimäärän.

 

I) Sain aikaiseksi HTTP – Statukset 200 sekä 404 kuvassa näkyvät kaksi alinta lokia:

image10

Onnistunut eli “200” syntyi menemällä onnistuneesti sivulle osoitteella “localhost/~xubuntu”. Epäonnistunut eli “404” syntyi kirjoittamalla URL – kenttään virheellinen osoite, joka oli tällä kertaa “localhost/~xubun”, jolloin tuli virheilmoitus: Page not found.

Design a site like this with WordPress.com
Get started