Linux palvelimet ICT4TN021-3010 Harjoitus 7

Vanha arvioitava laboratorioharjoitus


Tehtävän suorittaminen aloitettu 17.3.2020 klo. 11:00

Laitteen tiedot, jolla tehtävä suoritettiin:

  • CPU: Intel i5-4670k
  • GPU: Nvidia GTX 1060 6 Gt VRAM
  • RAM: 16 Gt DDR3
  • Kingston DataTraveler G4 16 Gt, jossa Xubuntu 18.04.03

Valitsin suorittevaksi tehtäväksi tämän harjoituksen: http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-6-torstai-alkukevat-2018-5-op

Asenna LAMP (Linux, Apache, MySQL, PHP) ja testaa sen toiminta.
Tee tietokanta, jossa on seuraavat asiakkaat:
  • Kulta ja Kaivos ky
  • Piilosana ry
  • MetalliMake
Apache

Aloitin harjoituksen suorittamisen peruskomennoilla ”setxkbmap fi”, ”sudo apt-get update” ja ”sudo ufw enable”. Tämän jälkeen aloitin LAMP-stackin asentamisen asentamalla Apache-demonin komennolla ”sudo apt-get install apache2”, jonka jälkeen testasin tämän toiminnan avaamalla localhost-osoitteen web-selaimeen ja sainkin näkyviin Apachen default-sivun. Lisäsin myös tässä vaiheessa reiän palomuurin porttiin 80, jotta en ainakaan sen kanssa ajautuisi turhiin ongelmiin myöhemmin tehtävässä. Korvasin myös Apachen default-sivun sisällön komennolla ”echo ”valiaikainen sivu”|sudo tee /var/www/html/index.html”.

MySQL/MariaDB

Apachen jälkeen siirryin asentamaan MySQL:ää, joka tapahtui komennolla ”sudo apt-get install mysql-server”, joka ei jostain syystä onnistunut. En jäänyt selvittämään asiaa sen enempää vaan yritin siirtyä tehtävässä eteenpäin, ensin poistamalla epäonnistuneen asennuksen komennolla ”sudo apt-get –purge remove mysql-server” ja asentamalla MySQL:n sijasta MariaDB:n. Tämä tapahtui komennolla ”sudo apt-get install mariadb-client mariadb-server”, joka ei myöskään onnistunut ja näytölle pomppasikin myös system error -ikkuna. Käynnistin koneen uudelleen ja tein sille samat toimet uudestaan, mutta sain edelleen tässä samassa kohdassa ”system error” -ilmoituksen. Käynnistin koneen uudelleen vielä toisen kerran ja tein samat toimet kuin aikaisemmin paitsi en yrittänyt ensimmäiseksi asentaa MySQL:ää ja yritinkin asentaa MariaDB:n suoraan. Sainkin tämän asennettua ilman ongelmia. Tein myös reiän porttiin 22, jotta pääsen myöhemmin käsiksi koneeseen ssh:n kautta. Onnistuneen asennuksen jälkeen ajoin vielä skriptin, joka turvaa tietokannan paremmin komennolla ”sudo mysql_secure_installation”.

Asiakkaat-taulu

Tämän jälkeen tein tietokantaan taulun asiakkaille. Aloitin kirjautumalla tietokantaan root-käyttäjällä komennolla ”sudo mariadb -u root” ja tein uuden käyttäjän komennolla ”create database asiakkaat;”. Tämän jälkeen annoin vielä asiakkaat-käyttäjälle oikeudet tietokantaan tämän nimen alla olevassa kansiossa komennolla ”grant all on asiakkaat.* to asiakkaat@localhost identified by ’[SALASANA]’;”. Tämän jälkeen poistuin tietokannasta exit-komennolla ja kirjauduin takaisin sisään asiakkaat-käyttäjällä komennolla ”mariadb -u asiakkaat -p”. Hyppäsin asiakkaat käyttäjän kohtaan komennolla ”use asiakkaat;”. Tänne tein uuden taulun komennolla ”create table asiakkaat (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024) );”. Lisäsin luotuun tauluun tehtävän asiakkaat komennolla ”insert into asiakkaat(name ) values (”Kulta ja Kaivos ky”)” ja sama myös muille asiakkaille. Tällöin taulu näytti tältä:

PHP

Aloitin PHP:n asentamisen komennoilla ”sudo apt-get install libapache2-mod-php” ja ”sudo apt-get install php-mysql”, jonka jälkeen siirryin vielä PHP:n conf tiedostoon muokkaaman sen toimimaan käyttäjien kanssa.

(samalla ajoin myös komennon ”sudo a2enmod userdir”), jonka jälkeen käynnistin Apache2-demonin uudestaan. Tämän jälkeen loin xubuntu-käyttäjän kotihakemistoon public_html-kansion ja sen sisälle index.php tiedoston, johon liitin lyhyen testikoodin Tero Karvisen ohjeesta (http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo) ja avasin tämän jälkeen selaimen osoitteesta localhost/~xubuntu/, joka näyttikin lukua 4. Tästä voin päätellä php:n toimivan.


Tee PHP-ohjelma, joka lukee nämä tietueet. Laita tämä sivu näkyviin osoitteessa http://sorkkacrm.example.com (Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.)

Olinkin tehnyt tehtävässä 1. melkeinpä kaikki alustukset tämän tehtävän suorittamiseen, jonka takia lisäsinkin vain Tero Karvisen ohjeesta php-koodin (http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo), jo aikaisemmin luotuun index.php-tiedostoon ja käynnistin Apache2-demonin uudestaan. Tällöin selain näyttikin tietokannan sisällön!

Tämän jälkeen loin vielä uuden virtual host .conf-tiedoston Apachen sites-available kansioon. Poistin default .conf-tiedoston käytöstä ja laitoin tekemöni .conf tiedoston päälle. Sitten lisäsin vielä hosts-tiedostoon kohdan, joka ohjaa sorkka.example.com osoitteesta käyttäjän sivulle. Tällöin sain php-sivun näkymään halutulla osoitteella.


(Onko koneellemme yritetty murtautua? (Kyllä). Etsi omalta paikalliselta koneeltasi todisteet)

Tarkistin Apachen logeista (esim. access.log) mahdollisia murtautumisyrityksiä, mutta niitä ei löytynyt (toisaalta ihan oletettavissa, sillä suoritus onkin vanha laboratorioharjoitus (eikä käynnissä oleva).

Tee staattinen HTML5 weppisivu, jonka otsikkona (molemmat title ja h1) on “Sorkka ja Rauta Oy”. Laita sivu näkyviin osoitteeseen http://rauta.example.com/ . (Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla.)

Tein xubuntu-käyttäjän kotihakemistoon kansion komennolla ”mkdir sitekaksi”, jonka sisään loin komennolla ”nano index.html” html-tiedoston. Liitin tiedostoon HTML5-pohjan Tero Karvisen ohjeesta (http://terokarvinen.com/2012/short-html5-page) ja tein siihen tarvittavat muokkaukset titlen ja h1 muuttamiseksi. Tämän jälkeen loin uuden .conf tiedoston Apache:n sites-available kansioon.

ja enabloin tiedoston komennolla ”sudo a2ensite sitekaksi.conf”, jonka jälkeen käynnistin vielä Apache-demonin uudestaan komennolla ”sudo systemctl restart apache2”. Tämän jälkeen lisäsin vielä halutun osoitteen hosts-tiedostoon, jolloin sain sivun näkymään normaalisti selaimessa halutulla osoitteella.


Einari Vähä-aho ryhtyy koodaamaan. Tee einarille käyttäjä ‘einari’.
Tee einarille esimerkkikotisivu PHP:lla ja laita se näkymään osoitteessa http://localhost/~einari/ . Esimerkkisivun pitää tulostaa “Einari” käyttäen PHP:n print-funktiota.

Tein uuden käyttäjän komennolla ”sudo adduser einari” tämän jälkeen hyppäsin Einarin kotihakemistoon komennolla ”cd /home/einari/”, johon tein uuden kansion komennolla ”sudo mkdir public_html” ja tämän kansion sisälle uuden php-tiedoston komennolla ”sudoedit index.php”. Kirjoitin tähän php-tiedostoon lyhyen koodin:

, jonka jälkeen käynnistin vielä Apache-demonin uudestaan ja sivu tuli näkyviin halutussa osoitteessa.

Mikä kyseessä olisi ollut oikea tuotantoon menevä nettisivu, jollekkin käyttäjälle olisin tämän jälkeen muuttanut luomieni kansioiden ja tiedostojen käyttöoikeudet tälle käyttäjälle ”chown” -komennolla, mutta en ajan säästämiseksi näin nyt tehnyt!


Kuormitukset

Tehtävä suoritettu 17.3.2020 klo. 15:00


Muokkaukset:

23.3.2020, Lisätty laitteen tiedot, jolla tehtävä on suoritettu. Muokattu tekstin ulkoasua siistimmäksi.

Lähteet

Karvinen, Tero 2020: Aikataulu, h7. http://terokarvinen.com/2020/aikataulu-linux-palvelimet-ict4tn021-3010-torstai-aamu-alkukevat-2020-5-op#h1, Luettu 17.3.2020

Karvinen, Tero 2016: Read MySQL database with PHP – php-pdo. http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo, Luettu 17.3.2020

Karvinen, Tero 2012: Short HTML5 page. http://terokarvinen.com/2012/short-html5-page, Luettu 17.3.2020

Karvinen, Tero 2018: Install MariaDB on Ubuntu 18.04 – Database Management System, the New MySQL. http://terokarvinen.com/2018/install-mariadb-on-ubuntu-18-04-database-management-system-the-new-mysql, Luettu 17.3.2020

Karvinen, Tero 2018: Arvioitava laboratorioharjoitus – Linux palvelimet ict4tn021-6 torstai – alkukevät 2018 – 5 op. http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-6-torstai-alkukevat-2018-5-op

Gratschew, Tommy 6.2.2020: Linux palvelimet ICT4TN021-3010 Harjoitus 3. https://tgratschew.news.blog/2020/02/06/linux-palvelimet-ict4tn021-3010-harjoitus-3/, Luettu 17.3.2020

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 )

Google photo

You are commenting using your Google 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

Create your website with WordPress.com
Get started
%d bloggers like this: