Kotitehtävä #4

a) Virtuaalipalvelimella oikeus tehdä kotisivuja normaalin käyttäjän oikeuksin.

Aloitin tämän tekemällä uuden käyttäjän palvelimelleni. Annoin komennon:

sudo adduser banaani

Luomisessa annoin käyttäjälle vahvan salasanan ja muut vaiheet rämpytin enterillä läpi. En lisännyt uutta käyttäjää mihinkään ryhmään.

 

Jotta saisin palvelimen käyttäjilleni omat kotisivuhakemistot, tarvitsin taas Apachea. Laitoin sen asentumaan komennolla:

sudo apt-get install -y apache2

Enabloidaan käyttäjähakemistot ja resetoidaan palvelu:

sudo a2enmod userdir
sudo systemctl restart apache2.service

Avataan pari porttia ja laitetaan palomuuri päälle, jotta sivut toimivat:

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

Ollessani kirjautuneena normaalilla käyttäjällä (banaani) kokeilin luoda kotihakemistoon (/home/banaani) public_html-kansion ja sinne .html-sivun.

banaani1.png

Tein index-sivun vahingossa väärään paikkaan (kotihakemistoon), mutta siirto oikeaan paikkaan onnistui helposti komennolla:

mv index.html public_html/

Tämän jälkeen otin yhteyden Chromium-selaimella osoitteeseen http://www.foliohattu.me/~banaani/

banaani2

Toimii!

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

Kirjauduin ulos normaalilta käyttäjältä ja vaihdoin tunnukselle, joka kuuluu sudo-ryhmään.

Apachen oletussivu ja niihin liittyvät asetukset löytyvät kansiosta /etc/apache2/sites-available/, joten surffataan sinne:

cd /etc/apache2/sites-available/

Luodaan tänne uusi asetustiedosto, jota halutaan jatkossa käyttää oletuksena:

sudoedit banaani.conf

Napataan koodi Tero Karvisen sivuilta (New Default Website with Apache2) ja muokataan hakemistot omiin tarpeisiin sopivaksi:

## /etc/apache2/sites-enabled/banaani.conf
<VirtualHost *:80>
 DocumentRoot /home/banaani/public_html/

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

Tämä tiedosto siis ohjaa aiemmin luodun käyttäjän kotihakemistoon. Tiedostossa oleva pätkä “Require all granted” kertoo Apachelle, että käyttäjä sallii kansion tiedostojen tarkastelun.

Tallennus ctrl + x + y.

Otetaan vanha asetus pois käytöstä:

sudo a2dissite 000-default.conf

Ja otetaan uusi asetus käyttöön:

sudo a2ensite banaani.conf

Viimeistellään asiat apachen uudelleenkäynnistyksellä:

sudo systemctl restart apache2.service

banaani3

Tämä myös toimii!

y) Murtautumisyrityksiä lokeista.

Lokeja lähdin tarkastelemaan komennolla:

less /var/log/auth.log | grep 'Failed password for'

Greppaamalla tuota lausetta sain karsittua hieman muita rivejä. Harjoitusta varten minua kiinnosti eniten, että mitä tunnusta oltiin yritetty käyttää sisäänkirjautumisessa, sekä mistä ip-osoitteesta tämä tuli. Näitä tulikin erittäin monta, mutta tässä muutama esimerkiksi:

Feb 11 18:09:13 foliohattu sshd[30570]: Failed password for invalid user admin from 184.176.151.214 port 47128 ssh2
Feb 11 18:09:16 foliohattu sshd[30570]: Failed password for invalid user admin from 184.176.151.214 port 47128 ssh2
Feb 11 18:17:32 foliohattu sshd[30602]: Failed password for invalid user git from 52.224.54.108 port 59648 ssh2
Feb 11 18:20:25 foliohattu sshd[30621]: Failed password for invalid user test from 52.224.54.108 port 43024 ssh2
Feb 11 18:32:51 foliohattu sshd[30654]: Failed password for invalid user django from 52.224.54.108 port 33240 ssh2
Feb 11 18:35:54 foliohattu sshd[30662]: Failed password for invalid user docker from 52.224.54.108 port 44744 ssh2
Feb 11 18:48:33 foliohattu sshd[30697]: Failed password for root from 52.224.54.108 port 35098 ssh2
Feb 11 18:51:34 foliohattu sshd[30703]: Failed password for invalid user candy from 52.224.54.108 port 46772 ssh2

Moni yritetyistä tunnuksista ei ollut edes olemassa, mutta näistä selvästi huomasi, että hyökkääjät kokeilivat ns. “perusvarmoja” tunnuksia, joita saattaisi olla serverillä kuin serverillä olemassa – ihmisten etunimet, tunnukset kuten “admin” ja “test”. Rootin kohdallahan tuo loki ei anna ilmoitusta “invalid userista”, koska semmoinen on toden totta olemassa, mutta onneksi Tero Karvisen sivuilta löytyvien ohjeiden (First steps on a New Virtual Private Server) mukaan lukittu.

Lokeista myös huomataan, että lähes aina yksi IP-osoite yrittää tunkeutumista useaan otteeseen. Kokeilin seuraavalla komennolla selvittää hieman enemmän yhdestä hyökkääjästä:

whois 184.176.151.214

Komento tarjosi paljon tietoja ip-osoitteesta, kuten:

OrgName: Cox Communications Inc.
OrgId: CXA
Address: 1400 Lake Hearn Dr.
City: Atlanta
StateProv: GA

Tiedoista löytyi myös heidän nettisivu, puhelinnumero, tietoa lakiasioista, yms. Kyseessä voi olla hyökkääjän palveluntarjoaja, mutta varmaan on myös mahdollista, että tässä on käytetty jotain proxya välissä. En kuitenkaan lähde lähettämään mitään vihasähköpostia heille vaan annan asian olla, sillä on helpompi varmaan vain bannata osoite omasta päästä jollain ohjelmalla, kuten fail2ban:illa.

b) Paikallisten web-sivujen kopiointi palvelimelle scp-komennolla

Kokeilin siirtää aiemmassa tehtävässä tehdyn php-tiedoston paikalliselta koneeltani virtuaalipalvelimelle. Siirto onnistui komennolla:

scp muunnin.php bere@foliohattu.me:/home/bere/public_html

Terminaalista sama näkymä:

scp

Tsekataan virtuaalipalvelimelta, että tiedosto varmasti siirtyi:

scp2

Selaimesta katsottuna tuo tiedosto näytti pelkästään lähdekoodin, joka johtuu siitä etten ollut ottanut Apachessa PHP:ta käyttöön. Tämä sopiikin hyvin seuraavaan tehtävään.

c) Yksinkertainen PHP-sivu palvelimella.

Saadakseni PHP:n toimimaan tuli minun asentaa php-lisäkilke apacheen komennolla:

sudo apt-get install -y libapache2-mod-php

Tämän jälkeen pääsen enabloimaan php:n muokkaamalla php7.0.conf-tiedostoa:

sudo nano /etc/apache2/mods-available/php7.0.conf
Risuaidat tiedoston ohjeiden mukaisesti
sudo systemctl restart apache2.service

Lisäsin myös huvikseni pätkän “echo $_SERVER[‘REMOTE_ADDR’]” koodiini. Lopputulos näytti tältä:

phptoimii.png

Hyvin näyttäisi skulaavan!

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

Muutoshistoria:

9.3.2018 klo 11.24 edit: korjattu tekstin linkit ja lisätty tehtävänanto.

Advertisements

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