Tehtävä H5

Python Flaskin asennus testi- ja tuotantoympäristöön.

Tein tehtävän kotona pöytäkoneellani, jossa oli mm. Intel i5-3570K prosessori, 8GB RAM-muistia ja Asus GTX 1060 (6GB) näytönohjain. Xubuntua (18.04.3) käytin USB-tikulta kokeilutilassa.

Aloitin tehtävän tekemisen 2.3.2020 klo 19:30 UTC +2. Xubuntun kello oli 17:30 UTC +0.

Alkuvalmistelut

Päivitin Xubuntun paketit ja asensin Apachen siten, että pystyin luomaan käyttäjänä kotisivuja. Toimin samalla tavalla, kuin tässä aiemmassa tehtävässä: https://joni.tech.blog/2020/02/11/h3/

Selaimessa localhost-osoite avasi Apachen testisivun, ja localhost/~xubuntu/ avasi käyttäjälle, nano-komennolla, luomani testisivun. Korvasin vielä Apachen testisivun omalla sivulla, ja varmistin sen toimivuuden. Kun totesin kaiken toimivan, niin siirryin Flaskin kimppuun.

Python Flask kehitysympäristössä

Käytin tehtävässä apuna Tero Karvisen laatimia ohjeita.

Asensin Python Flaskin komennolla sudo apt-get -y install python3-flask. Tämän jälkeen tein tiedoston nimeltä hello.py ja itse tiedostoon kirjoitin seuraavat asiat:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
	return "Flask-testi"

app.run(debug=True)


Tallensin tiedoston, minkä jälkeen ajoin sen komennolla python3 hello.py.

Flask käynnistyi.


Kokeilin vielä Flaskin toimivuutta selaimessa, kirjoittamalla osoiteriville http://localhost:5000. Luomani testisivu avautui.

Sivu avautui selaimessa.

Samalla komentokehotteeseen tulostui ilmeisesti testiympäristön debuggaustoiminnon app.run(debug=True) vuoksi kaksi riviä.

Ylempi rivi on onnistunut sivulataus. Alempi rivi on käsittääkseni virheilmoitus epäonnistuneesta favicon.iconin lataamisesta. En kuitenkaan nähnyt tämän haittaavan tehtävän suorittamista, joten totesin Flaskin toimivan kehitysympäristössä ja jatkoin eteen päin.

Flask tuotantoympäristössä

Tehtävän suorittamisessa käytin apuna Tero Karvisen laatimia ohjeita.

Turvallisuussyistä loin ensiksi uuden käyttäjän nimeltä joniwsgi käyttämällä komentoa sudo adduser joniwsgi. Annoin käyttäjälle hyvän salasanan ja käyttäjän nimeksi kirjoitin ”Joni Smolander WSGI”. Muut käyttäjätiedot jätin tyhjiksi. Käyttäjän luomisen jälkeen lukitsin käyttäjän komennolla sudo usermod –lock joniwsgi.

Seuraavaksi lisäsin itseni (xubuntu) joniwsgi-ryhmään komennolla sudo adduser xubuntu joniwsgi. Kirjauduin ulos ja takaisin sisään, jotta muutos tuli voimaan. Komennolla groups näin ryhmät, joihin käyttäjätunnukseni kuului. Yksi käyttäjätunnukseni ryhmistä näytti olevan joniwsgi, joten totesin lisäyksen onnistuneen.

Loin Flaskia varten asetustiedoston komennolla sudoedit /etc/apache2/sites-available/joniwsgi.conf. Asetustiedostoon kirjoitin seuraavan sisällön:


<VirtualHost *:80>
        ServerName joni.example.com

        WSGIDaemonProcess joniwsgi user=joniwsgi group=joniwsgi threads=5
        WSGIScriptAlias / /home/joniwsgi/public_wsgi/joni.wsgi

        <Directory /home/joniwsgi/public_wsgi/>
                WSGIScriptReloading On
                WSGIProcessGroup joniwsgi
                WSGIApplicationGroup %{GLOBAL}
                Require all granted
        </Directory>
</VirtualHost>



Otin asetustiedoston käyttöön komennolla sudo a2ensite joniwsgi.conf ja poistin käytöstä Apachen oletusasetustiedoston komennolla sudo a2dissite 000-default.conf. Asetukset tulevat voimaan vasta kun Apache käynnistetään uudelleen.

Tässä vaiheessa kokeilin kirjoittaa komennon apache2ctl configtest nähdäkseni mahdolliset virheet.

AH00526: Syntax error on line 4 of /etc/apache2/sites-enabled/joniwsgi.conf:
Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.



Virheilmoitus tuli, sillä en ollut vielä asentanut WSGI-modulia. Modulin asentaminen hoitui komennolla sudo apt-get -y install libapache2-mod-wsgi-py3.

Käynnistin Apachen uudelleen komennolla sudo systemctl restart apache2, minkä jälkeen tein configtestin uudelleen. Aiempi virhe poistui, mutta sain ilmoituksen, jossa valitettiin jotakin ServerNamesta, mutta tästä ei ilmeisesti tarvitse välittää. Koitin avata selaimella localhostia, mutta se ei tietenkänä toiminut, sillä asetustiedosto yrittää avata tiedostoa, jota ei ole vielä olemassa.

.wsgi -tiedoston luominen

Yritin luoda kansiota public_wsgi kansioon joniwsgi. Sain ilmoituksen ”mkdir: cannot create directory ‘public_wsgi’: Permission denied”. Minulla ei ollut oikeuksia muokata kansion sisältöä, joten minun oli annettava itselleni oikeudet. Tein kyseisen toimenpiteen komennoilla:

sudo chown joniwsgi:joniwsgi /home/joniwsgi/
sudo chmod g=rwxs /home/joniwsgi/

Jälkikäteen huomattua: En ole varma, toiminko tässä kohtaa virheellisesti, sillä laitoin kyseisiksi poluiksi /home/joniwsgi/. Teron ohjeen mukaan olisi pitänyt olla /home/joniwsgi/public_wsgi. public_wsgi -loppuisella komenolla sain muistaakseni virheilmoituksen, ettei kansiota ole olemassa. Nyt käsittääkseni annoin itselleni oikeudet koko joniwsgi -kansioon, enkä vain /joniwsgi/public_wsgi? Olisi ollut hyvä dokumentoida tämä kohta tarkemmin.

