Aihearkisto: koulu

ict4tn021-3014 läksyt h7

https://terokarvinen.com/2020/linux-palvelimet-2021-alkukevat-kurssi-ict4tn021-3014/

a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. (Löytyy DuckDuckGolla tai Googlella sekä linkeistä tältä sivulta).
b) Tarkista, että olet viitannut jokaisessa tehtävässä kaikkiin lähteisiin. Esimerkiksi kurssiin, tehtävänantoihin, käyttämiisi toisten kotitehtävärapotteihin, manuaalisivuihin, kotisivuihin…

c) 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”.

https://hhwork.dennisgustafsson.net/tag/ict4tn021/

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

MYÖHÄSSÄ

ict4tn021-3014 läksyt h5

https://terokarvinen.com/2020/linux-palvelimet-2021-alkukevat-kurssi-ict4tn021-3014/

Tuotanto-Flask. Tee tuotantotyyppinen asennus Flaskista käyttäen Apachen WSGI-modulia. Kokeile, että pystyt muokkaamaan koodia ilman sudoa ja saat uuden version käyttöön käynnistämättä Apachea uudelleen. (’touch foo.wsgi’).

Tehty https://terokarvinen.com/2020/deploy-python-flask-to-production/ ohjeen mukaisesti osittain muokattuna.

Tein asennuksen droplet002.dennisgustafsson.net palvelimelle jossa on jos asennettuna Apache2.

$ curl -s localhost
Nothing to see heree

Aloitin luomalla uuden käyttäjän ja sille salasanan.

$ sudo adduser riverwsgi
Adding user `riverwsgi' ...
Adding new group `riverwsgi' (1002) ...
Adding new user `riverwsgi' (1002) with group `riverwsgi' ...
Creating home directory `/home/riverwsgi' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for riverwsgi
Enter the new value, or press ENTER for the default
	Full Name []: River WSGI
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] y

Ja tämän jälkeen estin käyttäjän kirjautumisen palvelimelle.

sudo usermod --lock riverwsgi

Lisäsin myös itseni käyttäjän ryhmään.

sudo adduser $(whoami) riverwsgi
Adding user `dennis' to group `riverwsgi' ...
Adding user dennis to group riverwsgi
Done.

Lisätään hakemisto verkkosivuille ja lisätään oikeudet valmiiksi

sudo mkdir /home/riverwsgi/public_wsgi

Muokataan hakemiston oikeuksia niin että kaikilla riverwsgi ryhmän jäsenille on kansion muokkaus oikeudet

 sudo chmod g=rwxs /home/riverwsgi/public_wsgi

Luodaan uusi Named based virtual host river.dennisgustafsson.net ensin lisäsin osoitteen DNS tietoihin.

Tämän jälkeen tein palvelimella tarvittavat muutokset.

sudoedit /etc/apache2/sites-available/riverwsgi.conf

Tämän jälkeen vielä aktivoin uuden virtuaalisen sivuston ja poistin oletusasetukset käytöstä

$ sudo a2ensite riverwsgi.conf
Enabling site riverwsgi.
To activate the new configuration, you need to run:
  systemctl reload apache2
$ sudo a2dissite 000-default.conf

Tämä tosin antoi virhe ilmoituksen kun WSGI moduuli puuttuu.

Eli WSGI moduliin asennus seuraavaksi.

$ sudo apt-get -y install libapache2-mod-wsgi-py3
$ sudo systemctl restart apache2

$ sudo systemctl restart apache2
dennis@droplet002:~$ sudo apache2ctl configtest
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
Syntax OK

Ja palvelin vastaakin jo osoitteessa http://river.dennisgustafsson.net

Seuraavaksi luodaankin itse wsgi tiedosto

$ sudo nano /home/riverwsgi/public_wsgi/river.wsgi

Sitten pitää vielä luoda itse ”hello” sovellus

$ sudo nano /home/riverwsgi/public_wsgi/hello.py

Lopputulos päättyy virheeseen…

