Linux palvelimet: Harjoitus 7

Tämä on viimeinen tehtävä tähän linux kurssiin liittyen. Tarkemmat harjoitusympäristön tiedot löydät tarvittaessa harjoituksesta 1.

Aloitus klo: 13:20

a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. 

Valitsin viimeisimmän harjoituskokeen, sillä se vaikutti olevan eniten sellainen johon olemme keskittyneet kurssilla.

Päivitin linuxin komennolla
sudo apt-get update

Suojasin tietokoneen ensiksi tulimuurilla.

sudo ufw allow 80/tcp
sudo ufw allow 22/tcp

sudo ufw enable

Asennetaan LAMP:n loput osat seuraavaksi.

Apache2:n asennus:

sudo apt-get install apache2

Kun tämä oli asentunut korvasin localhost sivu komennolla
echo site under construction | sudo tee /var/www/html/index.html

Seuraavaksi laitoin käyttäjien kansiot käyttöön.

sudo a2enmod userdir
sudo systemctl restart apache2

Tämän jälkeen ajattelin helpotin elämääni tekemällä /etc/skel/public_html/index.html jolloin jokaiselle uudelle käyttäjälle tulee uusi sivu valmiiksi.

MariaDB:n asennus:

sudo apt-get install mariadb-client mariadb-server

sudo mariadb

CREATE DATABASE olutmerkit CHARSET utf8;

Tehdään uusi käyttäjä olutmerkit tietokantaan.

GRANT ALL ON olutmerkit.* to olutmerkit@localhost IDENTIFIED BY ’m=o/Nk45#T&YHg’;

Seuraavaksi tein .my.cnf tiedoston johon kirjasin

[CLIENT]
user=olutmerkit
database=olutmerkit
password=’m=o/Nk45#T&YHg’;

Seuraavaksi kun avasin mariadb:n niin se kirjautui suoraan olutmerkit käyttäjälle.

Nyt piti luoda uusi taulu, josta nähdään minkä arvosanan allekirjoittanut on laittanut tietyille oluille.

CREATE TABLE olutmerkit (id INT AUTO_INCREMENT PRIMARY KEY, olut_merkki VARCHAR(255), arvosana FLOAT);

MariaDB [olutmerkit]> select * from olutmerkit;
+----+--------------+----------+
| id | olut_merkki  | arvosana |
+----+--------------+----------+
|  1 | Heineken III |     NULL |
+----+--------------+----------+
MariaDB [olutmerkit]> UPDATE olutmerkit SET arvosana= 10 where id=1;
MariaDB [olutmerkit]> select * from olutmerkit;
+----+--------------+----------+
| id | olut_merkki  | arvosana |
+----+--------------+----------+
|  1 | Heineken III |       10 |
+----+--------------+----------+

Seuraavaksi asensin phpn tarvittavat lisäosat.

PHP:n asennus:

sudo apt-get install libapache2-mod-php7.2
sudo apt-get install php-mysql

Seuraavaksi täytyi kokeilla php:n toimivuus.

Suuntasin juuri asennetun modin .conf tiedostoon ja editoin sen.

/etc/apache2/mods-available$ sudoedit php7.2.conf 

Kommentoin ifmodulen pois, jotta php alkaisi toimimaan.

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Käynnistin apache2:n uudestaan

systemctl restart apache2

Seuraavaksi tein uuden public_html kansion ja index.php tiedoston käyttäjälle xubuntu, joka ei ollut saanut niitä automaattisesti vielä /skel:n kautta.

test
<?php

print(32454*234);

?>

Seuraavaksi tein scriptin Tero Karvisen ohjeiden avulla, joka lukee tietueita tietokannasta, jonka tein aikasemmin.

test
<?php
// (c) 2016 Tero Karvinen http://terokarvinen.com

//connect
$user='olutmerkit';
$password='m=o/Nk45#T&YHg';


$database=$user;
$dsn="mysql:host=localhost;dbname=$database";

$pdo= new PDO($dsn, $user, $password);

//list
$pdoStm=$pdo->prepare('SELECT * FROM olutmerkit;');
$pdoStm->execute();
$hits=$pdoStm->fetchAll();

foreach($hits as $row) {
        echo "<p>".$row['id']." ".$row['olut_merkki']." ".$row['arvosana']."</p>\n";
}

?>





Nyt kun lamp oli testattu, piti luoda uudet käyttäjät henkilöille:

lisäsin jokaisen tunnuksen 2 ensimmäisen nimen alkukirjainta ja 3 sukunimen alkukirjainta paitsi kahdella viimeisellä. Vaihdoin Eijalle 3 etunimen ja 2 sukunimen.

Salasanat on generoitu pwgen:llä, joka on kätevä harjoituksissä, mutta paras salasana on silti itse mietitty ja paljon pidemmät kuin tässä tehtävässä.

sudo apt-get install pwgen

Jorma Mähkylä = jomah = juu6iYee
Pekka Hurme = pehur =aete9eiV
Ronaldo Smith  = rosmi = Foh7Xo1e
Håkan Petersson = hapet = diciSh8y
Einari Mikkonen = eimik = iex9Cheo
Einari Vähäkäähkä = eivah = iePhe6uo
Eija Vähäkäähkä = eijva = ahp4Oong

Ja koska olin jo luonut aiemmin /etc/skel/public_html/index.html

Niin jokaiselle uudelle käyttäjälle tulee seuraava sivu automaattisesti.

Seuraavaksi piti luoda ipos komento kaikille käyttäjille.

cat ipos 
#!/bin/bash

hostname -i

Annetaan oikeudet kaikille käyttää tätä uutta komentoa

chmod a+x ipos

Seuraavaksi kopioin komennon kaikkien käytettäväksi.

sudo cp ipos /usr/local/bin/
xubuntu@xubuntu:~$ ipos
127.0.1.1

Komento toimii ainakin xubuntulla. Kirjaudutaan siis jollekkin toiselle.

xubuntu@xubuntu:~$ su jomah 
Password: 
jomah@xubuntu:~$ ipos
127.0.1.1

Toimii.

Tee Pekalle 3 eri hello worldia kotihakemistoon (python bash nodejs)

Aluksi luon uuden kansion pehur:lle (Pekka Hurme)

Aluksi pythonilla.

sudo mkdir helloworlds
sudo nano helloworld.py
cat helloworld.py 
print ("Hello World")
python helloworld.py 
Hello World

Seuraavaksi bash:lla

sudo nano helloworld.sh
bash helloworld.sh 
Hello world
cat helloworld.sh 
echo Hello world

Seuraavaksi asensin nodejs

sudo apt-get install nodejs
sudo nano helloworld.js
node helloworld.js
Hello World
cat helloworld.js
console.log("Hello World");

Laita koneelle kaksi sivua hellodb.example.com kynakoe.example.com

sudo nano hellodb.example.com.conf
cat /etc/apache2/sites-available/hellodb.example.com.conf 
<VirtualHost *:80>
ServerName hellodb.example.com
ServerAlias www.hellodb.example.com

DocumentRoot /home/xubuntu/public_html/hellodb.example.com

<Directory /home/xubuntu/public_html/hellodb.example.com>
Require all granted
</Directory>
</VirtualHost>

Seuraavaksi muokkasin hosts tiedostoa lisäämällä hellodb.example.com

sudoedit /etc/hosts
127.0.0.1 localhost
127.0.1.1 xubuntu
127.0.0.1 hellodb.example.com

Tein uuden kansion

/home/xubuntu/public_html/hellodb.example.com
mkdir -p hellodb.example.com

Ja siirsin index.php:n sinne.

Enabloidaan sivu hellodb.example.com

sudo a2ensite hellodb.example.com.conf

ja käynnistetään uudestaan.

systemctl reload apache2

Näyttäisi toimivan.
Seuraavaksi tehdään staattinen kynakoe.example.com
Uusi kansio:
/home/xubuntu/public_html/kynakoe.example.com

uusi index.html

cat index.html 
<!doctype html>
<html>
<head>

	<title> Kynäkoe</title>
	<meta charset="utf-8" />
</head>
<body>
	<h1> Kynäkoe </h1>
	<p> Kynäkoe </p>

</body>
</html>

sudo nano /etc/apache2/sites-available/kynakoe.example.com.conf

<VirtualHost *:80> 
ServerName kynakoe.example.com
ServerAlias www.kynakoe.example.com 

DocumentRoot /home/xubuntu/public_html/kynakoe.example.com 

<Directory /home/xubuntu/public_html/kynakoe.example.com> 
Require all granted 

</Directory>
</VirtualHost>
sudoedit /etc/hosts
127.0.0.1 localhost
127.0.1.1 xubuntu
127.0.0.1 hellodb.example.com
127.0.0.1 kynakoe.example.com
sudo a2ensite kynakoe.example.com.conf 
systemctl reload apache2

 

Valmis klo 16:30

Lähteet:

Käytin aiemmin tehtyjä raportteja lähteenäni myös edetäkseni tässä tehtävässä.

http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-8-maanantai-%E2%80%93-alkukevat-2018-%E2%80%93-5-op

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

http://terokarvinen.com/2018/name-based-virtual-hosts-on-apache-multiple-websites-to-single-ip-address

http://terokarvinen.com/2012/short-html5-page

Mainokset

Linux palvelimet: Harjoitus 6

Aloitus klo 11:46

Ympäristönäni on edelleen Harjoitus 1 käytettävä työasema ja tarkemmat tekniset tiedot löytyvät sieltä.

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

Python 3 Hello World:

Python3 oli jo valmiiksi asennettuna xubuntulle, joten ei tarvinnut muuta kuin avata nano ja printata hello world

Javascript:

Latasin aluksi nodejs:n komennolla sudo apt-get install nodejs

Tämän jälkeen tein nanolla tekstitiedoston hello.js johon kirjasin

console.log(”Hello World”);

ja printtasin terminalista ulos käyttäen komentoa node hello.js

Ruby:

Rubyn saa komennolla

sudo apt-get install ruby-full

Tämän jälkeen loin tekstitiedoston helloworldruby.rb ja kirjasin tiedostoon

puts ’Hello world’

Ja printtasin ulos käyttäen komentoa

ruby helloworldruby.rb

Valmis klo:12:13

Lähteet:

http://terokarvinen.com/2018/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-3003-to-8-14-alkusyksy-2018p1-%E2%80%93-5-op

https://www.ruby-lang.org/en/documentation/installation/

https://en.wikibooks.org/wiki/Ruby_Programming/Hello_world

 

 

Linux palvelimet: Harjoitus 5

Aloitus: 16:15

Harjoituksessani käytin samaa työasemaa kuin edellisissä tehtävissä, tarkemmat tiedot löytyvät tarvittaessa tehtävästä 1.

a) Asenna LAMP (M=MariaDB).

Asensin ensiksi apachen komennolla ’sudo apt-get install apache2’ ja muutin apache2 oletussivun komennolla ’echo moi | sudo tee /var/www/html/index.html ’

Seuraavaksi laitoin käyttäjien sivut toimimaan komennolla sudo a2enmod userdir, jonka jälkeen käynnistin apache:n uudestaan käyttäen komentoa ’systemctl restart apache2’

Tämän jälkeen loin mkdir komennolla public_html kansion kotihakemistoon ja public_html:ään laitoin index.html tekstitiedoston.

Seuraavaksi latasin tarvittavat MariaDB liittyvät osiot.

Aluksi tein reikä palomuuriin komennolla ’sudo ufw allow 22/tcp’ ja laitetoin palomuurin päälle ’sudo ufw enable’

Nyt kun palomuuri oli toiminnassa, pystyin ladata mariadb-clientin ja mariadb- serverin käyttäen komentoa ’sudo apt-get install mariadb-client mariadb-server’.

Käynnistin MariaDB:n käyttäen komentoa ’sudo mariadb -u root’

Kokeilin pikaisesti, että kaikki näyttäisi toimivan, loin tietokannan test ja poistin test tietokannan ja katsoin mitä tauluja meillä oli

Seuraavaksi loin .my.cnf tiedoston, jotta voin automaattisesti kirjautua beers tietokantaan.

Nyt menin takaisin mariadb:hen ja se kirjasikin minut suoraan ”beers” käyttäjälle.

Nyt oli aika luoda taulu tietokantaan ja laitoin tietoa sinne.

Seuraavaksi asensin PHP:tä varten tarvittavat osat ’sudo apt-get install libapache2-mod-php php-mysql’

Tämän jälkeen siirryin kansioon /etc/apache2/mods-available/ ja sudoedit:llä muokkasin php.7.2.conf tiedostoa, jotta saisin php:n toimimaan. # merkillä if modulen ympärille.

Ja kun muutokset oli tehty käynnistin apache2 uudestaan ’sudo service apache2 restart’.

Tämän jälkeen menin kotihakemistoon ja loin index.php tiedoston.

klo 18:05

b) Tee PHP-ohjelma, joka lukee tietueita MariaDB-tietokannasta

Kirjasin suoraan seuraavankin tehtävän koodin, paitsi form- osuuden, mutta koska tehtävässä pyydettiin nähdä pelkkä tietokannasta haku niin kommentoin koodia hetkeksi pois.

 

c) Lisää PHP-ohjelmaasi mahdollisuus lisätä tietueita tietokantaan.

Huomioitavaa on koodissa ”.htmlentities”, joka konvertoi kirjatut tiedot html muotoiseksi koodiksi, joten vältytään väärinkäyttäjiltä, jotka voivat yrittää hyväksikäyttää sql-injektiota hyökkäyksessä.

Lopetus: 18:54

Lähteet:

http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql

http://terokarvinen.com/2018/php-database-select-and-insert-example-php-pdo

https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms

http://php.net/manual/en/function.htmlentities.php

https://en.wikipedia.org/wiki/SQL_injection

 

Linux palvelimet: Harjoitus 4

Aloitus: 13:13

Minulla on vieläkin sama työympäristö kuin aiemmissa harjoituksissa, joten jos kiinnostaa tarkemmat tekniset tiedot, katsokaa harjoituksesta1.

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

Valitsin virtuaalipalvelimen tarjoajaksi DigitalOcean:in ja alla lyhyet tiedot

Seuraavaksi aloin tekemään alkutoimenpiteitä perustuen Tero Karvisen tutoriaaliin.

Aloitamme kirjautumalla virtuaalikoneeseen ssh root@104.248.17.94, jonka jälkeen pyydettiin vaihtamaan root-salasana.

Kun olin saanut kirjattua uuden salasanani, niin minun tuli lisätä käyttäjä, jolle annetaan sudo ja admin oikeudet ennenkuin root-tunnus laitetaan lukkoon. Laitoin myös firewall:n päälle ja avasin portit 22 ja 80

Seuraavaksi kokeilin kirjautua uudelle käyttäjälle ”petri”, käyttäen komentoa ssh petri@104.248.17.94, jonka jälkeenn terminal kysyy aiemmin käyttäjälle asetettua salasanaa. Kun se on kirjattu oikein pääsin sisälle.

Tämän jälkeen lukitsin käyttäjän kautta root tunnukset komennolla sudo usermod –lock root ja tämän jälkeen kirjasin komennon sudoedit /etc/ssh/sshd_config jonne tein pienen muutoksen. Valkoisella tekstillä lukeva PermitRootLogin yes -> no, jotta roottiin ei voida kirjautua.

Kokeilin tämän jälkeen kirjautua ssh root@104.248.17.94, mutta vaikka kuinka tarkasti kirjasin salasanani niin en päässyt enää sisälle root tunnuksilla, hyvä.

Lopuksi juoksutin terminalin vielä komennoilla sudo apt-get update ja sudo apt-get upgrade.

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

Hain apachen komennolla sudo apt-get install apache2.

Kun tämä oli asentunut laitoin ip osoitteen 104.248.17.94 firefox:iin ja sain apache2 perusnäkymän.

Tämän jälkeen oli hyvä vaihtaa sivulta tiedot pois sillä hyökkääjillä on mahdollisuus hyväksikäyttää tämän oletussivun tietoja, joten korvasin index.html:n komennolla

echo ”Petri” | sudo tee /var/www/html/index.html

Ja kaikki ovat taas toiminnassa.

Tarkoituksena oli siis tehdä käyttäjälle sivut joten pitäisi saada tehtyä osoitteeksi: 104.248.17.94/~petri

Aloitetaan tässävaiheessa lisäämällä käyttäjien hakemistot komennolla

sudo a2enmod userdir

Tämän jälkeen käynnistetään apache2 komennolla

sudo systemctl restart apache2

Asetuksien tulisi olla nyt toiminnassa, joten loin kotihakemistoon kansion public_html komennolla

mkdir public_html

Tämän jälkeen kun olin siirtynyt public_html menin muokkaamaan nano komennolla uuden index.html tiedoston.

klo: 14:02

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

Päätin valita namecheap:n domain-nimen, sillä ne on todettu hyviksi, luotettaviksi ja varsinkin kun en ottanut .com osoitetta niin halpa täksi vuodeksi (0.88€+0.12€=1€). Valitsin osoitteen nimeltä petrileinonen.xyz

Tästä valikosta menin ”Manage” napilla eteenpäin, jonka jälkeen Advanced DNS ja loin 2 a-tietuetta osoitteelleni.

Tässä vaiheessa linux päätti kaatua 14.22, joten käynnistelen ubuntun uudestaan

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

Tässä vaiheessa odotin hetken, sillä dns-palvelulla menee hetki saada kaikki toimimaan ja on parempi ettei yritetä päivittää uutta nimeä sillä, silloin siinä menee vielä pidempään. Tein tässä välissä e) tehtävän ensin ja se oli valmis klo:  15:00

Kokeilin noin puolentunnin päästä ostostani mikä tilanne on, kirjasin osoitteekseni petrileinonen.xyz ja tämä aukesi.

Nyt piti saada käyttäjän kotisivu näkymään pääsivulla.

Ensitöikseni menin /etc/apache2/sites-available ja loin sinne uuden .conf tiedoston nanon kautta.

Tämän jälkeen loin kotihakemistoon kansion /petrileinonen.xyz/ ja kopioin aiemmin luodun index.html sinne ja tein muutoksia tekstiin ja väritykseen. Tämän jälkeen käytin komennon

sudo a2ensite petrileinonen.conf

ja käynnistin apachen uudestaan komennolla

sudo systemctl restart apache2

Tämän jälkeen laitoin osoiterivikseni petrileinonen.xyz

ja kaikki näyttäisi toimivan.

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

Ensitöikseni siirryin lokikansioon etsimään mistä löytäisin tietoa murtautumisyrityksistä komennolla

cd /var/log/

Syslogi osoittautui paikaksi jonne tulee valtava määrä ufw block:ia, joten oletin että tämä on oikea paikka.

Ensiksi asensin whois:n komennolla sudo apt-get install whois.

Tässä oli kolme yritystä monista muista, joten lähdin tutkimaan näitä.

Sep 18 11:33:58 cpu1 kernel: [ 5433.264253] [UFW BLOCK] IN=eth0 OUT= MAC=56:97:51:88:5b:92:f0:4b:3a:4e:38:30:08:00 SRC=5.8.54.27 DST=104.248.17.94 LEN=40 TOS=0x00 PREC=0x00 TTL=251 ID=56575 PROTO=TCP SPT=47651 DPT=8088 WINDOW=1024 RES=0x00 SYN URGP=0

Tässä on ensimmäinen onnekas, ip-osoitteella 5.8.54.27

Käyttäen komentoa whois 5.8.54.27 sain lisää tietoa osoitteen omistajasta. Jo näiden perusteella on selvää että kyseessä on venäläinen-osoite ja myös osoitteet ja puhelinnumerot on lisätty, tuskin toimivat.


Sep 18 11:35:17 cpu1 kernel: [ 5512.526644] [UFW BLOCK] IN=eth0 OUT= MAC=56:97:51:88:5b:92:f0:4b:3a:4e:38:30:08:00 SRC=58.218.56.87 DST=104.248.17.94 LEN=40 TOS=0x00 PREC=0x00 TTL=105 ID=256 PROTO=TCP SPT=6000 DPT=3389 WINDOW=16384 RES=0x00 SYN URGP=0

Ja arpaonni suosi seuraavaksi tätä osoitetta: 58.218.56.87

Tässäkään vaiheessa en ollut kovin yllättynyt sillä, osoite osoittautu olevan kiinasta, josta käy taas ilmi puhelinnumeroita, sähköpostiosoitteita ja fyysisiä osoitteita. Tuskin tiedot olivat oikein, mutta en usko että sillä olisi merkitystä vaikka olisivatkin.


Sep 18 11:35:20 cpu1 kernel: [ 5515.390337] [UFW BLOCK] IN=eth0 OUT= MAC=56:97:51:88:5b:92:f0:4b:3a:4e:38:30:08:00 SRC=86.3.119.186 DST=104.248.17.94 LEN=44 TOS=0x00 PREC=0x00 TTL=242 ID=43981 DF PROTO=TCP SPT=46176 DPT=23 WINDOW=14600 RES=0x00 SYN URGP=0

Ja viimeinen onnekas oli: 86.3.119.186

Tämä osoite tosiaan näyttäisi olevan Britannian suunnalta, josta käy ilmi jotain maantieteellisiä tietoja, mutta osoite oli yllätys yllätys virheellinen.

Näistä kaikista paistaa vain yritys saada uudet osoitteet haltuun, jotta ne joko otettaisiin käyttöön tai saastutettaisiin, jollain vaikoiluohjelmalla.

i) (vapaaehtoinen) Laita monta DNS-nimeä samaan IP-osoitteeseen.

Lisäsin uuden a-tietuuen test666 subdomainin, joka ottaa käyttöön pääsivun, joka on asetettu aiemmin.

Osoite: test666.petrileinonen.xyz

Ja näyttää tältä.

Ja koska tehtävässä pyydettiin useampaa niin lisäsin vielä toisenkin a-tietueen test111. Osoite: test111.petrileinonen.xyz

Valmista: klo 16:05

Lähteet:

http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean

http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4

https://www.geoiptool.com/en/

http://terokarvinen.com/2018/name-based-virtual-hosts-on-apache-multiple-websites-to-single-ip-address

https://www.namecheap.com/support/knowledgebase/article.aspx/9776/2237/how-do-i-create-a-subdomain-for-my-domain

Linux palvelimet: Harjoitus 3

Harjoitus ympäristönäni toimii sama kuin Harjoituksessa 1 ja 2, mutta tarkemmat tiedot näkyvät ensimmäisestä.

21:05

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

Ensiksi vaihdoin näppäimistön kielen suomeksi ja tämän jälkeen päivitin paketit komennolla sudo apt-get update.

Tehtävän tarkoituksena oli ladata Apache, joten haetaan se komennolla sudo apt-get install apache2. Kun tiedostot ovat latautuneet kirjasin firefoxin www kohtaan localhost.

Tässä vaiheessa olisi hyvä aika vaihtaa oletussivu pois.

Eli index.html, jota muutin sijaitsi /var/www/html/index.html

Menin muokkaamaan tiedostoa komennolla nano index.html kun olin jo html kansiossa.

Nyt kun localhost oli kunnossa, pääsen tekemään tehtävän loppuun.

21:36

Selvittelin hieman miten saisin käyttäjien sivut toimimaan ja löysinkin täältä neuvoa.

Eli komennolla sudo a2enmod userdir saadaan kätevästi käyttöön tarvittavat työkalut tehtävän tekemiseen, ja jotta uusi konfiguraatio toimisi niin se täytyy vielä käynnistää uudestaan komennolla systemctl restart apache2

Seuraavaksi suunnistin hakemistoon home/xubuntu ja loin komennolla mkdir public_html uuden kansion.

Tämän jälkeen siirryin komennolla cd public_html kyseiseen kansioon, ja kirjasin terminaliin komennon nano, jonka jälkeen kirjasin html:ään tarvittavat rivit.

Tämän jälkeen siirryin osoitteeseen localhost/~xubuntu/index.html, ja tässä lopputulos.

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ä):

Ensiksi täytyy siirtyä lokeihin cd /var/log/ komennolla jonka jälkeen käytin komentoa ls, ja katsoin onko siellä mitään apacheen viittaavaa ja siellä oli apache2. Kirjasin nyt cd apache2 ja taas komentoa ls käyttäen näen että täällä on kolme eri lokia access.log error.log ja other_vhosts_access.log.

Siirryin ensimmäiseen komennolla tail -f access.log ja täällä näkyikin 200 ja 404 ilmoituksia.

 

Tein nopean testin onnistuneesta latauksesta (200) ja epäonnistuneesta (404) siten, että aluksi siirryin osoitteeseen localhost/̃~xubuntu/index.html jolloin sivu latasi ja logiin tuli merkintä:

127.0.0.1 – – [11/Sep/2018:18:58:04 +0000] ”GET /~xubuntu/index.html HTTP/1.1” 200
457 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”

Epäonnistuneen merkinnän sain siten, että kirjasin vain osoitteen virheellisksi lisäämällä index.html2

127.0.0.1 – – [11/Sep/2018:18:58:06 +0000] ”GET /~xubuntu/index.html2 HTTP/1.1” 404
509 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”

Analyysi:

127.0.0.1 ip-osoite
11/Sep/2018:18:58:04 +0000 päivämäärä ja kellonaika
GET /~xubunu/index.html viittaa siihen, että mille sivustolle on yritetty päästä
HTTP/1.1 200 on versio numero ja onnistunut sivunlataus.
HTTP/1.1 404 on versio numero ja epäonnistunut lataus.
Mozilla/5.0 käytetty selain
Ubuntu; Linux x86_64 64-bittinen linux käyttöjärjestelmä käytössä.
Gecko/20100101 Firefox/61.0 Firefoxin versionumero.

22.15

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

Ensiksi katsoin ohjeistuksen miten php saadaan asennettua, ja se löytyikin kätevästi opettajamme tutoriali:sta.

Hain ensitöikseni php moduulin komennolla sudo apt-get install libapache2-mod-php.

Tämän jälkeen siirryin /etc/ hakemistoon ja etsin apache2 ja php liittyviä tiedostoja.

ja etsin kohdan php7.2.conf ja avasin sen komennolla sudoedit php7.2.conf

Helpoiten olisin siis päässyt tänne käyttämällä komentoa sudoedit /etc/apache2/mods-available/php7.2.conf

Nyt vielä täytyi lisätä viimeiset Ifmodule kommenttiin jotta saadaan käyttäjähakemistoon php toimimaan. Tämän jälkeen tallensin muutokset ja kirjasin terminal:iin vielä sudo service apache2 restart jotta sain toimimaan viimeisimmät muutokset.

Seuraavaksi tehdään muutos index.html /home/public_html/index.html. Lisäämällä yksinkertaisen Hello world viestin sivulle php:tä käyttäen.

Tämän jälkeen tallensin tiedoston uudestaan index.php:nä.

22:40

Seuraavaksi tehdään virhe koodiin, jotta saamme merkinnän lokiin. Avataan ensiksi error loki, joka on apache2 kansiossa, tämä onnistuu komennolla: sudo tail-f/var/log/apache2/error.log

Seuraavaksi kirjaan ylimääräisen sulun php komentoon, jonka jälkeen sain error.logiin virheen näkyviin.

Analyysi:

[Tue Sep 11 19:44:29.196944 2018] päivämäärä ja kellonaika
[php7:emerg]  virhe php:ssa
[pid 10862]  prosessi id
[client 127.0.0.1:48236] iposoite ja portti
PHP Parse error: syntax error, unexpected ’)’, expecting ’{’ in /home/xubuntu/public_html/index.php on line 10  tästä selviää, että rivillä 10 on ylimääräinen tai puuttuva sulku.

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

200: onnistunut sivunlataus
127.0.0.1 – – [11/Sep/2018:20:28:41 +0000] ”GET /~xubuntu/index.html HTTP/1.1” 200 458 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”
403: En tiedä minkä takia virheeksi tuli 403, joka viittaisi ettei ole oikeuksia sivulle, yritin saada virhettä liian pitkästä osoitteesta.
127.0.0.1 – – [11/Sep/2018:20:26:39 +0000] ”GET /~xubuntu/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaav HTTP/1.1” 403 1144 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”

404: virheellinen sivunlataus
127.0.0.1 – – [11/Sep/2018:20:28:55 +0000] ”GET /~xubunt HTTP/1.1” 404 496 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”
500: internal server error, tämä johtui siitä että php:ssa on virhe.
127.0.0.1 – – [11/Sep/2018:19:44:29 +0000] ”GET /~xubuntu/index.php HTTP/1.1” 500 185 ”-” ”Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0”

23:38

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

Koska minulla ei ollut mitään muistikuvaa php:n käytöstä, googlettelin yksinkertaista php tutorialia BMI laskurin tekemiseen ja löysin Jouni Juntusen tekemän esimerkin.

Ensiksi siis terminal auki ja public_html:ään tekemään kaksi tiedostoa, toinen bmi.html ja toinen bmilaskuri.php. Seurasin melko orjallisesti ohjeistusta, mutta muuttaen tietenkin nappien nimiä eriksi.

BMI laskurihan toimii siis siten että paino (pituus * pituus), jossa paino = kilogrammat ja pituus = metrit.

Valmista klo: 00:40

Lähteet:

http://terokarvinen.com/2018/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-3003-to-8-14-alkusyksy-2018p1-%E2%80%93-5-op

https://askubuntu.com/questions/446266/point-apache2-to-my-own-index-html-folder

https://websiteforstudents.com/enable-userdir-apache2-nginx-ubuntu-17-04-17-10/

https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

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

https://www.w3schools.com/php/php_functions.asp

https://httpd.apache.org/docs/2.4/mod/mpm_common.html#pidfile

http://www.oamk.fi/~teraisan/K1053BI/examples/bmisrc1.php

Linux palvelimet: Harjoitus 2

15:30

Harjoituksen tehtävänanto: Harjoitus 2

Esitiedot: Harjoituksessa käytin samaa ympäristöä kuin aiemmassa, tarkemmat tekniset tiedot voi tarkistaa sieltä: Linux palvelimet: Harjoitus 1

Tietokone, jota käytin harjoituksessa ei ole asennettu valmiiksi Xubuntua, joten on hyvä päivittää kaikki ajantasalle heti valmiiksi käyttäen komentoa sudo apt-get update, jolloin haetaan lista uusista paketeista ja niiden versioista, mutta tämä ei vielä asenna mitään.

Tämän jälkeen käytin komentoa sudo apt-get upgrade, jolloin komento ymmärtää hakea uusimmat paketit kunhan on muistanut käyttää update komentoa.

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

Tehtävässä haluttiin nähdä kaksi tapahtumaa lokitiedoissa. Ensimmäiseksi siis suunnistin lokeihin Terminalin kautta.

Koska olen pääasiassa uusi Linuxin parissa, mielestäni oli hyvä saada rutiini siitä miten tiettyihin kansioihin pääsi, joten yritin pitää itseni ajantasalla missä olen käyttäen komentoja ls(listaa tiedostot siitä hakemistossa missä olet), pwd(tulostaa sen hetkisen hakemiston).

Tämän jälkeen liikuin cd .. komennolla eteenpäin. Kun ls komento näytti var kansion, käytin komentoa cd var, ls, cd log, jolloin pääisin kansioon, missä on lokit eri tapahtumista ja eri asioihin liittyen. Helpoiten siis olisin päässyt tänne käyttäen komentoa: cd /var/log



Esimerkki virheellisestä tapahtumasta.

Halusin seurata auth.logia ja mitä tapahtuisi kun kirjaan salasanan väärin, koska käytössäni oli livetikku, salasana resetoituu aina kun käynnistän tietokoneen uudestaan.

Kirjasin ensiksi komennolla sudo passwd xubuntu uuden salasanan käyttäjälle xubuntu, jolloin auth.logiin tuli jokin merkintä :

Sep 4 14:05:58 xubuntu passwd[3635]: pam_unix(passwd:chauthtok): password changed for xubuntu
Sep 4 14:05:58 xubuntu passwd[3635]: gkr-pam: changed password for login keyring

 

Kun sain salasanan vaihdetuksi, kokeilin kirjautua ulos ja takaisin käyttäjällä xubuntu, ja se onnistui.

Nyt kun sain salasanan laitettua oli hyvä aika kokeilla virheellistä salasanan vaihdosta. Tässä vaiheessa en käyttänyt sudo komentoa, vaan yritin vaihtaa salasanan kirjaamalla passwd Terminal:iin, jolloin käyttäjä yrittää itse muuttaa salasanaa.

Komento jota käytin seuratakseni auth.logia reaaliajassa on: sudo tail -f /var/log/auth.log, jossa tail-komennon avulla voidaan nähdä viimeisimmät tapahtumat tiedostossa. Normaalisti tail komento näyttää pelkästään 10 viimeistintä riviä, mutta kun käytin -f (–follow) niin pystyin seuraamaan tapahtumia sitä mukaan kun niitä tapahtui.


Analysointi:
Sep 4 14:09:17 = päivämäärä ja aika (oletusaika)

xubuntu = käyttäjä

passwd[3648] = salasana

pam_unix(passwd:chauthok): authentication failure = tämä viittaa siihen, että todentaminen on epäonnistuminen sen vuoksi, koska en ollut muistavinani salasanaani.

logname= = viittaa käyttäjätunnukseen, mutta epäilin ettei sitä näy, koska en ole asentanut kiintolevylle Xubuntua, vaan kaikki toimii live-tikulta.

uid=999 = Löysin Ubuntun forumeilta postauksen, jossa mainittiin että tämä liittyisi siihen että kyseessä olisi ensimmäinen käyttäjä jonka vuoksi arvo 999, ja oletin myös samalla, että tämä saattaa johtua myös siitä että kun kyseessä on live-tikku niin silläkin on vaikutusta asiaan.

EUID = Effective user ID = prosessi, joka tarkistaa käyttäjän oikeuksia.

TTY= ”utility shall write to the standard output the name of the terminal that is open as standard input”

ruser= Kirjautuneet laitteet paikallisverkossa

rhost= selvittää yhden ip osoitteen

Lopputulos: Kun katsoin auth.logia oli selvää, että virhe ”authentication failure”, johtui siitä, että käyttäjä(xubuntu eli minä) oli kirjannut salasanan väärin.

Esimerkki onnistuneesta lokimerkinnästä:

Halusin nähdä minkälainen merkintä tulee kun asentaa jonkin ohjelman, käytin sudo apt-get install audacity, komentoa.

Analyysi:

xubuntu = käyttäjä

pam_unix(sudo:session) = open = Yhteys avautuu kun olen kirjannut sudo apt-get install audacity, komennon ja tiedostonsiirto on alkanut.

pam_unix(sudo:session) = closed = Yhteys sulkeutuu kun tiedonsiirto on saatu valmiiksi.

Lopputulos:
Yhteys avaautui ja sulkeutui kun tiedonsiirto oli valmis.

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:’)

 

16:30

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

Audacity = äänieditori

qBittorrent = Open-source BitTorrent client

gimp = Kuvienkäsittelyohjelma

vlc = multimediasoitin

libreoffice = Toimistotyökalupaketti

Lopullinen komentoni oli:

sudo apt-get install audacity qbittorrent gimp vlc libreoffice

17:00

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

Irssi

Pikaviestipalvelu, joka toimii myös Terminalin kautta. Yksinkertainen ja helppokäyttöinen.

Käynnistyy Terminalista komennolla: irssi

Tässä vaiheessa kirjotin /connect Quakenet, jolloin pääsin QuakeNetin palvelimeen, ja tämän jälkeen kokeilin yhdistää, jollekin kanavalle komennon /join #wikipedia


Nimimerkkikin vaihtui yksinkertaisesti xubuntusta Petriksi komennolla /nick Petri

Terminator:

Terminator on Terminal:n ikkunan jakaja, jolla sain kätevästi jaettua yhtä ikkunaa useampaan osaan. Ohjelman sain ladattua komennolla sudo apt-get install terminator

Käynnistyy Terminal:sta komennolla terminator

Vim:

Tekstieditori Terminal:ssa, joka on varmasti vanhalle käyttäjälle helppo, mutta itse en saanut edes tallennusta aikaiseksi ilman apua.

Käynnistyy Terminal:sta komennolla Vim.

18:00

Lähteet:

Harjoitus:
http://terokarvinen.com/2018/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-3003-to-8-14-alkusyksy-2018p1-%E2%80%93-5-op

Komentoja:
http://terokarvinen.com/2009/command-line-basics-4
http://terokarvinen.com/2008/commands-for-admin-4

Lokitietoihin liittyviä:
http://www.linfo.org/var.html
https://www.linode.com/docs/quick-answers/linux/how-to-use-tail/
https://linux.die.net/man/8/pam_unix
https://ubuntuforums.org/showthread.php?t=1424379
https://en.wikipedia.org/wiki/User_identifier
https://en.wikipedia.org/wiki/Tty_(unix)
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/tty.html
https://linux.die.net/man/1/rusers
https://manpages.debian.org/jessie/jdresolve/rhost.1.en.html

Asennetut Terminal käyttöiset ohjelmat:
https://irssi.org/

https://gnometerminator.blogspot.com/p/introduction.html
https://www.vim.org/download.php
http://vim.wikia.com/wiki/Saving_a_file
https://opensource.com/life/17/10/top-terminal-emulators

 

Linux palvelimet: Harjoitus 1

15:20

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

Käytössäni on Toshiba U363 USB 3.0 32gb muistitikku, johon on tarkoituksena tehdä Linux-livetikku.

Kurssilla on käytössä Xubuntu versio 18.04.1 amd64, joten latasin sen heidän sivuiltaan.

Tarvitsemme ohjelman, jolla tehdä bootattavan USB-tikun. Käytin ohjelmaa UNetbootin, jolla saadaan kätevästi hoidettua asia.

Kun avasin UNetbootinin tuli minun valita levy-kuva joka siirretään tikulle, ja se onnistui klikkaamalla ”…” ja etsimällä tiedosto jonne Xubuntu-18.04.1-desktop-amd64.iso on tallennettu.

linux1

UNetbootin purki .iso tiedoston muistitikulle, jotta voimme käynnistää käynnistyksen yhteydessä Xubuntun.

linux2

Tässä vaiheessa otin varmuuskopiot tärkeimmistä asioista tietokoneellani, käyttäen Windowsin omaa varmuuskopiointia, talteen menivät kuvat, videot ja koulu/työdokumentit.

Kun iso.kuva on siirtynyt muistitikulle tarkistin vielä, että sinne oli ilmestynyt tiedostoja, ja näin olikin käynyt kaikki hyvin.

linux3.png

