Harjoitus 7

Tehtävässä käytetyt harjoitukset löytyvät seuravaassa osoiteessa Tero Karvinen Learn Free software with meLinux palvelimet ict4tn021 -6 kurssin opettajana toimii Tero Karvinen.

Kotitehtävät ovat seuraavat:

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

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

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

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

a) Valitaan harjoitus:Laboratorioharjoitus 2016 alkusyksy, 22

Asenna Linux. Voit poistaa kaikki kovalevyllä olevat tiedot. Koneen nimeksi p73, missä numero on monitorin jalassa oleva numero. Ensimmäiseksi käyttäjätunnukseksi tietysti oma nimesi.

Tietokoneella on yksi kovalevy ja yksi osio. Laitetaan Rufus-ohjelmalla alustettu USB-tikku tietokoneeseen ja asennetaan ISO-metodilla Xubuntu 16.04.3 LTS. Käynnistetään kone uudelleen, ja valitaan LiveUSB:llä vaihtoehto “Install Xubuntu”. Laitetaan asennusvaiheessa tietokoneen nimeksi p73, ja luodaan käyttäjätunnus saban. Muuten asennus menee aika muitta mutkitta helpon graafisen käyttöliittymän kautta, joskin kovalevyn ja kotikansion kryptaus+salasana voi tulla kyseeseen.

Käynnistetään asennuksen jälkeen tietokone uudelleen. Poistetaan USB-tikku kuitenkin ennen järjestelmän boottausta.

Valmistaudu ylläpitämään konetta etänä. Suojaa kone tulimuurilla.

Avataan uudelleen käynnistetyssä järjestelmässä komentorivi (Terminal Emulator). Ajetaan seuraavat komennot:

sudo apt-get update && sudo apt-get -y install ssh

Varmistetaan, että Uncomplicated Firewall on asennettu, komennolla:

which ufw

minkä pitäisi palauttaa suoritettavan tiedoston nimi.

Tarkistetaan, että SSH-daemoni on päällä komennolla:

systemctl status ssh.service

Komennon pitäisi palauttaa vihreällä kirjoitettu “active”

Vaikka palvelu käynnistyy automaattisesti, voidaan se käynnistää manuaalisesti komennolla

sudo systemctl start ssh.service

minkä jälkeen status pitää jälleen tarkistaa.

SSH-palvelin käyttää oletuksena yhteysporttia 22. Avataan UFW-palomuuriin reikä tätä varten ja kytketään palomuuri tämän jälkeen päälle:

sudo ufw allow 22/tcp && sudo ufw enable && sudo systemctl enable ufw.service

Tarkistetaan, että portti 22 on puhkaistu auki:

sudo ufw status

Komennon pitäisi palauttaa kaksi sääntöä (IPv4:lle ja IPv6:lle).

Rajoitetaan vielä SSH:n sisäänkirjautuminen root-tunnukselta pois:

sudoedit /etc/ssh/sshd_config

Muutetaan rivi

PermitRootLogin prohibit-password

muotoon

PermitRootLogin no

Käynnistetään SSH-daemon uudelleen:

sudo systemctl restart ssh.service

Poistetaan vielä kirjautuminen root-tunnukselta:

sudo chmod –lock root

Varmistetaan SSH-yhteyden toimivuus kirjautumalla SSH-clientilla varustetulla koneella seuraavaa komentoa käyttäen:

ssh saban@<ssh-server-ip>

missä <ssh-server-ip> on tietenkin SSH-daemonin sisältävän koneen IP (tässä täytyy ottaa huomioon se, jos SSH-palvelin on reitittimen ja NAT/PAT-reitityksen takana)

Laboratoriossa etäyhteyden toimivuus voitaisiin testata käyttämällä tietokoneen eth0-verkkokortin IPv4:tä (ifconfig-komento).

