Linux Harjoitus 4

Harjoitus 4

Tero Karvisen tehtävänanto

Kuten tunnilla puhuttiin, muutin tätä tehtävää vastaamaan opeteltuja asioita.

a) Laita hankkimallesi virtuaalipalvelimelle mahdollisuus tehdä kotisivuja normaalin käyttäjän oikeuksin.

b) Laita hankkimallesi virtuaalipalvelimelle käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna.

c) Etsi palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla ipcalc, geoiplookup ja whois.

d) Tee weppisivuja paikallisella koneellasi ja kopioi ne palvelimelle scp-komennolla.

e) Laita palvelimellesi jokin yksinkertainen PHP-sivu. Voit esimerkiksi tulostaa käyttäjän IP-osoitteen$_SERVER[‘REMOTE_ADDR’] tms. Ole huolellinen, jos otat vastaan syötteitä lomakkeilla (forms).


Vapaaehtoisia tehtäviä

Vinkkejä: lue linkitetyt artikkelit aikataulusta yltä ennenkuin alat tehdä tehtäviä. Muista viitata kaikkiin lähteisiin. Käytä aina hyviä salasanoja, joka hetki ja joka paikassa.

f) Kokeile julkista virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta, OVH:lta tai monista muista paikoista. Edullisinta on käyttää GitHub Education -paketista DigitalOceanin palveluita.

Vaihtoehto: jos et jostain syystä halua vuokrata virtuaalipalvelinta, voit kokeilla tehdä testipalvelimen vagrantilla, mutta tämä ei ole yhtä jännittävää.

g) Laita julkinen domain-nimi osoittamaan koneeseesi. NameCheap ja Gandi ovat tunnettuja nimien vuokraajia. GitHub Education -paketista saa NameCheapilta .me domainin ilmaiseksi vuodeksi.

h) Laita monta DNS-nimeä samaan IP-osoitteeseen. Apache Name Based Virtual Hosting.

i) Asenna WordPress. Se on maailman suosituin sisällönhallintajärjestelmä (CMS). Samalla opit asentamaan kolmannen osapuolen valmiita PHP-ohjelmia. WordPress kannattaa asentaa wordpress.org:sta löytyvästä tervapallosta (.tar.gz).

j) Kokeile WordPressia kirjoittamalla esimerkkisisältöä.

WordPress vapaaehtoisia:

c) Ota järkevät URLit (permalinks) käyttöön
d) Vaihda teema
e) Varmuuskopioi sisältö
f) Palauta varmuuskopioitu sisältö puhtaaseen WordPress-asennukseen
g) Tee WordPressiin oma teema
h) Asenna WordPressiin plugin (esim Dofollow)
i) Tee WordPressiin oma plugin
j) Lisää kuvia WordPressiin (ja laita tämä toimimaan)
k) Laita WordPress nimipohjaiseen virtuaalipalvelimeen (http://thello.foo tms)

Muita vapaaehtoisia:

l) Asenna Drupal ja kokeile sitä
m) Asenna Joomla ja kokeile sitä
n) Hanki virallinen, selainten hyväksymä TLS-sertifikaatti Let’s Encryptistä
o) Vaikea: Tee esimerkkisivu Python Flaskilla
p) Vaikea: Tee esimerkkisivu Ruby on Rails (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)
q) Vaikea: Tee esimerkkisivu Python Django:lla (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)


Työkalut

Suoritin tehtävät Ubuntu 17.10 käyttöjärjestelmällä ja laitteena käytin Acer Aspire


Tehtävät

Murtautumisyritykset palvelimeeni

a) Tämän tehtävän olin tehnyt tunnilla opettajan oheistuksella. Mutta kun tulee mahdollisuus tehdä uusi serveri niin päivitän tähän miten tämä kohta pitää tehdä.


b) Sama juttu tämän tehtävän kanssa. En tiedä miten voisin tehdä nämä kohdat uudelleen kun olen kerran tehnyt…



c) Aloitin tehtävän kirjautumalla palvelimeeni, joka tapahtui komennolla:

$ ssh käyttäjätunnus@ip-osoite

Kirjautumisen jälkeen menin hakemaan lokia mistä näkisin kirjautumisen yritykset. Lokia tarkastelmaan pääsin komennolla:

$ tail -F /var/log/auth.log

Mutta aikaisemmat tapahtumat pääsee katsomaan parillakin komennolla (ainakin komennot mitä minä tiedät, niitä voi olla muita mutta tähän asti tiedän vain muutama). Komennot ovat mitä käytin tarkastellessa lokia ovat:

$ less /var/log/auth.log

Less komento on hyvä lukea isoja lokeja tai teksti tiedostoja. Näin olen tajunnut mitä ‘less’ komento tekee. Toinen komento minkä käytin oli:

$ tail -100 var/log/auth.log

Numeron voi olla mikä vain riippuen paljon rivijä haluaa nähdä.

Tehtävässä käytin komentoa:

$ less +G var/log/auth.log

Pois tästä tapahtumasta pääsin painamalla ‘shift’ + ‘:’ ja kirjoitin ‘q’ ja painoin ‘Enter’.

auth.log document.png

Aika monta tapahtumaa yhdessä kuvassa mutta otan yhden rivin ja analysoin sen.

Feb 10 19:44:51 512mb sshd[9584]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=58.218.198.142 user=root
Feb 10 19:44:53 512mb sshd[9584]: Failed password for root from 58.218.198.142 port 42709 ssh2

Feb 10 19:44:51′ on aikatapahtuma. Serverillä on käytössä 0 GTM koska tietokoneeni erosi kahdella tunnilla. ‘512mb’ on serverin nimi, jonka vuokrasin Github education käyttäen Digital Ocean. ‘sshd[9584]’ on prosessorin numero mitä se käyttää serverillä. ‘pam_unix(sshd:auth):’ Tämä kait tarkoittaa että joku yrittää kirjautua. ‘authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=58.218.198.142 user=root’ Alussa lukee että authentikointi on epäonnistunut. Sitten on kait tietoja kättäjästä joka yritti kirjautua sisään. ‘logname’ nimi käyttäjästä. ‘uid=0’ on ainutlaatuinen numero määrätty jokaiselle käyttäjälle. ‘euid=0’ en ole varma mikä tämä on. ‘tty=ssh’ tarkoittaa varmaan minkälainen yhteys. ‘SSH’ taas tarkoittaa salattua tietoliikennen protokolla. ‘ruser’ en ole ihan varma mitä tarkoittaa mutta taitaa tarkoittaa ‘remote host’, tarkemmin en osaa sanoa. ‘rhost’ on varmaan ‘remote host’ käyttäjä joka yritti kirjautua sivulleni ja ‘user’ millä oikeuksilla yritti kirjautua joka on ‘root’. Toisella rivillä alku on sama mutta ‘Failed password for root from 58.218.198.142 port 42709 ssh2’ sanoo että salasana epäonnistui käyttäjälle ‘root’ ja osoite mistä. Lopuksi vielä lukee ‘port’ mitä porttia käytti yrittääkseen kirjautua.

Halusin kanssa saada enemmän tietoa käyttäjästä joka yritti kirjautua sivulleni. Tähän käytin ohjelma mitä osasin lukea. Tähän on monta ohjelmaa mutta kaikista ohjelmista en osaa lukea että mitä ne tarkoittaa. Käytin ohjelmaa ‘whois’ jonka piti asentaa aluksi.

$ sudo apt-get install whois

Sitten asennuksen jälkeen kirjoitin

$ whois 58.218.198.142

whois 58.218.198.142.png

who is 58.218.198.142 (2).png

Yritin saada kaikki tiedot näytölle. Yksi jäi pois ‘admin-c: CH93-AP’ ja kaikki muut sain näytölle.

Asensin kanssa geoiplookup.

$ sudo apt-get install geoip-bin

geoiplookup.png

En tiedä mitä voisin kertoa näistä kahdesta mutta ainakin käyttäjä yritti kiinasta murtautua sivulleni.

Kanssa opettajani Tero Karvinen suositteli vielä toista ohjelmaa, mutta itse en hirveesti tajua mitä sieltä tuli ulos. Ohjelma on siis ipcalc. Sen asensin kanssa ja katsoin mitä tuli.

$ sudo apt-get install ipcalc

ipcalc.png


Webbisivu lokaali koneelta palvelimelle

d) Tämän tehtävän kanssa minulle tuli paljon ongelmia koska en saanut tehtyä ja turhauduin aika paljon että en raportoinnut joka ikistä komentoa mitä tein. Tehtävä oli siis siirtää paikalliselta koneelta tehty webbisivu palvelimelle käyttäen scp-komentoa.

Aloitin tehtävän luomalla ‘index.html’ kansion ‘nano’ komennolla. Kirjoitin ihan simppelin sivun joka tulostaa tekstiä.

simppeli html sivu.png

Sitten lähdin yrittämään siirtä tämän ‘index.html’ kansion palvelimelle.

$ scp index.html robert@ip-osoite:

siirretty?.png

Tuollainen teksti tuli että se olisi siirtänyt ‘index.html’ kansio, mutta kun katsoin komennolla ‘cat’ että mitä se sisältää niin se oli vielä se vanha tiedosto. Ja sitten palasin kotihakemistoon ‘cd’ komennolla ja siellä kanssa oli ‘index.html’ kansio ja katsoin mitä se se sisälsi. Sisältö oli sama kuin äsköisen ‘index.html’ kansion sisältö. Jatkoin sitten yrittämistä.

scp index.html robert@ip-osoite:/public_html

Komento antoi virheen:

scp: /public_html: Permission denied

Yritin vielä pari kertaa että vahingossa en kirjoittanut salasanani väärin, mutta tuli joka kerta sama tulos. Jatkoin yrittämistä.

Sitten monen kokeilun jälkeen tajusin että komentoa mitä käytin, minun piti suorittaa local koneella eikä palvelimella. Tunsin itseäni vähän tyhmäksi tässä vaiheessa, joten jatkoin tehtävän tekemistä.

Kokeilin

$ scp index.html robert@ip-osoite:/public_html

Mutta tuli sitten seuraavanlainen virhe:

scp: /public_html: Permission denied

Joten aloitin selailla Google:ssa jos löytäisin miksi tulee tämmöinen virhe. Tuli vastaan Stackexchange sivusto, jossa joku kysyi samasta ongelmasta. Ongelmasta linkki on tässä, josta voi mennä lukemaan, koska auttoi minua kyseisen ongelman kanssa. Ongelmana oli siis että komentoa mitä käytin niin se haluaa pistää root eli ‘/’ polkuun missä minulla ei ole oikeuksia tehdä mitään. Joten selvittääkseen ongelma tarkensin polun minne halusin kyseisen tiedoston menevän.

$ scp index.html robert@ip-osoite:/home/robert/public_html

Ja miten kävikään että se siirsi tiedoston onnistuneesti!

Tuloksen näin kun päivitin oman sivustoni jossa näkyi muutokset. Esitän muutokset seuraavissa kuvissa:

robado.me 1.png

Tässä oli sivustoni ennen siirtoa. Kuten näkee niin ei ollut paljon mitään sivullani, koska en ole ehtinyt vielä pistää mitään. Komennon jälkeen sivustoni näytti seuraavalta:

robado.me new.png

En lisännyt paljon mutta näin että sivu oli muuttunut ja tarkistin kanssa ‘index.html’ kansio ‘cat’ komennolla kanssa.

robado.me code.png

Ja koodi oli kanssa vaihtunut. Scp-komento onnistui.


Yksinkertainen PHP sivu

e) Aloitin tekemällä PHP sivun joka näyttäisin IP-osoitteeni.

php sivu not working.png

Sivu ei näyttänyt mitään, koska en ole vielä asentanut PHP palvelimelleni, joten lähdin asentamaan. Tähän asennukseen käytin ohjeita tästä linkistä.

$ sudo apt-get install libapache2-mod-php

Asennus lähti. Mutta en vielä voinut käyttää koska en ole antanut palvelimelleni lupaa käyttää PHP:ta. Luvat antaessa pääsin komennolla:

$ sudoedit /etc/apache2/mods-available/php7.0.conf

Sitten käynnistin palvelimen uudelleen.

sudo service apache2 restart

Sitten päivitin sivuni ja sain tuloksia.

Inkedphp-ip_LI.jpg

Sivullani näkyi oma ip-osoitteeni ja kanssa kun kokeilin toisella verkolla niin näkyi sen ip-osoite.


WordPressin Asennus

i) Asentaakseni WordPress minulla pitää olla asennettuna LAMP. Tähän asti olen asentanut Apache ja PHP, joten vielä minulta puuttui on MySql.

MySql

MySql asennus lähti komennolla:

$ sudo apt-get -y install mysql-server mysql-client

Sitten kirjauduin MySql. Tämän jälkeen pääsin luomaan database ja käyttäjän.

Database loin komennolla

mysql> CREATE DATABASE robertwp CHARACTER SET utf8;

Sitten piti antaa oikeudet komennolla:

mysql> GRANT ALL ON robertwp.* TO robertwp@localhost IDENTIFIED BY ‘salasana’;

Testasin vielä MySql.

mysql> exit

Bye

$ mysql -u robertwp -p

Enter password:

mysql>

Pääsin sisään joten pääsin jatkamaan WordPressin asentamiseen.

WordPress

Tätä asennusta varten käytin apuna tuomassippola :n dokumenttia.

Asennuta varten piti asentaa itse asennuspaketin. Menin ‘public_html’ kansioon ja aloitin asennuksen.

$ cd public_hmtl/robado.me

$ wget https://wordpress.org/latest.tar.gz

Aennuksen jälkeen minun piti purkaa zip tiedosto:

$ tar -xf latest.tar.gz

wordpress.png

Aukesi seuraavanlainen ikkuna. Jatkoin painamalla ‘Let’s go’

wordpress info.png

Lähdin täyttämään tiedot. Viimeisestä en ole ihan varma, mutta mainitsemassani linkissä oli pistetty ‘wx_’.

wordpress php.png

Täytettyäni tiedot tuli ilmoitus että se ei pysty lukemaan ‘wp-config.php’ tiedostoa, joten lähdin tekemään kyseisen tiedoston. Kopioin laatikossa olevan tekstin ja pastesin sen kyseiseen tiedostoon jonka loin “wordpress”-hakemistoon. Sen jälkeen painoin “Run the installation”.

wordpress tiedot.png

Tuli ikkuna jossa se kysyi tiedot. Syötin tiedot ja painoin “Install WordPress”.

wordpress successs.png

Seuraavassa ikkunassa luki “SUCCESS!” joten painoin “Log in”.

wordpress log in.png

Sitten syötin tiedot ja kirjauduin sisään.

robertwordpress.png

Kirjautumisen jälkeen WordPressi on pystyssä ja pääsin muista laitteista näkemään kyseisen sivun! WordPressin asennus onnistui.

Sitten oli vielä lisätehtäviä WordPressille ja päätin tehdä pari että oppisin miten serverin wordpress pitää käyttää.

Uusi sisältö WordPressiin

Uuttaa sisältöä pääsin lisäämään Dashboardista “Posts” kohdasta ja sieltä “Add new”. wordpress first post.png

Jonka jälkeen painoin “Publish”

wp first.png

Ensimmäinen sisältö tuli näkyville sivustolleni. Onnistuin lisäämään sisältöä!

 

 

 

 

 

 

 

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 )

Connecting to %s