Linuxpalvelin kotitehtävät pt.7 (final)

http://terokarvinen.com/2017/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-4-tiistai-alkusyksy-2017-%e2%80%93-5-op Eli tämä työn alle!

Tehtävänanto : NinjaTietokanta

Haluamme tehdä palvelun, jossa listataan ninjaliikkeitä makeuden, tyylisuunnan ja muiden keskeisten ominaisuuksien suhteen.

Kehittäjämme haluavat käyttää LAMP (Linux Apache MySQL PHP) -pinoa. Asenna tarvittavat ohjelmistot ja tee tietokantaa käyttävä esimerkkiohjelma.

Etätyötä

Haluamme työskennellä etäältä (kuin ninjat piiloistaan).

Käyttäjät

Työntekijämme ovat toimitusjohtaja Nakke Nertola, Håkan Värs, Einari Mikkonen, Einari Öljysaari ja Eija Vähäkäähkä. Tee kaikille käyttäjille esimerkkikotisivut.

Suuri muuri

Suojaa kone tulimuurilla.

WhoWhere

Tee kaikkien käyttäjien käyttöön komento, joka tulostaa Ninjamaisen tervehdyksen “Hello Ninja”, koneen IP-osoitteen ja komentoa ajavan käyttäjän nimen.

Etsitkö haasteita? Tähtäätkö huipputulokseen? Juuri sitä varten meillä on tarjolla:
SneakyGarden.Example.com

Virallinen ninjaliikesivumme tulee Eijan ylläpidettäväksi. Tee Eijalle valmis esimerkkisivu, jossa tietokannassa on seuraavat esimerkkiliikkeet vaikeustasoineen

Hyppykiertopotku 27
Kuperkeikka 3
Karjaisu 1

Sivun tulee olla Eijan muokattavissa ja ninjaliikkeiden näkyä osoitteessa http://SneakyGarden.Example.com. Nimipalvelun toimintaa voit simuloida hosts-tiedostolla.
Uusi ylläpitäjä

Uusi ylläpitäjä on Jussi Laitavalo. Tee hänelle käyttäjätunnus jussi ja anna hänen käyttöönsä täydet pääkäyttäjän oikeudet.”
———————————————————————————

Lähdetään liikkeelle LAMP-asennuksesta, eli asennetaan livetikulta Xubuntu ensimmäisenä, Unetbootinin valikosta (tämä pitäisi tulla konetta käynnistäessä nakuttamalla f12 tai boottauksessa indikoitu nappi josta pääsee boot-valikkoon)

Apache:
Seuraavaksi muut osat, mutta kunhan Xubuntu 16.04 on asentunut, logataan sinne sisään ja tehdään tarvittavat säädöt, joista ensimmäisinä “sudo apt-get update” ja “sudo apt-get upgrade” terminaalikomentoina.
Tämän jälkeen Apachen asennus : “sudo apt-get install apache2”
Asennuksen jälkeen käyttäjäkohtainen kotihakemisto käyttöön komennolla “sudo a2enmod userdir” , ja sitten apachen boottaus ” sudo systemctl restart apache2″
Nopea testaus apachen toimivuudesta, luodaan hakemisto komennolla “mkdir public_html” ja syötetään selaimelle osoitteeseen “localhost/~*käyttäjä*/”, esimerkin vuoksi laitetaan vaikka “localhost/~xubuntu/” jolloin pitäisi näkyä hakemiston sisältö.

MySQL :
Asennus komennolla “sudo apt-get install mysql-server” ja konfiguroinnissa annetaan jokin vahva salasana. Tämän valmistuessa testataan kirjautumalla root-käyttäjällä “mysql -u root -p *salasana*” ja luodaan testisyötteet ; “CREATE DATABASE root CHARACTER SET utf8;”, “CREATE TABLE Kayttaja”, “INSERT INTO Kayttaja(etunimi,sukunimi) VALUES (‘Test’, ‘User’);
ja poistuminen kirjoittamalla “exit”

Php :
Asennus komennolla “sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql”, jonka jälkeen php:n toimivuus täytyy käydä säätämässä “sudoedit /etc/apache2/mods-available/php7.0.conf”, ja tuolta kommentoidaan <IfModule> ja siitä eteenpäin tyhjäksi.
Sen jälkeen kun muutos on tehty ja tallennettu restartataan aiempaa komentoa käyttäen apache, ja sitten testataan php-toimivuus luomalla kotihakemistoon “index.php”-tiedosto ja pieni määrä php-koodia, kuten vaikka
“<?php
phpinfo();
?>
ja tallennetaan tiedosto. Testataan sen toimivuus selaimella, eli osoitteena on “localhost/~username/index.php”. Mikäli mitään ei näy, jossain on virhe ja täytyy tarkistaa edeltävät vaiheet.