Asenna meille WordPress osoitteeseen iot12.example.com. Tee sinne esimerkkisisältöä. Simuloi nimipalvelun toimintaa hosts-tiedoston avulla.

Asennetaan Apache2 (HTTP-daemon) sekä PHP7.0:

sudo apt-get update && sudo apt-get -y install apache2 php7.0 libapache2-mod-php7.0

Tarkistetaan, että Apache2 on päällä, komennolla:

systemctl status apache2.service

Jos kaikki on OK, niin jatketaan eteenpäin. Asennetaan Mysql ja WordPress:

sudo apt-get update && sudo apt-get install wordpress mysql-server

mysql-client asennetaan automaattisesti WordPressin riippuvuutena (kuten myös PHP7.0)

Annetaan Mysql-palvelimen asennuksessa riittävän vahva salasana Mysql:n pääkäyttäjälle.

Noudatetaan WordPress-tietokannan luomisessa seuraavia ohjeita (tässä täytyy varmistua myös PHP:n toimivuudesta):

TechRepublic – How-to-install-wordpress-on-ubuntu-16-04

Edellisestä ohjeesta poiketen luodaan kuitenkin uusi käyttäjä WordPress-databaselle seuraavien ohjeiden mukaan:

DigitalOcean – How-to-install-wordpress-on-arch-linux

WordPress asentaa sivuston tiedostot Ubuntussa kansioon /usr/share/wordpress/

Suoritetaan seuraavat komennot:

saban@saban-ThinkPad-X220:~$ sudo mv /usr/share/wordpress/wp-config.php /usr/share/wordpress/wp-config.php.old
saban@saban-ThinkPad-X220:~$ sudo cp /usr/share/wordpress/wp-config-sample.php /usr/share/wordpress/wp-config.php

Eli siirretään vanha wp-config.php -konfiguraatio pois tieltä (ei poisteta), kopioidaan esimerkkikonfiguraatio wp-config.php:n tilalle.

Muokataan sudoedit-komennolla tiedostoa /usr/share/wordpress/wp-config.php. Laitetaan tiedostoon Mysql:ssä luomamme
käyttäjätiedot ja wordpress-database -tiedot. Tallennetaan muutokset.

wordpress_wp-config

Kopioidaan asennetut WordPress-tiedostot /var/www/html/ -kansion alle:

saban@saban-ThinkPad-X220:~$ sudo mkdir -p /var/www/html/wordpress && sudo cp -R /usr/share/wordpress/* /var/www/html/wordpress/

Muokataan sudoedit-komennolla tiedoston /etc/apache2/sites-available/000-default.conf -sisältöä seuraavasti

DocumentRoot /var/www/html/

muotoon

DocumentRoot /var/www/html/wordpress/

Muokataan /etc/hosts-tiedostoa sudoedit-komennolla, lisätään sinne rivi:

127.0.0.1 iot12.example.com

Käynnistetään Apache2 uudelleen komennolla “sudo systemctl restart apache2”

Selainnäkymä tällä hetkellä:

wordpress_wp-installsite

Pääsemme tämän jälkeen WordPressin hallintapaneeliin, jossa voimme lisätä sivuja “Add Page” ja “Publish” -toiminnoilla. Lopputulos:

wordpress-final

Jaana Vähä-Aho haluaa kehittää PHP-pohjaista tietokantaohjelmaa. Tee hänelle kaikki tarvittavat asetukset ja esimerkkisivu.

Asennetaan Jaanalle phpmyadmin, joka on graafinen hallintapaneeli Mysql-tietokannoille:

sudo apt-get update && sudo apt-get -y install phpmyadmin

Valitaan asennusvaiheessa “apache2” (raksi ruutuun välilyönnillä + TAB + ENTER (OK))

Kysymykseen “Configure database for phpmyadmin with dbconfig-common?” vastataan Yes (Kyllä)

Annetaan uusi vahva salasana phpmyadminille.

Luodaan uusi Mysql-database ja -käyttäjä seuraavia ohjeita soveltaen:

https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-arch-linux

DigitalOcean – How-to-install-wordpress-on-arch-linux

Ohjeista poiketen, käytämme seuraavia tietoja:

Databasen nimi: jaanadata
Käyttäjä: jaana

Lopputulos näyttää Mysql-komentorivioperaatioiden jälkeen phpMyAdminiin jaana-tunnuksella kirjautuessa tältä:

phpmyadmin-jaanadata

Lisätään kansioon /var/www/html/jaana tiedosto index.php:

sudo mkdir -p /var/www/html/jaana
sudo nano /var/www/html/jaana/index.php

Lisätään sinne sivustolla W3Schools – PHP-Mysql_select kerrottu PHP-sisältö:

jaanadata-php

Tässä vaiheessa viimeistään täytyy luoda uusi taulu “MyGuests” tietokantaan “jaanadata”. Voimme käyttää phpMyAdminia tähän.

Käynnistetään Apache2 uudelleen komennolla

sudo systemctl restart apache2

Håkan Värs tekee Python 3 -kehitystä. Tee hänelle tarvittavat asetukset ja esimerkkiohjelma.

Asennetaan pwgen, jolla generoidaan salasana uudelle käyttäjälle hvars (Håkan Värs):

sudo apt-get update && sudo apt-get install pwgen
pwgen 20 1 -s

Tallennetaan salasana pääkäyttäjän xubuntu kotihakemistoon lab.txt-tiedostoon. Rajoitetaan myös tiedoston oikeudet:

echo “B2fz5UBnwfDhTiom1ya9” | tee /home/xubuntu/lab.txt
chmod go-rwx,u+wr,u-x /home/xubuntu/lab.txt

Lisätään käyttäjä hvars:

sudo adduser hvars

Annetaan oikea nimi “Håkan Värs”, mutta jätetään muut kentät tyhjäksi.

Asennetaan python3-kehitysympäristö:

sudo apt-get update && sudo apt-get -y install python

Vaihdetaan käyttäjän hvars shell:iin, luodaan hänen kotihakemistoonsa kansio python ja sinne tiedosto helloworld.py:

su hvars
cd
mkdir python
nano ./python/helloworld.py

Laitetaan helloworld.py:n sisältö seuraavaksi:

#!/usr/bin/python3

print(“Hello World”);

Tallennetaan tiedosto ja ajetaan seuraava:

hvars@saban-ThinkPad-X220:~$ cd python/
hvars@saban-ThinkPad-X220:~/python$ python3 helloworld.py
Hello World

Tee järjestelmään uusi komento whenwhere, joka tulostaa koneen IP-osoitteen ja kellonajan. Komennon tulee toimia kaikilla käyttäjillä riippumatta siitä, mikä on senhetkinen työhakemisto.

Luodaan uusi tiedosto /usr/local/bin/whenwhere ja asetetaan tiedosto suoritettavaksi. Tässä vaiheessa pitää olla käyttäjä, joka kuuluu sudo-ryhmään (esim. xubuntu):

sudo touch /usr/local/bin/whenwhere
sudo chmod +x /usr/local/bin/whenwhere

Laitetaan tiedostoon sisältöä (suoritettavat komennot):

sudo nano /usr/local/bin/whenwhere

sisällöllä…

#!/bin/sh

date
hostname -I

whenwhere

Voidaan vielä tarkistaa komennon olemassaolo komennolla “which whenwhere” (käyttäjästä riippumatta):

saban@saban-ThinkPad-X220:~$ which whenwhere
/usr/local/bin/whenwhere
saban@saban-ThinkPad-X220:~$ whenwhere
ke 14.3.2018 17.54.31 +0200
192.168.42.18 2001:999:11:2fe:9051:6247:d05a:4ffc 2001:999:11:2fe:c776:94a8:f7c5:1228