Viikko 7, viimeistä viedään

Hei,

olemme päässeet tämän linux kurssin viimeiseen harjoitukseen, ennen koetta. Linux kurssi – Tero Karvinen

Aloitetaan samantien tekemään harjoitusta 7

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

Googlasin laboratorio harjotuksia ja valitsin tähän tehtävään GreippiNappi harjoituksen

Koko tehtävä
Tehtävä 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.

Tee kaikki niin realistisesti, kuin se labrassa on mahdollista: käytä järkeviä käyttäjätunnuksia ja salasanoja. Testaa kaikki palvelut niin julkisilla nimillä tai IP-osoitteilla, kuin labrassa on mahdollista.

Tulimuuri sekä apache2

Ensimmäisenä tehdään kohta “Suojaa kone tulimuurilla”.

Suojataan kone tulimuurilla, sekä avataan portti 22 ssh yhteydelle. Voimme myös avata portit samalla http sekä https sivuille

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Harjoituksen tarkotuksena on pitää yllä php sivuja etäältä.
Asennetaan siis apache2

sudo apt-get install apache2

Tarkistetaan apachen asennus kirjoittamalla selaimeen: localhost
jolloin Apache2 Ubuntu Deafult Page pitäisi näykyä.

Aikaisemmissakin tehtävissä olemme ottaneet tuon sivun pois näkyvistä, joten tehdään se tässäkin.

Navigoidaan kansioon /var/www/html ja muokataan tiedostoa index.html
cd /var/www/html , sudoedit index.html , poistetaan rivit ja lisäsin pelkän “Moi” tähän tiedostoon, jonka pitäisi näkyä localhost osoitteessa.

Käyttäjien teko

Kaikki käyttäjät haluavat tehdä php kotisivuja ilman sudo oikeuksia, sekä sivujen täytyy näkyä oman käyttäjä tunnuksen alla esim: localhost/~jmahkyla

Apache2 on moduuli minkä avulla tämä on mahdollista.
sudo a2enmod userdir
sudo systemctl restart apache2.service

Luodaan käyttäjät seuraavaksi.

Jorma Mähkylä, Pekka Hurme, Ronaldo Smith, Håkan Petersson, Einari Mikkonen, Einari Vähäkäähkä, Eija Vähäkäähkä, sekä Maija Virtanen joka haluaa käyttäjänimen “maija”

Käyttäjänimet kannattaa tehdä etukirjain + sukunimi, max 8 kirjainta.

Käyttäjänimet

jmahkyla
phurme
rsmith
hpeterss
emikkone
evahaka1  – Einari Vähäkäähkä
evahaka2 – Eija Vähäkäähkä
maija

Salasanat täytyvät olla hyvät, joten asennetaan pwgen
sudo apt-get install pwgen

Generoidaan 20 merkinpituisia salasanoja 8
pwgen 20 8

Luodaan tekstitiedosto, johon laitetaan käyttäjänimet sekä salasanat.

nano users.txt ja lisätään tänne pelkkä “moi” alkuun ja tallennetaan.
Ennenkuin lisäämme tänne nimiä tai salasanoja otetaan oikeuksia pois, jotta kaikki eivät voi lukea tätä tiedostoa.

chmod og-rwx,u-x users.txt
ls -l users.txt

Nähdään, että vain meillä on muokkaus oikeudet tuohon tiedostoon.

Nyt voimme muokata tätä tiedostoa ja kirjoittaa sinne käyttäjätunnukset sekä salasanat.

Aloitetaan luomalla kaikki käyttäjät ja samalla public_html kansio kyseiselle käyttäjälle. Luodaan vielä public_html kansioon index.html tiedosto ja tehdään tähän tehtävässä annetut muokkaukset.

sudo adduser jmahkyla
salasanaksi pwgen:llä luotu salasana
kirjaudutaan käyttäjälle ssh komennolla
ssh jmahkyla@localhost
Annetaan komento pwd, jotta tiedetään missä olemme.
Luodaan kansio public_html: mkdir public_html
cd public_html
nano index.html

Nyt Jorma Mähkylän sivu näkyy osoitteessa localhost/~jmahkyla
Tehdään tämä kaikkille käyttäjille.

 

Pekka Hurme LAMP

Pekalle täytyy tehdä oma tietokanta ja kotisivu täytyy näyttää tietueita tietokannasta.

Asennetaan php
sudo apt-get install libapache2-mod-php

Php:n asennuksessa täyty muistaa, että käyttäjien hakemistossa php on kieletty ennen kuin muutetaan asetus tiedostoa.

cd /etc/apache2/mods-available
ls
sudoedit php7.0.conf


Kommentoidaan kyseiset kohda pois, sekä käynnistetään apache2.service uudelleen.
sudo systemctl restart apache2.service

Meidän täytyy asentaa tietokanta, jotta saadaan tehtävä tehtyä.

sudo apt-get install mysql-server mysql-client
Annetaan salasana
Kirjaudaan mysqllään: mysql -u root -p
Annetaan salasana
Luodaan tietokanta Pekka Hurmeelle

CREATE DATABASE phurme CHARACTER SET utf8;
CREATE USER ‘phurme’@’localhost’ IDENTIFIED BY ‘pass’;
GRANT ALL ON phurme . * TO ‘phurme’@’localhost’ IDENTIFIED BY ‘pass’;

Koska php koodi toimii vain .php sivulla, meidän täytyy muokata index.html tiedosto .php päättyiseksi.
mv index.html index.php

Kirjaudutaan phurme mysql käyttäjälle
mysql -u phurme -p
Annetaan salasana
SHOW DATABASES;
USE phurme;
Luodaan taulu mihin voi kirjoittaa dataa.
CREATE TABLE testi (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024));
INSERT INTO testi(name) VALUES (“Pekka Hurme”);

Seuraavaksi täytyy asentaa tarvittavat moduulit  apacheen, jotta php moduuli osaa hakea mysql:stä tietoa.

sudo apt-get install libapache2-mod-php php-mysql curl lynx
sudo systemctl restart apache2.service

Nyt meidän täytyy lisätä Pekka Hurmeen index.php tiedostoon koodia joka hakee tietoa tietokannasta.


lopputulos

Jorma haluaa uuden sivun sleep.example.com alle.

Muokataan hosts tiedostoa siten että lisätään rivi, hosts tiedosto löytyy sudoedit /etc/hosts

127.0.0.1 sleep.example.com

Jotta saadaan tämä osoite suoraan näyttämään Jorman sivu täytyy virtualhost tiedostoa muokata apachen alla.

cd /etc/apache2/sites-available

Kopioidaan default configuraatio ja nimetään se sleep.example.com.conf

cp 000-default.conf sleep.example.com.conf

Muokataan tätä juuri tehtyä tiedostoa.


Otetaan tämä muokattu configuraatio käyttöön
sudo a2ensite sleep.example.com.conf
sudo systemctl restart apache2.service

Uusikomento “wowstats” joka näyttää tietoja koneen tilasta.

Löysin hienon artikkelin stacexchange.com

Luodaan bash scripti kansioon /usr/bin
sudoedit wowstats

Meidän täytyy muokata tämän tiedoston oikeuksia, jotta muutkin käyttäjät voi ajaa tätä komentoa.

sudo chmod +x wowstats


Komento lshw haluaa tämän suoritettavana super-userina mutta näyttää se ilmankin tietoja.

Leave a Reply