Lamp-asennus on siinä.

Etätyö + tulimuuri :
Asennetaan ensin SSH-demoni komennolla “sudo apt-get install openssh-server”, jonka voi asennuksen jälkeen tarkistaa komennolla “sudo service ssh status”.
Tehdään reiät tulimuuriin : “sudo ufw allow 22/tcp” – tämä sallii SSH-yhteyden.
“sudo ufw allow 80/tcp” ja “sudo ufw allow 443/tcp” eivät ole pakollisia, mutta mikäli sivut halutaan julkisiksi on nämä hyvä tehdä.
Tulimuuri sitten käyttöön komennolla “sudo ufw enable”

Käyttäjät :
Komento “adduser *nimi tähän*” ja samalla asetetaan salasana (luodaan salasanat käyttämällä “pwgen”-ohjelmaa) käyttäjälle, ja tallennetaan käyttäjät + salasanat teksitiedostoon joka muutetaan read-only komennolla “chmod og-rwx salasanat.txt”.
Lisätään käyttäjät järjestelmään yksi kerrallaan, mutta vasta seuraavan kohdan jälkeen!
Jotta ei tarvitse yksittäin käydä kaikkien kotisivuja läpi, oikaistaan hiukan ; luodaan kotisivut /etc/skel hakemistoon, jolloin jokaisella käyttäjällä on siellä olevat tiedostot heti lisäämisen jälkeen.
Eli
“$ cd /etc/skel
$mkdir public_html (tai jos ei muuten, niin “$sudo mkdir public_html)
$cd public_html
$ nano index.html (tarvittaessa sudolla “$sudo nano index.html)

Tämän jälkeen luodaan käyttäjät sekä testataan niillä ssh-yhteys kirjautumalla jokaisella käyttäjällä sisään sekä kotisivujen muokkaus.

Komento WhoWhere :
Luodaan tiedosto WhoWhere komennolla “nano whowhere”, listataan tiedoston sisään mitä sen tulee tehdä, kutakuinkin näin :

#!/bin/bash
echo “hello Ninja”
echo $ip addr show
echo $USER

Ja tallennetaan tiedosto.

MySQL-ohjelma :
Yhdistellään hiukan – luodaan tietokanta “CREATE DATABASE liikkeet”,
“CREATE TABLE esimliikkeet” ,
“INSERT INTO esimliikkeet(Liikkeen nimi, vaikeustaso) VALUES (‘Karjaisu’, ‘1’);”
Ja toistetaan mainituille liikkeille sama, “INSERT INTO” rivi.

ja sitten php-ohjelma
“liikkeet.php” ja tallennetaan public_html hakemistoon.
“<?php

$user=’root’ ;
$password=’*rootin salasana*

$database=$user ;
$dsn=”mysql:host=localhost;charset=UTF8;dbname=$database”;

$pdo=new PDO($dsn, $user, $password);
$pdoStatement=$pdo->prepare(‘SELECT * FROM liikkeet’);
$pdoStatement ->execute();
$hits=$pdoStatement ->fetchAll ();

foreach($hits as $row){
echo “<p> .$row[‘id’].” “.$row[‘Liikkeen nimi’].” </p>\n”;
}
?>

Ja sitten testiin. Jos jossain on häikkää niin tarkistetaan se ja korjataan.

Sivun nimi :
Etsitään “/etc/apache2/sites-available/*käyttäjänimi*.conf”, tässä tapauksessa eijav.conf tai miten se onkaan nimetty. Sieltä “nano *tiedostonimi*.conf”, jolloin saadaan VirtualHost-näkymä auki ja muutetaan sitä tähän muotoon :

<VirtualHost * :80>

ServerName http://SneakyGarden.Example.com.

ServerAdmin eijav@localhost

DocumentRoot /home/eijav/public_html/
</VirtualHost>


Lopuksi vielä Jussille ylläpitäjän nappulat.
“$sudo adduser jussi sudo”
“$sudo adduser jussi admin”

Näin. Kaikkia kohtia en tehnyt ajanpuutteen vuoksi, mutta tässä pitäisi olla pääpiirteittäin tehtävänannosta tehtynä mahdollisimman paljon.

~Alexi

Advertisements

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 )

w

Connecting to %s