Linux palvelimet H4

Linux kurssin H4 tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op

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

Tero Karvisen ohjeilla (http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean) loin tunnuksen GitHubiin, joka mahdollisti hankkia ilmaisen virtuaali serverin DigitalOceanista. DigitalOcean antaa IP-osoitteen ja root -salasanan.

Tässä vaiheessa on aiheellista sanoa, että SSH-etäyhteyttä muodostaessa on erityisen tärkeää laitaa uusi ja vahva root –salasana.

Kirjautuessa siis ensimmäistä kertaa root -käyttäjänä terminaalissa syötä sähköpostissa saamasi väliaikainen salasana ja sekä IP-osoite. Komennolla:
ssh root@xx.x.x.x

Seuraavaksi tulimuuri tulee aktivoida ja tehdä siihen poikkeus SSH -yhteydelle:
sudo ufw allow 22/tcp
sudo ufw enable

Luodaan myös uusi sudo käyttäjä seuraavilla komennoilla (nn = käyttäjä):

sudo adduser nn
sudo adduser nn sudo
sudo adduser nn adm
sudo adduser nn admin

Nyt uudella käyttäjällä on oikeudet luoda vaikkapa kotisivut normaalin käyttäjän oikeuksin.

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

Ylläolevan linkin mukaisesti kun Apache2 on asennettu ja päivitetty, niin tehdään virtuaalipalvelimelle /home/nn/ (nn = käyttäjä) uusi kansio seuraavilla komennoilla:

sudo mkdir public_html  ja sinne uusi tekstitiedosto
sudo nano index.html

Uusi virtual host –sivu saadaan käyttöön:

sudoedit /etc/apache2/sites-available/nn.conf

ja tiedostoa tulee muokata seuraavanlaisesti:

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

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

Uusi virtual host  käyttöön: sudo a2ensite nn.conf
Oletussivu pois käytöstä: sudo a2dissite 000-default.conf

Lopuksi vielä palvelin käynnistetään uudelleen: sudo systemctl restart apache2

 

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

Palvelimen lokitietoihin pääsee komennolla:

sudo tail -f /var/log/auth.log ja reaaliaikaisen seurannan voi keskeyttää CTRL + Z

 

 

 

 

 

 

 

 

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

https://www.linux.fi/wiki/SSH

https://www.linux.com/blog/how-generate-strong-password-linux-command-line

 

Linux palvelimet H3

Linux kurssin H3 tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op

A) Asenna Apache, laita käyttäjien kotisivut toimimaan. Testaa esimerkkikotisivulla. Apache asennusohjeet löytyvät osoitteesta: http://terokarvinen.com/2008/install-apache-web-server-on-ubuntu-4#install_apache_web_server_on_ubuntu

Asensin Apache 2:n terminaalissa komennolla:

sudo apt-get install -y apache2

Seuraavaksi testasin firefox -selaimella  http://localhost -osoitetta ja apache2 testisivu tuli näkyviin: Screenshot_2018-02-06_22-19-26.png

Selvitin terminaalissa oman koneeni IP -osoitteen komennolla ip address ja syötin IP-osoitteen selaimeen ja oletussivu tuli yhä näkyviin.

Apache 2 suosittelee, että oletusivu tyhjennetään/ korvataan toisella sisällöllä ja tämä onnistuu /var/www/html/index.html tiedostoa muokkaamalla.

Komennolla sudo nano index.html pystyy muokkaamaan tiedostoa ja tallennus tapahtuu CTRL + X + Y + ENTER

Latasin selaimessa apache sivun uudestaan  ja “testi” -sivu tuli myös näkyviin:Screenshot_2018-02-06_22-46-21

Kotihakemisto luodaan /home kansioon komennolla sudo a2enmod userdir, jonka jälkeen apache2.service tulee käynnistää uudelleen komennolla sudo systemctl restart apache2.service

Uudelleen käynnistämisen jälkeen voidaankin luoda uusi kotihakemisto kansio /home/user/public_html, jossa “user” vastaa hakemiston käyttäjää. Komennolla whoami selvitin oman käyttäjänimen ja syötin selaimeen ~user ja hakemisto tuli näkyviin: 
B) Apache2 lokitietojen tarkastelu

