Linux Palvelimet Tehtävä 4

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

TEHTÄVÄNANTO:

H4 r) 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ää.

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

s) Laita julkiselle palvelimellesi käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna.

y) Etsi julkisen palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla geoiplookup tai whois.

R) Julkinen virtuaalipalvelin (VPS)

Aloitin tehtävän 22.9.2017 klo 15.35.

Tarkoituksena on ottaa käyttöön oma virtuaalipalvelin Linux-käyttöjärjestelmällä. Palvelimen tietoturva varmistetaan konfiguroimalla ja käynnistämällä palomuuri sekä luodaan uusi käyttäjä.

Valitaan virtuaalipalvelimen tarjoaksi DigitalOcean, koska opiskelijalle se on edullisin. DigitalOcean muutenkin vaikuttaa helppokäyttöiseltä ja luotettavalta palvelulta. Opiskelija saa 50$ aloitusrahaa DigitalOcean -palveluun GitHub Student Developer Pack -avulla.

Virtuaalipalvelimen luonti

Ensimmäiseksi tulee rekisteröityä DigitalOcean -palveluun, jotta voidaan luoda uusi virtualipalvelin. Rekisteröintiin tarvitaan sähköpostiosoitteen, tiedot itsestäsi ja luottokortin tiedot. Rekisteröinnin jälkeen luodaan virtuaalipalvelin (Droplet):

digitalocean

Valitaan käyttöjärjestelmäksi Ubuntun 16.04.3 x64 versio. Palvelimen tehovaatimuksiksi valittiin 10$ kuussa maksava palvelin, koska halvemmalla palvelimella keskusmuistin määrä jää erittäin pieneksi, mikä voi aiheuttaa ongelmia. Kalliimmille palvelimille ei ole tällä hetkellä tarvetta (palvelimen tehoja voi myöhemmin muuttaa paremmiksi, jos halutaan).

digitalocean1.jpg

Palvelimen sijainnissa tulee ottaa huomioon, että missä päin suurin osa palvelimen asiakkaista ottaa yhteyttä palvelimeen. Lisäksi kyseisen maan lait, missä palvelin sijaitsee tulee ottaa huomioon, koska kussakin maassa on omat lainsa ja ne vaikuttavat palvelimeen. Valitaan tässä tapauksessa palvelimen sijainniksi Frankfurt, koska oletaan, että asiakkaat sijaitsevat Euroopassa. Lopussa valitaan palvelimien määrä (1) sekä annetaan palvelimelle kuvaava nimi ja luodaan palvelin (Create). Mitään muita lisäpalveluita ei valittu. Luonnin jälkeen nähdään luotu palvelin DigitalOceanissa ja sen IP-osoite, jota tarvitaan palvelimen yhteydenottoon.

Kun palvelin on luotu, käyttäjä saa sähköpostiin ilmoituksen palvelimen luonnista sekä palvelimen salasanan root-käyttäjälle. Palvelimeen otetaan yhteyttä SSH-yhteydellä. SSH-yhteyttä käytetään Linux-käyttöjärjestelmässä komentokehotteen (terminaali) kautta.

Palvelimen konfigurointi

Avataan Terminaali ja kirjaudutaan palvelimelle:

$ ssh root@”palvelimenIP”

Kirjaumisvaiheessa kysytään root-käyttäjän salasanaa, joka on lähetetty sähköpostiin palvelimen luonnin yhteydessä. Annetaan sen jälkeen uusi vahva salasana, joka todella vaikea murtaa.

Sallitaan seuraavaksi SSH – ja HTTP -yhteydet palomuurin läpi sekä käynnistetään palomuuri:

$ sudo ufw allow 22/tcp

$ sudo ufw allow 80/tcp

$ sudo ufw enable

Seuraavaksi luodaan uusi käyttäjä, jolle annetaan kaikki oikeudet:

$ sudo adduser markus   || Luotiin käyttäjä markus ja annetaan VAHVA SALASANA!

$ sudo adduser markus sudo   || Lisättiin käyttäjä ryhmään sudo

$ sudo adduser markus adm    || Lisättiin käyttäjä ryhmään adm

$ sudo adduser markus admin     || Lisättiin käyttäjä ryhmään admin

Testataan seuraavaksi luotua käyttäjää. Avataan toinen terminaali ja jätetään root-tunnuksilla oleva terminaali auki mahdollisten vikojen korjaamiseksi mikäli niitä esiintyy. Kun ollaan varmoja, että luotu käyttäjä toimii oikein, voidaan lukita root-käyttäjä ja käytetään jatkossa vain luotua käyttäjää.

$ ssh markus@”palvelimenIP”     || Kirjaudutaan palvelimelle luodulla käyttäjällä ja annetaan käyttäjän salasana

$ sudo apt-get update       || Testataan käyttäjän sudo-oikeuksia päivitysten hakemisella

sshtest.jpg

Kun on testattu, että sudo-oikeudet toimii voidaan lukita  root-tunnuksen salasana luodulla käyttäjällä:

$ sudo usermod –lock root

Lukitaan vielä root-tunnuksen kirjautuminen SSH-yhteydellä:

$ sudoedit /etc/ssh/sshd_config

     # …
    PermitRootLogin no         || Tähän kohtaan kirjoitetaan “no”
     # …

Tallennetaan tiedosto: CTRL + X, Y, ENTER

$ sudo service ssh restart    || Käynnistetään SSH uudestaan

Root-tunnuksilla ei voida nyt kirjautua palvelimelle sisään. Terminaali, jossa ollaan kirjauduttu root-tunnuksilla voidaan nyt sulkea kirjoittamalla komennon exit ja sulkemalla terminaalin.

Virtuaalipalvelin on nyt otettu onnistuneesti käyttöön sekä konfiguroitu.

Lopetin työvaiheen klo 16.35.

X) Domain-nimi osoittamaan virtuaalipalvelimeen

Aloitin työvaiheen klo 17.10.

Tarkotuksena on ottaa käyttöön domain virtuaalipalvelimelle, jotta osoitteeseen ei tarvitse mennä IP-osoitteella vaan nimellä. Käytetään Namecheap -palvelua, koska se on luotettava ja tarjoaa opiskelijolle alennusta domain-nimistä ja vuodeksi ilmaiseksi .me -osoitteen GitHub -paketin avulla.

Valitaan Namecheap palvelussa haluttu domain-nimi:

namecheap.jpg

Palvelusta on valittu jo nissinen.me domain, jonka takia sivusto näyttää että se on jo otettu. Domain nimen valittua tulee antaa Namecheap -palvelulle rekisteröitymistietoja sekä mahdollisen opiskelijasähköpostin mikäli haluaa alennusta.

Kun domain-nimi on hankittu kirjaudutaan Namecheap -palveluun.

Kirjauduttua palveluun nissinen.me -domainin asetuksia pääsee muokkaamaan siirtymällä Domain List -> Manage -> Advanced DNS. Näkymästä poistetaan kaikki oletus IP-osoitteet ja lisätään kohdasta Add New Record uusi A Record. Hostiksi kirjain @ ja Value -kohtaan palvelimen IP-osoite. Lisäksi pitää lisätä vielä uusi CNAME Record, johon Host on www. Value on nyt domain-nimi. TTL -arvon voi määritellä itse, tässä tapauksessa se on automaattinen.

Alla olevassa kuvassa on tehty kaikki nämä asetukset oikeiksi:

namecheapdomain.jpg

Muutokset tulevat voimaan tallentamisen jälkeen (kestää noin 30min), jolloin virtuaalipalvelimen sivuille päästään nyt nissinen.me nimellä IP-osoitteen sijaan.

Lopetin työvaiheen klo 17.40.

 

S)  Laita julkiselle palvelimellesi käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna

Aloitin työvaiheen klo 17.50

Kun ollaan kirjauduttu virtuaalipalvelimelle SSH-yhteydellä haetaan päivitykset ja asennetaan Apache2:

$ sudo apt-get update

$ sudo apt-get -y install apache2

Asennuksen jälkeen luodaan public_html  -kansio. Oikea polku, johon kansio luodaan on /home/”käyttäjätunnus”

Luodaan kansio:

$ mkdir public_html

Mennään luotuun kansioon: cd public_html ja luodaan uusi index.html -tiedosto:

$ nano index.html

htmlfile

Kirjoitetaan index.html -tiedostoon validia HTML -tekstiä. Tallennetaan tiedosto: CTRL + X, Y, ENTER.

Siirrytään seuraavaksi muokkaamaan Apache2 -demonin asetuksia, jotta saadaan luotu index.html -tiedosto pääsivulle.

$ cd /etc/apache2/sites-available    ||Siirrytään kyseiseen hakemistoon

$ sudoedit 000-default.conf     || Muokataan asetuksia

Muokataan kyseiset asetukset (ks.kuva alla):

DocumentRoot -kohtaan kirjoitetaan mistä kansiosta tiedosto avataan eli /home/markus/public_html. 

ServerName: kirjoitetaan domain-nimi, joka on hankittu www -muodossa.

ServerAlias: domain-nimi

sudoeditapache.jpg

Tallennetaan tiedosto: CTRL + X, Y, ENTER.

Seuraavaksi pitää vielä sallia käyttäjän kotisivut Apachessa sekä Apache tulee vielä käynnistää uudelleen. Komennot ovat:

$ sudo a2enmod userdir

$ sudo service apache2 restart

Luotu index.html -tiedosto näkyy nyt virtuaalipalvelimen pääsivulla.

nissinenme

Päätin työvaiheen klo 18.45.

Y) Etsi julkisen palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla geoiplookup tai whois.

Aloitin työvaiheen klo 19.10.

Siirrytään tarkestelemaan lokeja:

$ cd /var/log

Kyseisessä hakemistossa tarkastelin auth.logia:

$ tail -F auth.log     ||Tarkastellaan lokia reaaliaikaisesti (CTRL + C lopettaa tarkastelun)

Lokia voidaan tutkia, jos sinne ilmestyisi joitakin tietoja, jonka jälkeen voidaan selvittää, että mistä päin on yritetty kirjautua palvelimelle sisään.

Lokissa oli heti sisäänkirjautumisyrityksiä tuntemattomista IP-osoitteista:

attack.jpg

Tutkitaan seuraavaksi, mistä päin kaksi kyseistä IP-osoitetta on. Asennetaan aluksi tarvittava ohjelma IP-osoitteen tarkastelemiseen:

$ sudo apt-get install -y geoip-bin

$ geoiplookup 59.45.175.11

$ geoiplookup 121.18.238.28

ipchina.jpg

Käy ilmi, että molemmat IP-osoitteet viittaavat Kiinaan.

Päätin tehtävän klo 19.55.

LÄHTEET

Virtuaalipalvelin: https://www.digitalocean.com/

Domain-nimi: https://www.namecheap.com/

Opiskelijapaketit: https://education.github.com/pack

Ohjeet Apachen oletussivun muokkaamiseen: http://terokarvinen.com/2016/new-default-website-with-apache2-show-your-homepage-at-top-of-example-com-no-tilde

Muuta

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

2 thoughts on “Linux Palvelimet Tehtävä 4

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