Vanhan laboratorioharjoituksen teko

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Tehtävän teko aloitettu 10.03.2019 noin klo 20.00.

Tehtävän ohjeet löytyy tästä linkistä, sekä alapuolelta:

## LAMP
Asenna LAMP (Linux, Apache, MySQL, PHP) ja testaa sen toiminta.
## Kuormitusta
Kerää kuormitustietoja koneelta koko harjoituksen ajalta. Analysoi tiedot tiiviisti aivan
harjoituksen lopuksi.
## Sorkka ja Rauta Oy:n CRM
Tarvitsemme asiakastietokannan. Tee tietokanta, jossa on seuraavat asiakkaat:
- Kulta ja Kaivos ky
- Piilosana ry
- MetalliMake
Tee PHP-ohjelma, joka lukee nämä tietueet. Laita tämä sivu näkyviin osoitteessa
http://sorkkacrm.example.com
Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla. Tässä harjoituksessa sivulle
pääsyä ei tarvitse rajoittaa salasanalla, vaan sen tule näkyä kaikkialle nettiin.
## Rosvoja porteilla
Onko koneellemme yritetty murtautua? (Kyllä). Etsi omalta paikalliselta koneeltasi todisteet
tapauksesta, jossa koneellesi on yritetty murtatua. Analysoi tiiviisti tähän liittyvät tiedot.
## Sorkan sivut
Tee staattinen HTML5 weppisivu, jonka otsikkona (molemmat title ja h1) on "Sorkka ja Rauta Oy".
Laita sivu näkyviin osoitteeseen http://rauta.example.com/ . Voit simuloida nimipalvelun toimintaa
hosts-tiedoston avulla.
## Einarin esimerkki
Einari Vähä-aho ryhtyy koodaamaan. Tee einarille käyttäjä 'einari'.
Tee einarille esimerkkikotisivu PHP:lla ja laita se näkymään osoitteessa http://localhost/~einari/ .
Esimerkkisivun pitää tulostaa "Einari" käyttäen PHP:n print-funktiota.
[Ohje päivittyi harjoituksen edetessä]

Alotus

$ setxkbmap fi
$ sudo apt update
Tulimuuri & ssh
ssh asennus:
$ sudo apt install openssh-server
Jos tarvitaan ssh avaa ensin portti:
$ sudo ufw allow 22/tcp
Tulimuuri päälle:
$ sudo ufw enable
$ sudo ufw status

LAMP

Linux on valmiiksi asennettu.

Apache
$ sudo apt-get install apache2
Korvataan apachen ”testi” sivu:
$ echo ”Default”|sudo tee /var/www/html/index.html

MariaDB
$ sudo apt install mariadb-client
$ sudo apt install mariadb-server
Jos php:llä pitää saada tietoa ulos/ vietyä MariaDB:seen:
$ sudo apt-get install php-mysql
$ sudo mysql_secure_installation

Set root password? [Y/n]
New password:
Re-enter new password:
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

PHP
$ sudo apt-get install php libapache2-mod-php

Kuormitusseuranta

Kuormituksen seuraaminen jäi tekemättä tätä vanhaa laboratorioharjoitusta tehdessä, mutta olen tehnyt aikaisemmin ohjeet, miten kuormitustietoja kerätään.

Sorkka ja Rauta Oy:n CRM MariaDB osuus

Tietokanta
Kirjaudu sisään tietokantaan:
$ sudo mariadb -u root
Tee kanta:
CREATE DATABASE demo;
Käytä juuri tehtyä DB:tä:
USE demo;
Tee asiakas taulu:
CREATE TABLE asiakkaat (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(1024));
Katso taulut:
SHOW TABLES;
Lisää tauluun dataa:
INSERT INTO asiakkaat (name) VALUES (”Kulta ja Kaivos ky”);
INSERT INTO asiakkaat (name) VALUES (”Piilosana ry”);
INSERT INTO asiakkaat (name) VALUES (”MetalliMake”);
Katso taulun sisältö:
SELECT * FROM asiakkaat
Tee käyttäjä ja annan sille oikeudet DB:seen.
GRANT ALL ON demo.* to demo@localhost IDENTIFIED BY ’salasana’
Selvyyden vuoksi edellisen lauseen ensimmäinen demo = DB ja demo@localhost on käyttäjä nimeltä demo.
Kirjadu ulos root tunnuksilta:
exit
Kirjaudu sisään demo käyttäjänä:
$ mariadb -u demo -p
Käytä taulua demo:
USE demo;
Katso asiakas taulua:
SELECT * FROM asiakkaat;
Lisää uusi asiakas:
INSERT INTO asiakkaat (name) VALUES (”testi asiakas”);
Poistu MariaDB:stä:
exit

PHP ohjelma tietokannan lukuun

<!DOCTYPE HTML>
<html>
<body>
<?php

$hostname = "localhost";
$username = "demo";
$password = "salasana";
$db = "demo";

$dbconnect=mysqli_connect($hostname,$username,$password,$db);

if ($dbconnect->connect_error) {
  die("Database connection failed: " . $dbconnect->connect_error);
}

?>

<table border="1" align="center">
<tr>
  <td>Asiakkaat</td>
</tr>

<?php

$query = mysqli_query($dbconnect, "SELECT * FROM asiakkaat")
   or die (mysqli_error($dbconnect));

while ($row = mysqli_fetch_array($query)) {
  echo
   "<tr>
    <td>{$row['name']}</td>
   </tr>\n";

}

?>
</table>
</body>
</html>

Sivun näkyviin laittaminen osoitteeseen http://sorkkacrm.example.com

Tee käyttäjän kotihakemistoon public_html kansio, jonka sisään sorkkacrm.example.com -kansio

$ sudoedit /etc/apache2/sites-available/sorkkacrm.example.com.conf
$ cat /etc/apache2/sites-available/sorkkacrm.example.com.conf

<VirtualHost *:80>
 ServerName sorkkacrm.example.com
 ServerAlias http://sorkkacrm.example.com
 DocumentRoot /home/käyttäjä/public_html/sorkkacrm.example.com
 <Directory /home/käyttäjä/public_html/sorkkacrm.example.com>
   Require all granted
 </Directory>
</VirtualHost>

Sivu käyntiin:
$ sudo a2ensite sorkkacrm.example.com
Mahdollisesti joudut stoppaamaan 000-default.conf tiedoston:
$ sudo a2dissite 000-default.conf
$ sudo systemctl restart apache2
Tämän lisäksi, koska sivustoa hostataan localhostissa joudutaan sivusto lisäämään myös hosts -tiedostoon:
$ sudoedit /etc/hosts
Hosts -tiedostoon lisätään seuraavaa:
127.0.1.1 sorkkacrm.example.com

PHP -testi sivun luonti:

<html>
 <head>
  <title>PHP test</title>
 </head>
 <body>
<?php print("testi");?>
 </body>
</html>

Rosvoja porteilla

En tehnyt harjoitukseen tätä osaa, koska olin jo aikasemmin katsellut tunkeutumistietoja ja kaikki hostaaminen tapahtui vain sisäisesti (ei näkynyt ulos verkkoon).
Tunkeutumis yrityksien seuraamisesta löydät ohjeet tästä.

Staattinen HTML 5 sivu

Sivusto tulee näkymään http://rauta.example.com/ ,joten tehdää kansio sitä varten public_html hakemiston sisään:
$ cd /home/käyttäjä/public_html
$ mkdir rauta.example.com
Seuraavaksi nanolla juuritehtyyn kansioon html sivusto:
$ nano index.html
Ja tähän index tiedostoon sisään koodi:

<!doctype html>
<html>
<head>
        <title>Sorkka ja Rauta Oy</title>
        <meta charset="utf-8" />
</head>
<body>
        <h1>Sorkka ja Rauta Oy</h1>
</body>
</html>

Sivun näkyviin laittaminen osoitteeseen http://rauta.example.com
Seuraavaan conffi tiedostoon lisätää VirtualHost asetukset:
$ sudoedit /etc/apache2/sites-available/rauta.example.com.conf
VirtualHost asetukset näyttää tältä:

<VirtualHost *:80>
 ServerName rauta.example.com
 ServerAlias http://rauta.example.com
 DocumentRoot /home/käyttäjä/public_html/rauta.example.com
 <Directory /home/käyttäjä/public_html/rauta.example.com>
   Require all granted
 </Directory>
</VirtualHost>

Sivu käyntiin:
$ sudo a2ensite rauta.example.com
Mahdollisesti joudut stoppaamaan 000-default.conf tiedoston:
$ sudo a2dissite 000-default.conf
$ sudo systemctl restart apache2

Tämän lisäksi, koska sivustoa hostataan localhostissa joudutaan sivusto lisäämään myös hosts -tiedostoon:
$ sudoedit /etc/hosts
Hosts -tiedostoon lisätään seuraavaa:
127.0.1.1 rauta.example.com

Einarin esimerkki

Käyttäjän luonti
$ sudo adduser testi
Tämä tekee kotikansiot, mutta ei anna esim sudo tai adm oikeuksia jos halutaan antaa kyseiset oikeudet:
$ sudo adduser testi sudo
$ sudo adduser testi adm
$ sudo adduser testi admin
Esimerkkisivun teko PHP:llä ja näkyviinlaitto
Avataan käyttäjille oikeudet hostata omassa kotihakemistossa verkkosivustoja:
$ sudo a2enmod userdir
$ sudo systemctl restart apache2
Tämän jälkeen pitäisi toimia osoitteessa:
http://vuorivirta.me/~käyttäjä/
Jotta php -sivujen hostaaminen onnistuu kotihakemistossa laitetaan toiminto päälle:
$ sudoedit /etc/apache2/mods-available/php7.0.conf
Kommentoi tiedoston lopusta lause.

Tehdään Einarille public_html kansio:
$ mkdir public_html
Tehdään php tiedosto:

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
<?php print("Einari");?>
 </body>
</html>

Tehtävän teko lopetettu 10.03.2019 noin klo 24.00, mutta jouduin seuraavana päivänä etsimään php-mariadb koodista virheitä ja tekemään index.php -tiedostoon korjauksia.

Tehtävän verkko osuuden lopputulos

Harjoitus 6

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Tehtävän teko aloitettu 03.03.2019 noin klo 20.15.

Alkutoimenpiteet

Aloitin ympäristöjen asennukset päivittämällä ensin pakettivarastot, sekä asentamalla päivitykset.

$ sudo apt-get update
$ sudo apt-get upgrade

Javan asennus

Käytetyt lähteet:
https://itsfoss.com/install-java-ubuntu/

Aloitin tarkastamalla, onko jo jokin versio javasta asennettuna:

$ java --version

Koska halusin asentaa default-jdk -paketin (automaattisesti uusin stable versio).

$ sudo apt-get install default-jdk

Asennuksen valmistuttua tarkistin
$ java -version
-komennolla asentuiko java oikein.

Java HelloWorld

Tein uuden tiedoston HelloWorld.java, johon lisäsin seuraavan koodin:

public class HelloWorld{
 public static void main(String[] args){
 System.out.println("Hello World");
 }
}

Seuraavaksi käänsin koodin:

$ javac HelloWorld.java

Tämän jälkeen ajoin koodin:

$ java HelloWorld

Koodi tulosti tekstin oikein.

java helloworld

Python3:n asennus

Tarkistin ensin onko Python jo asennettuna:

$ python3 --version

Koska minulla oli jo python asennettuna, en tehnyt asennusta uudelleen, mutta seuraavaksi on ohjeet miten asentaisit python3:n.
Lähde ohjeisiin, mitä noudatin.
Asennus:

$ sudo apt-get install python3.6

Tämän jälkeen testaisin viellä
$ python3 –version
-komennolla, toimiiko python3.

Python HelloWorld

Tein uuden tiedoston HelloWorld.py nanolla, johon lisäsin seuraavan koodin:

print("Hello World")

Tämän jälkeen ajoin koodin:

$ python3 HelloWorld.py

Ohjelman tulostus toimi odotetusti.

python helloworld

Bash

Bash on komentotulkki, joka on oletuksena suuressa osassa linux jakeluita (lähde).
Bash skriptauksee löytyy erittäin hyvä opas täältä, jota käytin tämän tehtävän tekoon.

Ensin tein HelloWorld -nimisen tiedoston, johon kirjoitin seuraavaa:

#!/bin/bash
echo "Hello World"

Selvitin tiedoston oikeudet ennen niiden muuttamista:

$ ls -l HelloWorld

Komento tulosti seuraavaa:
-rw-rw-r– 1 nikke nikke 32 Mar 3 20:21 HelloWorld

Tämän jälkeen tiedostoon pitää lisätä suoritus oikeudet:

$ chmod a+x HelloWorld

Tämä lisäsi kaikille ryhmille suoritusoikeudet.
Suoritusoikeuksista löytyy täältä kattavasti tietoa.
Tämän jälkeen suoritusoikeudet näytti tältä:
-rwxrwxr-x 1 nikke nikke 32 Mar 3 20:21 HelloWorld
Seuraavaksi testasin scriptin toiminnan:

$ bash HelloWorld

Scripti toimi odotetulla tavalla tulostaen ”Hello World”.
Tämän jälkeen laitoin scriptin toimimaan kaikille käyttäjille hakemistosta riippumatta komennolla:

$ sudo cp HelloWorld /usr/local/bin/
bash helloworld

Tehtävän teko lopetettu 03.03.2019 noin klo 22.30.

Harjoitus 5

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Tehtävien teko aloitettu 19.2.2019 noin klo 14.30

SSH-demonin asennus

Asennetaan shh demoni:
$ sudo apt install openssh-server
Ennen tulimuurin päälle laittoa, tehdään ssh:lle reikä:
$ sudo ufw allow 22/tcp

Tulimuurin aktivointi

Laitetaan tulimuuri päälle:
$ sudo ufw enable
Katsoin tulimuurin statuksen:
$ sudo ufw status

$ sudo ufw status

SSH Rsync tiedoston siirto

Siirsin tiedoston tälläkertaa Rsyncillä palvelimelle komennolla:

$ rsync -v -e ssh /home/nikke/rsynctesti.txt nikke@vuorivirta.me:/home/nikke/rsync
Rsync

SSH -kirjautumisen automatisointi julkisen avaimen menetelmällä

Automatisoin ssh -kirjautumisen keygen komennolla:
$ ssh-keygen
Tämän jälkeen pitää painaa kolme kertaa enter

Syötin seuraavan komennon viedäkseni juuri generoimani avaimen palvelimelle:
$ ssh-copy-id nikke@vuorivirta.me
Tämän jälkeen testasin avaimen toimintaa ottamalla ssh yhteyden palvelimelle, johon avaimen vein:
$ ssh nikke@vuorivirta.me
Kirjautuminen ilman salasanan syöttöä onnistui.

Sysstat -paketin asennus ja konfigurointi

Halusin asentaa sysstatin palvelimelle. Aloitin tehtävän googlettelemalla hyviä ohjeita, josta päädyin tähän.
Asensin sysstatin komennolla:
$ sudo apt-get install sysstat
Seuraavaksi laitoin sysstatin monitoroinnin päälle komennolla:
$ sudoedit /etc/default/sysstat
ja vaihdoin tiedoston lopusta ENABLED=”false” → ENABLED=”true”.
Tämän jälkeen laitoin sysstatin päälle:
$ sudo systemctl enable sysstat
Ja lopuksi käynnistin sysstatin uudelleen:
$ sudo systemctl start sysstat
Pienen hetken kuluttua tarkistin sar -komennolla toimiko sysstat oikein:
$ sar -u

$ sar -u

Jos haluat muuttaa sysstatin asetuksia, ne löytyvät /etc/sysstat/sysstat -tiedostosta.
Tehtävän teko keskeytetty 19.2.2019 klo 16.25

Sysstatin tarjoamien tietojen analysointia

Tehtävän tekoa jatkettu 24.2.2019 klo 19.50, kun sysstat oli kerännyt hyvän määrän lokia.

Sysstat tallentaa oletuksena lokit /var/log/sysstat -kansioon. Tämän hakemiston sar– tiedostot generoidaan jokaisen päivän lopussa ja tiedoston — osan korvaa numero, joka tarkoittaa minkä kuukauden päivän tiedot on kyseessä, esim sar21 sisältää tiedot tietyn kuukauden 21. päivästä.
Katselin sysstatin tekemiä sar tiedostoja kahdelta täydeltä päivältä, joista löytyi järkyttävä määrä erilaisia tietoja.

sar -lokitiedostosta yksi ote

Edellisen kuvan tiedon analysointia:

Vaikka sar -lokitiedosto tarjoaa hirveän määrän erilaista dataa, mielestäni ainaki minulle tärkein tieto koskee juuri sar -tiedoston alussa olevaa tietoa prosessorin käyttäasteesta. Kuvasta voi päätellä, että prosessorin kuorma on ollut erittäin pientä ja prosessori on jättänyt yli 99% käyttämättä käytettävissä olevasta suorituskyvystä. Kuvan kentät (lähde tiedolle):

%usr Kertoo käyttäjien ajamien ohjelmien käyttöasteen prosessorin kokonaiskurmasta.
%niceKäyttäjän tuottama prosessori kuorma nice -prioriteetillä.
%sysKernel tason prosessori kuorma.
%iowait% -osuus ajasta, jolloin prosessori on joutunut odottamaan levyn I/O toiminnan valmistumista.
%stealAika, jonka virtualisoitu suoritin juotuu odottamaan, että virtualisoitu käyttöjärjestelmä saa toiminnon suoritettua.
%irq% -osuus ajasta, jolloin prosessori on joutunut odottamaan rauta pohjaisien ongelmien ratkaisua.
%soft% -osuus ajasta, jolloin prosessori on joutunut odottamaan ohjelma pohjaisten ongelmien ratkaisua.
%guest% -osuus ajasta, jolloin on ajettu virtuaali prosessoria.
%gnice% -osuus ajasta, jolloin prosessori on ajanut nice -prioriteetillä tehtäviä.
%idle% -osuus ajasta, jolloin prosessori on ollut käyttämättömänä (ei ole ollut myöskään I/O pyyntöjä).

Seuraavaksi kokeilin $ iostat komentoa, joka tarjosi seuraavanlaista tietoa:

$ iostat
tpsYhteenlaskettu määrä I/O pyyntöjä fyysiselle laitteelle sekunnissa.
kB_read/sSekunnissa tapahtuvan datan lukemisen määrä laitteelta kilobitteinä.
kB_wrtn/sSekunnissa tapahtuvan datan kirjoittamisen määrä laitteelle kilobitteinä.
kB_readYhteenlaskettu määrä luetuista kilobiteistä.
kB_wrtn Yhteenlaskettu määrä kirjoitetuista kilobiteistä.

