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