Arvioitava laboratorioharjoitus – Linux palvelimena ict4tn003-23 alkusyksyllä 2016

Tämä on kurssin Linux palvelimena ict4tn003-23 (alkusyksy 2016) arvioitava laboratorioharjoitus.

Tämä iltaryhmän arvioitava harjoitus on päättynyt. Onnittelut kaikille vaativan kurssin läpäisseille.

Tehtävänanto

Asenna Linux. Voit poistaa kaikki kovalevyllä olevat tiedot. Koneen nimeksi p73, missä numero on monitorin jalassa oleva numero. Ensimmäiseksi käyttäjätunnukseksi tietysti oma nimesi.
Tilastoi eri resurssien (CPU, RAM…) kuormitus koko harjoituksen ajalta. Tilastointi tulee siis aloittaa, ennenkuin teet muita harjoituksia. Kirjoita aivan lopuksi lyhyt analyysi keräämästäsi tilastosta.
Valmistaudu ylläpitämään konetta etänä.
Suojaa kone tulimuurilla.
Asenna meille WordPress osoitteeseen hallitsija.example.com. Tee sinne esimerkkisisältöä. Simuloi nimipalvelun toimintaa hosts-tiedoston avulla.
Tarvitsemme kaikille koneillemme git-versionhallintajärjestelmän ja Arduino IDE:n. Tee meille metapaketti, joka asentaa ne paketinhallinnasta.
Tee skripti, joka näyttää käyttäjän nimen ja ip-osoitteen. Paketoi se deb-paketiksi nimeltä whowhere ja asenna järjestelmään.

Yrityksen valvontapaketti

Asenna yrityksemme etävalvontaohjelmisto. (Tässä harjoituksessa voit olettaa, että paketin asentaminen tuosta varastosta on turvallista)

wget http://terokarvinen.com/qrs/terorep/pool/main/t/terorep/terorep_0.0.3_all.deb
sudo dpkg -i terorep_0.0.3_all.deb
sudo apt-get update
sudo apt-get -y install terowatch ssh

Asennuksen jälkeen komennon “terowatch” pitäisi tulostaa “TeroWatch is installed”.

Kokeen päättyessä

Katso, että /home/*/lab.txt -tiedostossa on

  • Kaikki käyttäjät (myös oma sudo-käyttäjäsi) ja salasanat
  • Lista toimivista palveluista osoitteineen
  • Lista palveluista, jotka olivat tehtävänä, mutta eivät toimi
  • Kirjoita tiedostoon vastaukset kysymyksiin (osoita… vertaa…) ja testien tulokset. Muiden pyydettyjen asioiden lisäksi testien tulee osoittaa, että sovellus toimii pääasiallisessa käyttötarkoituksessaan. Vastaa vain kysymyksiin, ei tarvitse raportoida asennusta kotitehtävätyyliin vaiheittain.
  • Katso, että tiedosto on pelkkää tekstiä ja löytyy /home/*/lab.txt
  • Tekemäsi metapaketin lähdekoodi (ilman turhia kommenttirivejä)
  • Weppipalvelimen asetustiedosto, jos olet itse kirjoittanut sellaisen (ilman turhia kommenttirivejä)
  • Tekemäsi tulimuurin tila suoraan sopivan komennon tulosteesta
  • Kaikki muutkin itse kirjoittamasi asetustiedostot, ilman turhia kommenttirivejä
  • Oma nimesi ja opiskelijanumerosi

Tee yksi ruutukaappaus

  • Laita ruudulle testit, jotka osoittavat kaikki tekemäsi palvelut toimiviksi.
  • Ota tästä ruutukaappaus (PrintScrn-napilla) ja tallenna ruutukaappaus oletuspaikkaan /home/*/Pictures/Screenshot*.png.

Tee tervapallo muutamista tiedostoista

$ sudo ls -lR /home/ /var/ /etc/ > lslr
$ sudo tar -zcvf lab.tar.gz lslr /var/log/ /etc/ /home/*/.bash* /home/*/lab.txt /home/*/Pictures/Screenshot*.png
$ sudo chown $(whoami) lab.tar.gz

Siirrä lopuksi lab.txt, lab.tar.gz ja Screenshot*.png Moodleen (edellyttää kirjautumista). Huomaa, että Moodleen saa kirjautua vasta kokeen lopuksi, ja ainoastaan näiden tiedostojen lähetystä varten. Etävalvontaohjelmisto ei tallenna Moodlen kirjautumistietojasi.
Muista leikkiä Linuxilla kotona. Nähdään “keskitetyssä hallinnassa”!

Anna palautetta

Palautteesi on ratkaisevan tärkeää. Kehitän kaikki toteutukset edellisen palautteen perusteella. Jos tulet “Linuxin keskitettyyn hallintaan”, saatat nähdä palautteesi vaikutukset käytännössä saman tien.Palautetta kerätään kahteen paikkaan
1) Vapaamuotoinen palaute kommenttina kurssisivun perään.
Vapaamuotoiseen palautteeseen saa kirjoittaa mitä vain, eikä kysymyksiä tarvitse toistaa. Mutta tässä vinkiksi:

  • Opitko jotakin – eli osaatko nyt Linuxista sellaista, mitä et osannut ennen kurssia?
  • Oliko opittu hyödyllistä? Luuletko, että sille on käyttöä esim tulevaisuudessa töissä tai kotona?
  • Miten voisin parantaa kurssia?
  • Missä aiot hyödyntää taitoja kurssin ulkopuolella? Töissä, harrastuksissa, muualla?
  • Viihdyitkö kurssilla?
  • Suosittelisitko kurssia? Kenelle? Koulutoverille tai kollegalle?

2) Numeerinen palaute Haaga-Helian e-lomakkeelle.

  • Numeerisen palautteen avulla verrataan Haaga-Helian kursseja
  • On tärkeää saada jokaiselta palaute

Säännöt

Pöydälle saa ottaa: henkilöllisyystodistus, juotavaa, liveromppu. Kännykkä kiinni.
Kiellettyä: Älä kirjaudu muualle kuin tässä kokeessa asentamallesi koneelle (ja Moodleen aivan lopuksi, vain kahden tiedoston palauttamiseksi). Älä vilkuile toisten monitoreja. Älä juttele kenenkään kanssa äläkä muutenkaan kommunikoi kaksisuuntaisesti. Älä käytä mitään muistiinpanoja, jotka eivät ole julkisesti internetissä.
Kiellettyä: Kokeen valvontaan liittyvien tietojen poistaminen ja muuntelu. Älä muokkaa äläkä poista esimerkiksi sivuhistoriaa tai lokeja.
Kiellettyä: Verkkojen ja toisten palveluiden häirintä on kiellettyä. Älä siis käytä kuormitustyökaluja muihin osoitteisiin kuin omaan koneeseesi (localhost).
Sallittua: Nettisurffailu, julkisessa internetissä olevat sivut.
Kokeen valvoja saattaa tarkastella kaikkea, mitä koneilla tai koetilassa tehdään. Valvonta voi sisältää esimerkiksi verkkoliikenteen ja tiedostojärjestelmän tutkimista, tilan nauhoittamista ja videointia sekä välitöntä havainnointia. Älä siis käsittele koneilla oikeassa elämässä luottamuksellista materiaalia.

Lopuksi

Kun palautteet on annettu ja tehtävät palautettu: boottaa kone verkosta F12, WinPE, aloita Windows-levykuvan asennus. Windowsin asennus jopa kuvasta on ilmeisesti niin hidasta, että voimme suuresti auttaa opetusta aloittamalla Windowsin asennuksen jo Linux-tunnilla.

Posted in Uncategorized | Tagged , | 2 Comments

2 Responses to Arvioitava laboratorioharjoitus – Linux palvelimena ict4tn003-23 alkusyksyllä 2016

  1. Aina Kiuru says:

    Kiitos hyvästä ja hyödyllisestä kurssista. Opin todella paljon alkeista asti. Tulen hyödyntämään näitä taitoja koulun kursseilla, kotona ja mahdollisella työpaikalla.
    Kurssi oli minun mielestä paljon parempi, kun vertaa linuxin perusteissa en oikeastaan oppinut paljoa. Viihdyin kurssilla hyvin ja suosittelisin sitä koulukavereille(Monella on negatiivinen kokemus siitä, niin se tulee olemaan vaikeata).
    Kokeessa oli mielestäni paljon asiaa (enemmän sitä missä tuli tunnilla/kotona ongelmia) ja ei mielestäni tarpeeksi aikaa.

  2. Kommentteja tämän sivun arvioitavasta harjoituksesta:
    Käytä aina hyviä salasanoja. Harjoittele oikein, niin opit toimimaan oikein. Ja tässä harjoituksessa oli käytetty hyviä salasanoja lähes kaikki käyttivät hyviä salasanoja. Poikkeuskin löytyi, virheellisesti oman henkilötunnuksen näköinen teksti samassa koneessa monen käyttäjän tunnuksena.
    Kotisivut tehdään normaalin käyttäjän oikeuksin. Niitä ei tietenkään saa tehdä sudona tai roottina. Siksi kotisivut, php-skriptit yms tehdään jonkun käyttäjän kotihakemistoon.
    PHP on oletuksena kielletty käyttäjien kotihakemistoissa. Eli jos asennat vaikka phpmyadmin:in apt:illa, se toimii, mutta http://localhost/~tero/index.php näyttää virheellisesti PHP-lähdekoodin. Etsi oikea asetus ‘grep -ir php /etc/apache2’, korjaa sudoedit:illa ja käynnistä weppipalvelin uudestaan. Päivitys shift-reload, tyhjennä tarvittaessa selaimen välimuisti.
    Tyhjä, valkoinen sivu weppipalvelimelta huutaa: katso lokeja, tail /var/log/apache/*.
    Mihin itse kirjoitetut skriptit, käskyt ja ohjelmat? Jos kopioit yksittäisen tiedoston suoraan paikalleen, /usr/local/bin/. Paketinhallintaohjelma (apt) asentaa /usr/bin/ -hakemistoon. Jos teet itse deb-paketteja, niihin tulevat skriptit myös /usr/bin/. Lintian varoittaa, jos yrität tehdä paketin, joka laittaa skriptejä väärään paikkaan.
    Kommentteja Linuxpalvelimena 1 arvioitavasta harjoituksesta:.
    Tulimuuriin oli hyvin muistettu puhkoa 22/tcp ssh:lle. Jos kyseessä on weppipalvelin, kannattaa asiakkaat päästää sisään 80/tcp. Jos on myös salattu https käytössä, silloin lisäksi 443/tcp.
    Python Hello World on vain yksi rivi: ‘print(“Hello world”)’. Sen voi laittaa tiedostoon ja ajaa ‘python3 heimaailma.py’. Tarvittaessa voi laittaa shebangin alkuun “#!/usr/bin/python3”, laittaa ajettavaksi ja kopioida /usr/local/bin/:iin. Arvioitavassa labraharjoituksessa ei pyydetty kirjoittamaan omaa weppiohjelmaa Pythonilla vaan hei maailma.
    Tämä kommentti päivittyy tarkistuksen edetessä.
    Kotitehtävistä:
    Sudoa kannattaa käyttää ylläpitoon, ja aivan oikein, root-tunnus kannattaa lukita. Oletuksena Ubuntussa root on lukittu, mutta se on joillain virtuaalipalvelinten vuokraajilla (DigitalOceanilla) oletuksena auki. sudo usermod --lock root eli parametriin kaksi viivaa. Jos virheellisesti yrittää yhdellä viivalla, saa virheen “usermod: user root is currently used by process 1”. Monessa ohjeessa voi olla väärin, koska WordPress muuttaa kaksi viivaa yhdeksi.
    Normaalisti työskennellään normaalina käyttäjänä, ja tämän merkkinä komentokehote (prompt) päättyy dollariin ‘$’. Jos ohjeissa on ajettu komentoja root-shellistä, jonka tunnus on risuaita ‘#’, kannattaa yleensä silti käyttää tavallista shelliä ja laittaa sudo komennon eteen vain tarvittaessa.
    Testaamatta == tekemättä. Kaikki, mitä asennat, pitää testata. Testattava asia on se, mitä tilaaja / loppukäyttäjä sovelluksellasi tekee. Yksilöi testit mitkä teit (‘curl http://localhost‘), mikä oli tulos (“Connection refused.”) ja johtopäätös (weppipalvelin ei ole päällä). Jokaisen harjoituksen pitää sisältää dokumentoitu testi, joka osoittaa tuloksen toimivaksi.
    Testit ja niiden tulokset on yksilöitävä. Esimerkiksi “tietokone toimi” on liian geneeristä: onko emolevyn I2C-väylä testattu? Verkkokortin toiminnan virheettömyys 1 Gbit/s jatkuvalla kuormalla? Jäähdytyksen riittävyys? Oikea tapa on kuvailla testi, tulos ja johtopäätökset: “Avasin Firefox-selaimen valikosta ja kirjoitin aloitussivun hakukenttään ‘Tero Karvinen’ ja klikkasin ‘hae’. Klikkasin Googlen tulosten ensimmäistä linkkiä. Teron kotisivu aukesi. Testin perusteella hiiri, näpppäimistö, näyttö ja internet-yhteys toimivat. ”
    Raporttien tulee olla täsmällisiä. Erityisesti virheet ja muut erikoiset tilanteet on tärkeä raportoida tarkasti. Demoneista tarvitaan olennainen rivi (tai pari) lokista; komentoriviohjelmista itse komento ja tulosteen olennaiset rivit; graafisen käyttöliittymän ohjelmista ruutukaappaus ja luettelo virheeseen johtavista klikkauksista.
    Joku guru oli kokeillut vapaaehtoisena lisätehtävänä sshfs:ää. Sshfs:n avulla voi liittää hakemiston verkon yli. Se käyttää SSH:ta, joten salaus ja kahdenpuoleinen autentikointi tekee tästä turvallista. Se on aika uusi ohjelma, eikä aina kovin varmatoiminen, jos konetta käyttää välillä suspendissa. Ja temppu on tässä: sshfs ei vaadi rootin oikeuksia. Ulkomuistista: normaalina käyttäjänä: ‘mkdir -p $HOME/mnt/tero; sshfs tero@example.com: $HOME/mnt/tero; ls $HOME/mnt/tero; fusermount -u $HOME/mnt/tero;’
    Vagrantfile:ä käytetään ajamalla ‘vagrant up’ samassa hakemistossa.
    Levykuvien analyysiä koskevassa tehtävässä (Scan of The Month 15) piti analysoida annettua levykuvaa honey*.dd. Jossain harjoituksessa oli otettu epähuomiossa kuva omasta boot-osiosta (/dev/sda1) ja ihmetelty sitä. Toki ohjeissa olevat komennot pitää sovittaa annettuun tehtävään ja vaihtaa esimerkkinä olevat parametrit. Tämä harjoitus oli erityisen vaativa, joten ei toisaalta ole ihme, jos siinä oli haasteita.
    Jokaiseen lainaukseen pitää laittaa lähdeviite. Suorat lainaukset pitää merkitä siten, että on yksiselitteistä, mikä on suoraa lainausta. Kuvissa, asetustiedostoissa ja videoissa pitää tietysti myös merkitä lähteet ja huomoida tekijänoikeudet. Lainaaminen ilman lähdeviitteitä on vilpillistä plagiointia (plagiarism).
    Kun raportoi tehneensä jotain, se on tietysti oltava tehty oikeasti koneella. Lisähuomiot ja pohdinnat on selkeästi erotettava siitä, mitä on tehty ja kokeiltu. Jos väittää tehneensä jotain, mitä ei ole tehnyt, kyseessä on vilppi nimeltä sepittäminen (fabrication).