Pidstatin tarjoamista tiedoista voi päätellä, että tietokoneen prosessorin resursseista on 99+% käyttämättä. Lisäksi iostat näyttää levyn I/O tehtävien tietoja, ja näiden pohjalta voidaan todeta, että levy ei ollut komennon syöttön aikana juuri ollenkaa kirjoittamassa/lukemassa dataa. Lähde iostatin termien selvityksesessä käytettyyn tietoon.

Tämän jälkeen kokeilin viellä $ pidstat -komennolla etsiä tietoa. Pidstatilla selvisi, että juuri mikään ohjelma ei käyttänyt prosessoria aktiivisesti.

$ pidstat
UIDKenen käyttäjän prosessi kyseessä.
PIDKäynnissä olevan tehtävän identifioiva numero.
%usr% -osuus ajasta, jolloin on ajettu käyttäjän ohjelmaa / tehtävää.
%system% -osuus ajasta, jolloin on ajettu Kernel tehtäviä.
%guest% -osuus ajasta, jolloin prosessori on ajanut virtuaaliprosessoria.
%CPU% -osuus ajasta, jolloin prosessori on ajanut tehtävää.
CPUProsessorin numero (prosessori ydin), missä tehtävää ajetaan.
CommandTehtävän / ohjelman nimi.

Lähde pidstat termien selvityksessä käytettyyn tietoon.

Sysstat datan analysointi lopetettu 24.2.2019 noin klo 23.00.

Scan of the Month 15

Aloitin tutustumisen kurssin sivuilla linkattuihin materiaaleihin 23.2.2019 noin klo 14.20.

Käytin muutaman tunnin tehtävään tutustumiseen (tehtävänanto, googlailu, ”mallivastauksien” tutkiminen), mutta totesin, että tehtävän taso on liian vaikea ja jätin tehtävän tekemättä.

Harjoitus 4

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Perus käyttäjän oikeuksilla verkkosivustojen tekeminen.

Tehtävien teko aloitettu 10.2.2019 noin kello 20.00.

Alkuvalmistelut…
Asenna apache2:
$ sudo apt-get install apache2
Käynnistin Apachen uudelleen:
$ sudo systemctl restart apache2

Kotihakemiston asennus ja teko.
Seuraava komento avaa mahdollisuuden ”hostata” omasta kotihakemistosta web-sivuja:
$ sudo a2enmod userdir
Tämän jälkeen Apache pitää taas käynnistää uudestaan:
$ sudo systemctl restart apache2
Seuraavaksi tehdään kansiot jne.
Siirrytään kotihakemistoon:
$ cd
Tehdään public_html hakemisto, josta verkkosivustoja hostataan:
$ mkdir public_html
Siirrytään äsken tehtyyn kansioon:
$ cd public_html
Tehdään uusi verkkosivu:
$ nano index.html
Tämän jälkeen pitäisi toimia osoitteessa:
http://vuorivirta.me/~nikke/

Käyttäjän oma sivusto.

Peruskäyttäjän hakemistossa sijaitsevan sivuston käyttäminen ”oletussivuna”

Tehdään uusi .conf tiedosto, jotta saadaan tehtyä ikään kuin ”linkki” public_html kansiossa sijaitsevaan index tiedostoon.
$ cd /etc/apache2/sites-available/
$ sudoedit vuorivirta-me.conf
Lisäsin edellätehtyyn vuorivirta-me.conf -tiedostoon seuraavan;

<VirtualHost *:80>
        ServerName www.vuorivirta.me
        ServerAlias vuorivirta.me *.vuorivirta.me
        DocumentRoot /home/nikke/public_html/
        <Directory /home/nikke/public_html/>
                require all granted
        </Directory>
</VirtualHost>

Laitetaan kyseinen sivusto toimimaan kotisivuna.
$ sudo a2ensite vuorivirta-me.conf
Lopuksi käynnistetään Apache uudelleen
$ sudo systemctl restart apache2

Kotisivu

Murtautumis yrityksien seuraaminen

Ensin siirryin kansioon, jossa sijaitsee kirjautumis yrityksiä seuraava loki tiedosto.
$ cd /var/log
Palvelimen kirjautumis lokia pystyy katsomaan joko ”less” komennolla tai näppärästi seuraamalla reaaliajassa murtautumis yrityksiä komennolla:
$ tail -F auth.log
Tämän seuraamis prosessin voi tappaa komennolla ”control + c”. Tunkeutumis yrityksiä tulee noin 10-20sekunnin välein.

Feb 10 19:42:58 linuxkurssi sshd[18081]: Failed password for root from 218.92.1.158 port 21890 ssh2
Feb 10 19:42:59 linuxkurssi sshd[18081]: Received disconnect from 218.92.1.158 port 21890:11:  [preauth]
Feb 10 19:42:59 linuxkurssi sshd[18081]: Disconnected from 218.92.1.158 port 21890 [preauth]
Feb 10 19:42:59 linuxkurssi sshd[18081]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:42:59 linuxkurssi sshd[18083]: Failed password for root from 36.156.24.94 port 45922 ssh2
Feb 10 19:43:02 linuxkurssi sshd[18083]: Failed password for root from 36.156.24.94 port 45922 ssh2
Feb 10 19:43:02 linuxkurssi sshd[18083]: Received disconnect from 36.156.24.94 port 45922:11:  [preauth]
Feb 10 19:43:02 linuxkurssi sshd[18083]: Disconnected from 36.156.24.94 port 45922 [preauth]
Feb 10 19:43:02 linuxkurssi sshd[18083]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:05 linuxkurssi sshd[18085]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:07 linuxkurssi sshd[18085]: Failed password for root from 36.156.24.94 port 44558 ssh2
Feb 10 19:43:12 linuxkurssi sshd[18085]: message repeated 2 times: [ Failed password for root from 36.156.24.94 port 44558 ssh2]
Feb 10 19:43:12 linuxkurssi sshd[18085]: Received disconnect from 36.156.24.94 port 44558:11:  [preauth]
Feb 10 19:43:12 linuxkurssi sshd[18085]: Disconnected from 36.156.24.94 port 44558 [preauth]
Feb 10 19:43:12 linuxkurssi sshd[18085]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:15 linuxkurssi sshd[18090]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:17 linuxkurssi sshd[18090]: Failed password for root from 36.156.24.94 port 41626 ssh2
Feb 10 19:43:21 linuxkurssi sshd[18090]: message repeated 2 times: [ Failed password for root from 36.156.24.94 port 41626 ssh2]
Feb 10 19:43:21 linuxkurssi sshd[18090]: Received disconnect from 36.156.24.94 port 41626:11:  [preauth]
Feb 10 19:43:21 linuxkurssi sshd[18090]: Disconnected from 36.156.24.94 port 41626 [preauth]
Feb 10 19:43:21 linuxkurssi sshd[18090]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:23 linuxkurssi sshd[18092]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:26 linuxkurssi sshd[18092]: Failed password for root from 36.156.24.94 port 33464 ssh2
Feb 10 19:43:30 linuxkurssi sshd[18092]: message repeated 2 times: [ Failed password for root from 36.156.24.94 port 33464 ssh2]
Feb 10 19:43:30 linuxkurssi sshd[18092]: Received disconnect from 36.156.24.94 port 33464:11:  [preauth]
Feb 10 19:43:30 linuxkurssi sshd[18092]: Disconnected from 36.156.24.94 port 33464 [preauth]
Feb 10 19:43:30 linuxkurssi sshd[18092]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=36.156.24.94  user=root
Feb 10 19:43:50 linuxkurssi sshd[18094]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:43:52 linuxkurssi sshd[18094]: Failed password for root from 218.92.1.158 port 48374 ssh2
Feb 10 19:43:57 linuxkurssi sshd[18094]: message repeated 2 times: [ Failed password for root from 218.92.1.158 port 48374 ssh2]
Feb 10 19:43:57 linuxkurssi sshd[18094]: Received disconnect from 218.92.1.158 port 48374:11:  [preauth]
Feb 10 19:43:57 linuxkurssi sshd[18094]: Disconnected from 218.92.1.158 port 48374 [preauth]
Feb 10 19:43:57 linuxkurssi sshd[18094]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:44:46 linuxkurssi sshd[18098]: Connection closed by 104.248.244.59 port 42554 [preauth]
Feb 10 19:44:47 linuxkurssi sshd[18096]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:44:49 linuxkurssi sshd[18096]: Failed password for root from 218.92.1.158 port 13875 ssh2
Feb 10 19:44:53 linuxkurssi sshd[18096]: message repeated 2 times: [ Failed password for root from 218.92.1.158 port 13875 ssh2]
Feb 10 19:44:53 linuxkurssi sshd[18096]: Received disconnect from 218.92.1.158 port 13875:11:  [preauth]
Feb 10 19:44:53 linuxkurssi sshd[18096]: Disconnected from 218.92.1.158 port 13875 [preauth]
Feb 10 19:44:53 linuxkurssi sshd[18096]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:45:43 linuxkurssi sshd[18100]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=218.92.1.158  user=root
Feb 10 19:45:45 linuxkurssi sshd[18100]: Failed password for root from 218.92.1.158 port 33687 ssh2
Feb 10 19:45:49 linuxkurssi sshd[18100]: message repeated 2 times: [ Failed password for root from 218.92.1.158 port 33687 ssh2]
Feb 10 19:45:49 linuxkurssi sshd[18100]: Received disconnect from 218.92.1.158 port 33687:11:  [preauth]
Feb 10 19:45:49 linuxkurssi sshd[18100]: Disconnected from 218.92.1.158 port 33687 [preauth]

Asensin whois -palvelun tunkeutujien ip -tietojen katseluun.
$ sudo apt-get install whois

$ whois 218.92.1.158
% [whois.apnic.net]
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html

% Information related to '218.90.0.0 - 218.94.255.255'

% Abuse contact for '218.90.0.0 - 218.94.255.255' is 'anti-spam@ns.chinanet.cn.net'

inetnum:        218.90.0.0 - 218.94.255.255
netname:        CHINANET-JS
descr:          CHINANET jiangsu province network
descr:          China Telecom
descr:          A12,Xin-Jie-Kou-Wai Street
descr:          Beijing 100088
country:        CN
admin-c:        CH93-AP
tech-c:         CJ186-AP
mnt-by:         MAINT-CHINANET
mnt-lower:      MAINT-CHINANET-JS
mnt-routes:     maint-chinanet-js
status:         ALLOCATED non-PORTABLE
last-modified:  2008-09-04T06:51:29Z
source:         APNIC

role:           CHINANET JIANGSU
address:        260 Zhongyang Road,Nanjing 210037
country:        CN
phone:          +86-25-86588231
phone:          +86-25-86588745
fax-no:         +86-25-86588104
e-mail:         ip@jsinfo.net
remarks:        send anti-spam reports to spam@jsinfo.net
remarks:        send abuse reports to abuse@jsinfo.net
remarks:        times in GMT+8
admin-c:        CH360-AP
tech-c:         CS306-AP
tech-c:         CN142-AP
nic-hdl:        CJ186-AP
remarks:        www.jsinfo.net
notify:         ip@jsinfo.net
mnt-by:         MAINT-CHINANET-JS
last-modified:  2011-12-06T02:58:51Z
source:         APNIC

person:         Chinanet Hostmaster
nic-hdl:        CH93-AP
e-mail:         anti-spam@ns.chinanet.cn.net
address:        No.31 ,jingrong street,beijing
address:        100032
phone:          +86-10-58501724
fax-no:         +86-10-58501724
country:        CN
mnt-by:         MAINT-CHINANET
last-modified:  2014-02-27T03:37:38Z
source:         APNIC

% Information related to '218.92.0.0/16AS23650'

route:          218.92.0.0/16
descr:          CHINANET jiangsu province network
country:        CN
origin:         AS23650
mnt-by:         MAINT-CHINANET-JS
last-modified:  2008-09-04T07:54:28Z
source:         APNIC

% This query was served by the APNIC Whois Service version 1.88.15-46 (WHOIS-UK4)

Ilmeisesti tämä ip (218.92.1.158), jonka tietoja etsin whois -palvelulla sijaitsee kiinassa tai mahdollisesti käyttää kiinalaisia internet-palveluita muualta käsin. Huomioitavaa on myös se, että hyökkääjät yrittävät kirjautua root -käyttäjällä, vaikka se on poissa käytöstä.

SCP -komento

Ensiksi jouduin googlailemaan, miten SCP toimii ja päädyin tälle sivulle, koska en ollut aikaisemmin käyttänyt SCP:tä. Ilmeisesti ohjeet olivat hyvät, koska sain ensimmäisellä yritykselle tiedoston siirrettyä. Kone, jolta siirsin tiedoston, oli vuoden 2017 Macbook pro, jossa käytin Mojave käyttöjärjestelmä versiota. Tein siirron iTerm nimisellä ohjelmalla terminaalissa normaalisti.

Lähdetiedosto omalla koneella sijaitsi polussa: /Users/nikke/Desktop/h4/scptesti.html
ja lähetin sen palvelimelle kansioon:
home/public_html

$ scp /Users/nikke/Desktop/h4/scptesti.html nikke@vuorivirta.me:~/public_html

Komennon jälkeen SCP kysyi vastaanottavan tietokoneen (tässä tapauksessa palvelimen) salasanaa, jonka syötin ja painoin enter. Seuraavanlaista statistiikkaa näkyi tiedoston siirron jälkeen:
100%  204    3.2KB/s   00:00.
Näistä 100% tarkoittaa luultavasti tiedostojen lähettämisen onnistumis prosenttia, 204 lähetettyjen tavujen määrää, 3.2KB/s tiedoston lähetys nopeutta, sekä 00.00 kokonaisaikaa, joka lähetyksessä kesti. Testasin myös, että lähettämäni testisivu toimii internetissä, joka onnistui:
http://vuorivirta.me/scptesti.html

PHP

PHP:n olin asentanut jo komennolla;
$ sudo apt-get install php libapache2-mod-php
Tämän jälkeen piti editoida php7.0.conf tiedostoa, jotta PHP saadaan toimimaan käyttäjien kotihakemistossa.
$ sudoedit /etc/apache2/mods-available/php7.0.conf
Tiedostossa on ohjeet, mitä pitää kommentoida, jotta PHP alkaa toimimaan käyttäjien kotihakemistoissa. Seuraavaksi tein seuraavanlaisen phptestisivu.php tiedoston;

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
<?php print("$_SERVER[REMOTE_ADDR]");?>
 </body>
</html>

Tässä linkki kyseiselle testisivulle.

Tehtävän teko lopetettu 10.2.2019 noin kello 23.55.

Harjoitus 3

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Apachen asennus

Harjoitus 3:n teko aloitettu su 3.2.1019 noin klo 20.13.
Tehtävän tekemisen aloitin päivittämällä ohjelma lähteet.

$ sudo apt update
Aachen asensin komennolla:
$  sudo apt-get install apache2

Testasin Apachen toiminan kirjoittamalla selaimen osoiteriville “localhost” ja Apachen aloitussivu tuli esille = Apache asennettu onnistuneesti.

Apachen testisivu

Tämän jälkeen tein public_html kansion käyttäjäni koti hakemistoon komennolla:
$ mkdir public_html

Jotta käyttäjät voivat tehdä omaan koti hakemistoon web sivustoja public_html kansioon, ajoin komennon
$ sudo a2enmod userdir
, jonka jälkeen pitää Apache käynnistää uudelleen komennolla:
$ sudo systemctl restart apache2

Apachen uudelleen käynnistyksen jälkeen siirryin aikaisemmin tekemääni public_html kansioon, johon tein itselleni html testisivuston nanolla. Tämän jälkeen testasin toimintaa kirjoittamalla selaimen osoiteriville “http://localhost/~nikke/” ja testisivu näkyi odotetusti.

Testisivu

Apachen lokiin onnistunut ja epäonnistunut merkintä

Apachen logia monitoroin “livenä”
$ sudo tail -f /var/log/apache2/access.log
komennolla. Päivittämällä “http://localhost/~nikke/” sivuston loki antaa seuraavanlaisen merkinnän;

::1 – – [03/Feb/2019:21:10:47 +0200] ”GET /~nikke/ HTTP/1.1” 200 478 ”-” ”Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36”

Lokista löytyy päivämäärä ja kellonaika, “GET” -pyyntö, jolla selain on pyytänyt  /~nikke hakemistosta index sivua, HTTP protokolla ja versio 1.1, seuraava numero 200 on merkki onnistuneesta sivun latauksesta, “478” tarkoittaa ilmeisesti vastauksen pituutta, koska se ei muutu lokissa, vaikka sivustoa lataa. Loput lokista on lähinnä selaimen ja alustan tietoja eli ns. user agentteja, löysin netistä sivuston, joka avaa user agentin tietoja ja alla olevassa kuvassa on minun agentin tiedot.

User Agent Info

Seuraavaksi aiheutin 404 Not Found errorin lokiin kirjoittamalla osoitteen, jolle ei löydy nettisivua (http://localhost/~nikke/testi). Tästä seurasi alla oleva virhe.

404

::1 – – [03/Feb/2019:21:36:04 +0200] ”GET /~nikke/testi HTTP/1.1” 404 502 ”-” ”Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.98 Chrome/71.0.3578.98 Safari/537.36”

Tässä ei oikeastaan muutu muuta, kuin kellonaika ja tulee tämä http 404 error ja vastauksen pituus on eri.

Virhe web-palvelimella ajettavaan koodiin

Ensin muutin index.html sivun index.php sivuksi komennolla
$ mv index.html index.php

Asensin PHP:n komennolla:
$ sudo apt-get install php libapache2-mod-php
Tämän jälkeen tein index.php tiedostoon PHP koodia, mutta huomasin, että PHP ei toimi viellä. Lyhyen googlettamisen jälkeen löysin syyn tältä sivulta, eli en ollut muokannut “sudo gedit /etc/apache2/mods-available/php7.0.conf” tiedostosta PHP:tä käyttöön kotihakemistossa.

Alla on koodini, josta jätin tarkoituksella huutomerkin jälkeen lainausmerkin pois.

<!doctype html>
<html>
<head>
        <title>Niklaksen testisivu</title>
        <meta charset="utf-8" />
</head>
<body>
        <h1>"nikke"käyttäjän testisivu</h1>
        <?php echo "Hi, I'm a PHP script!; ?>
</body>
</html>

Tästä seurasi oheinen virhe lokiin;

[Sun Feb 03 22:28:15.559554 2019] [php7:emerg] [pid 18748] [client ::1:36260] PHP Parse error:  syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in /home/nikke/public_html/index.php on line 15

Ensin tulee päivä ja aika, sitten ilmeisesti PHP:n tiettyyn prosessiin viittaava errori, ja syntax virhe rivillä 15.

Virheen tekeminen Apachen asetustiedostoon

Tein simppelin virheen “/etc/apache2/mods-available/php7.0.conf” tiedostoon, josta poistin viimeiseltä riviltä kommentoinnin (otin # merkin pois rivin alusta). Ajoin terminaalissa
$ apache2ctl configtest
komennon, jonka löysin tehtävänannosta Tero Karvisen kotisivuilta.

apache2: Syntax error on line 147 of /etc/apache2/apache2.conf: Syntax error on line 25 of /etc/apache2/mods-enabled/php7.2.conf: </IfModule> without matching <IfModule> section Action ’configtest’ failed.

Komennon virheilmoitus kertoo, että tiedostossa, johon aiheutin virheen löytyy syntax virhe rivillä 25. Lisäksi kerrotaan että </IfModule>:lla ei ole alkua (<IfModule>) ja myös tämä configtest ei mennyt läpi tämän takia. Virheen korjauksen jälkeen ajoin saman komennon, josta vastaukseksi tuli “Syntax OK”.

Käyttäjän kansiossa sijaitsevan palvelimen etusivuston teko

Aloitin tämän kohdan tekemisen googlettelemalla erilaisia ohjeita, joista päädyin tähän.

Muokkasin ”/etc/apache2/sites-available/000-default.conf” tiedostoa nettisivun ohjeen mukaan, eli aluksi kommentoin kaiken, mitä ei jo ollut kommentoitu ja tämän jälkeen laitoin tiedostoon seuraavan pätkän:

<VirtualHost *:80>
ServerName localhost
ServerAlias localhost *localhost
DocumentRoot /home/nikke/public_html/
</VirtualHost>

Tämän jälkeen testasin kirjoittamalla selaimen osoiteriville “localhost” ja tuossa public_html kansiossa oleva index.php tiedosto tuli esille. Kokeilin myös syöttämällä selaimelle osoitteen “http://127.0.0.1/” ja vastaukseksi tuli juuri tämä /home/nikke/public_html kansiossa oleva index.php tiedosto.

Pääsivulla toimii /home/nikke/public_html/index.php tiedosto.

Lopetin harjoitus 3:n teon noin klo 23.50.

Harjoitus 2

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Huom. Kuvat, joista löytyy tekstiä kannattaa avata toiseen välilehteen suuremmaksi.

Loki merkintöjen teko

”Onnistunut” lokimerkintä

Lisäsin muistitikun 28.1.19 klo 9.42, ja sain noin 10sek sisällä ilmoituksen että “Volume mounted”. Työpöydältä klikkasin oikealla hiiren näppäimellä tikun kuvaa ja pianoin “Eject Volume” noin klo 9.43.

Kuvaan kirjoitettu kommentteina selitykset eri vaiheista.

”Epäonnistunut” lokimerkintä

Virheellisen loki merkinnän aiheuttamiseksi yritin asentaa filezilla FTP-clienttiä väärällä käyttäjä tunnuksella. Löysin netistä artikkelin mihin nämä käyttäjän jättämät “kirjautumis” loki merkinnät jäävät (/var/log/auth.log tiedostoon).

Kuvaan kirjoitettu kommentteina selitykset eri vaiheista.

Unelmien apt-get komento

Mikä on PPA?

Ennen apt-get komentoa on pakko kertoa PPA:sta ja siitä mitä riskejä ja hyötyjä niiden käyttämisestä voi saada.

PPA ( Personal Package Archive ) on pakettikirjasto, josta ladataan ohjelma paketteja. On sekä virallisia , että epävirallisia pakettikirjastoja. Nämä “viralliset” PPA:t ovat Ubuntun tarkistamia ennen kun ne päätyvät julkiseen jakoon. Muissa kun virallisissa PPA kirjastoissa on vaara, että ohjelmasta löytyy haitallista koodia. Suurimpia hyötyjä “epävirallisista” PPA-kirjastoista on mm.
1. Ohjelmien uudet versiot päätyvät levitykseen nopeammin.
2. Softan alkuperäinen kehittäjä saattaa tarjota ohjelmaansa vain lädekoodina, jota on vaikeampi asentaa, kuin PPA:sta, joten yksittäinen henkilö on tehnyt suurimman vaivan ja tarjoaa valmiin paketin ladattavaksi PPA:n kautta.
Lähde https://itsfoss.com/ppa-guide/

Ohjelmat, jotka valitsin apt-get komentoon

Atom, joka on erittäin laaja ja muokattavissa oleva tekstinkäsittely softa.
Lähde http://tipsonubuntu.com/2016/08/05/install-atom-text-editor-ubuntu-16-04/
$ add-apt-repository ppa:webupd8team/atom; sudo apt update; sudo apt install atom

Chromium, joka on Google Chromen linux vastine.
$ sudo apt-get install chromium-browser

Spotify, josta nykyään löytyy Spotifyn tekemä Linux versio.
Lähde https://www.spotify.com/fi/download/linux/
$ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys 931FF8E79F0876134EDDBDCCA87FF9DF48BF1C90; echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list; sudo apt-get update; sudo apt-get install spotify-client

Lopullinen apt-get komento

Näistä kolmesta ohjelmasta tein yhden komennon, joka asentaa nämä ohjelmat. Tätä testattu Asus G751JY kannettavalla tietokoneella edellisessä blogi postauksessa tehdyllä live tikulla 27.1.19 noin klo. 22.56. Komento pyytää tietyissä kohtaa painamaan ”y” tai enter.

$ sudo apt-get -y install chromium-browser; sudo add-apt-repository ppa:webupd8team/atom; sudo apt update; sudo apt install atom; sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys 931FF8E79F0876134EDDBDCCA87FF9DF48BF1C90; echo deb http://repository.spotify.com stable non-free | sudo tee /etc/apt/sources.list.d/spotify.list; sudo apt-get update; sudo apt-get install spotify-client

Kolme uutta komentorivi ohjelmaa

Saidar on komentorivi pohjainen työkalu, joka tarjoaa tietoa tietokoneen käyttöasteesta (ramin vapaana oleva määrä, prosessorin käyttöaste jne.).
1. $ sudo apt-get install saidar
2. Kirjoita terminaaliin “saidar” ja ohjelma avautuu. Kun haluat pois “ctrl + c”.

Saidar

Nudoku on sudoku peli, joka toimii terminaalissa.
1. $ sudo apt-get install nudoku
2. Kirjoita terminaaliin “nudoku” ja ohjelma avautuu. Kun haluat pois “ctrl + c”.

Nudoku

Sää terminaalissa. Törmäsin netissä tähän mielenkiintoiseen komentorivillä toimivaan ohjelmaan.
1. Ensin pitää asentaa curl –> $ sudo apt-get curl
2. Kirjoita terminaaliin “curl wttr.in” ja ohjelma yrittää sijaintisi perusteella etsiä sää tietoja.

Sää

Harjoitus 1

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

·        Pohjana Tero Karvinen 2012: Linux kurssi, http://terokarvinen.com

Linux-livetikun teko

Aloitin tehtävän tekemisen etsimällä xubuntun uusimman LTS version (long term support). Päädyin sivulle http://www.mirrorservice.org/sites/cdimage.ubuntu.com/cdimage/xubuntu/releases/18.04/release/, josta latasin itselleni xubuntu-18.04.1-desktop-amd64.iso levykuva tiedoston. Päädyin tähän versioon selvitettyäni ensin, mitä eroa 18.04 ja 18.04.1 versiolla on ja vastauksen löysin tästä linkistä https://xubuntu.org/news/18-04-1-released/ .

Seuraavaksi latasin UNetbootin, johon löysin linkin Linux kurssin sivuilta. UNetbootissa valitsin lataamani xubuntun levykuvatiedoston ja kohde usb 3 (alustettu FAT-32) muistitikun ja aloitin live tikun tekemisen. Koska usb 3 tikkuni on suhteellisen nopea arvioin, että tikun tekemiseen UNetbootilla meni alle 1min.

Sammutin tietokoneen ja uudelleen käynnistyksen yhteydyssä avasin bootmenun, jonka kautta valitsin usb tikun, johon xubuntun live versio oli asennettu. Valitsin käynnistyksen yhteydessä ”try xubuntu without installing” vaihtoehdon ja xubuntu boottasi työpöydälle onnistuneesti.

Tietokoneen raudan listaaminen

Terminaalin käynnistämisen jälkeen jouduin ajamaan komennon ”setxkbmap fi”, joka muutti tietokoneen näppäimistö asettelun suomalaiseksi. Tämän jälkeen ajoin tehtävässä pyydetyn komennon ” sudo lshw -short -sanitize”, joka listasi koneen raudan onnistuneesti.

Kolmen ohjelman asentaminen ja testaaminen

Ensimmäinen ongelma, jonka jouduin ratkaisemaan tämän kohdan tekemiseen, oli langattoman verkkoyhteyden ajurin asentaminen. Koska käytän koti pöytätietokonettani langattomasti, jouduin tutkia, miten saan wlanin toimimaan. Ongelmaan löytyi ratkaisu ”Software & Updates” ohjelman ”Additional Drivers” kohdasta, josta löytyi ajuri, jonka asensin.

ajuri

Ohjelmia asensin ”Software” ohjelmalla, joka helpottaa paljon itselle uusien ohjelmien löytämistä.

Ensimmäiseksi päätin asentaa Amarok:in, josta olen kyllä kuullut, mutta en koskaan itse käyttänyt (aikaisemmin käyttänyt foobar2000). Asennus keskeytyi virheeseen viimeisen 90% kohdalla. Tämän jälkeen kokeilin päivittää ohjelma kirjastot terminaalissa komennolla ”sudo apt-get update”, jonka jälkeen kokeilin ohjelman asennusta uudestaan onnistuneesti.

Amarokkia testasin kuuntelemalla kappaleen toiselta tietokoneeseen liitetyltä muistitikulta.

Amarok

Toiseksi ohjelmaksi asensin Okular:in, joka on eri tyyppisten dokumenttien (pdf, tekstitiedosto, kuvat) katseluun tarkoitettu ohjelma. Löysin ohjelman ”Software” sovelluksen ”Featured Productivity” kohdasta.

Okular

Kolmanneksi ohjelmaksi asensin Shutterin, johon törmäsin (https://www.tecmint.com/take-or-capture-desktop-screenshots-in-ubuntu-linux/ ), kun olin etsimässä tietoa, löytyykö Linuxista helppoa GUI pohjaista kuvakaappaus työkalua, joka olisi valmiiksi asennettu. Shutterin päätin asentaa terminaalin avulla komennolla ” sudo apt-get install shutter”.

Shutteria käytin loppujen kuvakaappausten ottoon tehtävissä ja mielestäni ohjelma oli hyvä.

Shutter

Lisenssit

Amarok käyttää lisenssinä: GNU General Public License (https://userbase.kde.org/Amarok/Manual/References/Credits_and_License#Licenses )

Okular käyttää lisenssinä: GNU Lesser General Public License version 2. Lähde (https://api.kde.org/okular/html/licenses.html )

Shutter käyttää lisenssinä: GNU General Public License version 3. Lähde (http://shutter-project.org/about/ )

GPL lisenssi antaa todella vapaat kädet ohjelmiston käyttöön ja muokkaamiseen. (Brett 2007)

  • Voit käyttää ohjelmaa mihin tahansa
  • Voit muokata ohjelmaa millaiseksi vain haluat
  • Voit jakaa/levittää ohjelmaa kenelle haluat
  • Voit jakaa muutoksia mitä olet ohjelmaan tehnyt

LGPL lisenssi pohjautuu ilmeisesti paljon GPL lisenssiin, mutta siinä ei tarvitse jakaa ohjelmiston lähdekoodia. Lähde (https://fi.wikipedia.org/wiki/GNU_Lesser_General_Public_License )

Windows alustan ohjelmien Linux vastineet

Minun eniten käyttämät ohjelmat Windows alustalla ja niiden Linux vastineet.

Google Chrome Chromium
Discord Discord (löytyy linux versio)
Spotify Spotify (Ubuntu Software, tai terminal ” snap install spotify”
Atom Atom (löytyy linux versio)
Eclipse IDE Eclipse IDE (löytyy linux versio)
foobar200 foobar2000 (löytyy linux versio)
Steam Steam (löytyy linux versio, myös paljon pelejä suoraan linuxille)

Lähteet

Smith, Brett 2007: A Quick Guide to GPLv3 (https://www.gnu.org/licenses/quick-guide-gplv3.pdf ).