Linux palvelimet kurssi – kotitehtävä 4

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.

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. (http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op).

Tehtävän toteutus:

Lähtökohta: Tein tehtävät omalla koneellani (HP ENVY 15 NOTEBOOK), jossa käytin linux käyttöjärjestelmää livetikun avulla.

r) Kokeile julkista virtuaalipalvelinta (VPS).

Vuokrasin virtuaalipalvelimeni DigitalOceanista, sillä GitHub Education -packin avulla sain 50$ ilmaiseksi. Menin ihan ensimmäiseksi DigitalOceanin kotisivuille. Rekisteröidyin kotisivuilla. Tämän jälkeen valitsin create Droplets, jonka jälkeen avautui seuraavanlainen näkymä:Screenshot_2017-09-24_08-26-50.png

Valitsin linuxia varten Ubuntu 16.04.3 ja 64 bittisen version ja otin toiseksi halvimman kokoluokan. (Kannattaa ottaa mielummin liian pieni kokoluokka, kuin liian suuri, sillä liian pientä saa helposti suurennettua, mutta toisin päin on haastavempaa).Screenshot_2017-09-24_08-42-13.png

Tämän jälkeen valitse maa, josta halusin datasenterin sekä palvelimelle nimeksi (hostname) oscar. Nimellä ei ole suurta merkitystä, sillä nimi näkyy ainostaan minulle, jotta erittaisin eri palvelimet, jos minulla olisi niitä monta. Tämän jälkeen painoin Create-nappia ja noin minuutin kuluttua palvelin oli luotu:Screenshot_2017-09-24_09-07-15.png

Tämän jälkeen avasin komentokehotteen ja ajoin seuraavan komennon: ssh root@46.101.219.201 (Ensimmäisen kirjautuminen tapahtuu rootin kautta, mutta tulevat kirjautumiset tapahtuu käyttäjän kautta). Seuraavaksi laitoin salasanan, jonka sain sähköpostitse sekä vaihdoin salasanan. Nyt olin tehnyt ja kirjautunut ensimmäistä kertaa virtuaalipalvelimeen.

Seuraavaksi laitoin palomuurin kuntoon seuraavilla komennoilla: sudo ufw allow 22/tcp & sudo ufw enable. (http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean)

Tämän jälkeen tein käyttäjän palvelimeen: sudo adduser oscar. Tämä ei vielä riitä, sillä kyseisen käyttäjän tulee olla sudo sekä admin eli ajoin komennot: sudo adduser oscar sudo & sudo adduser oscar ad & sudo adduser oscar admin. (http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean)

Seuraavaksi kokeilin (toisella komentokehotteella) toimiiko kyseinen käyttäjä (oscar) ja loin salasanan käyttäjälle. Totesin, että toimii, jonka jälkeen suljin rootin: sudo usermod –lock root sekä kielsin kirjautumisen roottina: sudoedit /etc/ssh/sshd_config , jonka jälkeen aukesi tekstitiedosto, josta muutin seuraavaa riviä seuraavanlaiseksi: PermitRootLogin no. (http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean)

Tämän jälkeen komento: sudo service ssh restart. Nyt palvelin on valmiina käyttöön ja siihen voi asentaa esimerkiksi apachen komennolla: sudo apt-get install apache2.

x) Laita julkinen domain-nimi osoittamaan koneeseesi

Hankin itselleni domainin namecheap.comista, sillä GitHub Education packillä saa vuodeksi ilmaisen .me domainin namecheapistä.

Tein käyttäjätunnukset namecheapin. Etsin vapaana olevan domainin ja otin/ostin sen käyttööni (rahtu.com). Jotta sain domainin liitettyä palvelimeeni, katsoin ohjeet namecheapistä. Namecheapissä valitsin Domain List ja painoin haluamani domainin kohalla MANAGE- nappia, jonka jälkeen Advanced DNS. Tein toimenpiteet namecheapin ohjeitten mukaan ja tämän jälkeen domaini ohjautui palvelimen nettisivuille.https://oscarrahtu.files.wordpress.com/2017/09/screenshot_2017-09-24_10-04-22.png?w=1332&h=732SieppaaScreenshot_2017-09-24_10-04-22.png

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

Kirjautuneen palvelimeen (ja apache jo valmiiksi ladattuna palvelimeen) loin käyttäjäni kansioon uuden kansion public_html komennolla: mkdir public_html. Loin tähän kansioon uuden tekstitiedoston nanolla, jonka nimeksi annoin index.html (komenolla: nano index.html). Tämän jälkeen loin uuden tekstitiedoston: sudoedit /etc/apache2/sites-available/oscar.conf, johon kirjoitin seuraavan kooin/tekstin ohjatakseen nettisivujen oletussivu käyttäjän public_html:llään:

<VirtualHost *:80>
DocumentRoot /home/oscar/public_html/

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

Seuraavaksi otin käyttöön juuri luomani tiedoston oletukseksi ja poistin pois käytöstä nykyisen oletus tiedoston komennoilla:

sudo a2ensite oscar.conf
sudo a2dissite 000-default.conf

Tämän jälkeen käynnistin uudelleen apachen komennolla: sudo service apache2 restart. (http://terokarvinen.com/2016/new-default-website-with-apache2-show-your-homepage-at-top-of-example-com-no-tilde).

y) Etsi julkisen palvelimesi lokeista esimerkkejä murtautumisyrityksistä.

Menin palvelimessa seuraavaan tiedostoon: /var/log, jonne ajoin komennon: sudo tail -f auth.log. Huomasin lokeista, että murtautumisia tapahtui lähes joka sekuntti ja valitsin yhden IP-osoitteen ja ajoin komennon: whois (IP-osoite). Oheisesta kuvakaappauksesta voidaan huomata, että hyökkäys tuli kiinasta.Screenshot_2017-09-24_10-25-34.png

Screenshot_2017-09-24_10-25-51.png

Advertisements

Linux palvelimet kurssi – kotitehtävä 3

Tehtävänanto:

h3:

a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.

b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.

h) Tee Apachelle uusi sivu, joka näkyy suoraan palvelimen pääsivulla, mutta jonka sivuja voi muokata normaalin käyttäjän oikeuksilla (name based virtual host, DocumentRoot käyttäjän kotihakemistoon).

(http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op)

Tehtävän toteutus:

a)

  1. Avasin ensimmäiseksi komentokehotteen ( CTRL + ALT + T)
  2. Suoritin ekana päivityksen (sudo apt-get update)
  3. Asensin apache 2 (sudo apt-get -y install apache2)
  4. Ajoin komennon: hostname -I. Saadakseen tietää IP osoitteeni.
  5. Kopioin IP osoitteeni nettiselaimeen ja huomasin, että apache toimii.Screenshot_2017-09-11_16-25-28.png
  6. Loin komennolla: mkdir public_html, uuden kansion käyttäjäni (xubuntu livetikulla) tiedostoihin -> /home/xubuntu. Kyseiseen kansioon loin tekstinkäsittely ohjelmalla (nano) tiedoston nimeltä index.html, johon kirjoitin: moikka.
    Tämän jälkeen ajoin komennon: sudo a2enmod userdir ja, jonka jälkeen ajoin komennon: sudo service apache2 restart.
    Kijoitin selaimeen IP osoitteeni perään: /~xubuntu/. Sivu avautui ja siellä näkyi sama teksti, jonka kirjoitin nano tekstinkäsittelyohjelmalla.Screenshot_2017-09-11_16-44-36

b) Epäonnistunut loki:

Etsin apache2 lokit ja löysin ne: /var/log/apache2 ja siellä oli kolme eri kansiota. Epäonnistuneet lokit löytyivat error.log nimisestä lokikansiosta. Ajoin komennon: sudo service apache2 stop eli pysäytin apachen ja ajoin myös komennon: tail error.log kansioon /var/log/apache2, jotta löysin lokin, joka kuvaa apachen error lokeja.
Screenshot_2017-09-11_17-12-45

Oheisesta kuvakaappauksesta voidaan huomata, että viimeinen loki kuvaa apachen sulkemista. Ensimäisenä rivillä on päivämäärä ja aika, joka on GMT aika eli Lontoon aikavyöhyke. Seuraavista kirjain ja numero yhdistelmistä en ole varma mitä ne tarkoittavat, mutta itseäni kiinnosti lähinä rivin viimeiset kaksi sanaa eli shutting down, joka viittaa siihen, että apache2 sulkeutui.

Onnistunut loki:

Menin luomille nettisivuille ja päivitin sivun. Avasin komennolla: tail access.log nettisivuihin kohdistuneet käyttölokit:screenshot_2017-09-11_17-25-03.png

Viimeinen lokirivi on minun aiheuttama sivunpäivitys nettisivulle. Huomasin myös, että joku toinen IP-osoite on testailuni aikana käynnyt nettisivuilla, joka on mielestäni hieman outoa, sillä käyttäjällä pitäisi järkeni mukaan olla IP-osoitteeni tiedossa, jotta hän pääsisi nettisivuille.

Ensimmäisenä lokissa on IP-osoite, jonka jälkeen on päivämäärä ja aika (GMT aika). Tämän jälkeen löytyy osoite sivulle, jonka latasin (/~xubuntu) ja koodi, joka kuvaa toimenpidettä. Seuraavaksi tulee tietoja käyttäjän selaimesta, käyttöjärjestelmästä ja selaimen versiosta.

h) Ensimmäiseksi yritin etsiä kansiota, jossa on kaikki nano ohjelmalla kirjoitetut tekstit, joita apache käyttää oletuksena kotisivujen näyttämiseen. Löysin kyseisen kansion pienen etsimisen jälkeen paikasta: /etc/apache2/sites-available/. Loin kyseiseen kansioon komennolla: sudoedit oscar.conf, uuden tiedoston, johon kirjoitin oheisen tekstin:Screenshot_2017-09-11_17-50-47

Apache käyttää oletuksena: 000-default.conf. Laitoin sen pois päältä komennolla: sudo a2dissite 000-default.conf. Ja laitoin juuri luomani tiedoston oletuskäyttöön komennolla: sudo a2ensite oscar.conf. Tämän jälkeen apachen uudelleenkäynnistys komennolla: sudo service apache2 restartscreenshot_2017-09-11_17-52-02.png

 

Linux palvelimet kurssi – Kotitehtävä 2

a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.

b) Tee unelmien apt-get -komento: yksi komentorivi, joka asentaa suosikkiohjelmasi.

c) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa. (http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op)

Tehtävän toteutus:

a) Kävimme edellisellä tunnilla läpi mitä komentokehotteen lokeissa tapahtuu, kun otetaan internet-yhteys pois päältä, joten ajattelin toteuttaa saman tehtävää varten.

Aloitin tehtävän avaamalla komentokehotteen. Muistin virkistykseksi kävin myös katsomassa mitä komentoja minun tulee tehtävää varten käyttää kurssin sivuilta (http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op). Muistin tunnilta, että minun pitää päästä kansioon nimeltä var/log/ ja sieltä saan syslogista kaikki loki tiedot. Etsin tiedoston käyttämällä komentoa ls (näytä kansiossa olevat tiedostot/kansiot) ja cd komennolla (mene kansioon).Screenshot_2017-09-03_17-42-50

Onnistunut lokitapahtuma:

Seuraavaksi laitoin netin pois päältä, jonka jälkeen laitoin komentokehotteeseen komennon: sudo tail syslog. Tällä komennolla saan syslogista 10 viimeisintä lokia näkyviin.Screenshot_2017-09-03_18-14-46

Jokainen rivi kuvaa yhtä lokitapahtumaa. Jokaisessa lokitapahtumassa on seuraavanlainen “ilmaisujärjestys”: 1. päivämäärä ja aika, 2. käyttäjä, 3. demoni, 4. koodi, 5. lokin tapahtuman kuvailu.

b) Tunnilla käytimme monen tiedoston luomiseen seuraavanlaista menetelmää: ensimmäisenä komento esim. tiedoston luomiseen (mkdir), jonka jälkeen kaikki tiedoston nimet, jotka halutaan tehdä (erotettuna välilyönillä). Ajattelin samalla periaatteella toteuttaa unelmien apt-get komennon. Päätin asentaa kaikki kolme ohjelmaa, jota käytin edellisessä kotitehtävässä. Laitoin siis komennon: sudo apt-get install vlc chromium-bsu xpaint.

Screenshot_2017-09-03_18-52-07.png