Nyt kansion luominen onnistui. Kansion oikeudet voi tarkistaa komennolla ls -ld /home/joniwsgi/public_wsgi. Koitin taas avata selaimella localhostia, mutta sivu ei auennut. Tulostin komennolla tail -1 /var/log/apache2/error.log komentokehotteeseen login viimeisen rivin:

[Mon Mar 02 20:24:25.718501 2020] [wsgi:error] [pid 7993:tid 139678093682432] [client 127.0.0.1:50296] Target WSGI script not found or unable to stat: /home/joniwsgi/public_wsgi/joni.wsgi

Minulta siis puuttui edelleen itse joni.wsgi -tiedosto, joka oli aiemmin luomassani joniwsgi.conf -tiedostossa polkuna. Loin public_wsgi -kansioon tiedoston nano joni.wsgi, jonka sisällöksi kirjoitin:

import sys
assert sys.version_info.major >= 3, "Python version too old in joni.wsgi!"

sys.path.insert(0, '/home/joniwsgi/public_wsgi/')
from hello import app as application



hello.py -tiedoston luominen

Kirjoitin jälleen selaimen osoiteriville localhost. Sain virheilmoituksen ”Internal Server Error”. Apachen errorlogissa oli virheilmoitus:

[Mon Mar 02 20:34:34.943512 2020] [wsgi:error] [pid 7992:tid 139678085289728] [remote 127.0.0.1:50320] ModuleNotFoundError: No module named 'hello'

Minulta puuttui hello.py -tiedosto public_wsgi -kansiosta. Loin sen komennolla nano hello.py ja sisällöksi kirjoitin:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
        return "Flask toimii :)\n"

# Removed the app.run line

Tuotantoympäristössä korvasin hello.py -tiedostosta viimeisen rivin ”app.run(debug=True)” rivillä ”# Removed the app.run line”. Tämä oli käsittääkseni turvallisuuteen liittyvä toimenpide.

Päivitin selaimella localhostin, ja tällä kertaa sivu latautui.

Flask toiminnassa tuotantoympäristössä.

Muokkasin nanolla hello.py -tiedostoa vielä uudestaan, minkä jälkeen potkaisin joni.wsgi -tiedostoa komennolla touch joni.wsgi. Päivitin jälleen selaimella localhostin, mikä latasi muokatun hello.py -tiedoston. Homma siis toimi niin kuin piti.



Templatet

Käytin apuna Tero Karvisen tekemiä ohjeita.

Loin public_wsgi -kansioon templates -kansion. Templates -kansioon loin tiedoston base.html, jonka sisältö oli seuraavanlainen:

<!doctype html>
<html>
        <head>
                <title>Hello Templates</title>
                <meta charset="utf-8">
        </head>
        <body>
                <h1>{{ greeting }}</h1>
                <p>
                        Templatet testiin :)
                </p>
        </body>
</html1>

Minulla oli aiemmin tässä harjoituksessa luotu tiedosto hello.py, joka sijaitsi kansiossa public_wsgi. Muokkasin tiedoston sisällön alla olevan mukaiseksi:

#!/usr/bin/python3
"Return HTML templated page"

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def templated():
	return render_template("base.html", greeting="Hello Templates!")

# Removed the app.run line

Tämän jälkeen kosketin tiedostoa joni.wsgi komennolla touch joni.wsgi. Reloadasin selaimesta localhostin, jolloin template latautui.

Template toimii.

Tässä vielä kuva kansiorakenteesta:

Kansiorakenne



Sun IP. Tee Flask-sivu, jolla näkyy tietoja käyttäjästä. Esimerkiksi request.user_agent.string, request.remote_addr. Muista ”from flask import request”.

En osannut itse ratkaista tätä tehtävää, joten päädyin selailemaan muiden kurssilaisten suorituksia. Löysin Jesperi Kuulan tehtäväsuorituksen, josta otin mallia.

Muokkasin tiedoston /public_wsgi/hello.py sisällön alla näkyvän mukaiseksi:


from flask import Flask, request
app = Flask(__name__)

@app.route("/")
def hello():
        return request.user_agent.string

Koskettelin… touch joni.wsgi, ja selaimesta localhostin reloadaus. Sivulle tulostui käyttäjän käyttämän selaimen tiedot. request.remote_addr olisi tulostanut käyttäjän IP-osoitteen.

return request.user_agent.string

Kello oli 01:07 ja lopetin tehtävien tekemisen.



Lähteet

Tehtävä H4

Oman julkisen virtuaalisen internetpalvelimen luominen

Tein tehtävän kotona pöytäkoneellani, jossa oli mm. Intel i5-3570K prosessori, 8GB RAM-muistia ja Asus GTX 1060 (6GB) näytönohjain. Xubuntua (18.04.3) käytin USB-tikulta kokeilutilassa.

Tehtävä tehty 22.2.2020

Aloitin virtuaalisen internetpalvelimen luomisen vuokraamalla palvelimen DigitalOceanilta. Tein edellisellä oppitunnilla tunnukset DigitalOceaniin ja vuokrasin sieltä palvelimen. Tätä tehtävää varten vuokrasin kuitenkin toisen palvelimen.

Palvelimen vuokraaminen

Kirjauduin DigitalOceanin verkkosivuille, valitsin sivun vasemmasta laidasta ”Droplets”. Droplets-näkymästä valitsin sivun ylälaidasta ”Create” ja sieltä ”Droplets”.

Nyt pääsin itse palvelimen luomiseen. Ensiksi valitsin distroksi Ubuntun 18.04.3 (LTS) x64, ja planiksi standardin. Halusin halvimman, eli 5$/kuukausi, vaihtoehdon, joka löytyi valitsemalla ”show all plans”.

Distro ja plan valittuina.

Seuraavaksi valittiin palvelimen maantieteellinen sijainti. Halusin palvelimen sijaitsevan EU:ssa, joten päädyin valitsemaan Saksan.Authenticationiksi otin sähköpostiin lähetettävän salasanan. Tämä ei ole ilmeisesti niin turvallinen kuin SSH-avain, mutta en tiennyt miten SSH-avain toimii, joten en sitä ottanut.

Palvelimen sijainnin ja todentamistavan valinta.