Seuraavaksi käynnistin tietokoneen uudestaan, valitsin F11 uudelleenkäynnistämisen yhteydessä, jotta saan boot-menun auki. Näppäin vaihtelee tietokoneesta riippuen, mutta se lukee käynnistyksen yhteydessä ala tai yläreunassa.

Nyt kun Xubuntu aukesi ja vaikutti tunnistavan näppäimeni ja hiiren, niin avasin Terminal:n Xubuntussa ja asetin kielekseni Suomen, komennolla setxkbpmap fi.

Lisäyksenä tähän, kokeilin näppäintä PrintScreen, niin Xubuntu antaa mahdollisuuden suoraan tallennukseen, kopioimiseen, kuvan avaamiseen ja pystyt myös lisäämään kuvan kätevästi Imgur:iin, todella hyvä!




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

Tietokoneen olen itse kasannut ja päivitellyt sitä mukaan kun rauta on ollut vanhenemassa tai hajonnut.

Avasin Terminal:n, ja kirjasin komennon sudo lshw – short -sanitize, jolla saatiin helposti ja selkeästi näkymään mitä rautaa tietokoneesta löytyy.




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

Seuraavaksi avasin Software nimisen osion, josta sain kätevästi etsittyä erilaisia ohjelmia mitä voisi mahdollisesti tarvita tietokoneessa.



1. Spotify

Ensimmäinen isoin ihmetys oli se, ettei äänien kanssa tarvinnut alkaa säätämään vaan kaikki toimii moitteettomasti ja sulavasti siihen nähden, että Windowsin kautta pitää ajurit aina valmiiksi asennella ennenkuin edes voi harkita kuuntelevansa musiikkia. Kaikki toimi moitteettomasti Spotifyn kanssa.



2. FLTK Sudoku

Nyt on tarkoituksena testata, jotain pientä peliä ja sudoku sopii varmasti hyvin tähän. Latasin Software:n kautta FLTK Sudoku nimisen pelin ja ratkaisin sen helpoimmalla vaikeusasteella.



3. LibreOffice (Calc)

Nyt kun oli käynyt tutuksi miten hakutoiminto Softwaressa toimii, halusin kokeilla jos onnistuisin saamaan asennettua Terminalin kautta ohjelman suoraan. Käytetään komentoa: sudo apt-get install libreoffice. Terminal kysyy: ”After this operation, 246 MB of additional disk space will be used.
Do you want to continue? [Y/n]”.

Kirjasin terminaliin Y:n ja painan enter. Rivi toisensa jälkeen paketit latautuivat.



Jokatapauksessa, LibreOffice Calc, ajaa saman kuin Excel ja on hyvin kätevä taulukonlaskenta-ohjelma, jolla on monia eri käyttötarkoituksia. Latasin koko LibreOfficen, enkä pelkästään Calc-ohjelmaa.



16:26

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

1. Spotify

Yritin etsiä Spotifyn omasta Terms of Condition and Use – sivusta ja yritin etsiä mikä lisenssi voisi olla kyseessä. Löysin wikipediasta Software license:n alta taulukon: Proprietary license, joka kieltää kopioinnin, muokkaamisen, toimittamisen tai alilisensoitniin. Käyttäjällä on oikeastaan ainoastaan oikeus suorittaa sovellusta eikä mitään muuta.

2. & 3. FLTK Sudoku ja LibreOffice

Tämä mukava Sudoku-peli ja LibreOffice käyttävät GNU LPGL (GNU Lesser General Public License), muuten samallainen lisenssi kuin GPL (yleisin avoimen lähdekoodin lisenssi. Saat käyttää ja tutkia vapaasti, jakaa edelleen kunhan muistat antaa lähdekoodin ja lisenssin mukaan, saat tehdä muutoksia ja levittää eteenpäin, mutta lisenssi pysyy ja se täytyy ilmoittaa), mutta se antaa mahdollisuuden liittää ohjelman osaksi toisen lisenssin alla toimivaa ohjelmaa.

17:12

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.

Spotify – musiikin kuuntelu -> Spotify löytyy linuxille.

Steam – pelikirjasto ja pelijulkaisija -> Steam löytyy Linuxille ja Valve onkin julkissut tiedotteen kuinka haluavat parantaa tukeaan Linux pelaamiseen.

VLC – videoiden katselu -> VLC löytyy Linuxille

Audacity – musiikin nauhoitus / muokkaaminen -> Audacity löytyy Linuxille.

MS Office – Toimisto-ohjelmat -> LibreOffice on todella hyvä vaihtoehto muutenkin MS Officelle oli Linux tai ei.

Outlook – Sähköpostiohjelma -> Thunderbird, firefoxin omistama sähköpostisovellus joak toimii hyvin.

lähteet:

Xubuntu 18.04.1: https://xubuntu.org/news/18-04-1-released/
Live-tikun ohje: http://terokarvinen.com/2017/creating-legacy-boot-xubuntu-usb
UNetbootin: https://unetbootin.github.io/
Ohjelmistolisenssejä: https://en.wikipedia.org/wiki/Software_license
Spotify EUA: https://www.spotify.com/no/legal/end-user-agreement/
LibreOffice lisenssi: https://fi.libreoffice.org/tietoja-meista/lisenssit/
GNU LGPL Lisenssi: https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
Valve:n Linux muutoksia: https://www.forbes.com/sites/jasonevangelho/2018/08/22/valve-changes-everything-windows-exclusive-games-now-run-on-steam-for-linux/#71cd69a7e3fa
Valven ilmoitus: https://steamcommunity.com/games/221410#announcements/detail/1696055855739350561
Tämän harjoituksen kurssitehtävät: http://terokarvinen.com/2018/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-3003-to-8-14-alkusyksy-2018p1-%E2%80%93-5-op

17:40