Harjoitus 4

Tehtävässä käytetyt harjoitukset löytyvät seuravaassa osoiteessa Tero Karvinen Learn Free software with meLinux palvelimet ict4tn021 -6 kurssin opettajana toimii Tero Karvinen.

Kotitehtävät ovat seuraavat:

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

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

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

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

c) Laita palvelimellesi jokin yksinkertainen PHP-sivu. Voit esimerkiksi tulostaa käyttäjän IP-osoitteen$_SERVER[‘REMOTE_ADDR’] tms. Ole huolellinen, jos otat vastaan syötteitä lomakkeilla (forms).

Vapaaehtoisia tehtäviä

Vinkkejä: lue linkitetyt artikkelit aikataulusta yltä ennenkuin alat tehdä tehtäviä. Muista viitata kaikkiin lähteisiin. Käytä aina hyviä salasanoja, joka hetki ja joka paikassa.

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.

v) Laita monta DNS-nimeä samaan IP-osoitteeseen. Apache Name Based Virtual Hosting.t) Asenna WordPress. Se on maailman suosituin sisällönhallintajärjestelmä (CMS). Samalla opit asentamaan kolmannen osapuolen valmiita PHP-ohjelmia. WordPress kannattaa asentaa wordpress.org:sta löytyvästä tervapallosta (.tar.gz).

u) Kokeile WordPressia kirjoittamalla esimerkkisisältöä.

WordPress vapaaehtoisia:

c) Ota järkevät URLit (permalinks) käyttöön
d) Vaihda teema
e) Varmuuskopioi sisältö
f) Palauta varmuuskopioitu sisältö puhtaaseen WordPress-asennukseen
g) Tee WordPressiin oma teema
h) Asenna WordPressiin plugin (esim Dofollow)
i) Tee WordPressiin oma plugin
j) Lisää kuvia WordPressiin (ja laita tämä toimimaan)
k) Laita WordPress nimipohjaiseen virtuaalipalvelimeen (http://thello.foo tms)

Muita vapaaehtoisia:

l) Asenna Drupal ja kokeile sitä
m) Asenna Joomla ja kokeile sitä
n) Hanki virallinen, selainten hyväksymä TLS-sertifikaatti Let’s Encryptistä
o) Vaikea: Tee esimerkkisivu Python Flaskilla
p) Vaikea: Tee esimerkkisivu Ruby on Rails (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)
q) Vaikea: Tee esimerkkisivu Python Django:lla (tuotantotyyppinen, ei pelkkä yhden käyttäjän testipalvelin)

a)Aloitin tehtävän vuokraamalla Digital Oceanista virtuaalipalvelimen. (kuva alla)

cof

Digital oceanista sain palvelimen root salasanat heti sähköpostilla, palvelimelle kirjaudutaan komennolla “ssh root@virtuaalipalvelimen ip-osoite”. Vahdoin palvelimen salasanat, ja otin uudelleen ssh yhteys palvelimelle uudella salasanalla. Tämän jälkeen tein tarvittavat konfiguroinnit palvelimelle.

Alla Käyttämäni komennot palvelimen konfigurointiin: (SSH yhteys palvelimelle)

“sudo ufw allow 22/tcp” #SSH:käyttämä portti 22.

“sudo ufw allow 80/tcp” # avaa portti 80 (HTTP-protokolla / apachen oletusportti HTTP:lle).

“sudo ufw enable” #laittaa tulimuurin käyntiin.

Tämän jälkeen luodaan käyttäjä Saban.

“sudo adduser saban” #Tekee käyttäjän Saban.

“sudo adduser saban sudo” #Antaa Sabanille sudo oikeudet.

“sudo adduser saban adm” #Lisää Saban admin ryhmään.

“sudo adduser saban admin” #Antaa admin oikeudet Sabanille.

Lopussa testaan vielä toimivuudet ottamalla ssh yhteys palvelimelle komennolla “ssh saban@ip-osoite” nyt kun ollan palvelimen sisällä saban käyttäjällä lukitsen samalla root käyttäjä komennolla “sudo usermod –lock root”, koska haluamme että rootilla ei pysty kirjautumaan enää ssh:n sisään. Muokataan myös SSH:n asetusta komennolla “sudoedit /etc/sshd_config” ja sieltä muutetaan PermitRootLogin “YES””NO”:ksi.

Tämän jälkeen Käynnistettän SSH uudelleen komennolla “sudo service ssh restart”, jotta asetukset tule voimaan. Heti perään päivitetään palvelimen komennolla “sudo apt-get update ja sudo apt get upgrade”

S)Aluksi ssh yhteys palvelimelle ja asennetaan apache2 komennolla ” sudo apt-get install apache2″. Asensin tämän jälkeen apachen käyttäjämoduuli komennolla #sudo a2enmod userdir” ja käynnistin apachen uudelleen komennola “sudo service apache2 restart” Vaihtoehto komento TAI (sudo systemctl restart apache2.service).

Tämän jälkeen tein kotihakemistoon public_html kansion ja kansion sisään index.html tiedoston. (Alla kommennot)

“mkdir public_html” #luo kansion public_html

“cd public_html” #Siirtyy public_html kansion sisältöä

“nano index.html” #Luo index.html tiedoston, johon lisätään html sivun sisältöä.

Lopussa testataan kaikki selaimella. (kuva alla)

s tehtävä loppu

 

Tämän jälkeen muokataan asetustiedostoja komennolla “sudoedit /etc/apache2/sites-available/000-default.conf”, jotta saadaan sivut näkymään oletus sivuna, lisätään siihen palvelimen osoite myös”osoite ei näy kv”.(alla kuva)

s2 tehtäväharjoitus4

Tämän jälkeen käynnistetään apachen uudelleen kommennolla “sudo systemctl restart apache2”.

Y) Käyty tarkistamassa auth.log:sta onko kukaan yrittänyt murtautua palvelimelle komennolla “tail /var/log/auth.log”.

1

Lokeista löytynyt useita root-käyttäjän kirjautumisyrityksiä. (Asensin whois komennolla “sudo apt install whois”).Valittu yksi listalla olevista ip-osoitteesta ja ajettu komento “whois 182.100.67.237”

2

3

Seuravaa komento on antanut  ko. ip:n kohdalla seuraavat tiedot:

saban@saban (palvelin):~$ geoiplookup 182.100.67.237
GeoIP Country Edition: CN, China

Lisäksi haettu  ip-osoitetta infosniper.net sivuston kautta ja todettu että lokitiedot pitää paikaansa sivu sijoittaa keskelle kiina.

5

b) Tein kaksi html sivua paikallisen koneen (client) kotihakemistoon public_html kansioon (testisivu1 ja testisivu2) ja tämän jälkeen palvelimelle siirtoo onnistuu scp komennolla. (Kuva alla)31.png

c)

Ihan aluksi otetaan SSH yhteys palvelimelle ja asennetaan palvelimelle PHP moduuli komennolla $“sudo apt-get -y install libapache2-mod-php”. Tämän jälkeen laitetaan asetustiedostoista PHP päälle kommennolla $“32 Tämän jälkeen käynnistetään apache uudelleen komennolla $“sudo service apache2 restart” . Lisätään käyttäjän saban kotihakemistossa olevaan alikansioon public_html paikallinen Apache-palvelimella pyörivän sivuston konfiguraatiotiedosto .htaccess. Kerrotaan tässä tiedostossa Apachelle, että /home/saban/public_html -kansiossa olevat html-tiedostot sisältävät suoritettavaa php-koodia lisäämällä seuraava lauseke: (kuva alla).

34

Muokataan vielä /etc/apache2/mods-available/dir.conf -tiedostoa niin, että Apache lukee ensin sivun hakemiston juuresta (public_html) index.php-tiedoston:

36

Käynnistetään vielä palvelin uudelleen (sudo service restart apache2).

Nyt public_html -kansioon voidaan lisätä joko PHP-koodia sisältävä index.html tai vaihtoehtoisesti pelkkää PHP:ta sisältävä index.php. Tein index.php-tiedoston, jonka avasin komennolla “nano index.php”.

37

Testasin selaimella PHP-koodin toimivuuden:

Screenshot_20180301-115534

Lähteet:

http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean

http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op

http://www.infosniper.net/

https://cloud.digitalocean.com