Hostnameksi kirjoitin itse valitsemani sanan ”naava”. Lopuksi klikkasin sivun alalaidasta ”Create Droplet”. Noin 20 sekunnin odottelun jälkeen palvelin oli valmis ja sähköpostiin kilahti palvelimen salasana.

Palvelin vuokrattu.


DNS-nimen luominen

Olin jo oppitunnilla tehnyt tunnukset Name.com -nimiseen palveluun. Kirjauduin tunnuksillani sinne, ja valitsin sivun oikeasta yläreunasta ”My Domains”. Avautuneella sivulla oli aiemmin tunnilla luomani jonismolander.computer -niminen domain, jota klikkasin.

Aiemmin luomani domain.

Seuraavaksi klikkasin kohdasta ”Manage DNS Records”, josta pystyin yhdistämään nimen IP-osoitteeseen. Answer -kohtaan kirjoitin, juuri DigitalOceanista vuokraamani, palvelimen IP-osoitteen 138.68.66.4. Host-kohtaan kirjoitin ”new”, minkä jälkeen klikkasin kohdasta ”Add Record”. Loin vielä yhden nimen samalle osoitteelle, käyttäen nyt tekstiä ”www.new”. Nyt minulla oli osoitteelle 138.68.66.4 kaksi nimeä:

new.jonismolander.computer
http://www.new.jonismolander.computer

Nimet yhdistettyinä IP-osoitteisiin. Kaksi alimmaista ovat tämän tehtävän aikana luotuja, ja kaksi ylimmäistä tein oppitunnilla.


Palvelimelle kirjautuminen

Avasin terminalin ja annoin komennon ssh root@138.68.66.4, jolla sain etäyhteyden palvelimeen. Palvelin pyysi aiemmin sähköpostiini tullutta salasanaa. Annettuani salasanan, palvelin pyysi vaihtamaan salasanan, minkä myös tein. Salasanan tulee aina olla hyvä, joten valitse se huolella.

Seuraavaksi avasin palvelimelle portin etäyhteyttä varten antamalla komennon sudo ufw allow 22/tcp. Tässä vaiheessa uskalsin laittaa palomuurin päälle komennolla sudo ufw enable.


Käyttäjän luominen ja lisääminen ryhmiin

Palvelimelle piti luoda sudo-käyttäjä, jotta pystyisin kirjautumaan muutenkin kuin root-tunnuksilla.

Komennolla sudo add user joni loin käyttäjän nimeltä joni. Seuraavaksi piti luoda käyttäjälle salasana ja antaa joitain tietoja, kuten kokonimi. Annoin nimen ja jätin muut kohdat tyhjiksi. Luotuani käyttäjän joni, lisäsin käyttäjän ryhmiin sudo, adm ja admin käyttäen komentoja:

sudo adduser joni sudo
sudo adduser joni adm
sudo adduser joni admin

Tässä vaiheessa kokeilin kirjautua uudella käyttäjällä palvelimelle. Avasin uuden terminaalin ja annoin komennon ssh joni@new.jonismolander.computer. (Olisin voinut kirjoittaa IP-osoitteenkin, mutta halusin testata nimipalvelun toimivuutta.) Palvelin pyysi käyttäjän salasanaa, jonka annettuani pääsin palvelimelle käyttäjätunnuksella joni.

Roottina loin käyttäjätunnuksen joni, jonka toimivuutta testasin toisella terminaalilla.


Root-tunnuksen lukitseminen

Seuraavaksi lukitsin root-tunnukset komennolla sudo usermod –lock root. Komennolla sudoedit sudoedit /etc/ssh/sshd_config avasin sshd_config -tiedoston, josta muutin kohdan ”PermitRootLogin yes” -> ”PermitRootLogin no”. Tallensin tiedoston ja käynnistin ssh:n uudelleen komennolla sudo service ssh restart. Näin sain root-kirjautumisen poissa käytöstä.

Lopuksi päivitin vielä paketit ajantasalle käyttäen komentoja:

sudo apt-get update
sudo apt-get upgrade

Poistin lopuksi tämän juuri vuokraamani palvelimen DigitalOceanista, sillä minulla oli siellä ennestään oppitunnilla luomani palvelin.

Vapaaehtoiset tehtävät

Tehtävät tehty 25.2.2020. Käytössä oli oppitunnilla luomani palvelin nimeltä kaarna. Palvelimen IP yhdistetty nimiin jonismolander.computer sekä http://www.jonismolander.computer.


Etsi lokeistasi merkkejä murtautumisyrityksistä ja analysoi ne.

/var/log/auth.log:sta löysin pitkän listan tunkeutumisyrityksiä. Alla yksi esimerkki:

Feb 25 20:43:17 kaarna sshd[20172]: Invalid user dongshihua from 180.76.238.128 port 39464
Feb 25 20:43:17 kaarna sshd[20172]: pam_unix(sshd:auth): check pass; user unknown
Feb 25 20:43:17 kaarna sshd[20172]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.76.238.128
Feb 25 20:43:19 kaarna sshd[20172]: Failed password for invalid user dongshihua from 180.76.238.128 port 39464 ssh2
Feb 25 20:43:19 kaarna sshd[20172]: Received disconnect from 180.76.238.128 port 39464:11: Bye Bye [preauth]
Feb 25 20:43:19 kaarna sshd[20172]: Disconnected from invalid user dongshihua 180.76.238.128 port 39464 [preauth]

Rivien alussa on päivämäärä sekä kellonaika (UTC +0).

kaarna on palvelimen nimi, johon hyökkäys kohdistui.

sshd on prosessi, jossta ilmoitus tuli (OpenSSH SSH daemon). https://www.tutorialspoint.com/unix_commands/sshd.htm

[20172] ilmeisesti jonkinlainen tapahtuman id-numero. Luku kasvoi tasaisesti tapahtumien lisääntyessä.

Invalid user dongshihua virheellinen käyttäjä

from 180.76.238.128 port 39464 mistä tunkeutumisyritys tuli (IP ja portti)

pam_unix(sshd:auth)
pam_unix on salasanan todentamismoduuli
https://linux.die.net/man/8/pam_unix

check pass; user unknown ei tunnista käyttäjää

authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=180.76.238.128

Todentaminen epäonnistui.

Failed password for invalid user dongshihua from 180.76.238.128 port 39464 ssh2
Virheellinen salasana väärälle käyttäjälle dongshihua.

Kahdella viimeisellä rivillä tieto tunkeutumisyrittäjän yhteyden katkaisemisesta.

Tee weppisivuja omalla, paikallisella koneellasi ja kopioi ne palvelimmelle scp-komennolla.

Ensin asensin palvelimelle Apachen samoin kuin aiemmassa postauksessani, joten en raportoi kyseistä toimenpidettä tarkasti. Tämän jälkeen latasin Moodlesta, Orientaatio digitaalisiin palveluihin -kurssin palautuslaatikosta, vuosi sitten tekemäni verkkosivut. Sivusto latautui kansioon /home/xubuntu/Downloads/. Kaikki sivustoon liittyvät tiedostot olivat Hauturit-nimisessä kansiossa, jonka nimen muutin public_html-nimiseksi.

Avasin palomuurista portin 80 (sudo ufw allow 80/tcp) ja otin käyttöön userdir-moduulin (sudo a2enmod userdir). Käynnistin Apachen vielä uudestaan (sudo systemctl restart apache2).

Sivustoni oli paikallisella koneella /home/xubuntu/Downloads/, jonne navigoin komentokehotteessa. Komennolla scp -r public_html joni@jonismolander.computer: kopioin public_html-kansion paikalliselta koneeltani palvelimelle. Kansio kopioitui palvelimelle kohteeseen /home/joni/. Tämän jälkeen tein palvelimelle, kansioon /etc/apache2/sites-available/, tiedoston nimeltä jonismolander.computer.conf. Kyseiseen asetustiedostoon kirjoitin alapuolella näkyvän sisällön.

<VirtualHost *:80>
        ServerName jonismolander.computer
        ServerAlias www.jonismolander.computer

        DocumentRoot "home/joni/public_html/"

        <Directory "home/joni/public_html/">
                 require all granted
        </Directory>
</VirtualHost>

Otin asetukset käyttöön komennolla sudo a2ensite jonismolander.computer.conf. Poistin Apachen oletussivun asetukset komennolla a2dissite 000-default.conf. Käynnistin Apachen uudelleen komennolla sudo systemctl restart apache2. Komennolla apache2ctl configtest testasin, tuleeko virheilmoituksia. Ja tulihan sieltä:

Virheilmoitus.

Hetken ihmeteltyäni, huomasin unohtaneeni luomastani asetustiedostosta kohdekansiopolun alusta kauttaviivan. Lisäsin kauttaviivat ja tallensin tiedoston.

Kauttaviivat lisätty polkujen alkuihin.

Käynnistin varmuuden vuoksi apachen jälleen uudestaan, minkä jälkeen taas komennon apache2ctl configtest. Tällä kertaa sain virheilmoitukseksi seuraavan teksin:

Virheilmoitus.

Menin selaimella osoitteeseen http://www.jonismolander.computer, ja sain Permission Denied -virheilmoituksen. Siirryin ihmettelemään logitiedostoja, ja löysin seuraavan merkinnän:

[Tue Feb 25 18:34:29.938825 2020] [core:crit] [pid 19422:tid 140378799834880] (13)Permission denied: [client 178.75.130.183:56060] AH00529: /home/joni/public_html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/joni/public_html/' is executable, referer: http://jonismolander.computer/~joni/fds 

Logia lukiessani aloin miettimään, oliko kansio jollain tavalla suojattu. Kirjoitin Googleen hakusanoiksi ”htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that” ja löysin tämän sivuston: https://stackoverflow.com/questions/20627084/permission-denied-var-www-abc-htaccess-pcfg-openfile-unable-to-check-htacces

Päätin kokeilla seuraavaa komentoa:

chmod 755 /home/joni/public_html/

Komennon antamisen jälkeen menin selaimella osoitteeseen http://www.jonismolander.computer, jolloin sivusto lähti toimimaan. Kansiollani oli ilmeisesti jostain syystä jonkinlainen luku/kirjoituskielto. En tiedä tarkalleen, mitä kaikkea kyseinen komento teki, joten googletin asiasta lisätietoa ja päädyin sivulle: https://www.poftut.com/chmod-755-700/

Komento antoi kaiketi oikeudet käyttäjille ja käyttäjäryhmille? Kannattaa perehtyä näihin komentoihin tarkemmin, jottei pääsisi muodostumaan tietoturvauhkia. En tiedä, mitä komentoa minun olisi kannattanut käyttää, joten annoin asian olla.

Myöhemmin kommentoitua: Oikeat komennot olisivat olleet kaiketi nämä:

sudo chown joni:joni /home/joni/public_html
sudo chmod g=rwxs /home/joni/public_html

Totesin sivujen toimivan virtuaaliselta palvelimelta, joten lopetin tehtävien tekemisen tältä päivältä.


Laita TLS-salakirjoitus (https) toimimaan certbot ja Let’s Encrypt avulla.

Tehtävän teen mahdollisesti jossain vaiheessa…

Lähteet:

Tehtävä H3

Apache web-palvelimen asennus, logitiedostot ja käyttäjäkohtaiset kotisivut

Tein tehtävän kotona pöytäkoneellani, jossa on mm. Intel i5-3570K prosessori, 8GB RAM-muistia ja Asus GTX 1060 (6GB) näytönohjain.



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

Aloitin tehtävien tekemisen klo 10.2.2020 16:30 (UTC +2). Xubuntun kello oli 14:30 (UTC +0)

Käynnistin Xubuntun (18.04.3) USB-tikulta kokeilutilassa, ja avasin Terminalin näppäinyhdistelmällä WIN + T. Seuraavaksi annoin komennon setxkbmap fi, jolla sain suomalaisen näppäinasettelun käyttööni. Päivitin uusimmat paketit komennolla sudo apt-get update, ja asensin Apasche webpalvelimenen käyttäen komentoa sudo apt-get install -y apache2.

Komennoilla sudo ufw enable ja sudo ufw allow 80/tcp käynnistin palomuurin ja avasin palomuurista portin verkkosivuja varten. Avasin selaimen ja kirjoitin osoiteriville ”localhost”, jolloin Apachen testisivu aukesi, ja totesin palvelimen asentuneen onnistuneesti.

Apachen testisivu avautui selaimessa.

Kirjoitin selaimen osoiteriville localhost/~xubuntu, millä testasin käyttäjäkohtaisen sivun toimivuutta. Selain antoi virheilmoituksen 404 Not Found.

