Linux Server Course - Linux palvelimet ict4tn021-3014
Aihe: h7 kotitehtävä
Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014
Päiväys: 15.03.2021
Opettaja: Tero Karvnen
Tehtävät |
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". d) (vapaaehtoinen) Käytä Linuxia kurssin ulkopuolella.e) (vapaaehtoinen) Varaa kalenteristasi viikon välein aikoja Linux-harjoitteluun kurssin jälkeen.
Muista ilmoittautua kursseille: Palvelinten hallinta (suositeltava kurssi tämän jatkoksi), Python weppikurssi w21 (varmistunee tällä viikolla) ja Tunkeutumistestaus (katso ennakkovaatimukset). Tervetuloa! |
Toteuttaminen |
Vanhan laboratorioharjoituksena valitsin v 2018 toteutettu:
Ohjeet:
## LAMP
Asenna LAMP (Linux, Apache, MySQL, PHP) ja testaa sen toiminta.
## Kuormitusta
Kerää kuormitustietoja koneelta koko harjoituksen ajalta. Analysoi tiedot tiiviisti aivan
harjoituksen lopuksi.
## Sorkka ja Rauta Oy:n CRM
Tarvitsemme asiakastietokannan. Tee tietokanta, jossa on seuraavat asiakkaat:
- Kulta ja Kaivos ky
- Piilosana ry
- MetalliMake
Tee PHP-ohjelma, joka lukee nämä tietueet. Laita tämä sivu näkyviin osoitteessa
Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla. Tässä harjoituksessa sivulle
pääsyä ei tarvitse rajoittaa salasanalla, vaan sen tule näkyä kaikkialle nettiin.
## Rosvoja porteilla
Onko koneellemme yritetty murtautua? (Kyllä). Etsi omalta paikalliselta koneeltasi todisteet
tapauksesta, jossa koneellesi on yritetty murtatua. Analysoi tiiviisti tähän liittyvät tiedot.
## Sorkan sivut
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.
## Einarin esimerkki
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.
[Ohje päivittyi harjoituksen edetessä]
Lähtökohteena otin kannettava tietokone Lenovo T410, jossa kovalevy oli alustettu.
Valmistin Debian10 asennustikun jo kotitehtävässä h1.
Aloitin asennus ja tein kaikki askelit kuin h1 kotitehtävässä: ![]() Loin uuden käyttäjän bfy466 ja lisäsin sen sudo ryhmään.
Asensin ufw palomuri: ![]() Asensin Apache2 palvelin ja tarkistin, että vastava palvelu on käynnissä: ![]() Saman tien tarkistin selaimella "localhost" oletus websivu joka kuuluu Apache2:lle.
*** Kuormitustehtävä *** Apache2 nykyinen kuormitus on noin 1.1% (55 tasks out of 4915)
Tein oman oletussivun ja tarkistin, että localhos viitää siihen: ![]() Löisin ohjeet PHP asennuksesya tästä:
ja tästä (+MariaDB):
Asensin PHP ja vastaava libapache2-mod-php: ![]() mysql serverin asennus ei onnistui, koska se on korvattu MariaDB pakkaukseen: ![]() Asennetaan MariaDB : ![]() Tarkistin, että MariaDB on käynnistetty: ![]() *** Kuormitustehtävä ***
Apache2 nykyinen kuormitus on noin 0.1% (6 tasks out of 4915)
MariaDB nykyinen kuormitus on noin 0.6% (30 tasks out of 4915) ![]() Käynnistin MariaDB serverin rajapintaa, loin uuden käyttäjän ja loin uuden tietokannan ('clients')
Edelliseen käsittelyn varten asensin phpMyAdmin: ![]() ![]() Tein config tiedoston oheen mukaan: https://phoenixnap.com/kb/how-to-install-phpmyadmin-on-debian-10
Kun yritin käynnistää phpMyAdmin, törmäsin seuraviin ongelmaan: ![]() Ratkaisun olen löyttänyt tästä:
Molemmat pakkaukset oli asennettu onnistuneesti ja sain käyttöön phpMyAdmin rajapinnan. ![]() ![]() johon pääsin MariaDB käyttäjän tunnuksilla: ![]() Nyt voin käsitellä tietokannan: ![]() Lisätään tietokannalle taulukon client_names ja ohjeessa tarvittavat pylvät ja rivit. ![]() Lisätään PHP skripti "clients.php" joka hakee asiakkaat tietokannalta:
$user = "bfy466";
$password = "zzz";
$database = "clients";
$table = "client_names";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "
Tervetuloa Sorkka ja Rauta Oy:n nettisivulle
echo "
Alla tämänhetkiset asiakkaamme:
foreach($db->query("SELECT name_official FROM $table") as $row) {
echo "
}
echo "";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "
"; die();
}
Muokkasin hosts tiedoston seuraavasti:
127.0.0.1 www.sorkkarauta.example.com
Käynnistämällä www.sorkkarauta.example.com/clients.php saamme asiakkaiden lista: ![]() *** Kuormitustesti ***
bfy466@bfy466:~$ ab -c 100 -n 10000 www.sorkkacrm.example.com/
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.sorkkacrm.example.com (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: Apache/2.4.38
Server Hostname: www.sorkkacrm.example.com
Server Port: 80
Document Path: /
Document Length: 290 bytes
Concurrency Level: 100
Time taken for tests: 1.455 seconds
Complete requests: 10000
Failed requests: 0
Non-2xx responses: 10000
Total transferred: 4700000 bytes
HTML transferred: 2900000 bytes
Requests per second: 6871.09 [#/sec] (mean)
Time per request: 14.554 [ms] (mean)
Time per request: 0.146 [ms] (mean, across all concurrent requests)
Transfer rate: 3153.72 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.5 0 6
Processing: 3 14 3.3 12 33
Waiting: 1 14 3.2 12 31
Total: 6 14 3.2 13 33
ERROR: The median and mean for the initial connection time are more than twice the standard
deviation apart. These results are NOT reliable.
Percentage of the requests served within a certain time (ms)
50% 13
66% 14
75% 16
80% 17
90% 20
95% 21
98% 23
99% 24
100% 33 (longest request)
Tarkoitukset ovat yleensä:
Time taken for tests: 1.455 seconds jaetaan 10000 ja saamme 14 ms per request.
Ajat jotka tarvitaan yhteyksiin:
min mean median max
Total: 6 14 3.2 13 33
100% yhteyksistä on suoritettu 33ms aikana.
|
Muistiinpanojen yhteenveto |





























