c) En tiennyt entuudestaan ohjelmia, jotka toimivat linuxin komentokehotteessa, joten jouduin googlettamaan, jotta löysin kolme sopivaa ohjelmaa. (https://linuxaria.com/article/10-programs-terminal)

Ensimmäiseksi otin ohjelman Terminator, jonka avulla pystyy avaamaan monia komentohehotteita samanaikaisesti ja muokkaamaan ne sen näköiseksi, kuin itse haluaa. Latasin ohjelman sekä kokeilin ohjelmaa avaamalla kaksi lisä komentokehotetta ja testasin toista komentokehotetta erilaisilla komennoilla:

Screenshot_2017-09-03_18-58-53.png

Toiseksi ohjelmaksi valitsin Mutt, joka on ohjelma, jonka avulla voi lähettää sähköposteja. Kokeilin lähettää omaan sähköpostiin viestin, mutta en onnistunut siinä.

Screenshot_2017-09-03_19-55-05.png

Kolmanneksi valitsin Vim. Vim on tekstinkäsittely ohjema, joka muistuttaa vähän nanoa, mutta en ihan päässyt ajan puutteen vuoksi perille miten ohjelma oikeasti toimii, mutta ensi kosketus ohjelmaan oli negatiivinen ja suosittelisin enemmän nanoa, kuin Vimmiä.

Screenshot_2017-09-03_20-00-13.png

Linux palvelimet kurssi – kotitehtävä 1

Tehtävänanto:

a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa.

b) Listaa testaamasi koneen rauta (‘sudo lshw -short -sanitize’).

c) Asenna kolme itsellesi uutta ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.

d) Mitä lisenssiä kukin näistä ohjelmista käyttää? Selitä lyhyesti, mitä oikeuksia ja velvolisuuksia tuosta lisenssistä seuraa.

d) Listaa käyttämäsi ohjelmat (esim. MS Word), kunkin ohjelman käyttötarkoitus (esim. Tekstinkäsittely) ja vastaava vapaa Linux-ohjelma (esim. LibreOffice Writer). Jos johonkin tarkoitukseen ei löydy vapaata Linux-ohjelmaa, listaa sekin.

Tehtävien toteutus:

a) Alkuvalmistelut

Kävin ihan aluksi ostamassa USB-tikun: San Disk USB 3.0 Flash Drive 32GB, sillä minulla ei USB-tikkua entuudestaan löytynyt. Mietin ostaessani tikkua, että pienempikin muisti olisi varmasti riittänyt tehtävää varten, mutta ostin varmuuden vuoksi vähän jykevämmän muistin, jos siitä joskus tulevaisuudessa olisi hyötyä.

Aloitin ottamalla selvää vähän miten Linuxin asennus tapahtuu USB-tikulle opettajan omilta kurssisivuilta (http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op). Katsoin myös muistin virkistämiseksi valmiiksi tehdyn selostuksen tehtävän toteutuksesta oppilaan blogista, josta opettaja oli linkannut linkin kaikille kurssin oppilaille.

Välineet, joita käytin tehtävän toteutukseen:

  • Kannettava tietokone (HP Envy), Käyttöjärjestelmä Windows 10
  • USB-tikku: San Disk USB 3.0 Flash Drive 32GB
  • Internet yhteys tietokoneeseen ethernet kaapelin välityksellä (10Mbit/s)

A-kohdan toteutus:

Aluksi avasin koneeni (HP, Windows 10) sekä laitoin USB-tikun kiinni koneeseen ja latasin opettajan kurssisivuilta Xubuntun xubuntu-16.04.3-desktop-amd64.iso. Tiedosto oli 1,2GB kokoinen ja lataus kesti (hitaalla 10 megan netillä) 17 minuuuttia (olisi todennäköisesti menny huomattavasti nopeemmin kännykän 4G netillä). Saman aikaisesti menin Unetbotin nettisivuille (linkki löytyi opettajan kurssisivuilta), josta latasin windowsille Unetbotin. Tiedosto oli 4,6MB kokoinen ja kesti pari sekunttia. Tämän jälkeen avasin Unetbotin tiedoston. Kone kysyi, että sallitaanko Unetbotin tehä muutoksia koneeseen. Painoin kyllä, jonka jälkeen avautui tälläinen näkymä:

Näyttökuva (30)

Valitsin Levykuva kohdan ja etsin Xubuntun ladatuista tiedostoista. Tarkistin myös, että Levykuva tulee varmasti USB-tikulle eli alhaalla lukee: Tyyppi: USB-asema. Vaihtoehtona on kiintolevy, joten kannattaa tarkistaa, että oikea vaihtoehto on valittuna. Tämän jälkeen painoin OK. Asennus kesti pari minuuttia ja, kun asennus on valmis ohjelma tiedottaa, että: After rebooting, select the USB boot option in the BIOS boot menu.

Tämän jälkeen menin Asetuksiin -> Päivittäminen ja suojaus -> Palauttaminen -> Käynnistyksen lisäasetukset -> Käynnistä uudelleen nyt. Käytin oheista Youtube-videota apunani, jotta pääsin Windows 10:llä BIOS valikkon (https://www.youtube.com/watch?v=UPIUkPGaGys). Tämän jälkeen kone päätyi tämän näköiseen näkymään:WhatsApp Image 2017-08-27 at 20.51.39

Painoin: Käytä laitetta, jonka jälkeen avautui seuraavanlainen näkymä:WhatsApp Image 2017-08-27 at 20.51.39(1)

Painoin USB Drive (UEFI), jonka jälkeen kone uudelleen käynnistyi. Heti ensimmäiseksi ilmestyi seuraavanlainen näkymä:

WhatsApp Image 2017-08-27 at 20.51.39(3).jpeg

Valitsin ensimmäisen eli: Try Xubuntu without installing. Seuraavaksi aukesi työpöytä:

WhatsApp Image 2017-08-27 at 20.51.38

Tämän jälkeen pystyi käyttämään konetta normaalisti Linux käyttöjärjestelmällä Live-tikun kautta. Kun sammutin koneen ja avasin sen uudestaan, Windows käynnistyi normaalisti. Selostamani menetelmän avulla, pystyy Windows 10 käyttöjärjestelmän avulla käyttämään Linuxia USB-tikun kautta, mutta menetelmä on ns. kertakäyttöinen eli aina, kun avaat koneen joudut joka kerta menemään asetuksiin ja muutaman klikkauksen kautta saat vaihdettua tikun käyttöjärjestelmään. (ei kovin tehokas keino ajallisesti) Testasin myös toimiiko kaikki oikealla tavalla: menin firefoxilla opettajan kotisivuille. Huomasin, että käytössä oli väärä näppäimistö, mutta en pitkän etsimisen jälkeen löytänyt miten se vaihdetaan, joten päätin käyttää englanninkielistä näppäimistöä (josta ei minun mielestä ollut kovinkaan paljoa haittaa). Tein myös lopuksi terminaaliin järjestelmän päivityksen eli komento: ‘sudo apt update’.

B) Koneen raudan sain terminalista. Laitoin terminaaliin komennon: ‘sudo lshw -short -sanitize’

whatsapp-image-2017-08-27-at-20-51-381.jpeg

C)Asensin seuraavat kolme ohjelmaa: VLC media player, Xpaint ja Chromium-bsu (peli). Asensin kaikki kolme ohjelmaa terminaalin kautta. Laitoin aina kommenon: ‘sudo apt install vlc’ eli ‘sudo apt install’ ja ohjelman nimi. Testasin kaikkia ja kaikki ohjelmat toimivat.WhatsApp Image 2017-08-27 at 20.51.38(2).jpegWhatsApp Image 2017-08-27 at 20.51.37(1).jpegWhatsApp Image 2017-08-27 at 20.51.37(2).jpeg

d) Kakki kolme ohjelmaa ovat vapaita ohjelmia. VLC oli GNU alainen eli vapaa-ohjelma ja Xpaint sekä Chromium olivat myös vapaita ohjelmia, mutta eri lisensseillä.

e) Tekstinkäsittely: MS Word (Windows), Libre Office Writer (Linux)

Taulukko-ohjelma: MS Excel (windows), Libre Office Calc (Linux)

Mediasoitin: Windows media player, VLC media player (Linux)

Piirtely ohjelma: Paint (windows), Xpaint (Linux)

Muita lähteitä:

(http://www.hackingsimplicity.com/best-apps-to-install-on-xubuntu-ubuntu-linux/)

(http://wiki.linuxquestions.org/wiki/Linux_software_equivalent_to_Windows_software#Multimedia)

(https://www.youtube.com/watch?v=IVquJh3DXUA)