Linux Palvelimet Tehtävä 6

TEHTÄVÄNANTO:

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt.

b) Palauta linkki sivuun, josta löytyvät kaikki kotitehtäväraporttisi. Arviointi tehdään ensisijaisesti tästä linkistä. Linkki voi olla esimerkiksi blogin etusivu (jos blogissa on vain kotitehtävät) tai sivuun, jossa on linkki kuhunkin kuuteen tehtävään.

A) “Hei maailma” kolmella kielellä

Alotin tehtävän 5.10.2017 klo 18.10.

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

Avataan ensimmäiseksi terminaali tietokoneessa. Aion tässä tehtävässä käyttää ohjelmointikielinä Pythonia, Bashia ja Go:ta, joilla tulostan “Hei maailman”.

Python 3

Terminaalissa kirjoitin komennoksi vain python3, jolloin päästään kokeilemaan koodia. Kirjoitin sitten print(“Hei maailma”); tämä komento tulosti “Hei maailma” -tekstin. CTRL + D lopettaa pythonin testauksen.

python3.jpg

Nyt kun tiedetään miten pythonilla tulostetaan tekstiä, menin luomaan pythonille oman tiedoston:

cd /home/markus

nano hei.py               ||python suorittaa vain .py nimisiä tiedostoja

Kirjoitin tiedostoon pythonin Shebangin. Se tarkoittaa skriptien alussa olevaa merkkijonoa, joka kertoo ohjelman, jolla skripti tulee suorittaa. Shebang alkaa #! -merkinnällä, jonka jälkeen tulee absoluuttinen polku suoritettavaan ohjelmaan. Kirjoitetaan tiedostoon siis #!/usr/bin/python3 koska python3 sijaisee tuolla polulla. Shebangin jälkeen on rivinvaihto ja kirjoitin saman kuin testauksessa: print(“Hei maailma”);

pythonnano.jpg

Tallensin tiedoston: CTRL + X, Y. Skriptin voi nyt suorittaa komennolla: python3 hei.py

Komento suorittaa luodun skriptin ja tulostaa “Hei maailman”.

heimaailmapython.jpg

Komennolla ./hei.py voidaan myös ajaa tiedosto. Tiedoston oikeuksia tulee kuitenkin muuttaa ensiksi, jotta komento voidaan suorittaa. Komento chmod ugo+rwt hei.py antaa tiedostolle täydet oikeudet kaikille käyttäjille. (+ merkki lisää oikeuksia, – merkki poistaa oikeuksia chmod-komennossa.) Alla on lueteltu mitä kirjaimet chmodissa tarkoittavat:

u käyttäjä (user) tiedoston omistaja
g ryhmä (group) tiedoston ryhmään kuuluvat käyttäjät
o muut (others) käyttäjät, jotka eivät kuuluu kumpaankaan edellisistä
r luku (read) tiedoston lukeminen tai kansion sisällön listaaminen
w kirjoitus (write) tiedostoon tai kansioon kirjoittaminen
x suoritus (execute) tiedoston suorittaminen tai kansiopuun listaaminen rekursiivisesti

Lähde: Wikipedia.

Ajoin komennon oikeuksien muokkaamisen jälkeen:

heipython.jpg

Komento ls -la listaa kyseisen tiedoston oikeudet.

Pythonin “Hei maailma” ajettiin onnistuneesti.

Lopetin työvaiheen klo 18.55.

 

Bash

Aloitin työvaiheen klo 19.00.

Loin uuden tiedoston bash-kielelle: nano moi.sh Bash ajaa vain .sh nimisiä tiedostoja.

Kirjoitin tiedostoon samalla tavalla Shebangin bashille: #!/bin/bash Sen jälkeen kirjoitin tiedostoon komennon echo “Hei maailma”.

bashnano.jpg

Tallesin tiedoston CTRL + X, Y. Komennolla bash moi.sh ajetaan skripti:

bashmoi

Muokkasin vielä moi.sh tiedoston oikeuksia samalla tavalla kuin pythonin kohdalla: chmod ugo+rwx moi.sh

Luodun bash-skriptin voi nyt suorittaa komennolla ./moi.sh

moibashworks.jpg

Bash-skripti toimii.

Lopetin työvaiheen klo 19.25.

 

Go

Aloitin työvaiheen klo 19.30.

Asensin aluksi tarvittavan ohjelmiston Go-kieltä varten:

sudo apt-get update && sudo apt-get install -y install golang

Asennuksen jälkeen loin uuden kansion Go-kieltä varten: mkdir heimaailma

Menin luotuun kansioon: cd heimaailma Loin siellä uuden tiedoston: nano heimaailma.go

Tiedostoon kirjoitin seuraavan sisällön:

package main

import “fmt”

func main() {
fmt.Printf(“Hei maailma!\n”)
}

gonano.jpg

Tallensin tiedoston: CTRL + X, Y. Seuraavaksi kokosin tiedoston komennolla go build

Ajoin tiedoston: ./heimaailma

goworks.jpg

Myös Go-kielellä skriptin ajaminen toimii!

Lopetin tehtävän klo 19.51.

B) Linkki koko kotitehtäväraporttiin

https://markusnissinen.wordpress.com/blog/

 

Lähteet:

Tehtävänanto: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

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

Chmod: https://fi.wikipedia.org/wiki/Chmod

Go-kieli: http://terokarvinen.com/2017/hello-go-world-install-and-run-go-in-less-than-a-minute-on-ubuntu-16-04-lts

Muuta

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

 

 

Linux Palvelimet Tehtävä 5

TEHTÄVÄNANTO:

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Tehtävänä oli käydä Cyber Security Nordic messuilla Helsingin Messukeskuksessa sekä asentaa LAMP ja WordPress.

 

a) Cyber Security Nordic messut

Kävin Cyber Security Nordic messuilla keskiviikkona 27.9.2017, koska silloin päivän ohjelma oli kokonaan ilmaista. Tarjolla oli luentoja tietoturva-asioista sekä paikalla oli monia tietoturva-alan yrityksiä, joiden kanssa pystyi keskustella heidän alaansa liittyvistä kysymyksistä. Kävin kuuntelemassa yhden luennon, jossa aiheena oli Fortumin tietoturvaratkaisuja sekä kansainvälistä tietoturvaa. Tietoturva itsessään on mielestäni mielenkiintoinen aihe ja luentoa oli mielenkiintoista kuunnella.

20170927_123636.jpg

Yritysten messukojuilla sen sijaan oli vaihtelevuutta. Osa yrityksistä innokkaasti esittelivät tuotteitaan demojen kanssa, mutta muutaman yrityksen kohdalla jäi edelleen epäselväksi, mitä heidän yritys tekee ja mitä tuotteita heillä on. Muutamalla kojulla puolestaan ei ollut minkäänlaista demoa tai tuotetta, joten heidän osaltaan oli vaikea luoda kuvaa heidän yrityksestään. Yritysten edustajat eivät myöskään olleet kovin oma-aloitteisia esittelemään itseään, joten heitä piti lähinnä haastatella.  Nämä messut oli tarkoitettu liiketoiminnan johdolle, joten yritykset etupäässä olivat edustamassa itseään eivätkä tuotteitaan. Itse olinkin näin ollen väärää kohderyhmää. Kaikesta huolimatta haastattelin kolmea eri yritystä päivän aikana.

Fujitsu

Ensimmäisenä tutustuin Fujitsun kojuun. He vaikuttivat innokkailta ja heidän kojunsa muutenkin oli mielenkiintoinen. He esittelivät tunnistautumisjärjestelmäänsä: PalmSecurea. Sen ideana on tunnistaa ihmiset kämmenen verisuonten perusteella. Sen etu tavalliseen sormenjälkitunnistautumiseen on, että sitä on lähes mahdoton käyttää väärinkäytöksiin. Laitteen ominaisuus perustuu siihen, että sen sensori  tunnistaa rekisteröidyn kämmenen kuvion vain, jos verisuonissa virtaa hemoglobiini. Käden on näin ollen oltava elävä. PalmSecure on myös hygieniaturvallinen, sillä laite lukee kämmenen verisuonet ilmasta ilman kosketusta. PalmSecure on tehty Linux käyttöjärjestelmän pohjalta sekä siinä on relaatiotietokanta.

 

20170927_124555.jpg
Kuvassa on Fujitsun tunnistautumislaitteita, jotka käyttävät PalmSecurea

 

PalmSecurea myydään lähinnä yrityksille, mutta siitä on olemassa myös kuluttajaversioita. Pienemmät laitteet (kuvassa) ovat myös kuluttajille ja niiden hinta on noin pari sataa euroa.  PalmSecure on käytössä monissa maissa tunnistautumisjärjestelmänä, esimerkiksi Belgiassa jalkapallo-otteluiden lippujen tarkastuksessa sekä Turkissa terveysasemilla. Suomessa PalmSecure ei ole kovin yleistynyt.

 

20170927_124658.jpg
PalmSecuren toimintamalli

 

Bittium

Seuraavaksi suunnistin Bittiumin kojulle, koska se vaikutti mielenkiintoiselta. Bittium on yritys, joka myy erilaisia tietoturvallisia viestintä- ja liitettävyysratkaisuja. Kojullaan he esittelivät tietoturvallisia älypuhelimia. Idea älypuhelimissa on, että niitä ei voida salakuunnella. Bittumin älypuhelimet ovatkin tarkoitettu lähinnä viranomaisille, jotka tarvitsevat erityista suojaa salakuuntelua vastaan, esimerkiksi poliisit ja armeija. Heidän älypuhelimet käyttävät Android käyttöjärjestelmää versioina 5.1 tai 6 älypuhelimesta riippuen. Niistä on esimerkiksi riisuttu kaikki Googlen palvelut, koska ne keräävät tietoa käyttäjästä.

20170927_135425.jpg

 

Heille oli kolme eri älypuhelinta näytillä, joissa oli eri suojausmenetelmiä. Oikealla kuvassa on heidän puhelin, jossa on eniten tietoturvaominaisuuksia. Vasemmanpuoleisissa on vähemmän tietoturvaominaisuuksia. Bittium ei myy älypuhelinmallejaan kuluttujille, koska tavallinen käyttäjä ei välttämättä näe siinä tarvetta. Hintaa kysyttäessä vastaukseksi sanottiin, että yksi älypuhelin on arvoltaan noin pari tuhatta euroa.

scan0001-e1506616750121.jpg
Bittium älypuhelimissa käytettävät suojausmenetelmät

 

 

F-Secure

Viimeisenä kävin F-Securen yrityskojulla. Heidän palvelu, jota he esittelivät oli tunnistus- ja reagointipalvelu tietoturvauhkia vastaan: Rapid Detection Service. Palvelu on tarkoitettu yrityksille, jotka haluavat tehostaa tietoturvaansa. Yritys halutessaan voi osallistua Rapid Detection Service -palveluun, jolloin pyritään selvittämään kaikki yrityksen tietoturva-aukot. Rapid Detection Service sisältää sensoreita, joita asennetaan yrityksen IT-järjestelmiin, joiden avulla tunnistetaan hyökkääjien tunkeutumisyrityksiä. Palvelu lähettää tiedot mahdollisista murtautujista F-Securen asiantuntijoille, jotka analysoivat uhkia ja ilmoittavat siitä yritykselle viimeistään 30 minuutin kuluessa sen löytymisestä.

 

20170927_142015.jpg
Rapid Detection Service toimintamalli

 

D) LAMPin asennus ja tietokannan lukeminen PHP-ohjelmalla

Alotin tehtävän 29.9.2017 klo 14.00.

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

Tehtävänä on asentaa LAMP virtuaalipalvelimelle. LAMP takoittaa Linuxia, Apachea, MySQL ja PHP:tä. Linux käyttöjärjestelmä on asennettu jo ensimmäisessä kotitehtävässä. Apache 2 on myöskin asennettu virtuaalipalvelimelle jo aikaisemmin edellisessä kotitehtävässä. Jäljelle jää siis vain MySQL:n ja PHP:n asennus.

MySQL ja PHP

Kirjaudun palvelimelleni terminaalissa SSH-yhteydellä:

$ ssh markus@165.227.156.192

Päivitetään ohjemisto ja asennetaan MySQL ja PHP sekä niihin tarvittavat lisäohjelmat yhdellä komennolla:

$ sudo apt-get update

$ sudo apt-get -y install mysql-client mysql-server libapache2-mod-php php-mysql

Asennuksen yhteydessä MySQL pyytää salasanaa. Annetaan vahva salasana, joka pitää muistaa.

Seuraavaksi pitää sallia PHP:n kotisivu. Siirryin editoimaan oikeaa tiedostoa komennolla:

$ sudoedit /etc/apache2/mods-available/php7.0.conf

Tiedostossa alimmaisena on IfModule -kohta, jossa asetus tulee ottaa pois laittamalla komennon eteen #-merkki, joka tarkoittaa kommenttia tiedostossa.

ifmoduleoff.jpg

php_admin_flag engineä ei saa laittaa On -tilaan, koska silloin ohjelma ei toimi oikein. Oikea tapa onkin kommentoida komennot kokonaan pois. Tallentaan tiedosto: CTRL + X, Y, ENTER.