[Sun Mar 14 18:31:18.134225 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] mod_wsgi (pid=1950): Failed to exec Python script file ’/home/riverwsgi/public_wsgi/river.wsgi’.
[Sun Mar 14 18:31:18.134329 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] mod_wsgi (pid=1950): Exception occurred processing WSGI script ’/home/riverwsgi/public_wsgi/river.wsgi’.
[Sun Mar 14 18:31:18.134416 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] Traceback (most recent call last):
[Sun Mar 14 18:31:18.134444 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] File ”/home/riverwsgi/public_wsgi/river.wsgi”, line 5, in
[Sun Mar 14 18:31:18.134450 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] from hello import app as application
[Sun Mar 14 18:31:18.134457 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] File ”/home/riverwsgi/public_wsgi/hello.py”, line 1, in
[Sun Mar 14 18:31:18.134462 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] from flask import Flask
[Sun Mar 14 18:31:18.134479 2021] [wsgi:error] [pid 1950:tid 140443863582464] [remote 84.251.88.81:58062] ModuleNotFoundError: No module named ’flask’

Vertailu toimivan paikallisen virtuaalikoneen ja ei toimivan pilvessä olevan välissä löytyi pitkään etsimisen ja testailun jälkeen ero. Paikaillisesti oli asennettu python3-flask kun taas pilvessä oli jostain syystä python-plask.

Komento jolla asennetut sovellukset sai selville on,

apt list --installed

Ensin komento

sudo apt-get autoremove python-flask

Jonka ajon jälkeen komento

sudo apt-get -y install python3-flask

ja varmuuden vuoksi vielä

sudo systemctl restart apache2

Tämän jälkeen asennus toimi.

ict4tn021-3014 läksyt h4

Läksyt H4
https://terokarvinen.com/2020/linux-palvelimet-2021-alkukevat-kurssi-ict4tn021-3014/

Julkinen palvelin internetiin

Olimme tunnilla jo tehneet tunnukset DigitalOcean sivustolle joten kirjauduin sisään ja tein uuden virtuaalikoneen joka DigitalOceanille kulkee nimellä Droplet.

Valitsisin sijainniksi Amsterdam jotta palvelin olisi Euroopassa.

Loin salasanan käyttäen https://passwordsgenerator.net/ sivustoa

Palvelulta meni hetki ja palvelin oli luotu ja käynnissä

Koska minulla oli jo olemassa olevan domain nimi kirjauduin joker.com palvelun ja loin uuden tietueen uudelle palvelimelle.

Kirjauduin ssh:lla palvelimelle

Ensi töikseni asensin ufw palomuurin

sudo apt-get install ufw

ja seuraavaksi lisäsin säännön joka salli ssh yhteydet ja saman tien käynnistin palomuurin

sudo ufw allow 22/tcp

sudo ufw enable

Loin itselleni tunnuksen komennolla sudo adduser dennis ja lisäsin itselleni sudo oikeudet sudo adduser dennis sudo sekä adm ryhmän komennolla sudo adduser dennis adm. Tämän jälkeen varmistin että pääsen kirjautumaan sisään uudella tunnuksella ennenkuin estän root tunnukselta ssh kirjautumisen.

Ja kirjautuminen onnistui joten annoin seuraavan komennon

sudo nano /etc/ssh/sshd_config

Ja etsin sieltä rivin PermitRootLogin jonka vaihdoin yes –> no

Tämän jälkeen käynnistin ssh palvelun uudelleen sudo service ssh restart jonka jälkeen yritin kirjautua root tunnuksella ssh yhteyden yli ja se ei enää onnistu

Viimeistelin palvelin asennuksen vielä päivityksillä

sudo apt-get update
sudo apt-get upgrade

Apache asennus

Apache asennus

sudo apt-get install apache2

Palomuurista portin 80 avaus

sudo ufw allow 80/tcp

vaihdoin oletus etusivun komennolla

echo “Nothing to see heree” | sudo tee /var/www/html/index.html

ict4tn021-3014 läksyt h3

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

sudo apt-get -y install apache2

Käyttäjien kotihakemistot aktivoidaan seuraavalla komennolla

sudo a2enmod userdir

Tämän jälkeen apache palvelu on käynnistettävä uudelleen jotta asetukset astuvat voimaan. Komento on seuraavanlainen

sudo systemctl restart apache2

Käyttäjän koti hakemistossa, joka sijaitse /home/käyttäjätunnus/ tulee löytyä hakemisto nimeltä public_html. Hakemisto luodaan tarvittaessa alla olevalla komennolla.
On hyvä varmistaa pwd komennolla että sijaitaan omassa koti hakemistossa ennen uuden kansion luomista.

mkdir public_html

Itse kotisivun voi nopeasti luoda siirtymällä ensin vasta luotuun public_html kansioon ja sen jälkeen editorilla luoda index.html niminen tiedosto.

nano index.html

Tämän jälkeen voi varmistaa että kotisivu näkyy menemällä selaimella osoiteeseen omapalvelin/~käyttäjätunnus

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

Käytin sovelluksena swdt1ta001 kurssilla tehtyä painoindeksi sovellusta jonka teimme javascriptillä.

EI TOIMI!!! Miksi?

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

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.

Apache2 oletus asetukset sijaitsevat /etc/apache2/sites-available/000-default.conf tiedostossa josta selviää että oletus kotisivu sijaitsee hakemistossa /var/www/html/

Hakemistot on suojattu joten kaikki komennot on tehtävä sudo komennon kautta.

sudo mv index.html index2.html

ja loin nopeasti uuden sivun kommennolla

sudo nano index.html

n) Laita kaksi nimeä samaan IP-osoitteeseen. Voit simuloida nimipalvelun toimintaa /etc/hosts -tiedoston avulla. Eli niin, että samalla palvelimella osoitteella teronlenkkisivu.com tulee eri sisältö kuin osoitteella opipentest.com.

Ensin loin uudet erilliset hakemistoto sivuille komennoilla

 sudo mkdir -p /var/www/html/sivusto.local/public_html
 sudo mkdir -p /var/www/html/toinen.local/public_html

KESKEN

ict4tn021-3014 läksyt h2

a)

last kommenolla näkyy viimeiset onnistuneet kirjautumiset järjestelmään

last

lastb komennolla näkyy epäonnistuneet korjautumiset ja alla kuvaruutu kaappaus virtuaalikoneen epäonnistuneista kirjautumisesta. -F lisäys näyttää täydellisen päiväyksen.

sudo lastb -F | more


c)

sudo apt-get update
sudo apt-get upgrade


d)

SSH asennus

sudo apt-get install opens-client

Lynx selaimen asennus

sudo apt-get install lynx
www.haaga-helia.fi Lynx selaimessa

Nethack

sudo apt-get install netback-console

ict4tn021-3014 läksyt h1

a) Tein Debian Live USB tikun jo tunnilla joten tämä kohdan kirjoitukset ovat muistinvaraisia.
Vaikka käytän pääsääntöisesti Mac konetta tein Debian-Livetikun työ kannattavallani koska siinä löytyi valmiiksi rufus sovellus.

Käytetty Debian Live image


b) Testasin Debian-Livetikun samaisella HP EliteBook 840 työ kannattavallani ja se käynnistyi hyvin ja jopa tunnisti koneessa olevan sisäänrakennetun 4G modeemin.

Mutta koska tämän enempi en ehtinyt tunnin aikana tehdä jatkoin myöhemmin asentamalla samaisen Debian version Mac koneeni VMware Fusion ympäristöön käynnistämällä sen ensin Live tilassa .iso näköistiedostolta suoraan.

Käynnistettyäni Debianin virtuaalikoneella asensin ensin lshw sovelluksen. Tämän tein seuraavilla komennoilla

sudo apt update

sudo apt-get install lshw

itse sovelluksen suortin tämän jälkeen komennolla

sudo lshw -short -sanitize


c) Ensimmäisenä sovelluksena asensin kuvankäsittely sovelluksen Inkscape

sudo apt-get -y install inkscape
Ensimmäinen kokeilu Inkscape sovelluksen kanssa ja aloitin Riiviön pentu kuvan kanssa 7 vuoden takaa.

Toisena sovelluksena asensin curl sovelluksen

sudo apt-get install curl

Tämän jälkeen käytin curl sovellusta seuraavan sovelluksen asennuksessa joka oli Microsftin Edge

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg

sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list'

sudo rm microsoft.gpg

sudo apt update

sudo apt install microsoft-edge-dev


d) Testattujen sovellusten lisenssit

Inkscape GNU General Public License Lisenssi

Curl Open Source/Free Software Lisenssi

Microsoft Edge lisenssi ehdot löytyvät asennetussa selaimessa edge://terms/


e) Eniten käyttämäni sovellukset ja niiden vastine

WindowsLinux
Microsoft WordLibreOffice Writer
Microsoft ExcelLibreOffice Calc
Microsft PowerPointLibreOffice Impress
Adobe IndesignInkscpae
Adobe PhotoshopGImp


f) Koska kone pyörii virtuaalisesti on koko koneen varmuuskopioiminen tilannekuvalla nopea toimenpide.

Lähteet:

https://www.tecmint.com/install-microsoft-edge-browser-in-linux/