Linux palvelimet h7: Arvioitava laboratorioharjoitus

Tarkoituksena oli tehdä jokin vanha arvioitava laboratorioharjoitus.

Tein harjoituksen ma 12.3. klo 7:30-11:40. Käytin Lenovon ideapad Z500 läppäriä ja käytin Xubuntun versio 16.04 LTS live-USB tikkua.

Valitsin tällaisen tehtävän:

“Haluamme tehdä PHP-kotisivuja etäältä.

Työntekijöitämme ovat Jorma Mähkylä, Pekka Hurme, Ronaldo Smith, Håkan Petersson, Einari Mikkonen, Einari Vähäkäähkä, Eija Vähäkäähkä. Tee heille HTML5-esimerkkikotisivut siten, että kunkin testisivun otsikossa lukee omistajan käyttäjätunnus.

Maija Virtanen jatkaa ylläpitoa, tee hänelle sudo-tunnus. Maija haluaa käyttäjätunnuksen “maija”.

Pekka Hurme aloittaa LAMPin opiskelun. Tee Pekalle oma tietokanta, ja muuta hänen PHP-esimerkkisivunsa näyttämään tietueita tietokannasta (eli tietokantojen “hei maailma”).

Jorma aikoo kehittää uuden sivun sleep.example.com. Laita Jorman kotisvu näkymään myös tästä osoitteesta. Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.

Suojaa kone tulimuurilla.

Tee uusi komento ‘wowstats’, joka näyttää tietoja koneen tilasta. Sen tulee toimia jokaisella käyttäjällä työhakemistosta riippumatta.”

Lähde: http://terokarvinen.com/2017/arvioitava-laboratorioharjoitus-%e2%80%93-linux-palvelimet-ict4tn021-2-uusi-ops-alkukevaalla-2017-p1

Tässä harjoituksessa pohjana on käytetty Tero Karvisen oppituntia 6.3.2018 Linux palvelimet -kurssilla sekä hänen nettisivujaan: http://terokarvinen.com/.

 

Käyttäjän luominen

Aloitin tekemällä “sudo apt-get update” -komennon ja tämän jälkeen loin tekstitiedoston: “nano salasanat.txt“. Salasin tiedoston: “sudo chmod og-rwx salasanat.txt“. Tämä kielsi kaikki oikeudet muilta käyttäjäryhmiltä tuohon tiedostoon. Nyt kun annoin komennon “ls -l“, niin sain tällaisen näkymän:

chmod_testi_1

Menin takaisin tuohon tiedostoon “nano salasanat.txt” ja laitoin käyttäjien nimet valmiiksi sinne.

Asensin pwgenin: “sudo apt-get install -y pwgen” ja tämän jälkeen “pwgen 25 1 -s“. Tällä tavalla sain yhden 25 kirjaimen pituisen salasanan. Kopioin ja tallensin tuon salasanan salasanat.txt:iin.

Seuraavaksi käyttäjien lisäys. “sudo adduser jmahkyla“. Käyttäjätunnuksen tulisi olla kahdeksan merkkiä pitkä, eikä se saa sisältää ääkkösiä. Kysyi uutta salasanaa kahteen kertaan ja laitoin salasanaksi tuolla salasanat.txt-tiedostossa olevan salasanan.

Apache2

Seuraavaksi kokeilin asentaa Apache2:n, jotta pääsisin tekemään esimerkkisivut ja testaamaan niitä. “sudo apt-get install -y apache2“. Avasin selaimen ja kirjoitin osoiteriville “http://localhost”. Apachen oletussivu avautui. Menin kansioon “cd /var/www/httml/“. Muokkasin index-tiedostoa “sudoedit index.html” ja poistin kaikki rivit tiedostosta. Laitoin tilalle “Moi” ja tallensin. Testasin päivittämällä selaimen sivun. Nyt siellä luki teksti “Moi”.

Seuraavaksi asensin ssh:n. Ensin menin “cd“-komennolla kotihakemistoon. Seuraavaksi “sudo apt-get install -y ssh“. Tämän jälkeen: “ssh jmahkyla@localhost“. Sitten “yes” ja salasana. Tein kansion: “mkdir public_html” ja sinne tiedoston “nano index.html“. Tein yksinkertaisen html-sivun, jonka ostikoissa lukee “jmahkyla”. Kävin kokeilemassa, että toimiiko nettisivut. Menin osoitteeseen “http://localhost/~jmahkyla”. Sivua ei kuitenkaan ollut olemassa selaimen mukaan. Poistuin ssh-yhteydestä “exit“-komennolla ja tein seuraavan: “sudo a2enmod userdir“. Tämän jälkeen käynnistin Apachen uudelleen: “systemctl restart apache2-service“. Kokeilin sivun toimintaa uudelleen ja nyt toimi:

kayttaja_testi_1

Käyttäjien luominen jatkuu

Päätin luoda skel:iin public_html kansion ja index.html tiedoston, jotta saisin ne luotua automaattisesti uudelle käyttäjälle. Menin ensin skel:iin: “cd /etc/skel“. Siellä tarkistin “ls -a“-komennolla, että olin oikeassa paikassa. Tiedostot näyttivät ihan oikeilta, joten loin uuden kansion: “mkdir public_html“. Sinne tiedosto “nano index.html“. Tein siitä samanlaisen kuin tuosta jmahkylalle tehdystä tiedostosta. Nyt vain laitoin kayttajatunnus kirjoitettaviin kohtiin.

Käytin taas “pwgen 25 1 -s” ja tallensin uuden salasanan salasanat-tiedostoon. Loin uuden käyttäjän: “sudo adduser phurme“. Laitoin taas uuden salasanan kahteen kertaan ja sen jälkeen koko nimi. Kävin katsomassa selaimesta, että toimiko tuo skeliin laitettu kansio ja tiedosto:

kayttaja_testi_2

Avasin ssh-yhteyden: “ssh phurme@localhost” ja kävin muuttamassa käyttäjätunnus-kohdat oikein. “cd public_html“, “nano index.html“. Lisäsin käyttäjätunnus kohtiin “phurme” ja tallensin “Ctrl + x” ja “y + enter“. Loin loput käyttäjät samalla tavalla.

Käyttäjänimistä tuli seuraavanlaiset:

  • jmahkyla
  • phurme
  • rsmith
  • hpeterss
  • emikkone
  • einariva
  • eijavaha
  • maija

Maija Virtanen oli halunnut käyttäjänimekseen pelkän maijan ja hänelle piti antaa sudo-oikeudet. Loin siis aluksi “sudo adduser maija” ja annoin hänelle uuden salasanan sekä koko nimen tietoihin. Tämän jälkeen “sudo adduser maija sudo“, jolloin hän sai sudo-oikeudet. Avasin ssh-yhteyden: “ssh maija@localhost” ja annoin Maijan salasanan. Menin “cd /home” ja “ls -a” katsoin mitä siellä näkyi. Siellä näkyi kaikkien käyttäjien kansiot ja menin “cd eijavaha“. Kokeilin luoda sinne sudoeditillä uuden tiedoston: “sudoedit testi.txt“.

sudo_testi_1

LAMP

Seuraavaksi tehtävänanto oli seuraavanlainen:

“Pekka Hurme aloittaa LAMPin opiskelun. Tee Pekalle oma tietokanta, ja muuta hänen PHP-esimerkkisivunsa näyttämään tietueita tietokannasta (eli tietokantojen “hei maailma”).”

Linux löytyi jo livetikulta ja olin asentanut aiemmin tässä harjoituksessa Apachen. Seuraavaksi oli siis PHP:n ja MySQL:n vuoro.

Päätin ensin asentaa MySQL:n: “sudo apt-get -y install mysql-server mysql-client“. Käytin taas pwgeniä, jotta sain hyvän salasanan rootille. Kävin tarkistamssa, miten avataan MySQL: “mysql –user=root –password“. Lähde: http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo. Painoin Enter ja annoin salasanan. Päätin luoda uuden tietokannan: “CREATE DATABASE auto;” Tämän jälkeen käyttöoikeuden anto phurmeelle: “GRANT ALL ON auto.* TO phurme@localhost IDENTIFIED BY ‘salasana tähän’;“. Sitten “exit” ja kokeilin: “mysql –user=phurme –password“. Onnistui. Tämän jälkeen laitoin “SHOW DATABASES;

mysql_testi_1

Loin uuden tietokannan:

mysql_testi_2

Tämän jälkeen “exit” ja päätin siirtyä PHP:n kokeiluun. Asensin “sudo apt-get -y install libapache2-mod-php“. En muistanut, tarvitsiko muuta asentaa, joten tarkistin tuolta aiemmin laittamastani lähteestä (Read MySQL database with PHP – php-pdo). Laitoin siis vielä “sudo apt-get -y install php-mysql“. Etenin nyt ohjeen mukaan: “sudoedit /etc/apache2/mods-available/php7.0.conf” ja kommentoin # pois IfModulen rivit tiedoston lopusta. Sitten tallensin ja “ssh phurme@localhost“. Muokkasin tuota index.html-tiedostoa: “mv index.html index.php“, “nano index.php“. Lisäsin sinne yhden rivin:

php_testi_5

Tämän jälkeen tallennus, “exit” ja “sudo systemctl restart apache2-service“. Päivitin selaimen sivun ja siellä näkyi pelkästään numero neljä.

Aloin  taas seurata tuota MySQL-ohjetta kohdasta “Write PHP Page to Access Your Database”. Avasin siis uudelleen ssh-yhteyden phurmeelle ja avasin tuon index.php-tiedoston. Muokkasin sen tämän näköiseksi:

php_testi_6

Tallensin ja päivitin selaimen:

php_testi_7

Sleep.example.com sivusto

Tehtävänanto: “Jorma aikoo kehittää uuden sivun sleep.example.com. Laita Jorman kotisvu näkymään myös tästä osoitteesta. Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.”

Käytin lähteenä Tero Karvisen artikkelia: http://terokarvinen.com/2016/new-default-website-with-apache2-show-your-homepage-at-top-of-example-com-no-tilde

Annoin komennon “sudoedit /etc/apache2/sites-available/jmahkyla.conf“. Tuo jmahkyla.conf on tiedosto, jonka aioin luoda. Tein siitä tällaisen:

virtual_host_testi_1

Tallensin ja seuraavaksi: “sudo a2ensite jmhakyla.conf“, “sudo a2dissite 000-default.conf” ja “sudo systemctl restart apache2-service“.

Tämän jälkeen tutkailin vanhaa blogipostaustani ja huomasin, että olin unohtanut tuosta jmahkyla.conf.tiedostoon lisätä muutaman kohdan. Siitä tuli tällainen muokkauksen jälkeen:

virtual_host_testi_5

Kokeilin mennä tuonne sleep.example.com sivustolle (Apachen uudelleenkäynnistyksen jälkeen), mutta ei toiminut. Kävin katsomassa Laura Rajalan blogista (https://laurarajala.wordpress.com/2018/03/09/lab-exercise-vol-0-1/) apua ja löysin kohdan, missä /etc/hosts -kohtaan lisätään ip-osoite. Menin siis “sudoedit /etc/hosts” ja lisäsin yhden rivin:

virtual_host_testi_3

Lisäsin siis tuon 192.168.0.100 sleep.example.com. Uudelleenkäynnistin Apachen ja menin selaimella osoitteeseen sleep.example.com:

virtual_host_testi_4

Tulimuuri

Tarkoituksena oli yksinkertaisesti suojata kone tulimuurilla.

Tein siis seuraavat komennot “sudo ufw allow 22/tcp” “sudo ufw allow 80/tcpsudo ufw allow 443/tcp. Näin tein reiät ensin ssh-yhteydelle, http:lle ja https:lle. Tämän jälkeen “sudo ufw enable“.

Uusi komento wowstats

Tehtävänanto: “Tee uusi komento ‘wowstats’, joka näyttää tietoja koneen tilasta. Sen tulee toimia jokaisella käyttäjällä työhakemistosta riippumatta.”

Käytin lähteenä Tero Karvisen artikkelia: http://terokarvinen.com/2007/shell-scripting-4

Tätä varten laitoin “sudo apt-get -y install sysstat“, jotta sain esimerkiksi iostat-komennon käyttööni.

Loin uuden tiedoston “nano wowstat” ja kirjoitin sinne seuraavat komennot:

  • ifconfig
  • ss -s
  • nstat
  • iostat

Löysin komennot täältä: https://www.cyberciti.biz/faq/network-statistics-tools-rhel-centos-debian-linux/

Tallensin. Tämän jälkeen “chmod a+x wowstats“. Tämän jälkeen halutaan antaa muillekin käyttäjille oikeus suorittaa wowstats-komento. Siihen käytin “sudo cp wowstats /usr/local/bin/“. Tämän jälkeen avasin ssh-yhteyden: “ssh jmahkyla@localhost” ja sitten “wowstats“:

wowstat_testi

 

Lähteet

Lähteet on tekstin seassa sitä mukaa, kun niitä on käytetty.

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

One thought on “Linux palvelimet h7: Arvioitava laboratorioharjoitus

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s