Linux Palvelimet: Harjoitus 4 raportti

Tässä postauksessa raportoin Tero Karvisen Linux Palvelimet-kurssin tehtävää 4.

Käyttämäni tietokone on HP:n 655 G1 läppäri.

Raportin aloitus klo 12:03 09.02.2018.

Tehtäviin postatuissa kuvissa saattaa vahingossa vilkkua palvelimen IP-osoite, muistutuksena ettei kyseinen osoiteavaruus ei toimi tätä dokumenttia lukeville.

Käytän multitail-nimistä ohjelmaa lokitiedostojen tarkasteluun.

Ennen tehtävien aloittamista annoin terminaaliin komennot

$ sudo-apt get update
$ sudo apt-get upgrade

päivittääkseni kaiken ajan tasalle.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

a) Virtuaalipalvelimelle käyttäjille oikeudet tehdä kotisivuja

Aloitetaan tehtävä kirjautumalla palvelimelle.

$ ssh käyttäjä@palvelin

Kun ollaan palvelimella voidaan laittaa tulimuuriin oikeat reiät meidän käyttötarkoituksille eli portti 22 ssh:lle ja portti 80 http:lle ja lopuksi itse tulimuuri päälle.

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

Sitten vielä palvelin ajan tasalle.

$ sudo apt-get update
$ sudo apt-get upgrade

Asennetaan Apache.

$ sudo apt-get install apache2

Käyttäjille oikeudet tehdä sivuja komennolla

$ sudo a2enmod userdir

Nyt käyttäjät voivat tehdä kotisivuja omaan kotihakemistoonsa ja pääsevät niitä katsomaan osoitteessa

roopeme.me/~käyttäjä

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

s) Käyttäjän kotisivu näkymään Apachen oletussivuna

Tehdään ensin käytäjälleni oma public_html-hakemisto (olen jo lisännyt itselleni oman käyttäjän ja lisännyt sen sudo, adm ja admin ryhmiin ja lukinnut root-käyttäjän, kiitokset ohjeesta Terolle)

$ cd
$ mkdir public_html

Sen jälkeen nanolla äkkiä testisivu, johon ihan perus html

$ cd public_html/
$ nano index.html

Lisätään vielä testimielessä sivulle kuva, jonka siirrän scp-komennolla palvelimelle

$ scp kuva.jpg käyttäjä@palvelin:public_html/

Tämän jälkeen muokataan index.html-tiedostoa näyttämään kuva.jpg jonkun surffatessa sivulle.

Apachen oletussivun muokkaamiseksi tehdään uusi .conf-file Apachelle antamalla komento

$ sudoedit /etc/apache2/sites-available/roope.conf

Lisätään seuraavat konfiguraatiot:

## /etc/apache/sites-available/roope.conf
<VirtualHost *:80>
 DocumentRoot /home/roope/public_html/

<Directory /home/roope/public_html/>
 Require all granted
 </Directory>
</VirtualHost>

Pistetään äsken tehdyt konfiguraatiot käyttöön ja restartataan Apache niiden voimaan tulemiseksi.

$ sudo a2ensite roope.conf
$ sudo systemctl restart apache2.service

roopeme.me voi nähdä työn tuloksen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Tässä kohtaa pitää keskeyttää raportointi, kello on 13:13.

Raportin jatkaminen 13.2.2018 klo 18:02

Taas ennen itse tehtäviä sekä omalla koneella että palvelimella

$ sudo-apt get update 
$ sudo apt-get upgrade

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

y) Etsi palvelimesi lokeista murtautumisyrityksiä ja hae IP-osotteista lisätietoa

Ehdimme katsoa jo tunneilla muutaman kaverin kanssa lokeja ja silloin jo murtautumisyrityksiä tuli joka kymmenes sekunti, eli tehtävään tarvittavan materiaalin hankkiminen ei tosiaan ole vaikeaa.

Avataan ensin ssh-yhteys palvelimeen

$ ssh käyttäjä@palvelin

Avataan lokit

$ multitail /var/log/auth.log

Heti löytyy useitakin

tunkeutuminen.png

IP:t ovat:

  • 58.218.198.173
  • 125.212.247.108

Ladataan geoiplookup ja whois

$ sudo apt-get install -y geoip-bin whois

Katsotaan ensin geoiplookupin tulokset

geoiplookup

IP:t ovat Kiinasta ja Vietnamista.

Seuraavaksi whois

$ whois ip.os.oi.te

whois vietnamwhois kiina

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Tehdään pari perusnettisivua samaan tapaan kuin ennen, nimetään ne scptesti1.html, scptesti2.html, scptesti3.html ja laitetaan ne kansioon scptestisivut

$ cd
$ cd public_html # kansioon siirtyminen ei siis ole pakollista, mutta itse teen ensin kansion public_html hakemistoon ja siirrän sen sieltä
$ mkdir scptestisivut
$ cd scptestisivut
$ nano scptesti1.html
$ nano scptesti2.html
$ nano scptesti3.html

Lisäsin luodessani kaikkiin perus-htmlpätkän, mutta jokainen eroaa hieman toisistaan.

scptesti

Viedään kansio sisältöineen palvelimen public_html-kansioon. Muistetaan olla oikeassa hakemistossa, eli annetaan ennen siirtämistä komento cd .. siirtyäksemme ylemmäksi.

$ cd ..
$ scp -r scptestisivut/ käyttäjä@palvelin:public_html/

scp

Tiedostot ovat siirtyneet ja sivut toimivat! Voit nähdä ne halutessasi osoitteessa http://www.roopeme.me/scptestisivut/. (Ois ehkä voinut nimetä yhden index.html)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 c) Laita palvelimellesi jokin yksinkertainen PHP-sivu

Asennetaan ensimmäiseksi palvelimelle Apacheen PHP-moduli, kommentoidaan php7.0.conf-tiedostosta käyttäjien estot pois ja käynnistetään apache uudestaan muutoksien voimaan tulemiseksi.

$ sudo apt-get install libapache2-mod-php
$ sudoedit /etc/apache/mods-enabled/php7.0.conf # <ifmodule> osuus pois
$ sudo systemctl restart apache2.service

Tehdään ohjeen ehdottama IP-tulostin

$ cd public_html
$ nano ip.php

En vieläkään ole suuri koodaamisen ystävä, mutta väsäsin parin minuutin googletuksen avulla nämä kolme riviä koodia:

<?php
     echo 'I know your IP is '.$_SERVER['REMOTE_ADDR'] .';
?>

Testasin surffata sivulle roopeme.me/ip.php, mutta se antoi errorkoodia 500. Katsotaan lokia.

$ multitail /var/log/apache2/error.log

Loki kertoo, että rivillä kaksi on virhe. Korjaillaan koodia. Laitoin pari rivinvaihtoa nähdäkseni missä kohtaa virhe on. Rivillä 5 eli

'$_SERVER['REMOTE_ADDR'] .";

on jotain mätää. Kysytään apua toverilta joka tätä hommaa paremmin osaa, muokataan koodia, multa puuttuu yksi piste ja sulku. Korjattu koodi näyttää tältä:

<?php
     echo 'I know your IP is '.$_SERVER['REMOTE_ADDR'].'.'; 
?>

Pitää taas tässä kohtaa taas todeta, etten ole luotu koodaamaan. Sivua voi kokeilla täällä.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Raportin pakollisten tehtävien lopetus 19:31. Ajattelin tehdä muutaman valinnaisen tehtävän, mutta oletan ettei niiden aikataulu ole yhtä tiukka niin lisäilen niitä kun kerkeän.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 r) ja x) VPS ja domain-nimi

14.2.2018 klo 00:07

Ehdin tehdä nämä jo tunneilla, mutta fiksuna otin muistiinpanot ja voin raportoida tapahtumat.

Aktivoimalla Github Educationin saimme Digital Oceanille ilmaiseksi $50 ja NameCheapistä domainin vuodeksi.

Virtuaalipalvelin

Digital Oceanissa valitsin käyttäjän teon ja alennuskoodin lunastamisen jälkeen avautuvalla “Make a Droplet”-sivulla paketiksi $5/kk ja palvelintaloista valitsin Amsterdamin koska se on lähimpänä maantieteellisesti.

Koneelle on varattu:

  • 1 GB RAM
  • 25 GB SSD-levytilaa
  • 1 virtuaaliprosessori
  • 1 TB transfer-raja
  • Ubuntu 16.04.03 x64 käyttöjärjestelmä

En ostanut mitään spesiaalipalveluita. Koko palvelinkoneen luomiseen meni yhteensä ehkä kymmenisen minuuttia.

Heti koneen asennuttua sain sähköpostiini root-tunnuksen salasanan, jolla pääsin tekemään alkutoimet eli tulimuurin asetukset ja oman käyttäjän.

vp
Koneesen olisi voinut myös valita muita Linux-jakeluja sekä Unix-pohjaisen FreeBSD:n käyttöjärjestelmäksi

Domain

Domainia NameCheapista ostaessa olisi voinut valita maksullisen .com-päätteen, mutta tyydyin .me päätteeseen ainakin vielä, ehkä joskus tulevaisuudessa ostan omasukunimi.com.

Ostaessa valittiin domainin nimi (roopeme.me), tehtiin käyttäjä ja lopuksi kirjauduttiin sisään muuttamaan domainin asetuksia.

Asetuksista muokkasin:

  • A Record, hostiksi @, IP:ksi palvelimen ip ja TTL:ksi 5 minuuttia
  • CNAME Record, hostiksi www, targetiksi roopeme.me ja TTL 5 minuuttia

Homma lähti rullaamaan vasta ~30 tunnin kuluttua asetusten vaihdon jälkeen, koska NameCheap oli automaattisesti laittanut sivulle mainoksiaan, eli “Parking Page”-tilan päälle.

Lopetus 00:16

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 v) Laita monta DNS-nimeä samaan IP-osoitteeseen

14.2.2018 klo 01:24

Kokeillaan. Löysin hyvän ohjeenkin. Hahmotan ohjeen luettuani tehtävän jotenkuten.

Tein hakemistot käyttäen esimerkiksi näitä komentoja pariin otteeseen

$ sudo mkdir esimerkkihakemisto
$ sudo cp -r esimerkkihakemisto uusiesimerkkihakemisto
$ sudo nano index.html

Kopioin yhden sivun (koko hakemiston eli cp -r), jota käytän kuvien siirtämiseen koneelta koneelle, lataussivu.jee:n public_html-kansioon ja toinensivu.jee sai public_html-kansioonsa ihan perus index.html-sivun ilmaan mitään spesiaalia sisältöä.

Tämän jälkeen kopioin Apachen 000-default.conf tiedoston lataussivu.jee:tä varten

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/lataussivu.jee.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/toinensivu.jee.conf

Muokkasin lataussivu.jee.conf tiedostoa seuraavanlaiseksi:

<VirtualHost *:80>
    ServerAdmin roope@enhaluueemailia.com
    ServerName lataussivu.jee
    ServerAlias www.lataussivu.jee
    DocumentRoot /var/www/lataussivu.jee/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Kopioin sen toinensivu.jee:tä varten komennolla

$ sudo cp /etc/apache2/sites-available/lataussivu.jee.conf /etc/apache2/sites-available/toinensivu.jee.conf

Ja muokkasin sen

<VirtualHost *:80>
    ServerAdmin roope@enhaluueemailia.com
    ServerName toinensivu.jee
    ServerAlias www.toinensivu.jee
    DocumentRoot /var/www/toinensivu.jee/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Pistetään konfiguraatiot käyttöön ja vanha pois käytöstä komennoilla

$ sudo a2ensite lataussivu.jee.conf
$ sudo a2ensite toinensivu.jee.conf
$ sudo a2endissite 000-default.conf

Ja käynnistetään vielä Apache uudelleen niiden voimaan tulemiseksi

$ sudo systemctl restart apache2.service

 

Muokataan /etc/ hakemistossa olevaa hosts-tiedostoa ja lisätään sinne palvelimen IP-osoite ja mihin se osoittaa jos haluan niihin surffailla omalla koneellani

Huomautuksena, että tämä tosin toimii vain jos olen kotiverkossani ja jos Xubuntukoneen IP ei mysteerisesti vaihdu vaikka se on asetettu staattiseksi.

192.168.1.7 lataussivu.jee
192.168.1.7 toinensivu.jee

Toistetaan sama Windowsilla, että voin siellä puolella sivuihin yhdistää. Iso kiitos tämän ohjeen tekijälle, Windowsissa vaihteeksi tuhottomasti vaikeampaa muokata yhtä tiedostoa.

Kokeillaan.

hommaskulaa.PNG

Molemmat sivut toimii niinkuin pitää, eli tyytyväisenä voin lopettaa tältä päivältä tehtävät tähän.

Kello näyttää 02:16

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

Advertisements

7 thoughts on “Linux Palvelimet: Harjoitus 4 raportti”

Leave a Reply

Please log in using one of these methods to post your comment:

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 )

w

Connecting to %s