Viikko 4 harjoitus 4 – Oma virtuaalipalvelin

Tämän viikon harjoituksessa vuokrataan oma virtuaalipalvelin ja oma domain-nimi. Harjoituksessa käyttämäni kone on MSI:n valmistama GX 640-mallin kannettava tietokone. Koneeseen on asennettu käyttöjärjestelmäksi Linux Xubuntu 16.04.3 LTS. Voit saada oman Xubuntu 16.04.3 LTS versiosi seuraavasta linkistä.

Aloitin harjoituksien tekemisen tiistaina 13.2.2018 klo 10.15. Annan tämän julkaisun aikana kellonaikoja tehtävien välissä, jotta saatte kuvan kuinka kauan tämän harjoituksen suorittamiseen menee aikaa.

Tämän harjoituksen toimeksianto löytyy kurssini opettajan Tero Karvisen nettisivuilta. Valitsin toimeksiannosta kohdat a, s, y, b ja c.

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

klo 10.20

Aloitetaan harjoitus avaamalla Terminal Emulator:

käynnistävalikko

Työpöydän vasemmasta yläreunasta klikkaamme Xubuntu-logoa ja avautuvasta valikosta valitsemme Terminal Emulatorin. Tämän jälkeen syötämme terminaaliin seuraavan komennon:

sudo apt-get update

Kun olemme päivittäneet uusimpiin paketteihin, voimme ottaa ssh-yhteyden juuri Digital Oceanilta vuokraamaamme virtuaalipalvelimeen. Tämä onnistuu seuraavalla komennolla.

ssh root@(virtuaalipalvelimen ip-osoite)

Kun otat ssh-yhteyden ensimmäisen kerran palvelin kysyy salasanaa. Anna tähän kohtaan se salasana joka sinulle on lähetetty sähköpostiin. Annettuasi salasanan joudut välittömästi vaihtamaan salasanan uuteen. Muista antaa hyvä salasana. Uuden salasanan annettuasi voit avata palomuuriin portin ssh:lle ennen kuin käynnistät palomuurin. Se onnistuu seuraavilla komennoilla.

sudo ufw allow 22/tcp
sudo ufw enable

Tämän jälkeen voit lisätä palvelimellesi uuden käyttäjän, jotta saat rootin pois käytöstä. Käytetään seuraavia komentoja käyttäjän luomiseksi ja pääkäyttäjien oikeuksien luomiseksi.

sudo adduser käyttäjä
sudo adduser käyttäjä sudo
sudo adduser käyttäjä adm
sudo adduser käyttäjä admin

Ensimmäisen komennon jälkeen terminal pyytää syöttämään salasanan. Muista keksiä tähänkin hyvä salasana, mutta se ei saa kuitenkaan olla sama kuin rootin salasana. Tämän jälkeen voit kokeilla toimiiko luomasi käyttäjä avaamalla uuden välilehden terminaaliin ja ottamalla ssh-yhteyden palvelimeesi komennolla.

ssh käyttäjä@palvelimen ip-osoite

Tässä vaiheessa terminaali kysyy salasanaa jolloin syötät siihen juuri luomasi käyttäjän salasanan. Nyt olet ottanut ssh-yhteyden palvelimeesi käyttäjänä. Voit sulkea aiemman terminaalin välilehden komennolla exit joka sulkee rootin ssh-yhteyden. Seuraavaksi lukitsemme rootin ja estämme sen käytön ssh-yhteyden luomiseen. Rootin lukitsemiseen käytämme seuraavaa komentoa.

sudo usermod –lock root

Tämä kuitenkin lukitsee vain rootin salasanan, mutta ei rootin muita käyttömahdollisuuksia. Seuraavaksi estämme rootin käytön ssh-yhteyden avaamisessa komennolla.

sudoedit /etc/ssh/sshd_config

Komento avaa konfigurointi tiedoston, josta voit etsiä seuraavan rivin.

PermitRootLogin yes

Vaihda tuo yes kohta no, jonka jälkeen voit painaa CTRL+X ja y-näppäintä. Enter-näppäin tallentaa muutokset.

Tämän jälkeen asensin Apache2 weppipalvelimen aiemmassa harjoituksessa tekemieni ohjeiden mukaan.

Vaihdettuani Apache2 oletussivun sisällön testimuotoon jouduin käyttämään seuraavaa komentoa, jotta sain sivun avattua virtuaalipalvelimeni ip-osoitteella.

sudo ufw allow 80/tcp

Jos muokkaamasi index.html tiedoston teksti ilmestyy selaimeesi, sivu toimii ja käyttäjät voivat luoda sivuja omilla oikeuksillaan.

Laita hankkimallesi virtuaalipalvelimelle käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna. (H4 kohta s)

klo 10.25

Aloitetaan harjoitus avaamalla Terminal Emulator:

käynnistävalikko

Työpöydän vasemmasta yläreunasta klikkaamme Xubuntu-logoa ja avautuvasta valikosta valitsemme Terminal Emulatorin. Tämän jälkeen syötämme terminaaliin seuraavan komennon:

ssh käyttäjä@palvelimen ip-osoite

Syötettyäsi käyttäjän salasanan voit tarkistaa nopeasti päivitykset seuraavalla komennolla.

sudo apt-get update

Tämän jälkeen voit siirtyä seuraavaan hakemistoon.

cd /etc/apache2/sites-available

Kansiosta löytyy kaksi oletustiedostoa: 000-default.conf ja default-ssl.conf. Emme kuitenkaan koske näihin tiedostoihin vaan luomme uuden tiedoston seuraavalla komennolla.

sudo nano testi.touronen.com.conf

Voit nimetä tiedoston millaiseksi vain, mutta sen pääte tarvitsee olla .conf.

conf

Jos olen ymmärtänyt oikein tämä tiedosto kertoo, mistä oletussivu haetaan ja missä tapauksissa oletussivu näytetään. ServerName ja ServerAlias saattavat olla myös
ip-osoitteita, jos käytössä ei ole domainia. DocumentRoot kertoo polun mistä näytettävä oletussivu haetaan. Tässä tapauksessa se löytyy käyttäjän kotikansiosta publicSite-kansiosta, jossa pitäisi olla index.html tiedosto. Tämä tiedosto voidaan tehdä kuitenkin myöhemmin. Directory /home/ville/publicSite/ require all granted rivi liittyy uskoakseni oikeuksiin. Kun tiedosto on valmis voimme tallentaa sen ja poistua nanosta painamalla CTRL+X ja sen jälkeen y-näppäintä ja Enteriä.

Tämän jälkeen siirrymme seuraavaan hakemistoon.

cd /etc/apache2/sites-enabled

Kyseinen kansio sisältää tiedostot joita palvelin käyttää. Huomaa, että kansio ei todellisuudessa sisällä tiedostoja vaan linkkejä eli viitteitä muualla sijaitseviin
tiedostoihin. Nämä saat komennolla ls -l näkyviin.

linkitykset

Tiedosto siis haetaan kansiosta sites-available, mihin se aiemmin tehtiin. Jotta tiedosto saadaan käyttöön, on annettava komentoriville seuraava komento.

sudo a2dissite 000-default.conf.

Komennolla poistetaan tiedoston linkki sites-enabled kansiosta. Tämän jälkeen kytketään aiemmin luotu sivu käyttöön seuraavalla komennolla.

sudo a2ensite testi.touronen.com.conf.

Lopuksi palvelin täytyy käynnistää vielä uusiksi seuraavalla komennolla.

sudo systemctl restart apache2.service.

Kun palvelin on käynnistetty uudestaan, siirrymme takaisin käyttäjän kotihakemistoon. Luodaan uusi kansio komennolla.

mkdir publicSite

Kansioon luodaan tiedosto index.html. Tiedostoon on hyvä kirjoittaa jokin testiviesti, jotta tiedät että sivu toimii oikein.

html1

Kun tiedosto on valmis voimme tallentaa sen ja poistua nanosta painamalla CTRL+X ja sen jälkeen y-näppäintä ja Enteriä. Avaamme selaimen ja kokeilemme omaa selaintamme.

selain1

Testisivu onnistui ja toimii kuten pitääkin.

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

klo 10.30

Aloitetaan harjoitus avaamalla Terminal Emulator:

käynnistävalikko

Työpöydän vasemmasta yläreunasta klikkaamme Xubuntu-logoa ja avautuvasta valikosta valitsemme Terminal Emulatorin. Tämän jälkeen syötämme terminaaliin seuraavan komennon:

ssh käyttäjä@palvelimen ip-osoite

Syötettyäsi käyttäjän salasanan voit tarkistaa nopeasti päivitykset seuraavalla komennolla.

sudo apt-get update

Tämän jälkeen voit käyttää seuraavia komentoja seurataksesi murtautumisyrityksiä.

tail -f /var/log/ufw.log
tail -f /var/log/auth.log

Käytän tässä tapauksessa ensimmäistä komentoa ja terminaaliin ilmestyi seuraavaa.

ufwlog.png

SRC= kohdassa oleva ip-osoite on murtaumisyrityksen takana ja saat julkisia tietoja ip-osoitteesta asentamalla whois ohjelman seuraavalla komennolla.

sudo apt-get install -y whois

Asennettuasi whois ohjelman voit hakea ip-osoitteen avulla tietoja murtautujasta.

murto1.png

murto2.png

murto3.png

Aiemmin mainitsemallani auth.log komennolla saat muita tietoja murtautujista, kuten esimerkiksi millä käyttäjillä he yrittävät murtautua sisälle.

authlog.png

Tee weppisivuja paikallisella koneellasi ja kopioi ne palvelimelle scp-komennolla. (H4 kohta b)

klo 10.40

Aloitetaan harjoitus avaamalla Terminal Emulator:

käynnistävalikko

Työpöydän vasemmasta yläreunasta klikkaamme Xubuntu-logoa ja avautuvasta valikosta valitsemme Terminal Emulatorin. Tämän jälkeen syötämme terminaaliin seuraavan komennon:

sudo apt-get update

Tämän jälkeen voit luoda html-sivun paikallisella koneella ja siirtää sen virtuaalipalvelimeen scp-komennolla. Käytän testisivuna aikaisemmassa harjoituksessa käyttämääni painoindeksi-laskuria. Tallensin html-sivun paikallisen koneen käyttäjän kotikansion alle public_html kansioon nimellä bmi.html. Tämän jälkeen voidaankin yrittää tiedoston kopiointia seuraavalla komennolla.

scp bmi.html ville@touronen.com:/home/ville/public_html

Muista että kopioidaksesi tiedoston sinun tarvitsee olla kopioitavan tiedoston kansiossa. Painetaan enteriä ja katsotaan miten käy. Terminaali kysyy samantien virtuaali- palvelimen salasanaa joten syötämme sen ja painamme enteriä. Tämän jälkeen siirto alkoikin ja se tapahtui todella nopeasti.

scp

Nyt kun kopiointi on valmis, tarkistan onko tiedosto kopioitunut oikein. Virtuaali- palvelimen kansiosta public_html löytyy identtinen tiedosto. Kopioimme sen publicSite tiedostoon komennolla.

cp bmi.html /home/ville/publicSite

Tämän jälkeen muutan tiedoston nimen vastaamaan jo siellä olevaa index.html tiedostoa komennolla.

mv bmi.html index.html

Sen jälkeen voimmekin kokeilla selaimella onnistuiko siirto ja uudelleen nimeäminen.

selain2

Painoindeksilaskuri toimii, joten scp:n käyttö onnistui.

Laita palvelimellesi jokin yksinkertainen PHP-sivu. Voit esimerkiksi tulostaa käyttäjän IP-osoitteen$_SERVER[’REMOTE_ADDR’]
tms. (H4 kohta c)

klo 10.47

Aloitetaan harjoitus avaamalla Terminal Emulator:

käynnistävalikko

Työpöydän vasemmasta yläreunasta klikkaamme Xubuntu-logoa ja avautuvasta valikosta valitsemme Terminal Emulatorin. Tämän jälkeen syötämme terminaaliin seuraavan komennon:

ssh käyttäjä@palvelimen ip-osoite

Syötettyäsi käyttäjän salasanan voit tarkistaa nopeasti päivitykset seuraavalla komennolla.

sudo apt-get update

Jotta voimme käyttää php-koodia virtuaalipalvelimessamme meidän täytyy asentaa sen Apache2-palvelimeen PHP-kirjasto. Tähän löytyy ohje aiemmin tekemästäni harjoituksesta.

Kun php-asennukset ja asetukset on tehty voimme muuttaa edellisessä harjoituksessa siirtämämme tiedoston html-päätteen php-päätteeksi komennolla.

mv index.html index.php

Lisäämme myös samaan tiedostoon seuraavan tekstipätkän.

<h2>Here is your IP-address:</h2>

<?php echo $_SERVER[‘SERVER_ADDR’] ?>

html2

Tallennettuamme sen voimme kokeilla selainta.

selain3

Sivu toimii. BMI-laskurin alla sivu tulostaa ip-osoitteen.

Lopetin harjoituksen tekemisen 13.2.2018 klo 11.00 eli harjoituksen tekemiseen meni noin 45 minuuttia.

Lähteet:

Tero Karvisen nettisivut : http://terokarvinen.com/2017/aikataulu-%E2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op#h4

Mainokset

Yksi vastaus artikkeliiin “Viikko 4 harjoitus 4 – Oma virtuaalipalvelin

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s