Käyttäjän xubuntu kotisivu ei auennut.

Annoin komentokehotteeseen komennon sudo a2enmod userdir, mikä mahdollisti käyttäjäkohtaisten sivujen luomisen. Apache piti vielä käynnistää uudelleen komennolla sudo systemctl restart apache2, jotta asetus tuli voimaan. Kirjoitin selaimen osoiteriville jälleen localhost/~xubuntu. Nyt selain antoi virheilmoituksen 403 Forbidden, minkä tulkitsin tarkoittavan käyttäjäkansiomoduulin olevan toiminnassa (virheilmoitus muuttui 404 -> 403, eli userdir -moduulin asennuksella oli jokin vaikutus).

Userdir -moduulin käyttöönoton jälkeen selaimen virheilmoitus muuttui.

Tässä vaiheessa aloin luomaan käyttäjän sivuja. Menin käyttäjän kotikansioon (tässä tapauksessa /home/xubuntu) ja loin sinne uuden kansion nimeltä public_html. Komennolla echo ”Kayttajan testisivu”|sudo tee /home/xubuntu/public_html/index.html tein käyttäjälle xubuntu sivun, jossa oli teksti ”Kayttajan testisivu”. Testatakseni sivun toimivuutta, avasin jälleen selaimen ja kirjoitin osoiteriville localhost/~xubuntu. Testisivu aukesi selaimessa, joten totesin tehtävän suoritetuksi.

Käyttäjän xubuntu kotisivu aukesi selaimella.

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

Logeissa olikin jo valmiiksi erilaisia rivejä liittyen edellisen tehtävän kotisivutesteihin.

Epäonnistunut sivulataus

127.0.0.1 - - [10/Feb/2020:15:07:27 +0000] "GET /~xubuntu HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

127.0.0.1 On kaiketi localhostin osoite

[10/Feb/2020:15:07:27 +0000] Logimerkinnän aikaleima, +0000 on käsittääkseni sama kuin UTC +0

GET /~xubuntu HTTP/1.1 Selain hakee ilmeisesti käyttäjän xubuntu kotisivua

404 488 Selaimen antama virhekoodi 404 voi johtua monesta eri syystä. Selain ei saa ladattua sivua. Tässä tapauksessa käyttäjän xubuntu sivuja ei vielä ollut olemassa. 488 on latauksen koko.

Mozilla/5.0 Selaimen kehittäjä

(X11; Ubuntu; Linux x86_64; rv:68.0) Käyttöjärjestelmä jossa Firefox pyöri

Gecko/20100101 Moottori jota Firefox käyttää

Firefox/68.0 Käytty selain ja sen versionumero

Onnistunut sivulataus

127.0.0.1 - - [10/Feb/2020:15:32:25 +0000] "GET /~xubuntu/ HTTP/1.1" 200 305 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

Tässä logirivissä ei ollutkaan muuta erilaista kuin koodi 200 305.
200 Sivulataus onnistui

305 on latauksen koko


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

Minulta meni hetki löytää Apachen asennussijainti. Lopulta kuitenkin löysin sen sijainnista /etc/Apache2. En oikein tiennyt, mitä lähtisin muokkaamaan. Lopulta arvoin vain jonkin tiedoston ja sieltä yhden asetusrivin. Avasin sudoeditillä tiedoston apache2.conf, josta poistin asetusrivin ”Include ports.conf”

Käynnistin Apachen uudelleen komennolla systemctl restart apache2, jotta muokkaamani asetus tulisi voimaan. Sain kuitenkin komentokehotteessa välittömästi virheilmoituksen.

Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.

Tämän jälkeen navigoin itseni tiedostoon /var/log/syslog löytääkseni mahdollisia logimerkintöjä tapahtuneesta. Ja olihan logissa merkintöjä…

Feb 10 17:59:00 xubuntu systemd[1]: Stopping The Apache HTTP Server...
Feb 10 17:59:00 xubuntu apachectl[7958]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Feb 10 17:59:00 xubuntu systemd[1]: Stopped The Apache HTTP Server.
Feb 10 17:59:00 xubuntu systemd[1]: Starting The Apache HTTP Server...
Feb 10 17:59:00 xubuntu apachectl[7963]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Feb 10 17:59:00 xubuntu apachectl[7963]: no listening sockets available, shutting down
Feb 10 17:59:00 xubuntu apachectl[7963]: AH00015: Unable to open logs
Feb 10 17:59:00 xubuntu apachectl[7963]: Action 'start' failed.
Feb 10 17:59:00 xubuntu apachectl[7963]: The Apache error log may have more information.
Feb 10 17:59:00 xubuntu systemd[1]: apache2.service: Control process exited, code=exited status=1
Feb 10 17:59:00 xubuntu systemd[1]: apache2.service: Failed with result 'exit-code'.

Rivien alussa on aikaleima sekä käyttäjän nimi.

systemd[1] Linuxin järjestelmä, joka mm. vastaa eri toimintojen käynnistämisestä. https://www.linode.com/docs/quick-answers/linux-essentials/what-is-systemd/

apachectl[7963] apachectl toimii ilmeisesti jonkinlaisena Apachen käyttöliittymänä.
https://www.commandlinux.com/man-page/man8/apachectl.8.html
7963:sta en löytänyt tietoa.

AH00558 Ei löydä serverin nimeä
https://bobcares.com/blog/apache-error-ah00558/

Logitekstien perusteella Apache ei tainnut käynnistyä ollenkaan. Yritin avata selaimella käyttäjän xubuntu kotisivut, mutta selain antoi 404 errorin. Korjasin muuttamani asetuksen ja käynnistin Apachen uudelleen. Kotisivut aukesivat ja kaikki vaikutti toimivan muutenkin normaalisti.

Olin käyttänyt tähän mennessä tehtävien tekemiseen yli neljä tuntia, joten jätin loput kaksi tehtävää seuraavalle päivälle.

m) Vaihda Apachen oletussivu. Eli laita palvelimen etusivulla (ilman tildeä) näkyvä sivu niin, että alkuperäinen on jonkun käyttäjän kotihakemistossa ja voit muokata sitä ilman pääkäyttäjän oikeuksia.

Aloitin tehtävän tekemisen kello 11.2.2020 klo 20:00 tekemällä tehtävän a) uudelleen.