Tarkoituksena oli etsiä apache2:n lokitiedoista onnistuneita ja epäonnistuneita sivulatauksia. Ensimmäiseksi terminaalissa cd var/log/apache2 ja tämän jälkeen komento tail -f access.log jonka avulla voi seurata lokitapahtumia.

Kokeilin selaimessa syöttää http://localhost/~intruder ja lokitiedostoon ilmeni virheilmoitus, jossa “404” tarkoittaa epäonnistunutta pyyntöä:

127.0.0.1 – – [06/Feb/2018:22:46:06 +0200] “GET /~intruder HTTP/1.1” 404 499 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0

Tämän jälkeen kirjoitin osoitteen jälleen oikein http://localhost~sulevi ja lokitiedostosta sain selville, että “200” tarkoittaa onnistunutta pyyntöä.

127.0.0.1 – – [06/Feb/2018:22:47:53 +0200] “GET /~sulevi/ HTTP/1.1” 200 654 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0”

Kts. lisää protokollista https://tools.ietf.org/html/rfc7231#section-6.5.4

C) Tee virhe weppipalvelimella ajettavaan koodiin

Tero Karvisen ohjeiden (http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo) mukaan terminaalissa toteutin komennon sudo apt-get install -y libapache2-mod-php ja tämän jälkeen muokkasin sudoedit /etc/apache2/mods-available/php7.0.conf jotta php saadaan kotihakemistossa toimimaan. Kotihakemiston index.html täytyi vielä muuttaa index.php muotoon komennolla sudo mv index.html index.php.

 

 

 

Linux palvelimet H2

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

ti 30.1.2018 19.45.28: Käynnistin kaksi erillistä terminaalia komennolla ctrl-atl-t.

Ensimmäiseksi ajattelin luoda onnistuneen lokitapahtuman. Ensimmäiseen terminaaliin kirjoitin komennon tail -f /var/log/syslog, jonka avulla pääsee tarkkailemaan reaaliajassa järjestelmän lokitapahtumia. Toisessa terminaalissa halusin poistaa touchpadin käytöstä, koska se tuppaa häiritsemään työskentelyä jatkuvasti. Olin etukäteen selvittänyt duckduckgo.com hakukoneella ja hakusanoilla “how to disable touchpad linux”(https://askubuntu.com/questions/65951/how-to-disable-the-touchpad), miten em. laitteen saa pois päältä: screenshot
Terminaalissa syötin siis xinput list ja listasta tarkistin oman touchpadini id:n eli SynPS/2 Synaptics TouchPad id=13. Tämän jälkeen yksinkertaisesti kirjoitin terminaaliin komennon:

xinput --disable 13

Komennon jälkeen tarkkailin lokitiedostoa, mutta mitään ei ilmestynyt. Ehkäpä toimenpide oli onnistunut?

ti 30.1.2018 19.59.43: Seuraavaksi kokeilin saada aikaiseksi negatiivisen lokimerkinnän. Olin kohentamassa istuma asentoani ja irrotin hetkellisesti kannettavan latausjohdon ja siitähän tuli heti lokimerkintä:

Jan 30 20:00:44 Sulevi kernel: [10789.628785] hp_wmi: bad event status 0x5

HP saattaisi viitata kannettavaan, mutta ehkäpä ongelma johtuu ajureista?

 

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

sudo apt-get install audacity vlc gimp

D) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.

Terminator helpottaa useamman terminaalin käyttöä. Asensin komnennolla sudo apt-get install terminator.

Joe -teksinkäsittelyohjelma muistuttaa kovasti nanoa. Asennettu komennolla sudo apt-get install joe.

Htop näyttää komentorivillä selkeästi tehtävienhallinnan. Asennettu komennolla sudo apt-get install htop.

screenshot2

Yllä mainitut ohjelmat toimivat terminaalissa mallikkaasti.

 

 

 

 

Lähteet ja tehtävänanto:

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

http://terokarvinen.com/2009/command-line-basics-4

http://terokarvinen.com/2008/commands-for-admin-4