Testasin seuraavaksi PHP:n toimivuutta. Menin käyttäjän kotihakemistoon ja muutin index.html tiedoston index.php tiedostoksi. Tämä pitää tehdä sen takia, että tiedosta pystyy lukea PHP-kieltä.

$ cd /home/markus/public_html

$ mv index.html index.php

Kirjoitin tämän jälkeen tiedostoon PHP:tä:

$ nano index.php

<?php print(2+2+”\n\n”); ?>    || lasketaan 2+2 ja tulostetaan se

phpsample.jpg

PHP toimii kotisivuilla:

homepagephp.jpg

Seuraavaksi testasin MySQLiä asentamalla sinne yhden tietokannan. Kirjaudun MySQLiin sisään komennolla:

$ mysql –user=root –password

Annoin luodun salasanan MySQLin asennusvaiheessa.

Pääsin MySQLiin sisään ja sen jälkeen loin tietokannan komennolla:

CREATE DATABASE markus CHARACTER SET utf8;

Seuraavaksi loin käyttäjän komennolla:

GRANT ALL ON markus.* TO markus@localhost IDENTIFIED BY ‘password’;

Komennossa IDENTIFIED BY -tekstin jälkeen kirjoitetaan vahva haluttu salasana, jolla käyttäjä kirjautuu sisään. Salasanaa ei tarvitse muistaa, koska se kirjoitetaan suraavassa vaiheessa muistiin. Kirjautuminen MySQLiin voi tehdä automaattiseti, jolloin salasanaa ei tarvitse muistaa.

Kirjaudutaan MySQLista aluksi ulos komennolla exit. Mennään kotikansioon:

cd /home/markus

Komennolla nano .my.cnf syötetään MySQLin kirjautumistiedot, jolloin jatkossa MySQLiin päästään pelkästään komennolla mysql. Kyseiseen tiedostoon loin seuraavat tiedot:

[client]
user=”markus”
password=”password”
database=”markus”

Kirjaudun takaisin MySQLiin komennolla mysql.

Otin seuraavaksu luodun tietokannon käyttöön komennolla:

USE markus

Sen jälkeen sinne taulukon “hats” komennoilla:

CREATE TABLE hats(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024));
INSERT INTO hats(name) VALUES (‘Cap’);
INSERT INTO hats(name) VALUES (‘Ninja Hood’);
INSERT INTO hats(name) VALUES (‘White Helmet’);

Taulukon tietoja tarkastatelin komennolla: SELECT * FROM hats;

mysqltest.jpg

Tietokanta on nyt luotu ja seuraavaksi tulee yhdistää PHP ja MySQL.

PHP:n MySQL:in yhdistäminen

Jotta PHP ja MySQL toimivat keskenään pitää muokata vielä index.php -tiedostoa. Kirjauduin ulos MySQLista ja siirryin muokkaamaan index.php tiedostoa:

$ nano /home/markus/public_html/index.php

Lisäsin kyseiseen tiedotoon Tero Karvisen sivuilta löytyvän koodirivistön:

<?php
// public_html/index.php – Read MySQL from PHP
// (c) 2016 Tero Karvinen http://TeroKarvinen.com

// MySQL Login
$user=’markus’;
$password=’password’;

// Data Source Name i.e. connection details
$database=$user;
$dsn=”mysql:host=localhost;charset=UTF8;dbname=$database”;

// Open Connection, create new object of PDO class
$pdo=new PDO($dsn, $user, $password);

// Perform SQL Query
$pdoStatement=$pdo->prepare(‘SELECT * FROM hats;’);
$pdoStatement->execute();
$hits=$pdoStatement->fetchAll();

// Print the $hits Array
foreach($hits as $row) {
echo “<p>”.$row[‘id’].” “.$row[‘name’].”</p>\n”;
}
?>

Kävin katsomassa onko kotisivullani nyt luotu tietokanta:

sqlandphp.jpg

PHP ja MySQL toimivat nyt oikein.

Päätin tehtävän klo 15.23.

E) WordPressin asennus

Aloitin tehtävän klo 15.35.

Tehtävänä on seuraavaksi asentaa WordPress. Heti ensimmäiseksi tulee lataa WordPressin asennuspaketti kotikansioon.

$ cd /home/markus/public_html

$ wget https://wordpress.org/latest.tar.gz

Komento purkamiseen on:

$ tar -xf latest.tar.gz

Ladatun purkupaketin voi nyt poistaa: rm latest.tar.gz

Menen localhost/~xubuntu/wordpress osoitteeseen ja aukeaa seuraavanlainen sivu:

wordpressasennus.jpg

Klikkasin “Let’s Go” nappia, johon laitoin seuraavat tiedot:

wp.jpg

Seuraavaksi piti tehdä wp-config.php tiedosto itse. Kopioin WordPressin laatikossa olevan tekstin ja liitin kyseisen nimiseen tiedostoon. Loin tiedoston public_html kansioon. Komento tiedoston tekemiseen on: nano wp-config.phpTiedoston luotua painoin “Run the install” nappia.

wpp.jpg

wpname.jpg

Kirjoitin seuraavaksi tarvittavat tunnukset WordPressiin. WordPress asentui onnistuneesti ja kirjauduin luoduilla tunnuksilla sisään “Log In” napista.

wpready.jpg

Seuraavaksi tuli tehdä WordPressiin esimerkkisisältöä. Menin Dashboard sivuvalikon kautta “Posts” ja klikkasin “Add new”. Kirjoitin julkaisuun esimerkkitekstiä ja klikkasin sitten “Publish”.

wordpresstestpage.jpg

 

Päätin tehtävän klo 17.13.

 

 

LÄHTEET

Cyber Security Nordic: http://cybersecuritynordic.messukeskus.com/?lang=fi

Fujitsu: http://www.fujitsu.com/fi/

PalmSecure: https://www.fujitsu.com/fi/services/security/product/palmsecure/

Bittium: https://www.bittium.com/etusivu

F-Secure: https://www.f-secure.com/fi_FI/web/landing/f-secure

Rapid Detection Service: https://www.f-secure.com/fi_FI/web/business_fi/rapid-detection-service

PHP:n ja MySQLin yhdistäminen: http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

WordPress asennus: https://tuomassippola.wordpress.com/2014/03/09/wordpressin-asennus/

WordPress asennus: https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-with-lamp-on-ubuntu-16-04

 

Muuta

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Linux Palvelimet Tehtävä 4

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

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.

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.

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.

R) Julkinen virtuaalipalvelin (VPS)

Aloitin tehtävän 22.9.2017 klo 15.35.

Tarkoituksena on ottaa käyttöön oma virtuaalipalvelin Linux-käyttöjärjestelmällä. Palvelimen tietoturva varmistetaan konfiguroimalla ja käynnistämällä palomuuri sekä luodaan uusi käyttäjä.

Valitaan virtuaalipalvelimen tarjoaksi DigitalOcean, koska opiskelijalle se on edullisin. DigitalOcean muutenkin vaikuttaa helppokäyttöiseltä ja luotettavalta palvelulta. Opiskelija saa 50$ aloitusrahaa DigitalOcean -palveluun GitHub Student Developer Pack -avulla.

Virtuaalipalvelimen luonti

Ensimmäiseksi tulee rekisteröityä DigitalOcean -palveluun, jotta voidaan luoda uusi virtualipalvelin. Rekisteröintiin tarvitaan sähköpostiosoitteen, tiedot itsestäsi ja luottokortin tiedot. Rekisteröinnin jälkeen luodaan virtuaalipalvelin (Droplet):

digitalocean

Valitaan käyttöjärjestelmäksi Ubuntun 16.04.3 x64 versio. Palvelimen tehovaatimuksiksi valittiin 10$ kuussa maksava palvelin, koska halvemmalla palvelimella keskusmuistin määrä jää erittäin pieneksi, mikä voi aiheuttaa ongelmia. Kalliimmille palvelimille ei ole tällä hetkellä tarvetta (palvelimen tehoja voi myöhemmin muuttaa paremmiksi, jos halutaan).

digitalocean1.jpg

Palvelimen sijainnissa tulee ottaa huomioon, että missä päin suurin osa palvelimen asiakkaista ottaa yhteyttä palvelimeen. Lisäksi kyseisen maan lait, missä palvelin sijaitsee tulee ottaa huomioon, koska kussakin maassa on omat lainsa ja ne vaikuttavat palvelimeen. Valitaan tässä tapauksessa palvelimen sijainniksi Frankfurt, koska oletaan, että asiakkaat sijaitsevat Euroopassa. Lopussa valitaan palvelimien määrä (1) sekä annetaan palvelimelle kuvaava nimi ja luodaan palvelin (Create). Mitään muita lisäpalveluita ei valittu. Luonnin jälkeen nähdään luotu palvelin DigitalOceanissa ja sen IP-osoite, jota tarvitaan palvelimen yhteydenottoon.

Kun palvelin on luotu, käyttäjä saa sähköpostiin ilmoituksen palvelimen luonnista sekä palvelimen salasanan root-käyttäjälle. Palvelimeen otetaan yhteyttä SSH-yhteydellä. SSH-yhteyttä käytetään Linux-käyttöjärjestelmässä komentokehotteen (terminaali) kautta.

Palvelimen konfigurointi

Avataan Terminaali ja kirjaudutaan palvelimelle:

$ ssh root@”palvelimenIP”

Kirjaumisvaiheessa kysytään root-käyttäjän salasanaa, joka on lähetetty sähköpostiin palvelimen luonnin yhteydessä. Annetaan sen jälkeen uusi vahva salasana, joka todella vaikea murtaa.

Sallitaan seuraavaksi SSH – ja HTTP -yhteydet palomuurin läpi sekä käynnistetään palomuuri:

$ sudo ufw allow 22/tcp

$ sudo ufw allow 80/tcp

$ sudo ufw enable

Seuraavaksi luodaan uusi käyttäjä, jolle annetaan kaikki oikeudet:

$ sudo adduser markus   || Luotiin käyttäjä markus ja annetaan VAHVA SALASANA!

$ sudo adduser markus sudo   || Lisättiin käyttäjä ryhmään sudo

$ sudo adduser markus adm    || Lisättiin käyttäjä ryhmään adm

$ sudo adduser markus admin     || Lisättiin käyttäjä ryhmään admin

Testataan seuraavaksi luotua käyttäjää. Avataan toinen terminaali ja jätetään root-tunnuksilla oleva terminaali auki mahdollisten vikojen korjaamiseksi mikäli niitä esiintyy. Kun ollaan varmoja, että luotu käyttäjä toimii oikein, voidaan lukita root-käyttäjä ja käytetään jatkossa vain luotua käyttäjää.

$ ssh markus@”palvelimenIP”     || Kirjaudutaan palvelimelle luodulla käyttäjällä ja annetaan käyttäjän salasana

$ sudo apt-get update       || Testataan käyttäjän sudo-oikeuksia päivitysten hakemisella

sshtest.jpg

Continue reading “Linux Palvelimet Tehtävä 4”

Linux Palvelimet Tehtävä 3

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Tehtävänanto:

Tämä h3 tehtävä on päivitetty siten, että voit ratkoa tehtäviä valintasi mukaan LAMP:illa, Python Flask + Postgrella tai jollain muulla valitsemallasi kehikolla. Helppoja rivejä opetetuilla tunnin aiheilla voisi olla esim a-b-i tai a-b-h. Ja guruille tässä on paljon haastavia vapaaehtoisia tehtäviä.

a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla. Tämä a-kohta on vaihdettu.

b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit. Tee jokin seuraavista (yksi riittää, useampi vapaaehtoisena lisätehtävänä):

c) Tee virhe weppipalvelimella ajettavaan koodiin (esim PHP tai Python), etsi se lokista ja analysoi tuo lokirivi

d) Tee virhe johonkin Apachen asetustiedostoon, etsi ja analysoi tuo rivi. Etsimiseen sopivat esimerkiksi Apachen omat lokit, syslog sekä ‘apache2ctl configtest’.

e) Asenna ja kokeile PhpMyAdmin:a tai jotain muuta valmista weppiliittymää tietokantojen hallinnointiin.

f) Tee palvelimella ajettava weppiohjelma, joka tekee käyttäjälle jonkin yksinkertaisen laskun (esim. painoindeksi BMI)

g) Tee palvelimella ajettava weppiohjelma, joka käyttää tietokantaa. Voit tehdä jonkin yksinkertaisen CRUD-ohjelman, esimerkiksi TODO-listan

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).

i) Kuinka monta eri HTTP Status:ta (200, 404, 500…) saat aiheutettua lokeihin? Selitä, miten aiheutit tilanteet ja analysoi yksi rivi kustakin statuksesta.

j) Asenna LAMP (Linux, Apache, MySQL, PHP). Testaa kunkin komponentin toiminta. Testaa lopuksi kokonaisuus. (Voit aloittaa tilanteesta, jossa Linux-käyttöjärjestelmä on jo asennettu, mutta ei muita (AMP) osia.

k) Kokeile jotain Flaskin uutta ominaisuutta flask-testipalvelimessa. Voit kokeilla esim. muotteja (templates), tietokantaa tai syötteiden ottamista lomakkeilta (forms).

l) Asenna Python Flask + PostgreSQL + Apache mod WSGI. Testaa kunkin komponentin toiminta. Testaa lopuksi kokonaisuus. (vaikea)

 

A) Apachen asennus ja kotisivujen toimivuus

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

Aloitin tehtävän 9.9.2017 klo 17.20.

Ensimmäiseksi avataan terminaali (CTRL + ALT + T) ja päivitetään saatavilla olevat paketit komennolla sudo apt-get update.

Päivitysten jälkeen asensin Apache 2 -demonin komennolla sudo apt-get install -y apache2.

apache2.jpg

Asennus onnistui ja sen voi vielä testata menemällä omalle serverille, joka toimii nyt omalla koneella. Tein näin eli avataan selain Xubuntun valikosta ja laitoin osoiteeksi: http://localhost

Localhostiin voi myös surffata koneen IP-osoitteen avulla. IP-osoitteen voi selvittää terminaalissa komennolla hostname -I

Kyseisen sivu avautui, joka tarkoittaa onnistunutta Apache 2 palvelimen asennusta.

ipworks.jpg

Seuraavaksi voidaan ryhtyä tekemään kotisivuja. Nettisivuille tulee tehdä oma kansio kotihakemistoon, josta Apache 2 demoni osaa nettisivut hakea. Katsoin missä hakemistossa sijaitsin komennolla pwd

/home/markus

Olin oikeassa hakemistossa jo valmiiksi. Oikea hakemisto, johon nettisivut luodaan on siis: /home/”käyttäjätunnus”

Loin kansion komennolla: mkdir public_html

HUOM! Kansion nimi on oltava nimenomaan public_html, koska kotisivut on määritetty toimimaan public_html -kansiosta. Millään muulla nimellä kotisivut eivät toimi.

Menin luotuun kansioon komennolla cd public_html ja loin sinne html-tiedoston komennolla nano index.html

indexhtmlfile

Kirjoitin tiedostoon testimielessä tekstiä, jotta saadaan selville, että toimiiko kotisivut. Tiedosto tallennetaan CTRL + X, Y, ENTER yhdistelmällä.

Seuraaksi tulee antaa käyttäjälle lupa pitää nettisivuja omassa kotihakemistossaan. Tämä tehdään apache2 -kansiossa. Menin kyseiseen kansioon komennolla: cd /var/log/apache2

Annoin siellä komennon: sudo a2enmod userdir

Sen jälkeen on käynnistettävä apache2 -demoni uudelleen, koska muuten muutokset eivät tule voimaan.

Apache käynnistetään uudestaan komennolla: sudo service apache2 restart

Katsotaan vielä käyttänimi komennolla whoamiVastaukseksi tuli markus.

Nyt voidaan surffata kyseisen käyttäjän kotisivuille ja katsoa toimiiko ne. Selaimeen kirjoitin osoitteen http://localhost/~markus (tai terminaalissa firefox http://localhost/~markus)

Kyseisen teksti, jonka kirjoitin index.html -tiedostoon näkyy kotisivuilla, joten kotisivuni toimivat!

 

works1.jpg

Nettisivu toimimaan osoitteesta example.com/~markus

Seuraavaksi muokkasin apache2 asetuksia, jotta saadaan osoitteeksi example.com~markus. Siirryn kyseiseen hakemistoon, jossa asetuksia voi muokata:

cd /etc/apache2/sites-available

Listasin tiedostot: ls

Kansiossa on kaksi tekstitiedostoa “000-default.conf” ja “default-ssl.conf”. Avasin komennolla sudo nano 000-defualt.conf ensimmäisenä olevan tiedoston. Tiedostosta etsin kohdan #ServerName http://www.example.com ja lisäsin sen alapuolelle ServerAlias example.com. Poistin myös risuaidan ServerNamen edestä. Tallensin tiedoston: CTRL + X, Y.

serveraliasname.jpg

Seuraavaksi menin muokaamaan hosts tekstitiedostoa komennolla: cd/etc ja sudoedit hosts. Lisäsin tekstitiedoston kahden ensimmäisen lauseen jälkeen lauseet “127.0.0.1 http://www.example.com ja “127.0.0.1 example.com”.

hostsconfigapache.jpg

Käynnistin apache2 -demonin uudelleen komennolla sudo service apache2 restart, jonka jälkeen nettisivut toimivat nyt osoitteella example.com~markus.

Tämän jälkeen surffaan osoitteeseen example.com~markus, jossa näkyy luotu testisivu. Example.com siis toimii oikein!

examplecom.jpg

 

Päätin työvaiheen klo 18.35.

 

B) Esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta Apachen lokissa

Aloitin työvaiheen klo 18.35.

Lokitiedot löytyvät apache2 -hakemistossa. Polku on /var/log/apache2Olin valmiiksi jo kyseisessä hakemistossa. Listasin tiedostot komennolla: ls

Hakemistossa on kolme eri lokitiedostoa: access.log, error.log ja other_vhosts_access.log.

Tarkastelin aluksi access.logia ja onnistunutta sivulatausta (HTTP status koodi 200).

Tyhjennän ensiksi selaimen välimuistin, jotta saadaan juuri tuo kyseinen status koodi 200. Muuten onnistuneessa sivulatauksessa koodiksi tulee 304, koska selain hakee sivuston suoraan välimuistista (Firefoxin välimuistin tyhjentäminen).

Seurasin access.login lokitietoja reaaliaikaisesti komennolla: tail -F access.log lokin seuraamisen voi lopettaa CTRL + C -näppäimillä.

Tässä vaiheessa olin jo tyhjentänyt selaimen välimuistin. Laitoin selaimen ja terminaalin vierekkäin näytölle, jotta näin mitä lokissa tapahtuu.

accesslog.jpg

Latasin nyt kotisivuni uudelleen (localhost/~markus). Sain seuraavan lokitiedon terminaaliin:

127.0.0.1 – – [09/Sep/2017:18:53:11 +0300] “GET /~markus/ HTTP/1.1” 200 311 “-” “Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:55.0) Gecko/20100101 Firefox/55.0”

Analysoidaan lokitietoa (ohjeet):

  • 127.0.0.1 Käyttäjän IP-osoite, josta haku on tehty. (tässä tapauksessa antaa localhost -osoiteen, koska kokeiltiin koneelta, johon palvelin on asennettu)
  • [09/Sep/2017:18:53:11 +0300]  Aika, jolloin haku tehtiin [pvm/kk/vuosi: (koneen) kellon aika + aikavyöhyke].
  • “GET /~markus/ HTTP/1.1” 200 311  Ensimmäisenä on metodi, jota käyttäjä käytti, GET eli jotain haettiin. Seuraavaksi on resurssi, jota käyttäjä pyysi haussa eli ~markus. HTTP/1.1 tarkoittaa käytettyä protokollaa. Numero 200 tarkoittaa HTTP status koodia, jonka serveri lähettää takaisin käyttäjälleen. Kyseessä on onnistunut sivunlataus. (200 on onnistunut lataus, koodilla numerolla 3 alkavat ovat uudelleenohjauksia, 4 alkavat ovat asiakkaan aiheuttamia virhetä ja 5 alkavat ovat serverin virheitä). Lopussa numero 311 (HTTP status koodin jälkeen) tarkoittaa sivuston kokoa tavuina, joka on käyttäjälle tullut.
  • “Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:55.0) Gecko/20100101 Firefox/55.0”  Loppuosa on ilmeisesti käyttäjän tietoihin perustuvaa. Ainakin selviksi saa selaimen: (Mozilla Firefox) ja käyttöjärjestelmän: Ubuntu; Linux. 

Lopetin työvaiheen klo 19.30.

Siirrytään seuraavaksi tutkimaan virheellistä sivustonlatausta (koodi 404).

Epäonnistuneen sivustonlatauksen testaamiseksi kokeilin hakea sivustoa, jota ei ole olemassa. Kirjoitin selaimen osoitteeksi: http://localhost/~make (oikea osoite on siis muuten sama mutta ~markus)

Sivusto ilmoitti, että sivua ei löyty (404) sekä lokiin ilmestyi myös tietoa:

error404.jpg

127.0.0.1 – – [09/Sep/2017:19:36:33 +0300] “GET /~make HTTP/1.1” 404 495 “-” “Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:55.0) Gecko/20100101 Firefox/55.0”

Analysoidaan rivi lokista:

  • 127.0.0.1 Käyttäjän IP-osoite, josta haku on tehty.
  • [09/Sep/2017:19:36:33 +0300] – pmv/kk/vuosi:koneen kellonaika + aikavyöhyke.
  • “GET /~make HTTP/1.1” 404 495 – Nähdään, että hakumetodi on GET ja ilmenee, että on haettu sivustoa nimellä ~make. Tämä on virheellinen sivu, koska oikea on ~markus. HTTP status koodi 404 ilmoittaakin, että sivustoa ei löydy. Numero 495 lopussa on sivuston koko tavuina.
  • “Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:55.0) Gecko/20100101 Firefox/55.0” – Käyttäjän tietoja.

Lopetin työvaiheen klo 19.53.

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)

Aloitin työvaiheen klo 20.01.

Luodaan uusi VirtualHost. VirtualHost luodaan /etc/apache2/sites-available -hakemistoon. Menin kyseiseen hakemistoon komennolla cd /etc/apache2/sites-available.

Luodaan uusi VirtualHost komennolla: sudoedit /etc/apache2/sites-available/markus.conf

Tiedoston nimeksi tuli siis markus.conf

documentRoot

Tiedostoon tulee antaa oikeudet, jotta sivuja voi muokata normaalit käyttäjät. Löysin apua tähän Tero Karvisen sivuilta. Toimiakseen alla ovat tiedot, jotka tarvitaan.

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

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

  • # -merkillä alkavat rivit ovat kommentteja.
  • DocumentRoot on polku kansioon missä kotisivut sijaitsevat (DocumentRoot /home/markus/public_html/)
  • Require all granted” tarkoittaa, että Apache antaa oikeudet muokata tiedostoja. Ilman sitä tulee 403 Forbidden HTTP status.

sudoedit

 

Tallennetaan tiedosto: CTRL + X, Y, ENTER.

Seuraavaksi otetaan käyttöön juuri luotu VirtualHost ja poistetaan Default (eli Apache2 Default Page) pois käytöstä. Komennot näihin ovat:

sudo a2ensite markus.conf

sudo a2dissite 000-default.conf

Lisäksi demoni tulee käynnistää uudelleen ennen kuin muutokset tulevat voimaan: sudo service apache2 restart

Etusivulla (localhost) tulisi olla nyt luotu index.html -tiedoston sivu näkyvissä. Muutenhan sivulla olisi Apache2 Default Page -sivusto. Kirjoitin selaimen osoiteeksi pelkästään localhost

Katsotaan onnistuttiinko:

localhostworks

 

Sivusto aukesi oikein! Localhostissa (pääsivu) näkyy nyt tekemäni index.html -sivu. Sivustoa voi myös muokata tavallinen käyttäjä, koska annoin siihen oikeudet markus.conf -tiedostossa.

Lopetin tehtävän klo 20.58.

 

Lähteet

Apache 2 asennusohjeet: https://httpd.apache.org/docs/2.4/howto/public_html.html

Lokitietoja: https://httpd.apache.org/docs/2.4/logs.html

Uusi Default Website (Apache2): http://terokarvinen.com/2016/new-default-website-with-apache2-show-your-homepage-at-top-of-example-com-no-tilde

 

MUUTA

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Linux Palvelimet Tehtävä 2

Tehtävänanto

Tehtävänanto löytyy osoitteesta: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

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

b) Vapaaehtoinen kohta, ei ole opetettu vielä: Asenna SSH-demoni. Kokeile omalla ssh-palvelimellasi jotain seuraavista: ssh-copy-id, sshfs, scp tai git. (Helpoin lienee scp: ‘scp foo.txt tero@example.com:’)

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

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

e) Opettele ulkoa ja harjoittele tärkeimmät komennot (tätä “opettele ulkoa” alakohtaa ei tarvitse raportoida):

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

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

 

a) Onnistunut ja epäonnistunut lokitapahtuma

Käytössäni on läppäri Lenovo ThinkPad T60p, jossa on Xubuntu -käyttöjärjestelmäversio 16.04 LTS.

Aloitin tehtävän 2.9.2017 klo 18.35.

Tarkoituksena on aiheuttaa kaksi tapahtumaa lokiin, joka löytyy juurihakemistosta. Toisen on oltava onnistunut ja toisen epäonnistunut tapahtuma. Avasin Xubuntu käyttöjärjestelmästä Terminal Emulatorin, josta voidaan antaa komentoja koneelle, jolloin myös lokiin saadaan ilmoituksia.

Terminaalissa pääseen juureen antamalla komennon “cd ..“, joka takoittaa kansion vaihtamista (“change directory“). Komento “ls” (list files) listaa hakemistot mihin voi seuraavaksi liikkua.

terminal

Tarkoituksena on löytää lokihakemisto. Hakemisto löytyy juurihakemistosta. Lokihakemisto sijaitsee hakemistossa /var/log. Menin tähän kyseiseen hakemistoon ja siellä voin tarkastella lokitapahtumia. Löysin netistä ohjeet, joista saa selville mihin hakemistoon pitää mennä.  https://www.linux.com/learn/sysadmin/viewing-linux-logs-command-line

te.jpg

Hakemistosta /var/log löytyy monia eri lokeja. Päätin tarkastella lokia syslog. Komennolla “sudo less syslogvoin tarkastella kyseistä lokia. Välilyönnillä voi lokia selata alaspäin. Jotta saan lokiin tapahtumia kokeilen esimerkiksi tietokoneellani Bluetooth -yhteyden laittamista päälle. Bluetooth yhteyden saa päälle käyttöjärjestelmästä käsin oikeasta yläkulmasta Bluetooth -kuvakkeesta. Laitettuani sen päälle saan lokiin tapahtumia:

te1

Tapahtumat, jotka koskee Bluetooth -yhteyden laittamista päälle alkavat ajasta Sep 2 16:09:28. Ensimmäinen tapahtuma on siis:

Sep 2 16:09:28 xubuntu dbus[1399]: [system] Activating service name=’org.blueman.Mechanism’ (using servicehelper)

Ensimmäinen merkintä lokitapahtumassa alkaa päivämäärällä, kellonajalla ja tietokoneen nimellä, joka on tässä tapauksessa xubuntu. Lokitapahtumasta saa selville, että järjestelmä aktivoi palvelun, joka liittyy Bluetooth -yhteyteen (blueman.Mechanism). Pelkän palvelun kytkemisestä päälle saadaan iso lista lokitapahtumia, joita voi analysoida yksityiskohtaisesti.  Viimeiset lokitapahtumat kertovat onnistuneesta tapahtumasta:

te2.jpg

Viesti completed viimeisellä rivillä viittaa onnistuneeseen palvelun käyttöönottoon. Lokitapahtumat voi sulkea kirjaimella Q eli Quit.

Saadakseni epäonnistuneen tapahtuman lokiin kokeilen yhdistää langattomaan verkkoon väärällä salasanalla. Katson mitä syslogiin on ilmestynyt:

TE.jpg

Lokista löytyy nyt paljon Error -tapahtumia, mikä viittaa siis siihen että jotakin on mennyt pieleen:

Sep 2 16:59:49 xubuntu ureadahead[1120]: ureadahead:/usr/lib/python3/dist-packages/apt/progress/__pycache__/base.cpython-35.pyc: Error retrieving chunk extents: Operation not supported

Viestissä ilmenee polku, josta tieto on peräisin: ureadahead:/usr/lib/python3/dist-packages/apt/progress/__pycache__/base.cpython-35.pyc:.

Viestissä kerrotaan, että jotain tiedostoja ei pystytä hakemaan: “Error retrieving chunk extents: Operation not supportedeikä toimintoa tueta. Tämä viittaisi siihen, että väärän verkon salasanan takia joitakin tietoja ei pystytä hakea.

Päätin työvaiheen klo 20.15.

c) Unelmien apt-get -komento

Aloitin työvaiheen klo 20.45

Tarkoituksena on asentaa kaikki suosikkiohjelmat yhdellä komennolla. Ohjelmat jotka tulevat mieleeni heti ovat: GIMP, VLC, VirtualBox ja Thunderbird.

Asentaakseni nämä ohjelmat avasin Terminal Emulatorin ja annoin komennon: “sudo apt-get updatealuksi päivitysten asentamiseksi. Seuraavaksi voin asentaa kaikki haluamani ohjelmat kerralla. Komento “sudo apt-get install gimp vlc virtualbox thunderbirdasentaa kaikki haluamani ohjelmat. Komentoon voi tietenkin lisätä enemmän ohjelmia, mutta minulle riittävät aluksi nämä.

termi.jpg

Päätin työvaiheen klo 21.00.

 

D) Kolme komentorivillä toimivaa ohjelmaa

Aloitin työvaiheen klo 21.00.

En ole aikaisemmin kokeillut terminaalissa toimivia ohjelmia, joten hain netistä tietoa mitä ohjelmia terminaaliin voi asentaa: https://www.cyberciti.biz/open-source/best-terminal-applications-for-linux-unix-macosx/. Asennan tekstieditori ohjelman vim.

Komento “sudo apt-get install vimasentaa ohjelman. Ohjelmaa pääsee käyttämään kun antaa komennon “vim“. Aukeaa kyseinen ikkuna terminaaliin:

vim.jpg

Ohjelman voi lopettaa kirjoittamalla “q” ja Enter. Ohjelmaan voi kirjoittaa tekstiä ja tallentaa sitä.

Toinen ohjelma, jonka asensin on videosoitin mplayer. Asennetaan ohjelma: “sudo apt-get install mplayer“. Ohjelmaa käytetään etsimällä video jota halutaan katsoa. Videoni sijaisee kansiossa Downloads joten menin kyseiseen kansioon ja annoin komennon: “mplayer SampleVideo_1280x720_2mb.mp4“. Komento on siis “mplayer [videon nimi]. Video avautuu terminaalin viereen sekä videon asetuksia voi muokata terminaalissa:

video.jpg

Kolmas ohjelma, jonka asensin on tiedostonlataustyökalu wget. Ohjelmalla voi esimerkiksi ladata nettisivuja. Komento, joka tallentaa nettisivuja on wget “[URL-osoite]. Kokeilin tallentaa Tero Karvisen nettisivut: “wget terokarvinen.com“.

wget.jpg

Komento tallensi nettisivun Home -kansioon.

Päätin tehtävän klo 22.00.

 

Lähteet:

Tehtävänanto: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Linuxin logit: https://www.linux.com/learn/sysadmin/viewing-linux-logs-command-line

Vim ohjeita: https://www.linux.com/learn/vim-101-beginners-guide-vim

Wget ohjeita: https://www.lifewire.com/uses-of-command-wget-2201085

Mplayer ohjeita: https://linuxacademy.com/blog/linux/tutorial-playing-around-with-mplayer/

Linux komentorivillä toimivia ohjelmia: https://www.cyberciti.biz/open-source/best-terminal-applications-for-linux-unix-macosx/

 

MUUTA

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

 

 

 

 

 

 

Linux Palvelimet Tehtävä 1

Tehtävänanto

a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa. Tämä kohta ei edellytä asentamista – jos kuitenkin asennat, ota ensin varmuuskopiot.

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.

f) Vapaaehtoinen lisätehtävä: varmuuskopioi tiedostosi (voit käyttää esimerkiksi ulkoista USB-levyä)

a) Linux-livetikun teko

Heti ensimmäiseksi menen Tero Karvisen kotisivulle katsomaan kurssin aikataulua ja läksyjä (http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op). Linux-livetikun tekemiseen tarvitaan tietysti Linux käyttöjärjestelmä ja muistitikku. Tässä tapauksessa käyttöjärjestelmäversiona on Xubuntu 16.04 LTS. Kyseisen käyttöjärjestelmän levykuvan xubuntu-16.04.3-desktop-amd64.iso löytää Tero Karvisen kotisivuilta Linux palvelimet -kurssin aikatauluista. Lataan tiedoston ja samalla varmuuskopioin omat tiedostoni ulkoiselle kovalevylle tietokoneeltani kaiken varalta. Läppärini on Asus X555LJ, jossa on Windows 10 käyttöjärjestelmä. Menen varmuuskopioinnin asetuksiin ja varmuuskopioin tiedostoni ulkoiselle kovalevylle, jossa on tilaa 1 TB.

2017-08-24

Varmuuskopioituani tiedostot käyn lataamassa UNetbootin -sovelluksen Linux livetikkua varten. Kiinnitän muistitikun koneeseeni. Muistitikkuni on 32 GB suuruinen, joten Xubuntu mahtuu siihen hyvin, koska se vie tilaa vain noin 1,5 GB. Teron kotisivuilta löytyy linkki UNetbootin kotisivuille. Lataan sivulta UNetbootin Windowsille, koska tietokoneessani on Windows käyttöjärjestelmä. Asennettuani UNetbootinin aukeaa kyseinen ikkuna:

2017-08-24 (1)

Valitsen UNetbootin sovelluksesta levykuvan, jonka latasin: xubuntu-16.04.3-desktop-amd64.iso. USB-asema oli automaattisesti määritetty muistitikulle. Klikkasin OK ja asennus alkoi. Kun levykuvan asennus muistitikulle oli valmis tuli seuraavanlainen ikkuna:

2017-08-24 (2).jpg

Koneen voi nyt käynnistää uudelleen ja valita BIOS boot menusta USB boottauksen. Boot menuun pääsee Windows 10:stä valitsemalla asetuksista käynnistyksen lisäasetukset. Ohje kuinka tämä tehdään löytyy sivulta: https://www.howtogeek.com/126016/three-ways-to-access-the-windows-8-boot-options-menu/

Ohje löytyy sivun loppupuoliskolta. Ohessa myös kuva, josta asetus löytyy.

Screenshot_2017-08-24_15-49-38.jpg

Boot menusta valitsin käynnistys tavaksi USB-muistitikun (Käytä laitetta).

20170824_175417.jpg

Hetken kuluttua tuli lista vaihtoehtoja:

20170824_182605.jpg

Valitsin Try Xubuntu without installing -vaihtoehdon, koska käyttöjärjestelmää voi käyttää samalla kun esimerkiksi asentaisi käyttöjärjestelmän pysyvästi koneella. Tällä hetkellähän Xubuntu toimii muistitikun kautta. Xubuntu käynnistyi onnistuneesti, mutta näppäimistön jouduin vaihtamaan suomenkieliseksi.

Screenshot_2017-08-26_13-37-40.jpg

Kirjoitin Xubuntun hakukenttään Keyboard ja vaihdoin sieltä Layoutkohdasta Keyboard layout -kohtaan Finnish.

Linux-livetikku on nyt tehty ja lisäksi testattu koneella toimivaksi.

b) Koneen rauta

Valitsin Xubuntun valikosta (vasen yläkulma) Terminal Emulatorin. Kirjoitan siihen “sudo lshw -short -sanitize“. Komento listaa kaikki koneen tiedot.

cmd.jpg

c) Kolmen ohjelman asennus

Tero Karvisen kotisivuilta http://terokarvinen.com/2008/commands-for-admin-4 löytyy komentoja, joilla ohjelmia voidaan asentaa. Ohjelman asennukseen käytettävä komento on: “$ sudo apt-get install ‘ohjelma‘ “. Avataan Terminal Emulator ja kokeillaan komentoa. Asennan kuvankäsittelysovelluksen GIMP, joten komento näin ollen on: “$ sudo apt-get install gimp“. Kone vielä kysyy halutaanko varmasti jatkaa ohjelman asennusta:Do you want to continue? [Y/n]“. Kirjoitetaan y eli yes ja Enter. Ohjelma asentui onnistuneesti sekä se toimii.

Screenshot_2017-08-26_13-41-32.jpg

Seuraavaksi asennan VirtualBox -ohjelman, jolla voi luoda oman virtuaalikoneen. Komento on: “$ sudo apt-get install virtualbox“.

Screenshot_2017-08-26_13-51-46.jpg

Kolmas ohjelma, jonka asennan on mediasoitin VLC. Ensiksi täytyy hakea päivitykset, jotta ohjelman saa asennettua. Komento päivityksille on sudo apt-get update“, jonka jälkeen komento “$ sudo apt-get install vlcasentaa onnistuneesti VLC Media Player -ohjelman.

vlc.jpg

d) Lisenssit asennetuissa ohjelmissa

Kaikki asentamani ohjelmat (GIMP, VirtualBox ja VLC) käyttävät GNU General Public Lisenssejä eli niitä voi kuka tahansa käyttää, kopioida, muuttaa ja jakaa edelleen. Myös lähdekoodin pitää olla löydettävissä ja sitä voi tarkastella.

Käyttämiäni ohjelmia ja niitä vastaavia vapaita Linux-ohjelmia:

Spotify – musiikkisoitin – Myös Linuxille

WhatsApp – viestisovellus – Myös Linuxille

MS Office – tuottavuustyökalut – LibreOffice

Google Chrome – Web-selain – Chromium

Dropbox – pilvitallennus – Myös Linuxille

Freedome – VPN – Bitmask

GIMP – kuvankäsittely – Myös Linuxille

Outlook – sähköpostiohjelma – Thunderbird

 

Lähteet

Tehtävänanto: http://terokarvinen.com/2017/aikataulu-linux-palvelimet-ict4tn021-4-ti-ja-5-to-alkusyksy-2017-5-op

Levykuva: xubuntu-16.04.3-desktop-amd64.iso

Raportointiohje: http://terokarvinen.com/2006/raportin-kirjoittaminen-4

Xubuntu: https://xubuntu.org/

UNetbootin: https://unetbootin.github.io/

GNU GPL lisenssi: https://www.gnu.org/philosophy/free-sw.html

 

MUUTA

Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html