Tein kansioon /home/xubuntu/publicSite/ tiedoston index.html johon kirjoitin ”Uusi aloitussivu”. Tämän jälkeen navigoin kansioon /etc/apache2/sites-available/ ja loin sinne tiedoston komennolla sudoedit testataan.com.conf. Tiedostoon kirjoitin alla olevan kuvan mukaiset rivit.

testataan.com.conf

Seuraavaksi annoin komentokehotteeseen komennon sudo a2ensite testataan.com.conf, jolla sain kyseisen asetustiedoston asetukset voimaan. (oikeasti asetukset eivät ole vielä tässä vaiheessa voimassa). Kirjoitin vielä komennon sudo a2dissite 000-default.conf, joka poisti käytöstä oletussivuasetukset. Jotta molempia asetustiedostoja koskevat komennot astuisivat voimaan, oli apache käynnistettävä uudelleen komennolla sudo systemctl restart apache2.

Avasin selaimen ja kirjoitin osoiteriville ”localhost” jolloin käyttäjälle xubuntu tekemäni index.html sivu aukesi. Totesin tehtävän suoritetuksi.

Apachen oletussivu vaihdettu käyttäjän sivuksi.


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

Yritin kikkailla monella eri tavalla, mutta en saanut luotua uusia koodeja logeihin. Aiemmin analysoin koodit 200 ja 404. Löysin edellisen päivän logitiedostoista 301, 303 ja 403 koodit.

127.0.0.1 - - [10/Feb/2020:15:17:37 +0000] "GET /~xubuntu HTTP/1.1" 403 491 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 

Tämä virhe tuli siinä vaiheessa, kun olin ottanut userdir-moduulin käyttöön, ja kirjoitin selaimen osoiteriville localhost~xubuntu. En ollut vielä luonut käyttäjälle sivuja, joten selain ei niitä voinut ladata. Wikipedian mukaan serveri ymmärtää pyynnön, mutta ei voi avata sivua (koska sivua ei ole).

3xx statuskoodit liittyvät Wikipedian mukaan osoitteen uudelleenohjaukseen. (”This class of status code indicates the client must take additional action to complete the request. Many of these status codes are used in URL redirection.”)

127.0.0.1 - - [10/Feb/2020:15:32:25 +0000] "GET /~xubuntu HTTP/1.1" 301 572 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 
127.0.0.1 - - [10/Feb/2020:15:40:43 +0000] "GET /~xubuntu/ HTTP/1.1" 304 180 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" 

En saanut suoritettua tätä tehtävää toivomallani tavalla. Etsin statuskoodeista tietoa googlettamalla eri lähteitä, mutta en ymmärtänyt, mitä niissä asiasta kerrottiin. Ehkä olisi auttanut, jos olisin saanut luotua tietoisesti jonkin statuskoodin logitietoihin, ja osannut yhdistää sen tapahtuneeseen.

Lopetin tehtävän suorittamisen. Kaiken kaikkiaan käytin aikaa H3:n tekemiseen ainakin seitsemän tuntia.

Lähteet

Tehtävä H2

Xubuntun lokitiedostot ja ohjelmien asentaminen

Tein tehtävät kotona pöytäkoneellani, jonka komponentteina olivat mm. Intel i5-3570K suoritin, Asus Dual GTX 1060 6GB näytönohjain sekä 8GB RAM-muistia.

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

Epäonnistunut toimenpide

Xubuntun käynnistyttä työpöydälle, painoin Windows + T näppäinyhdistelmää, jolloin terminaali aukesi. Kirjoitin komentokehotteeseen komennon setxkbmap fi, jonka avulla sain suomalaisen näppäinasettelun toimimaan. Tämän jälkeen menin tutkimaan lokitiedostoja. Kirjoitin komentoriville cd /var/log, jolloin pääsin logikansioon. Komennolla ls näin logikansiossa olevan mm. auth.log -ja syslog -nimiset tiedostot.

Tässä vaiheessa irroitin langallisen hiireni tietokoneeni usb-portista. Halusin selvittää, miten kyseinen toimenpide näyttäytyy logeissa. Kirjoitin komentoriville komennon less syslog, jolloin syslog aukesi. Näppäinyhdistelmällä Shift + G pääsin logitekstin loppuun, eli viimeisimpiin lokgimerkintöihin.

USB-hiiri irroitettu USB-portista.

Logimerkinnöistä kävi selvästi ilmi, että USB-laite oli irroitettu USB-portista (”USB disconnect”). Logirivien alussa on tapahtuman päiväys sekä kellonaika (UTC +0). Kellonajan jälkeen tuleva ”xubuntu” viittaa käyttäjänimeen. Seuraavana tulevat ”kernel”, ”acipd” ja upowerd tarkoittavat ilmeisesti prosessia, josta logimerkintä on tullut. Kernel on Linuxin ydin, ja acipd sekä upowerd ovat demoneja. Hakasuluissa olevasta numerosta en löytänyt tietoa, mutta veikkaisin sen olevan jonkinlainen koodi. Logirivien lopusa on tekstikuvaus tapahtumasta. Suljin logitiedoston painamalla näppäimistöstäni näppäintä Q.

Onnistunut toimenpide

Kytkin langallisen hiireni takaisin tietokoneeni USB-porttiin ja avasin syslog -tiedoston uudestaan samoilla komennoilla kuin aiemminkin. Logitiedoston loppuun oli ilmestynyt uusia rivejä, joista ilmeni hyvin hiiren liittäminen tietokoneeseeni.

USB-hiiri kytketty USB-porttiin.

Uudet lgirivit noudattivat samaa kaavaa edellisten kanssa. Mtp-probesta en löytänyt kunnollista tietoa. Usb 2-1.5 viittaa USB-portin versioon. Uusien logimerkintöjen ensimmäisillä riveillä kerrottiin, että uusi USB-laite on kytketty (”New USB device found”). Seuraavat rivit puolestaan kertoivat, mistä laitteesta on kyse. Minun hiireni oli malliltaan Logitech G402. Olin hiukan yllättynyt siitä, kuinka tarkat tiedot hiirestä annettiin. Suljin logitiedoston painamalla näppäimistöstä näppäintä Q.

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

Ensiksi kirjoitin komentokehotteeseen komennon sudo apt-get update. Kyseinen toimenpide ohjeistettiin tekemään Tero Karvisen sivuilla ennen muiden apt -komentojen suorittamista. Omaksi komennokseni päätin valita sudo apt-get install blender gimp vlc -komennon. Kirjoitin kyseisen komennon komentokehotteeseen, jonka jälkeen Blender, GIMP ja VLC asentuivat.

Tarkistin asennusten onnistumisen kirjoittamalla komentokehotteeseen ohjelman nimen ja painamalla Enteriä, jonka jälkeen ohjelma käynnistyi. Toistin tämän toimenpiteen kaikkien kolmen ohjelman kohdalla. Jokainen ohjelma käynnistyi, ja nopealla testaamisella tuntui toimivan odotetulla tavalla. Suljin ohjelmat ja totesin valitsemani komennon toimivan.

Blender on 3D-mallinnusohjelma.

GIMP on kuvankäsittelyohjelma.

VLC on mediasoitin.

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

Näitä tehtäviä seuranneella oppitunnilla sain kuulla, että olisi ollut mahdollista etsiä sovelluksia suoraan komentokehotteen kautta komennolla apt-cache search ”hakusana”. En ollut huomannut kyseistä komentoa, joten päädyin käyttämään Googlea.

Googletin erilaisia komentorivillä toimivia ohjelmia. Päädyin mm. seuraaville sivuille:
https://www.binarytides.com/linux-fun-commands/
https://www.reddit.com/r/commandline/comments/9b426l/best_terminal_apps/

Päätin ensiksi asentaa CMatrix-nimisen ohjelman. Ohjelma asentui suorittamalla komentokehotteessa komento sudo apt-get install cmatrix. Ohjelman sai avattua kirjoittamalla ohjelman nimen komentokehotteeseen (cmatrix) ja painamalla Enteriä. Ohjelma käynnistyi, ja ruudun yläraunasta alkoi valumaan, Matrix-elokuvasta tuttuja, vihreitä merkkejä. Totesin ohjelman toimivan, ja suljin sen painamalla näppäimistöstä näppäintä Q.

CMatrix

Toiseksi ohjelmaksi valitsin Fortune-nimisen ohjelman. Ohjelma asentui komentokehotteessa komennolla sudo apt-get install fortune. Ohjelman käynnistin kirjoittamalla komentokehotteeseen ohjelman nimen (fortune) ja painamalla Enteriä. Joka kerta kun kirjoitin komentokehoitteeseen ohjelman nimen, niin ohjelma vastasi komentokehotteessa jollakin lauseella. Totesin ohjelman toimivan.

Fortune

Kolmas valitsemani ohjelma oli komentokehotteessa näkyvä kello. Ohjelma asentui komennolla sudo apt-get install tty-clock. Käynnistin ohjelman kirjoittamalla komentokehotteeseen ohjelman nimen, tty-clock. Ohjelma käynnistyi, ja komentokehotteessa näkyi digitaalinen kello sekä päivämäärä. Totesin ajan (UTC +0) ja päivämäärän olevan oikeita, joten ohjelma toimi. Lopuksi suljin ohjelman.

TTY-Clock

Lähteet:

Tehtävä H1

Livetikun tekeminen, sovellusten asentaminen ja sovelluslisenssit

Tein tehtävät kotona pöytäkoneellani, jonka komponentteina olivat mm. Intel i5-3570K suoritin, Asus Dual GTX 1060 6GB näytönohjain sekä 8GB RAM-muistia.

a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa. 

Aloitin tehtävän suorittamisen menemällä kotitietokoneeni selaimella osoitteeseen https://xubuntu.org/download/ ja lataamalla sieltä koneelleni tiedoston xubuntu-18.04.3-desktop-amd64.iso. Tämän jälkeen latasin osoitteesta https://github.com/pbatard/rufus/releases/ tiedoston nimeltä rufus-3.8.exe. Rufus on ohjelma, jonka avulla aiemmin lataamastani xubuntun .iso -tiedostosta saadaan luotua Linux-livetikku.

Seuraavaksi liitin USB-tikun tietokoneeni USB-porttiin ja käynnistin aiemmin lataamani rufus-3.8.exe -tiedoston. Erillistä ohjelman asennusta ei tarvinnut suorittaa, vaan Rufus käynnistyi välittömästi. Ohjelman valikosta klikkasin ”VALITSE” -painikketta, jonka jälkeen pystyin etsimään ja valitsemaan koneeltani aiemmin lataamani xubuntu-18.04.3-desktop-amd64.iso -tiedoston.

”VALITSE” -painiketta painamalla saa valittua halutun tiedoston. Kuvassa xubuntu-18.04.3-desktop-amd64.iso -tiedosto valittuna.

Tämän tehtyäni jätin kaikki asetukset oletukselle ja klikkasin ohjelman valikosta kohtaa ”ALOITA”. Ruutuun tuli ponnahdusikkuna, jossa kerrottiin vaadittavista latauksista. Valitsin ”Kyllä”, jonka jälkeen tuli uusi ponnahdusikkuna, josta valitsin ”OK”. Tämän jälkeen ohjelma alkoi tekemään itse livetikkua, jonka tekemisessä kesti muutama minuutti. Livetikun valmistuttua suljin Rufus -ohjelman.

Ponnahdusikkuna, jossa ilmoitetaan vaadittavasta latauksesta.

Klikattuani kohdasta ”OK” ohjelma alkoi tekemään livetikkua. Livetikun tekemiseen meni muutama minuutti.

Tässä vaiheessa käynnistin tietokoneeni uudelleen käynnistääkseni Xubuntun livetikulta. Minulta meni muutaman uudelleenkäynnistyksen verran aikaa ennen kuin löysin oikean näppäimen, josta pääsin käsiksi koneeni BIOSiin ja sitä kautta käynnistysasetuksiin. Tietokoneeni käynnistyessä uudelleen, minun täytyi painaa näppäintä F2. BIOSista vaihdoin koneeni käynnistyssijainniksi USB-muistin. Tämän jälkeen tallensin BIOSin asetukset ja poistuin BIOSsta. Näyttöön tuli valikko, josta pystyi valitsemaan kielen, sekä sen, haluatko asentaa Xubuntun vai käynnistää sen kokeilutilassa. Valitsin kieleksi Suomen ja käynnistin Xubuntun kokeilutilassa.

Tietokoneeni näytölle avautui Xubuntun työpöytä. Hiirtä liikuttamalla ja valikoita klikkailemalla totesin hiiren toimivan. Vasemman yläkulman valikosta avasin komentokehotteen, jonne kirjoittamalla totesin myös näppäimistön toimivan. Tehtyäni tämän kaiken, totesin livetikun toimivan ja siirryin suorittamaan seuraavaa tehtävää.

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

Avasin Xubuntun työpöydältä, vasemmasta yläkulmasta, valikon. Valikosta käynnistin komentokehotteen. Komentokehotteeseen kirjoitin ”sudo lshw -short -sanitize”, minkä jälkeen komentokehotteessa näkyi koneeni tiedot.

Kuvassa komentokehote, jossa näkyy käyttämäni tietokoneen tiedot.

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

Asensin kuvankäsittelysovelluksen nimeltä GIMP suoraan Xubuntun komentokehotteesta, johon pääsee aiemmin mainitsemallani tavalla. Komentokehotteeseen kirjoitin ”sudo apt-get install gimp” ja painoin näppäimistöstä Enteriä. Ohjelmaa asentaessa tuli jokin kysymys, johon vastasin ”kyllä” kirjoittamalla komentoriville kirjaimen ”k” ja painamalla enteriä. Asennuksen jälkeen käynnistin GIMPin linuksin työpöydän vasemman yläkulman valikon kautta. Kyseisessä valikossa kirjoitin hakukenttään ”gimp”, minkä jälkeen ohjelman käynnistyskuvake ilmestyi ruudulle. Klikkasin käynnistyskuvaketta ja GIMP käynnistyi. Kokeilin kuvankäsittelyohjelmaa kirjoittamalla sen avulla tekstin ”toimii”. Totesin sovelluksen toimivan, minkä jälkeen suljin sen.

GIMP toiminnassa.

Seuraavaksi asensin Spotify-musiikkisovelluksen. Edellisestä poiketen päätin asentaa Spotifyn Xubuntun graafisen käyttöliittymän kautta. Klikkasin työpöydän vasemmasta yläkulmasta auki valikon (pieni sinivalkoinen ikoni). Kyseisestä valikosta klikkasin auki Software -nimisen sovelluksen. Tämän sovelluksen kautta pystyi etsimään erilaisia sovelluksia Linuxille. Spotify sattui olemaan näkyvillä heti sovelluksen aloitusnäkymässä.

Software -sovellus, jonka kautta voi etsiä ja asentaa sovelluksia.

Klikkasin ruudulla näkynyttä Spotifyn kuvaketta, minkä jälkeen avautui uusi ikkuna, josta näki mm. sovelluksen kuvauksen. Samaisesta ikkunasta painoin painiketta ”Install”, jolloin Spotify lähti asentumaan. Sovelluksen asentamisen jälkeen painoin ruudulla näkynyttä ”Launch” -painiketta, ja ohjelma käynnistyi. Kirjauduin omalla Spotify-tunnuksellani sovellukseen ja pistin musiikin soimaan. Musiikki kuului tietokoneeni kaiuttimista, ja näin totesin sovelluksen olevan toimintakunnossa. Suljin sovelluksen.

Spotify toimii.

Seuraavaksi halusin asentaa Audacity-äänieditointisovelluksen. Käynnistin jälleen työpöydän vasemman yläkulman ikonin (pieni sinivalkoinen) takaa olevan Software -sovelluksen. Sovelluksen avauduttua, klikkasin sovelluksen oikeassa yläkulmassa olevaa suurennuslasin kuvaketta, minkä jälkeen pystyin kirjoittamaan etsimäni sovelluksen nimen. Tässä tapauksessa kirjoitin hakukenttään ”Audacity”. Ohjelma löytyi nopeasti, ja asennus sekä sovelluksen käynnistys tapahtuivat täysin samalla tavalla kuin aiemmin kertomani Spotifyn asennus, joten en mainitse kyseisiä toimenpiteitä tässä uudelleen. Ennen sovelluksen käynnistämistä kytkin tietokoneeseeni mikrofonin. Sovelluksen käynnistyttyä kokeilin tallentaa sillä ääntäni. Ääni tallentui moitteettomasti, minkä jälkeen totesin sovelluksen sekä mikrofonin toimivan. Suljin sovelluksen ja siirryin seuraavaan tehtävään.

Audacity toimii.

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

GIMP käyttää GNU General Public Licenceä (GPL) (versio 3) Lähde: https://www.gimp.org/about/ Kyseinen lisenssi oikeuttaa käyttämään, muokkaamaan ja jakamaan kyseistä ohjelmaa, mutta kaikkien GIMPistä jaettujen ja kehitettyjen versioiden on käytettävä myös GPL-lisenssiä.

Spotify on yksityisomisteinen, eli toisin sanoen suljetun lähdekoodin, ohjelmisto. Käyttäjällä on oikeus käyttää sovellusta, mutta sovellusta ei saa muokata eikä jakaa edelleen.

Audacity käyttää GNU General Public Licenceä (GPL) (ilmeisesti versio 2) Lähde: https://www.audacityteam.org/about/license/ Audacityä saa käyttää, muokata ja jakaa edelleen, mutta muokattujen ja edelleen jaettujen versioiden on käytettävä myös GPL-lisenssiä (versio 2 tai halutessa uudempi).

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.

Vasemmalla Windowsissa käyttämiäni ohjelmia ja oikealla samaan tarkoitukseen sopivia vapaan lähdekoodin ohjelmia Linuxille.

  • MS Excel, taulukkolaskenta. Vastaava vapaa ohjelma LibreOffice Calc
  • Corel PaintShop Pro, kuuvankäsittely. Vastaava vapaa ohjelma GIMP
  • MS PowerPoint, esitysgrafiikka. Vastaava vapaa ohjelma LibreOffice Impress
  • Käytän myös VLC-mediasoitinta, joka on vapaa ohjelma

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

Laitoin ulkoisen kovalevyn tilaukseen. Olen viivytellyt varmuuskopioiden ottamista aivan liian pitkään. Vain tärkeimmät tiedostoni ovat varmuuskopioituina USB-tikuille.

Käyttämiäni lähteitä:

Design a site like this with WordPress.com
Aloitus