h7

Tehtävänanto

  • a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. (Löytyy DuckDuckGolla tai Googlella sekä linkeistä tältä sivulta).
  • b) 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”.

Otin labran http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-6-torstai-alkukevat-2018-5-op

Kuten Kalevalassa sanottiin niin lyhyestä virsi kaunis.

ESIASENNUKSET JA TESTAUKSET

Pyöräytin ubuntun päälle livetikulta.

Kone pyörii UTC 0,Pistin ssh ja palomuurin kuntoon

  • sudo ufw allow ssh
  • sudo ufw enable

Otin sshyhteyden omaan koneeseeni sshn asennettua

Kävin materiaalin läpi ja listasin tehtävässä tarvittavat palikat jotka asensin.

  • sudo apt-get update
  • sudo apt-get install -y apache2 php libapache2-mod-php sqlite3 sysstat php7.2-sqlite3 ssh

ssh xubuntu@ip

Enabloin datan keräykse sysstatissa, tällä seurataan koneen kuormitustietoja. Defaulttina lokittaa 10min välein.


sudoedit /etc/default/sysstat

enabled = ”true”

sudo systemctl restart sysstat
sar -komennolal katsoin mitä löytyy, löytyi yksi tietue. Listataan myöhemmin kaikki

Testasin apachen toiminnan, näytti localhostissa defualt sivun.
Testasin sqlite3 toiminnan
Avasin sqlite3 komennolla sqlite3

CREATE TABLE asd (id INTEGER PRIMARY KEY, numero INTEGER not null);
INSERT INTO asd VALUES(123,123);
Select * FROM asd;

sain syötetyn rivin, kaikki ok
Nyt on asennetut pömpelit testattu ja aletaan suorittaa tehtävän osia tarkemmin.

  • Virtuaalihosti kuntoon ja PHPn testaus

Loin virtuaalihostin.

sudoedit /etc/apache2/sites-available/juuh.conf

<VirtualHost *:80>
	ServerName sorkkacrm.example.com
	DocumentRoot /home/xubuntu/phpromu/sivu/
	<Directory /home/xubuntu/phpromu/sivu>
		Require all granted
	</Directory>
</VirtualHost>

Poistin apachen defaultvirtualhosti pois käytöstä ja loin oman uudentilalle. Boottasin apachen että sain sivut toimintaan,

  • sudo a2ensite juuh.conf
  • sudo a2dissite 000-default.conf
  • sudo systemctl restart apache2

Loin virtuaalihostin vaatimat kansiot ja tiedostot

  • mkdir /home/xubuntu/phpromu/
  • mkdir /home/xubuntu/phpromu/sivu
  • nano /home/xubuntu/phpromu/sivu/index.php
#index.php

<?php
print("printti")
?>

Avattu localhostissa, sivusto tulostaa printti tekstin kuten pitääkin. Tungin tiedon hostitiedostoon jotta voidaan simuloida sivustoa.

  • sudoedit /etc/hosts
  • lisätään rivi 127.0.0.1 sorkkacrm.example.com

Testasin sorkkacrm.example.com selaimessa, toimii.

cd /home/xubuntu/phpromu/sivu/

Luodaan uusi tietokanta

  • sqlite3 tietokanta.db

sqlitessä:

CREATE TABLE asiakkaat (id integer primary key , nimi varchar (300) not null);

Syötetty asiakkaat inserteillä.

- Kulta ja Kaivos ky
- Piilosana ry
- MetalliMake

Select * from asiakkaat näytti listan asiakkaista oikein.

Lähdin parantelemaan php scriptaa, käytin lähteenä https://stackoverflow.com/questions/17997722/sqlite3-query-to-list-all-tables-in-database-only-shows-one-table/17997856

#index.php

<?php
    $db = new SQLite3('tietokanta.db');
    $tablesquery = $db->query("SELECT nimi FROM asiakkaat;");
   //$tables = $tablesquery->fetchArray(SQLITE3_ASSOC);
     while ($table = $tablesquery->fetchArray(SQLITE_ASSOC))
{
echo $table['nimi'].'<br />';
}

?>

Nyt sorkkacrm.example.com suolsi ulos asiakkaat. Nasta juttu!

## 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.

Loin uuden hostin kuten aikaisemmin

sudoedit /etc/apache2/sites-available/rautaarajalle.conf

<VirtualHost *:80>
	ServerName rauta.example.com
	DocumentRoot /home/xubuntu/phpromu/sivu2/
	<Directory /home/xubuntu/phpromu/sivu2>
		Require all granted
	</Directory>
</VirtualHost>

a2ensite rautaarajalle.conf

lisäsin tietuun hosts filuun taas

  • 127.0.0.1 rauta.example.com
  • mkdir /home/xubuntu/phpromu/sivu2
  • nano /home/xubuntu/phpromu/sivu2/index.html
<!DOCTYPE html>
<html>
<head>
<title> Sorkka ja Rauta oy</title>
</head>
<body>
<h1>Sorkka ja Rauta Oy</h1>
</body>
</html>

sudo systemctl restart apache2 ja sivusto näkyi rauta.example.comissa. JES!

## 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/ .

Loin Einarille käyttäjän

sudo adduser einari

Enabloitiin userdirri että saatiin kotihakemisto toimintaan

  • sudo a2enmod userdir
  • sudo systemctl restart apache2

Loin einarille public_html kansion

mkdir /home/einari/public_html

Lisättiin php filu tänne joka lähtee tulostamaan vaadittua tietoa

nano /home/einari/public_html/index.php

#index.php

<?php
print("Einari")
?>'

Tässä kohtaa indexi tulosti pelkän hipsun kun katsoin, luulin että olisi tuon php raakakoodinkin laittanut mutta ei.

Asetetaan kansio käyttäjä einarin alaisuuteen , kiva jos Einarikin pääsis käsittelee tätä kansiota

sudo chown einari:einari /home/einari/public_Html

lisätään myös index.php einarin alaisuuteen

sudo chown einari:einari /home/einari/public_html/index.php

Muokataan phpn conffeja jotta sallitaan php kotihakemistossa , sudoedit /etc/apache2/mods-availalbe/php7.2.conf

  • php_adminflag engone On

sudo systemctl restart apache2

Testattu localhost/~einari ja tämä tulostaa einarin

Kävin vielä lopulta testaamassa kansion toimintaa einarina, otin ssh yhteyden ssh einari@localhost ja navigoin public html cd /home/einari/public_html

nano index.php, tein muutoksen ja tallensin. Muutos välittyi selaimeen. Loin myös uuden html tiedoston public_html ja tämänkin avaaminen onnistui. Käyttäjäoikeudet kunnoss,a einari voi nyt koodata miten tahtoo 👌

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

Kävin läpi /var/log/auth.login, ainoat väärät kirjautumiset olivat parista omasta yrityksestä kirjautua kun typotin salasanat.

Kuormitusinfo

Eipä tässä mitää kuormitusta tapahtunut ja koko touhu näköjään meni alle tuntiin.

Lähteet

terokarvinen.com

https://stackoverflow.com/questions/17997722/sqlite3-query-to-list-all-tables-in-database-only-shows-one-table/17997856

Jätä kommentti

Design a site like this with WordPress.com
Aloitus