Aikataulu – Linux palvelimet ict4tn021-3003 – to 8-14 – alkusyksy 2018p1 – 5 op

English: Learn to manage your own Linux server – in 8 weeks. Beginners welcome. Student feedback excellent 4.8 out of 5. Course is in Finnish.

Aloita nollasta. Opiskele 8 viikkoa ja hallitset omaa Linux-palvelinta.

Opintojakson suoritettuaan opiskelija:

  • Osaa hallita Linuxia palvelimena
  • Osaa tehdä tärkeimmät asetukset tärkeimmille palvelimille (Apache, OpenSSH)
  • Osaa asentaa www-ohjelmointiin sopivan alustan
  • Osaa tehdä itselleen uusia asetuksia palvelinohjelmistoihin ohjeiden avulla
  • Tietää esimerkkejä palvelintilan tarjoajista ja hinnoista sekä fyysisten palvelinten vastaavista ominaisuuksista

Aikataulu 2018

Kurssi kestää 1. periodin eli 2018 alkusyksyn (w34-w41), yhteensä 8 viikkoa. Kaikki tunnit ovat labrassa 5004. Tero opettaa torstain toteutusta 3003, Jaana opettaa muita toteutuksia.

Peruskäyttö

1. Asennus, työpöytä ja lisenssit w34 FSF Free Software Definition, Rise of Open Source: Chapter 5. Raportin kirjoittaminen.

2. Komentokehote, ylläpito ja paketinhallinta w35 Command Line Basics, Commands for Admin.

Demonit

3. Apache-weppipalvelin ja LAMP kehitysalusta w36

Install Apache Web Server on Ubuntu, MySQL Install and One Table Database, Change MySQL Password on Ubuntu, Dealing with Forms, PHP Database Connection with PHP-PDO, Instant Firewall – sudo ufw enable.

4. Syventävä aihe weppipalvelimista w37, jokin näistä: Virtuaalipalveliten vuokraaminen/Sisällönhallintajärjestelmä/TLS/palvelimen suorituskyky/Tietokannat.

Apachen oletussivu, Monta nimeä samaan IP-osoitteeseen. Virtuaalipalvelimia vuokrataan: Linode (associate link), Digitalocean, Amazon (monet Amazonin palvelut skaalautuvat automaattisesti, maksimihinnan rajoittaminen voi olla tarpeen). Julkisia nimiä vuokrataan: NameCheap, Gandi. Harjoittelua varten voit kokeilla myös http://www.dot.tk/ (ei tärkeille nimille). WordPressin asennus. First Steps on a New Virtual Private Server – an Example.

5. OpenSSH-etähallinta. Tulimuuri. w38. Mahdollinen lisäaihe, jos aikaa jää: Järjestelmän tilan seuraaminen ja prosessinhallinta / Tiedostojärjestelmän hierarkia / Rosvoja ja kunnon kansalaisia.

Automatisointi

6. Automaatio ja ohjelmointiympäristöt w39, bash-skriptaus

Shell Scripting, aboutusers.sh, Over the Wire: bandit

Loppuhuipennus

7. Kertaus w40

8. Arvosteltava labraharjoitus (50% arvosanasta) w41

Linkkejä

Moodle-sivu Linux palvelimet 3003 torstaiaamu

Kurssilla käytetään Xubuntu 18.04.1 amd64 Linuxia. Kannattaa pitää sitä aina mukana USB-tikulla. UnetBootin. Xubuntu.org. Labrassa on erikoiset BIOS/UEFI -asetukset, joten kaikissa muissa koneissa toimiva tikku ei silti välttämättä toimi labrassa. Labraan sopivan tikun tekeminen. Uusin 64-bittinen Xubuntu LTS version iso-kuva xubuntu-18.04.1-desktop-amd64.iso.

Vanhoilta kotisivuilta löytyy opiskelijoiden kommentteja ja esimerkkiratkaisuja:

Aikataulu – Linux palvelimet ict4tn021 8-ma, 7-ti ja 6-to – alkukevät 2018 – 5 op, Aikataulu – Linux palvelimet ict4tn021 4-ti ja 5-to – alkusyksy 2017 – 5 op, Aikataulu – Linux palvelimet ict4tn021 2-ti ja 3-ke – Alkukevät 2017 – 5 op, Aikataulu – Linux palvelimet ict4tn021-1 – 5 op – alkusyksy 2016.

Vanhoja arvioitavia laboratorioharjoituksia:

Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-8 maanantai – alkukevät 2018 – 5 op, Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-7 tiistai – alkukevät 2018 – 5 op, Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-6 torstai – alkukevät 2018 – 5 op, Final lab test for group 4-Tuesday. Final lab test for group 5-Thursday. Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-2 (uusi OPS) alkukeväällä 2017 p1, Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-3 (uusi OPS) alkukeväällä 2017 p1

Arviointi

Arvosteltava labraharjoitus 50%

Läksyt 50%

Kummastakin osuudesta on saatava hyväksyttävä suoritus. Lopullinen arvosana perustuu kokonaisharkintaan kaikista kurssisuorituksista.

Läksyt

Läksyt tehdään ja raportoidaan kunkin tunnin jälkeen. Tehtävät saa julkaista missä haluaa ja palauttaa linkin Moodleen.

Kotitehtäväraportin tulee olla suoraan selaimella katseltavassa muodossa, tavallisena HTML-weppisivuna. Ei odt, ei odp, ei ppt, ei docx, ei doc, ei pdf. Kotitehtäviä ei voi palauttaa sähköpostitse. Linkit palautetaan Moodleen, mutta itse raportteja ei voi palauttaa Moodleen. Maksutonta kotisivutilaa saa esimerkiksi WordPress.com (helppo) ja GitHub.com.

Läksyt käydään läpi seuraavalla tapaamiskerralla, ratkotaan yhdessä ongelmia ja annetaan suullista palautetta. Arvosana kotitehtäväpaketista tulee vasta kurssin lopuksi, mutta tehtävät tulee silti palauttaa aina vuorokautta ennen seuraavia tunteja. Kurssilta poistetaan ne, jotka eivät ala suorittaa kurssia palauttamalla tehtäviä.

Julkaiseminen on vapaaehtoista, mutta erittäin suositeltavaa. Jos et jostain syystä uskalla tai muuten halua julkaista, voit laittaa työn weppisivulle salasanan taakse (kaikille kotitehtäville sama salasana) ja jakaa tämän salasanan kurssilaisten kanssa.

Jos tuntien yhteydessä järjestetään testejä läksyjen aiheista, niiden pisteet sisältyvät arvostelun kohtaan läksyt (50%).

Alustavat tehtävänannot

Tehtävät ovat virallisia vasta, kun ne on annettu tunnilla. Tehtävänannot muuttuvat vielä, koska tuntien aiheetkin voivat muuttua, ja lopullisessa arvioinnissa tehtävät arvioidaan niiden annettujen, virallisten tehtävien mukaan.

h1

a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa. Tämä kohta ei edellytä asentamista – jos kuitenkin asennat, ota ensin varmuuskopiot.

b) Listaa testaamasi koneen rauta (‘sudo lshw -short -sanitize’).

c) Asenna kolme itsellesi uutta ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.

d) Mitä lisenssiä kukin näistä ohjelmista käyttää? Selitä lyhyesti, mitä oikeuksia ja velvolisuuksia tuosta lisenssistä seuraa.

e) Listaa käyttämäsi ohjelmat (esim. MS Word), kunkin ohjelman käyttötarkoitus (esim. Tekstinkäsittely) ja vastaava vapaa Linux-ohjelma (esim. LibreOffice Writer). Jos johonkin tarkoitukseen ei löydy vapaata Linux-ohjelmaa, listaa sekin. (Päivitetty: korjasin tämän kohdan tunnuskirjaimen d->e)

f) Vapaaehtoinen lisätehtävä: varmuuskopioi tiedostosi (voit käyttää esimerkiksi ulkoista USB-levyä)

h2

a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.

b) Vapaaehtoinen kohta, ei ole opetettu vielä: Asenna SSH-demoni. Kokeile omalla ssh-palvelimellasi jotain seuraavista: ssh-copy-id, sshfs, scp tai git. (Helpoin lienee scp: ‘scp foo.txt tero@example.com:’)

c) Tee unelmien apt-get -komento: yksi komentorivi, joka asentaa suosikkiohjelmasi.

d) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.

e) Opettele ulkoa ja harjoittele tärkeimmät komennot (tätä “opettele ulkoa” alakohtaa ei tarvitse raportoida):

http://terokarvinen.com/2009/command-line-basics-4

http://terokarvinen.com/2008/commands-for-admin-4

h3

Tee viisi vapaavalintaista kohtaa. Säädä vaikeustaso oikeaksi: jos olet ihan alussa ja tämä on haastavaa, tee helpoimmat a b c d i. Jos osaat jo perusteet, tee useampia tai vaikeampia kohtia. Tarkoitus on, että tehtävät tehtyäsi osaat enemmän kuin osasit ennen.

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

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)

h4

Kuten tunnilla puhuttiin, muutin tätä tehtävää vastaamaan opeteltuja asioita.

Käytä aina hyviä salasanoja.

Tee nämä tehtävät alusta ja dokumentoi samalla. Tunnilla tehdyn virtuaalipalvelimen voit poistaa ja asentaa uudelleen, jotta voit dokumentoida samalla kun teet.

a) Vuokraa virtuaalipalvelin ja tee sille alkutoimet (ssh, tulimuuri, normaali sudo-käyttäjä, root lukkoon, päivitys).

b) Asenna Apache ja laita käyttäjän kotisivut näkyviin

c) Vuokraa (tai lainaa) domain-nimi osoittamaan pavelimeesi

d) Laita käyttäjän kotihakemistossa olevat sivut näkymään palvelimen etusivulla. (name based virtual hosting, default website)

e) Etsi palvelimen lokeista esimerkkejä murtautumisyrityksistä. Mistä maista ja miltä operaattoreilta murtautujat tulevat (host, geoiplookup, whois)

Voit tehdä kaikki nämä tehtävät myös nginx:llä, jos osaat sitä valmiiksi.

Vapaaehtoisia lisätehtäviä:

i) (vapaaehtoinen) Laita monta DNS-nimeä samaan IP-osoitteeseen.
k) (vapaaehtoinen) Asenna WordPress ja kokeile sitä
l) (vapaaehtoinen) Asenna Drupal ja kokeile sitä
m) (vapaaehtoinen) Asenna Joomla ja kokeile sitä
n) (vapaaehtoinen) Hanki virallinen, selainten hyväksymä TLS-sertifikaatti Let’s Encryptistä
o) (vapaaehtoinen) Vaikea: Tee esimerkkisivu Python Flaskilla
p) (vapaaehtoinen) Vaikea: Tee esimerkkisivu Ruby on Rails (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)
q) (vapaaehtoinen) Vaikea: Tee esimerkkisivu Python Django:lla (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)

h5

a) Asenna LAMP (M=MariaDB).
b) Tee PHP-ohjelma, joka lukee tietueita MariaDB-tietokannasta.
c) Lisää PHP-ohjelmaasi mahdollisuus lisätä tietueita tietokantaan.
d) Pelaa SQLzoo:ta (tätä d-kohtaa ei tarvitse raportoida)
e) Vapaaehtoinen: Laajenna PHP-ohjelmasi kokonaiseksi CRUD-ohjelmaksi. CRUD-tarkoittaa, että voit luoda (create), lukea (read), päivittää (update) ja poistaa (delete) tietueita.
f) Vapaaehtoinen vaikea: asenna Python 3 Django käyttäen Apachen mod_wsgi -modulia (libapache2-mod-wsgi-py3)
g) Vapaaehtoinen vaikea: tee TODO-lista Djangolla.
e) Vapaaehtoinen vaikea: laita Django käyttämään PostgreSQL-tietokantaa.

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

b) (vapaaehtoinen) Kirjoita kullakin kielellä yksinkertainen ohjelma, jolla on jokin käyttötarkoitus. Ideoita: hyödynnä kielen vahvuuksia. Ota käyttäjältä syöte, tee jokin lasku ja tulosta vastaus (input-processing-output).

h7

a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. (Löytyy DuckDuckGolla tai Googlella sekä linkeistä tältä sivulta).

b) Kaikki tehtävät arvioitavaksi. Palauta linkki sivuun, josta löytyvät kaikki kotitehtäväraporttisi. Arviointi tehdään ensisijaisesti tästä linkistä. Linkki voi olla esimerkiksi blogin etusivu (jos blogissa on vain kotitehtävät) tai sivuun, jossa on linkki kuhunkin tehtävään. Kaikki tehtävät -linkin palautus Moodlessa kohtaan “Kaikki tehtävät arvioitavaksi”.

c) (vapaaehtoinen) Käytä Linuxia kurssin ulkopuolella.

d) (vapaaehtoinen) Varaa kalenteristasi viikon välein aikoja Linux-harjoitteluun kurssin jälkeen.

Suhde muihin kursseihin

Tämä kurssi (Linux palvelimet ict4tn021) on esitietovaatimuksena monille kursseille, esimerkiksi

  • Palvelinten hallinta
  • Monialaprojekti
  • Linuxin keskitetty hallinta
  • Tunkeutumistestaus

Tämä kurssi (Linux palvelimet ict4tn021) on uuden opetussuunnitelman 5 op kurssi, jossa opetus alkaa Linuxin alkeista. Eri kurssi kuin osittain päällekkäinen vanhan opetussuunnitelman jo lopetettu kurssi “Linux palvelimena” ict4tn003 (3 op).

Adminstrivia: tämä sivu päivittyy kurssin edetessä.

Posted in Uncategorized | Tagged , , , , , , , , , , , , , , , | 3 Comments

3 Responses to Aikataulu – Linux palvelimet ict4tn021-3003 – to 8-14 – alkusyksy 2018p1 – 5 op

  1. php.net: Documentation: English: Introduction: Dealing with Forms

    http://php.net/manual/en/tutorial.forms.php

Leave a Reply

Your email address will not be published. Required fields are marked *

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Recent Posts

  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects