Linux palvelimet h7

Alkuperäinen päivämäärä: 12.3.2018

H7 – Harjoitus 7 Linux palvelinten kurssilta: http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op#h7

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

 

Valitaan sivulta ensimmäinen vastaantuleva labraharjoitus: http://terokarvinen.com/2017/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-4-tiistai-alkusyksy-2017-%E2%80%93-5-op

 

Tehtävänä on siis suorittaa seuraavat toimenpiteet:

  1. asentaa LAMP -stack ja tehdä lyhyt ohjelma yrityksen nettisivulle jossa käytetään tietokantaa.
  2. asentaa ja käyttöönottaa ssh.
  3. tehdä yrityksen työntekijöille käyttäjät ja esimerkkikotisivut.
  4. kytkeä palomuuri päälle.
  5. tehdä lyhyt skripti joka tulostaa tervehdyksen, IP-osoitteen ja käyttäjän nimen.

Lopuksi katsotaan josko jokin valinnainen tehtävä vaikuttaisi mukavalta.

 

Aloitetaan tehtävien teko tuoreelta livetikulta joka on tehty aiempien tehtävien mukaisesti. (https://mvaltonenblog.wordpress.com/2018/01/22/h1/)

 

Ennen ohjelmien asentamista tehdään käyttäjän kotihakemistoon salasanat.txt, johon kirjataan harjoitusta varten tehdyt salasanat. Asennetaan samalla salasanageneraattori pwgen komennolla sudo apt-get install pwgen. Palataan salasanoihin myöhemmin. Tehdään salasanasta yksityinen niin, että vain luoja voi lukea sitä. Mennään kotihakemistoon, jossa salasanat.txt sijaitsee. Syötetään komennot sudo chown xubuntu, jonka jälkeen komennot sudo chmod u=rwx,g-rwx,o-rwx salasanat.txt.

Asennetaan ensiksi Apache komennolla sudo apt-get update && sudo apt-get install apache2. Joissakin tapauksissa, kuten tässä, livetikku ei osaa käyttää tietokoneen langatonta verkkokorttia, jolloinka tietokone täytyy yhdistää hetkeksi piuhan päähän. Itse jaan netin tietokoneeseen puhelimelta tetheringin kautta.

Langattoman verkkokortin ajuri asennetaan valitsemalla starttivalikosta Settings > Software & Updates, jonka jälkeen Additional Drivers. Valikosta valitaan oikea ajuri, oikean tunnistaa helposti valmistajan nimellä, jonka jälkeen Apply. Tämä kuitenkaan ei livetikulla onnistu, koska ajurien asennus vaatii uudelleenkäynnistämistä, joten jatketaan tetheringilä.

LAMP                    Source: http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

Ajetaan komento sudo apt-get update && sudo apt-get install apache2. Apache2:n toimivuus voidaan kokeilla laittamalla selaimeen localhost. Sivulla näkyy Apachen vakiosivu, eli sivu siis toimii.

NZ42RCw

Navigoidaan hakemistoon /var/www/html/ muokkaamaan tiedostoa index.html siten, että sivulle jää vain teksti Hei Maailma!

Asennetaan seuraavaksi Apachen moduuleja myöhempää käyttöä varten, palvelimen PHP sekä käyttäjähakemistot komennoilla sudo apt-get install libapache2-mod-php7.0 ja sudo a2enmod userdir. Lopuksi käynnistetään palvelin uudelleen komennolla sudo systemctl apache2.

MySQL asennetaan komennolla sudo apt-get install mysql-server. Ohjelma kysyy asennuksen aikana root-käyttäjän salasanaa, generoidaan se pwgenillä avaamalla uusi terminaali ja syöttämällä komento pwgen 20 1. Komento antaa 20 kirjaimisen salasanan. Ensimmäinen parametri määrittelee salasann pituuden. Jos halutaan generoida monta salasanaa kerralla, viimeinen parametri kertoo salasanojen määrän, eli pwgen 10 5 antaisi viisi 10 kirjaimista salasanaa. Tallennetaan generoitu salasana aiemmin luotuun salasanat.txt tiedostoon, ja annetaan se asennukseen salasanaksi.

MySQL asennuksen toimivuus tarkistetaan komennolla mysql -u root -p. Pääsemme palveluun sisään, joten MySQL voidaan julistaa toimivaksi.

luJp29X

Asennetaan suoraan perään PHPMyAdmin, eli MySQL hallintapaneeli, komennolla sudo apt-get install phpmyadmin. Ohjelma asennetaan aikaisempien harjoitusten mukaisesti (https://mvaltonenblog.wordpress.com/2018/02/05/h3/). Asennus pyytää taas salasanaa. En ole täysin varma tarvitaanko tätä salasanaa mihinkään, mutta generoidaan kuitenkin samaan tapaan salasana, ja kirjataan se ylös.

PHPMyAdminin toimivuus tarkistetaan menemällä osoitteeseen localhost/phpmyadmin. Aloitus sivu näkyy, eli palvelun pitäisi toimia, mutta kirjaudutaan varmuuden vuoksi sisään root tunnuksilla. Palvelu toimii.

C0Sw5HK

Seuraavaksi tehdään lyhyt testiohjelma, jossa kaivetaan esiin rivejä MySQL tietokannasta PHP:n kautta. Testiohjelman oppaana ja lähteenä käytän seuraavaa: http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo.

Ensiksi tarvitaan tietysti taulukko. Tehdään taulukko myöhemmän lisätehtävän mukaan. Tarkoitus on luoda Eijalle esimerkkisivu, jossa testiohjelma ajetaan.  Aluksi kirjaudutaan mySQL:ään sisään, mysql -u root -p.

Luodaan Eijalle tietokanta komennolla CREATE DATABASE evahakaa CHARACTER SET utf8;, jonka jälkeen GRANT ALL ON evahakaa.* TO evahakaa@localhost IDENTIFIED BY salasana’; Kenttään salasana kopioidaan käyttäjän evahakaa talletettu salasana. Seuraavaksi kirjaudutaan ulos ja takaisin sisään Eijana, jotta testataan tunnukset ja muutenkin toimitaan vähemmillä oikeuksilla. Mysql -u evahakaa -p., jatketaan ohjeen mukaan:

USE evahakaa;

CREATE TABLE ninjamoves(id INT AUTO_INCREMENT PRIMARY KEY, move VARCHAR(1024), difficulty INT);

INSERT INTO ninjamoves(move, difficulty) VALUES (‘Hyppykiertopotku’, ‘27’);

INSERT INTO ninjamoves(move, difficulty) VALUES (‘Kuperkeikka’, ‘3’);

INSERT INTO ninjamoves(move, difficulty) VALUES (‘Karjaisu’, ‘1’);

Syötetyt tiedot voi tarkistaa komennolla SELECT * FROM ninjamoves;

FugVYeX

Tiedot ovat oikein, joten jatketaan.

Kaivetaan esiin webpalvelimen sivu /var/www/html/. Annetaan komento sudo mv index.html index.php, sudo nano index.php. Lainataan Teron kirjoittamaa koodia, mutta korjataan koodiin käyttäjänimi sekä muut muuttujat oikeiksi.

Tarkistetaan toimivuus menemällä osoitteeseen localhost/~ evahakaa. Kuinka ollakaan, sivu toimii.

xW85tE8

LAMP -stack on nyt asennettu ja testattu, siirrytään seuraavaan kohtaan.

ETÄTYÖSKENTELY

Seuraavaksi tehtävänä on mahdollistaa etätyöskentely. Etätyöskentelyyn käytetään SSH:ta, asennetaan komennolla sudo apt-get install ssh. Tehdään heti perään palomuuriin aukko komennolla sudo ufw allow 22/tcp.

Koska livetikun Xubuntu käyttäjällä ei ole salasanaa, emme voi kokeilla ssh:ta sillä käyttäjällä. Luodaan testausta varten uusi käyttäjä, sshtest, salasana generoidaan ja kirjataan ylös. Yritetään yhdistää komennolla ssh sshtest@localhost. Nyt yhdistäminen onnistuu koska salasana on olemassa, joten SSH toimii. Etätyöskentely on mahdollista.

KÄYTTÄJÄT

Seuraavaksi tehtävänä on luoda käyttäjätilejä. Koska käyttäjille täytyy tehdä esimerkkisivut, päästään helpolla mikäli käymme muuttamassa /etc/skel lisäämällä sinne public_html kansio, jonka sisään tiedosto index.html. Tiedostoon voi kirjoittaa mitä haluaa, siitä tulevat käyttäjien esimerkkisivut. Skel:n sisältö kopioidaan uusien käyttäjien kotihakemistoihin luomisvaiheessa, joten nyt ei tarvitse käydä jokaisella käyttäjällä luomassa sivuja.

Nyt luodaan käyttäjät. Tässä prosessissa ei ole mitään erikoista, muuta kuin se, että Nakke Nertolan tietoihin kirjoitetaan, että käyttäjä on toimitusjohtaja. Käyttäjien salasanat generoidaan ja kirjataan ylös.

Kun käyttäjät on tehty, voimme tarkistaa käyttäjäsivujen toimivuus laittamalla selaimeen localhost/~kayttaja, eli esim. localhost/~ evahakaa. Nettisivulle ilmestyykin hakemistolistaus, joten jokin on pielessä.

40PZIA2

Yhdistämällä sisään käyttäjällä nnertola voimme huomata, että olen epähuomiossa laittanut index.html tiedoston public_html kansion ulkopuolelle. Ongelma korjataan komennolla mv index.html public_html/, mutta ongelma täytyy korjata jokaisen käyttäjän kohdalla. Eli yhdistetään jokaisella käyttäjällä sisään SSH:lla, jottei tiedostojen oikeudet hajoa.

Kun virhe on korjattu, käyttäjien sivut toimivat oikein, esimerkki sivu näkyy.

PALOMUURI

Palomuuri kytketään päälle komennolla sudo ufw enable. Ennen sitä on kuitenkin hyvä varmistaa, että portit 22 sekä 80 ovat auki, sudo ufw allow 22/tcp && sudo ufw allow 80/tcp.

TERVEHDYS        Source: http://terokarvinen.com/2007/shell-scripting-4

Tervehdysskriptiä varten navigoidaan hakemistoon /usr/local/bin, jonne avaamme tekstitiedoston sudo nano ninja, johon seuraava teksti:

#!/bin/bash

Echo Hello Ninja!

Hostname -I

Whoami

Tiedosto tulee tallentaa ilman tiedostopäätettä. Tallentamisen jälkeen komennolla sudo chmod a+x ninja annamme kaikille käyttäjille oikeuden suorittaa skripti. Koska skripti sijaitsee /usr/local/bin hakemistossa, sen voi kutsua milloin vain ja mistä vain. Testataan skriptiä helposti kirjautumalla millä tahansa käyttäjällä sisään SSH:lla, ja kutsumalla skriptiä komennolla Ninja. Skripti toimii.

B10jXp6

UUSI YLLÄPITÄJÄ

Uusi ylläpitäjä on helppo luoda. Syötetään komento sudo adduser jlaitava. Salasana generoidaan kuten aiemmin. Kun käyttäjä on luotu lisätään käyttäjä vielä admin ja sudo ryhmiin. Sudo adduser jlaitava adm && sudo adduser jlaitava sudo. Nyt jlaitava pystyy lukemaan lokitiedostoja ja toimimaan tarvittaessa root oikeuksilla, kuten muutkin ylläpitäjät.

Lopuksi harjoitus pyytää pakkaamaan tiedostot palautusta varten, mutta jääköön se kunnon labraharjoitukseen, onhan oikeat tehtävät tehty lukuunottamatta Eijan alidomainin tekoa.

Tehtävä oli mielenkiintoinen ja melko vaativa, siinä mielessä että se vaati kaikkia tähän asti opittuja taitoja. Toisaalta tehtävä oli myös helpohko siinä mielessä, että asiat olivat melko tuttuja. Koen, että viimeisimpien tehtävien aikana ylipäätänsä ymmärrys Linuxin toiminnasta ja käytöstä on parantunut huomattavasti.

Uskon labraharjoituksen menevän hyvin, mikäli siinä on samankaltaisia tehtäviä.

Lähteitä:

https://www.w3schools.com/sql/sql_create_db.asp

http://terokarvinen.com/2007/shell-scripting-4

http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

https://www.computerhope.com/unix/uchmod.htm

This entry was posted in Uncategorised. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *