Design a site like this with WordPress.com
Get started

Tehtävä h4

Tehtävänanto

Vinkki: muista merkitä, mikä kohta raportissasi vastaa mihinkin alakohtaan a, b, c…

a) Vuokraa oma julkinen palvelin Internetiin. Vinkkejä: Perustele tehdyt valinnat. Voit saada myös ilmaiseksi Github Education -paketilla. Jos sinulla on aiempi palvelin, tee uusi alusta lähtien ja raportoi samalla. Käytä aina hyviä salasanoja.

ax) Vaihtoehtotehtävä, korvaa kohdan a. Suosittelen mieluummin tekemään a-kohdan, se on paljon hyödyllisempi. Kokeile virtuaalikoneiden tekoa vagrant:lla omalla paikallisella koneellasi. Sovella muut kohdat (b, c…) siten, että ne toimivat paikallisen koneen kanssa: esim testaa weppsivut paikallisesti curlilla, simuloi hyökkäys syöttämällä väärä salasana omaan ssh-palvelimeesi jne.

b) Suojaa palvelin tulimuurilla. Muista ensin reikä ssh-palvelimelle.

c) Laita koneellesi Apache-weppipalvelin. Korvaa testisivu. Laita käyttäjän kotisivut toimimaan. Kokeile eri koneelta, esim. kännykällä, että sivut toimivat. Vinkki: tee kotisivut normaalina käyttäjänä public_html/ alle, opettelemme “name based virtual hosting” myöhemmin.

d) Etsi lokeistasi merkkejä murtautumisyrityksistä ja analysoi ne. Vinkki: auth.log.

c) Vapaaehtoinen: Laita TLS-salakirjoitus (https) toimimaan Let’s Encrypt avulla. Vinkki: certbot tai lego.

e) Vapaaehtoinen: Tee weppisivuja omalla, paikallisella koneellasi ja kopioi ne palvelimmelle scp-komennolla.

x) Vaikea, vapaaehtoinen vaihtoehtotehtävä Tämä on vain niille parille propellihatulle, jotka halusivat vaikeamman tehtävän. Korvaa muut h4 koti- ja tuntitehtävät. Koodaa ja julkaise uusi tietokantaa hyödyntävä weppipalvelu. Palvelun pitää ratkaista jokin käytännön ongelma, esimerkiksi ilmoittautuminen tapahtumaan, pisteytä tunti, äänestä suosikkia tms. Voit hyödyntää vanhoja koodejasi, kunhan lopputulos on uusi. Voit käyttää mitä vain kehitysalustaa (framework), esimerkiksi LAMP, Flask, Django, Postgre, Mariadb… Muista lisätä raporttiin ruutukaappaukset keskeisestä toiminnallisuudesta.

(https://terokarvinen.com/2021/linux-server-course-linux-palvelimet-ict4tn021-3016/)

Tehtävät

a) Julkisen palvelimen vuokraus

Teen tämän osuuden uudelleen raporttia varten. Tunnilla tiistaina 14.9.2021 tämä osuus käytiin läpi niin, että minä jaoin näyttöäni ja muut seurasivat, kuinka palvelimen vuokraus tapahtuu.

Ensimmäisenä tehtävänä oli valita mistä haluan palvelimen vuokrata. Koska olen opiskelija ja rekisteröitynyt Github palveluun (https://github.com/) koulun tarjoamalla sähköpostilla olin oikeutettu Github education (https://education.github.com) etuihin. Sivuston tarjoamia etuja selaamalla löytyi DigitalOcean sivusto (), josta päätin vuokrata palvelimen.

Painamalla sinistä tekstin pätkää "Request your offer code to get access" sain tekstin, jossa luki “Your code:xxxxxxx-xxxxxx” ja “Use your offer code on the DigitalOcean website” .

Kopioimalla koodin ja klikkaamalla linkkiä pääsin DigitalOceanin sivuille (DigitalOcean referral link), jonka yläosassa olevaan “Link text” tilaan täytyi tuo koodi kopioida.

Tämän jälkeen pääsin valitsemaan kirjautumistavan ja valitsin käytettäväksi GitHubia.

Helpohkon varmistus tehtävän jälkeen pääsin valitsemaan maksutavan.

Tästä maksutapahtumasta minulla ei valitettavasti ole kuvia, koska tämä tehtiin luennolla esimerkkinä.

Valitsin maksutavaksi PayPalin (https://www.paypal.com/), kirjauduin sisään vahvalla salasanalla ja syötin puhelimestani kaksivaiheisen tunnistautumisen koodin. Vuokraus maksoi 5 dollaria.

Jotta pääsin uuden dropletin luontiin, painoin sivuston vasemmalla puolella olevasta valikosta Droplets painiketta. Valitsin sivustolta kursilla tutuksi tulleen Debianin ja alasveto valikosta uusimman version (10 x64) siitä. Seuraavaksi valitsin perus (Basic) vaihtoehdon, koska muille vaihtoehdoille ei ollut tarvetta.

Valitsin halvimman vaihtoehdon virtuaalikoneen raudalle (1GB RAM muistia, 1 suoritin, 24 GB kovalevytilaa ja 1000 GB siirtonopeus). Nämä riittävät hyvin testikoneelle, jolla ei ole tarkoitus pyörittää mitään järin vaativaa. Myöskään lisää kovalevytilaa ei ollut tarvetta ostaa.

Tero Karvinen ohjeisti tunnilla, että datakeskusista kannattaa valita asiakasta lähin. Tässä tapauksessa siis Frankfurt. VPC network asetukseen tai lisävaihtoehtoihin (Select additional options) en koskenut.

Autentikaatio tavaksi valitsin salasanan, koska SSH avaimien käyttöä ei ole vielä opetettu. Tässä kohdassa on tärkeää valita vahva salasana ja pitää se tallessa esimerkiksi erillisessä salasanojen hallinta sovelluksessa (https://lastpass.com/).

Viimeisenä vaiheena oli valita jokin hostname, johon ei kannata laittaa mitään tunnistettavaa kuten “testikone” tai “debian“. Tämän jälkeen olin valmis painamaan “Create Droplet” painiketta, jolloin minut uudelleenohjattiin sivustolle, jossa näkyi palkki virtuaalikoneen käynnistyessä.

Virtuaalikone oli käynnissä ja sen ip osoite valmiina käytettäväksi.

b) Palvelimen suojaus tulimuurilla

Enimmäisenä täytyi ottaa etäyhteys palvelimeen komennolla “ssh root@xxx.xxx.xxx.xxx” ja antaa asetusvaiheessa annettu vahva salasana, jonka jälkeen meillä oli yhteys palvelimeen root käyttäjänä. Tämän jälkeen ajettiin kerran päivässä ajettava komento “sudo apt-get update“. Jotta tulimuuria voitaisiin käyttää täytyi se ensin asentaa (sudo apt-get install -y ufw). Ennenkuin tulimuuri otettaisiin käyttöön täytyi siihen avata portti jota SSH yhteydet käyttävät “sudo ufw allow 22/tcp“.

Nyt tulimuurin pystyi ottamaan käyttöön komennolla “sudo ufw enable” . Terminaaliin tuli ilmoitus, että “nykyiset SSH yhteydet voivat katketa. Jatketaanko?“. Jatkoin käynnistystä kirjoittamalla “y” ja sain uuden ilmoituksen, jossa kerrottiin tulimuurin olevan aktiivinen ja sen käynnistyvän aina kun virtuaalikone käynnistyy uudelleen.

Tein palvelimelle uuden käyttän komennolla “sudo adduser tuomas” ja täytin vaaditut kentät (kuvassa testi=tuomas).

Ajoin tämän jälkeen vielä Terolta opitun komennon “sudo usermod --lock root“, jolla sain kirjautumisen root käyttäjänä estettyä. Suljin yhteyden komennolla “exit“.

Kokeilin vielä kirjautua käyttämällä tekemäni uuden käyttäjän tietoja (ssh tuomas@165.22.21.118). Pääsin kirjautumaan sisään.

c) Apache

Apachen asennus onnistui edellisen viikon tehtävien kohdan a) ohjeiden mukaan (https://tuomaslintula.wordpress.com/2021/09/07/tehtava-h3/). Jotta tulimuuri osaisi päästää http liikenteen läpi oli tulimuurista avattava portti 80. Tämä onnistui komennolla “sudo ufw allow 80/tcp“.

Tarkistin vielä, että asetukset olivat tallentuneet komennolla “sudo ufw status“.

Opettaja Tero Karvisen vinkillä vakio aloitussivun sai vaihdettua yhdellä komennolla “echo Tervetuloa sivulleni | sudo tee /var/www/html/index.html“, jossa komennolla “tee” saadaan piipun ( | ) vasemmalla puolella oleva komento tehtyä oikella puolella olevaan tiedostoon.

Nyt sivusto näytti nyt siis tältä.

Jotta sain käyttäjälle oman sivustohakemiston ajoin komennon “sudo a2enmod userdir” ja käynnistin apachen uudelleen.

Nyt kirjoittamalla osoitekenttään “165.22.21.118/~tuomas/” saadaan käyttäjän hakemisto näkyviin.

Tein käyttäjälle public_html kansion /home hakemistoon ja lisäsin sinne index.html tiedoston, johon kopioin aiemmin kirjoittamani Javascript koodin, joka tulostaa sivulle nykyisen päivämäärän. Nyt sivusto siis näytti tältä.

d) auth.log

Tehtävänä oli etsiä merkkejä murtautumisyrityksistä auth.log tiedostosta. Etsin hetken tätä tiedostoa apachen logeista, mutta löysinkin sen /var/log/ kansiosta.

Auth.log tiedostosta tosiaan löytyi lukuisia yrityksiä päästä sisään palvelimelle. Tämä kyseinen ip osoite löytyy Liettuasta (https://whatismyipaddress.com/ip/141.98.10.121). Uskoisin näiden olevan bruteforce yrityksiä palvelimille ympäri maalilmaa ja juuri tämän takia vahvat salasanat ovat ehdottomia.

  • Kellona-aikaa tarkastellessa huomasin, että se ei ole oikeassa. Palvelimen aikavyöhyke on siis eri kuin suomessa.
  • Ensimmäisellä rivillä: IP osoitteesta 141.98.10.121 käyttäen porttia 41530 on yritetty kirjautua palvelimelle hevonen käyttäen käyttäjänimeä “user“.
  • Toisella rivillä: Ilmoitus siitä, että käyttäjälle “user” yritetty salasana on väärin.
  • Kolmannella rivillä: Yhteyden katkaisu ilmoitus ilmoitus ja normaali viesti kirjautumista yrittäneen päähän “Normal Shutdown, Thank you for playing
  • Neljännellä rivillä: yhteys on nyt katkaistu.

e) SCP komento

Kopioin aikaisemmalla viikolla tekemäni sivuston palvelimelleni käyttämällä komentoa “scp public_html/weight/index.html tuomas@165.22.21.118:/home/tuomas/“. (man scp) Jossa:

  • Ensin kopioitavan tiedoston polku.
  • Palvelimella oleva käyttäjä@palvelimen IP-osoite, jonka perään käyttäen : (kaksoispiste) kohdepolku, johon kopioitava tiedosto halutaan.

Kirjauduin palvelimelleni ja tarkastin, että tiedosto oli siirtynyt.

Lähteet/linkit

Infoa

Tekijä

Tuomas Lintula, 2021.

Advertisement

One thought on “Tehtävä h4

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 )

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

%d bloggers like this: