Tag: linux


Palvelinten hallinta kotitehtävät 1 (Syksy 2017)


Palvelinten hallinta kotitehtävät 1 (Syksy 2017)

Lähde  Tero Karvinen 2017: Palvelinten Hallinta, http://terokarvinen.com

Harjoitusympäristönä asennettu Xubuntu 16.04, Xenial Xerus

Harjoituskoneen tiedot:

Emolevy X79A-GD65 (8D)

Prosessori Intel(R) Core(TM) i7-3930K

16GiB RAM

 

H1. Asenna jokin muu demoni kuin Apache. Raportoi, miten rakensit, selvitit ja testasit kunkin osan (esim. sudo puppet resource, puppet describe, lähteet…). Julkaise myös modulisi lähdekoodi niin, että sen voi helposti ottaa käyttöön.

 

Osa 1: Packet

Harjoituksen tavoitteeksi otettiin UFW-palomuurin asennus ja asetusten muokkaus Puppetin avulla. UFW (Uncomplicated Firewall) on helppokäyttöiseksi tarkoitettu työkalu Netfilter-palomuurin hallintaan. Harjoitus aloitettiin poistamalla testikoneesta UFW ja sen asetukset purge-komennolla.

$ sudo apt-get purge ufw

Seuraavaksi luotiin skriptin avulla uusi Puppet-moduuli ufwmod ja tarvittavat kansiot ja tiedostot. Luodut tiedostot ja kansiot näkyvät raportin lopussa olevassa kuvassa (readme.md -tiedosto ei ole tarpeellinen). Jatkettiin harjoitusta muokkaamalla luotua init.pp -tiedostoa. Ensimmäiseksi lisättiin moduuliin asennettava paketti ufw.

class ufwmod {
    package { 'ufw':
        ensure => 'installed',
    }
}

Seuraavaksi varmistettiin, että luotu moduuli toimi oikein. Moduuli kopioitiin /etc/puppet/modules -kansioon ja ajettiin alla olevalla komennolla.

$ sudo puppet apply -e  ‘class {“ufwmod”:}’

Moduulin käynnistys sujui ongelmitta ja UFW asennus varmistettiin komennolla sudo ufw status. UFW oli asennettu, mutta tilassa inactive, sillä ohjelman käyttöönotto vaatii erillisen komennon.

 

Osa 2: Exec

Harjoitusta jatkettiin poistamalla UFW asennus koneelta ja lisäämällä init.pp -tiedostoon komento, jolla UFW otettaisiin käyttöön asennuksen jälkeen.

class ufwmod {
 
 # Komentojen polun määrittely
 Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
 
 # Paketin asennus
     package { 'ufw':
         ensure => 'installed',
     }
 
 # Komennon ajo
    exec { 'ufw-enable':
         command => 'ufw enable',
         require => Package['ufw'],
    }
}

Tiedostoon lisättiin komento ufw enable, joka vaatii, että paketti ufw on asennettuna. Moduuli todettiin toimivaksi, sillä paketin asennus onnistui ja UFW oli tilassa active.

 

Osa 3: File

Seuraavaksi tehtiin reikiä palomuuriin, jotta haluttu liikenne pääsisi muurista läpi. Ubuntu Wikin mukaan käyttäjän tekemät asetukset tallentuvat tiedostoihin /etc/ufw/user.rules ja user6.rules.

Harjoitusta varten päätettiin avata portit 22, 80 ja 443 TCP. Muutokset tehtiin ensin käsin, jonka jälkeen asetustiedostoista otettiin kopiot moduulin templates -kansioon. Moduuliin lisättiin tämän jälkeen osa, joka siirtää asetustiedostot oikeaan paikkaan kun moduuli ajetaan.

$ sudo ufw allow 22/tcp$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw status
$ cd /etc/ufw/$ sudo cp user.rules /home/suomisim/puppet/modules/ufwmod/templates/user.rules.erb
$ sudo cp user6.rules /home/suomisim/puppet/modules/ufwmod/templates/user6.rules.erb
$ sudo apt-get purge ufw

Seuraavaksi muokattiin jälleen init.pp -tiedostoa.

class ufwmod {
 
 # Komentojen polun määrittely
 Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
 
 # Paketin asennus
     package { 'ufw':
         ensure => 'installed',
     }
 
 # Komennon ajo
     exec { 'ufw-enable':
         command => 'ufw enable',
         require => Package['ufw'],
     }
 # Asetustiedoston muokkaus (IPv4)
     file {'/etc/ufw/user.rules':
         content => template('ufwmod/user.rules.erb'),
         require => Package['ufw'],
     }
 # Asetustiedoston muokkaus (IPv6)
     file {'/etc/ufw/user6.rules':
         content => template('ufwmod/user6.rules.erb'),
         require => Package['ufw'],
     }
}

Moduuli toimi ongelmitta, mutta portit pysyivät kiinni. Moduuliin päätettiin lisätä palomuurin service, joka voitiin potkaista käynnistymään uudelleen aina, kun asetustiedostoja muokataan.

 

Osa 4: Service

Muokattiin init.pp -tiedostoa (toivottavasti) viimeistä kertaa. Tiedostoon lisättiin viittaus UFW palveluun, joka vaatii UFW paketin asennuksen. Asetustiedostojen siirtoon lisättiin huomautus palveluun, joka käynnistyy uudelleen kun asetustiedostot siirretään.

class ufwmod {
 
 # Komentojen polun määrittely
 Exec { path => [ '/bin/', '/sbin/' , '/usr/bin/', '/usr/sbin/' ] }
 
 # Paketin asennus
     package { 'ufw':
         ensure => 'installed',
     }
 
 # Komennon ajo
     exec { 'ufw-enable':
         command => 'ufw enable',
         require => Package['ufw'],
     }
 # Asetustiedoston muokkaus (IPv4)
     file {'/etc/ufw/user.rules':
         content => template('ufwmod/user.rules.erb'),
         require => Package['ufw'],
         notify => Service['ufw'],
     }
 # Asetustiedoston muokkaus (IPv6)
     file {'/etc/ufw/user6.rules':
         content => template('ufwmod/user6.rules.erb'),
         require => Package['ufw'],
         notify => Service['ufw'],
     }
 # Servicen toiminnan varmistaminen
     service { 'ufw':
         ensure => 'true',
         enable => 'true',
         require => Package['ufw'],
     }
}

Moduulin testaamista varten UFW poistettiin jälleen, moduuli siirrettiin /etc/puppet/modules -kansioon ja ajettiin skriptin avulla (tai raportin alussa käytetyllä komennolla). Moduulin ajon jälkeen palomuurin tilanne tarkistettiin sudo ufw status -komennolla.

Voitiin todeta, että moduuli toimii niin kuin pitääkin. Asetustiedostojen syntaksi oli aika yksinkertainen, joten uusien sääntöjen luominen onnistuu ilman, että niitä tehdään ensin käsin.

Alla olevassa kuvassa näkyy moduulin rakenne ja tarvittavat tiedostot + ylimääräinen readme.md -tiedosto.

Lopuksi projekti vietiin GitHubiin käyttäjän omaan puppet-repositoryyn. Koska moduulia muokattiin käyttäjän kotihakemistossa ja repon omassa kansiossa, tiedostoja ei tarvinnut siirrellä tässä vaiheessa mihinkään.

git add .

git commit -m 'Update ufwmod module'
git pull && git push

Moduuli löytyy Githubista Linkki

 

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

Simo Suominen


Linux palvelimet – kotitehtävät 4


Linux palvelimet – kotitehtävät 4

Lähde  Tero Karvinen 2017: Linux kurssi, http://terokarvinen.com

Harjoitusympäristönä Ubuntu 17.04 (Zesty Zapus) Daily Build

Harjoituskoneen tiedot:

Emolevy X79A-GD65 (8D)

Prosessori Intel(R) Core(TM) i7-3930K

16GiB RAM

Näytönohjain GeForce GTX 690

Asenna alusta lähtien LAMP. (Linux voi olla asennettu valmiiksi tai Live-USB).

AsennettinLAMP otettiin aikaa toimenpiteistä. Ensimmäinen osa on testikoneelle asennettu (L)inux Xubuntu 17.04. Seuraavaksi asennettiin Apache2 -webpalvelin.

$ sudo apt-get update

$ sudo apt-get install apache2

Seuraavaksi todettiin asennuksen onnistuneen käymällä verkkoselaimella osoitteessa http://localhost, jolloin saatiin Apache2:n oletussivu näkyville. Aikaa kului 5min 30sek (toimenpiteet + raportointi).

Selection_001.png

Seuraavaksi otettiin käyttöön käyttäjän kansio palvelimella ja luotiin käyttäjälle aloitussivu. Tähän käytettiin seuraavia komentoja:

$ sudo a2enmod userdir //käyttäjän kansion käyttöönotto

$ sudo service apache2 restart //apache2 -palvelun uudelleenkäynnistys

$ cd //siirryttiin käyttäjän kotihakemistoon

$ mkdir public_html //luotiin kansio tuleville julkisille html -tiedostoille

Linux oli asennettu testikoneelle valmiiksi ja käyttäjä (suomisim) luotu asennuksen yhteydessä. Siirtymällä osoitteeseen http://localhost/~suomisim/ päästiin kansioon, johon käyttäjän kotisivut tehtäisiin.

Selection_003.png

Palomuuri

Seuraava askel oli parantaa tietoturvaa ottamalla käyttöön palomuuri. Tähän käytettiin komentoa sudo ufw enable. Koska kokoonpanoa ei ohjattu eikä testattu etänä, jätettiin palomuuri ehjäksi eikä puhkottu siihen reikiä. Aikaa kului yhteensä 12min.

MySQL

Jatkettiin LAMP-kokoamista asentamalla MySQL -tietokantaohjelma. Samalla asennettiin seuraavissa tehtävissä tarvittavat PHP-lisäpalikat. Käytetyt komennot:

$ sudo apt-get update

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

MySQL -asennus kysyi Root-käyttäjän salasanaa, salasanaksi annettiin tarpeeksi monimutkainen salasana. Seuraavaksi kirjauduttiin tietokantaan, luotiin uusi tietokanta sekä käyttäjä ks. tietokannalle.

$ mysql -u root -p //käyttäjä root, -p varmistaa, että salasanaa kysytään erikseen, jotta se pysyy poissa lokeista

create database suomisim character set utf8; //luotiin uusi tietokanta (suomisim) ja valittiin käytettävä merkkijärjestelmä UTF-8

grant all on suomisim.* to suomisim@localhost identified by 'sensuroitusalasana'; //annettiin käyttäjälle suomisim kaikki oikeudet tietokantaan suomisim(ja tuleviin tämän alaisiin tietokantoihin) annettua salasanaa vastaan.

exit //kirjauduttiin ulos root-käyttäjältä

mysql -u suomisim -p //kirjauduttiin käyttäjänä suomisim)

show databases; //näytettiin tietokannat, joihin ks. käyttäjällä on oikeus

Selection_004.png

Näin luotu käyttäjä ei pysty sotkemaan muita kuin oman tietokantansa. Seuraavaksi kokeiltiin automatisoida MySQL -kirjautumisprosessi käyttäjälle suomisim.

$ exit

$ cd

$ nano .my.cnf //luotiin tiedosto, johon kirjattiin seuraavat kirjautumistiedot:
[client]
user="suomisim"
password="sensuroitusalasana"
database="suomisim"

Kun tämän jälkeen ajettiin komento mysql, päästiin kirjautumaan oikeaan tietokantaan oikealla käyttäjällä ilman hidasta kirjautumisprosessia. Aikaa kului alusta yhteensä 29 minuuttia. Lopuksi otettiin vielä PHP käyttöön ja varmistettiin sen toimivuus:

PHP asennus ja testaus

$ cd /etc/apache2/ //siirryttiin apache2 asetuskansioon

$ grep -ir php * //haettiin ks. kansion tiedostoista merkintöjä PHP

$ sudoedit /etc/apache2/mods-available/php7.0.conf //muokattiin tiedostoa, joka löytyi edellisen haun perusteella

Tiedostosta otettiin alla olevat asetukset pois päältä lisäämällä rivien eteen kommenttimerkin #.

Selection_005.png

$ sudo service apache2 restart 

$ cd

$ cd public_html

$ nano index.php

Lisättiin index.php -tiedostoon seuraava rivi: <?php print(2+2+”\n\n”); ?>

http://localhost/~suomisim/ -sivulla näkyi PHP-koodilla kirjoitetun laskutoimituksen tulos -> PHP toimii. Kokomaisaika LAMP-harjoituksen läpikäyntiin ja raportointiin oli n. 45 minuuttia.

Tee weppisivu, joka lukee PHP:lla rivejä tietokannasta.

Harjoitukseen käytettiin edellisessä tehtävässä asennettua LAMP:ia. Aloitettiin harjoitus luomalla tietokantataulu käyttäjälle suomisim. Tämän jälkeen lisättiin tietoja ja varmistettiin, että tiedot tallentuivat tietokantaan.

$ mysql //kirjauduttiin sisään

use suomisim; //valittiin oma tietokanta

create table pizza(id int auto_increment primary key, name varchar(1024), taste varchar(1024)); //luotiin tietokanta pizza ja siihen arvot id, name, taste

insert into pizza(name) values ('Kinkku'); //lisättiin tietokantaan pizza tietue kinkku

insert into pizza(name) values ('Tonnikala');

insert into pizza(name) values ('Ananas');

update pizza set taste="Herkullinen" where name="Kinkku"; //lisättiin tietueelle kinkku arvo Herkullinen

update pizza set taste="OK" where name="Tonnikala";

update pizza set taste="Menettelee" where name="Tonnikala";

select * from pizza; 

Selection_006.png

Näin varmistettiin, että tietokannan tiedot ovat ajan tasalla. Seuraavaksi luotiin websivu, joka hakee tiedot tietokannasta. Harjoituksen vuoksi luotiin ja muokattiin tiedosto Geany-tekstieditorilla, joka toimi erinomaisesti. Lähteenä PHP-koodille käytettiin w3schools.com -sivua. Koodia muokattiin omaan tietokantaan soveltuvaksi alla olevan kuvan mukaisesti.

-PHPo.php - -home-suomisim-public_html - Geany_007.png

Lopputuloksena tuotantoon valmis websivu, joka hakee pizzojen tiedot MySQL -tietokannasta. Alla kuvankaappaus sivusta.

Selection_008.png

Laita liitteeksi tai linkiksi raporttiisi tällä komenolla kerätty log.txt:

tail /var/log/syslog /var/log/auth.log /etc/lsb-release /var/log/apache2/*.log /proc/uptime >log.txt

==> /var/log/syslog <==
Feb 12 20:25:30 thor anacron[1281]: Job `cron.daily’ terminated
Feb 12 20:25:30 thor anacron[1281]: Normal exit (1 job run)
Feb 12 20:27:26 thor kernel: [ 421.746964] [UFW BLOCK] IN=eno1 OUT= MAC=d4:3d:7e:01:b0:4b:30:59:b7:8b:f5:60:08:00 SRC=192.168.1.112 DST=192.168.1.87 LEN=515 TOS=0x00 PREC=0x00 TTL=128 ID=24564 PROTO=UDP SPT=1900 DPT=59052 LEN=495
Feb 12 20:27:27 thor kernel: [ 422.991959] [UFW BLOCK] IN=eno1 OUT= MAC=d4:3d:7e:01:b0:4b:30:59:b7:8b:f5:60:08:00 SRC=192.168.1.112 DST=192.168.1.87 LEN=515 TOS=0x00 PREC=0x00 TTL=128 ID=24565 PROTO=UDP SPT=1900 DPT=59052 LEN=495
Feb 12 20:27:28 thor kernel: [ 423.897291] [UFW BLOCK] IN=eno1 OUT= MAC=d4:3d:7e:01:b0:4b:30:59:b7:8b:f5:60:08:00 SRC=192.168.1.112 DST=192.168.1.87 LEN=515 TOS=0x00 PREC=0x00 TTL=128 ID=24566 PROTO=UDP SPT=1900 DPT=59052 LEN=495
Feb 12 20:27:29 thor kernel: [ 424.973855] [UFW BLOCK] IN=eno1 OUT= MAC=d4:3d:7e:01:b0:4b:30:59:b7:8b:f5:60:08:00 SRC=192.168.1.112 DST=192.168.1.87 LEN=515 TOS=0x00 PREC=0x00 TTL=128 ID=24567 PROTO=UDP SPT=1900 DPT=59052 LEN=495

==> /var/log/auth.log <==

==> /etc/lsb-release <==
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=17.04
DISTRIB_CODENAME=zesty
DISTRIB_DESCRIPTION=”Ubuntu Zesty Zapus (development branch)”

==> /var/log/apache2/access.log <==

==> /var/log/apache2/error.log <==
[Sun Feb 12 20:25:29.382208 2017] [mpm_prefork:notice] [pid 1442] AH00163: Apache/2.4.23 (Ubuntu) configured — resuming normal operations
[Sun Feb 12 20:25:29.382233 2017] [core:notice] [pid 1442] AH00094: Command line: ‘/usr/sbin/apache2’

==> /var/log/apache2/other_vhosts_access.log <==

==> /proc/uptime <==
461.12 5351.63

Tee pinta-alan laskuri PHP:lla. Eli käyttäjä syöttää lomakkeella (form) pellon pituuden ja leveyden, laskuri kertoo weppisivulla pellon alan.

Pinta-ala-ohjelma toteutettiin Geany-tekstieditorilla, jolla luotiin kaksi .php tiedostoa, pala.php (pääsivu) ja pala-action.php.

pala.php

<!doctype html>

<html lang="en">
<head>
 <meta charset="utf-8">
 <title>Pinta-ala-Ohjelma</title>
 <meta name="author" content="Simo Suominen">
 <link rel="stylesheet" href="css/styles.css?v=1.0">

</head>

<body>
 http://js/scripts.js
 
 
 <form action="pala-action.php" method="post">
 <p>Anna pellon leveys metreissä: <input type="number" name="leveys" /></p>
 <p>Anna pellon pituus metreissä: <input type="number" name="pituus" /></p>
 <p><input type="submit" /></p>
</form>
 
</body>
</html>

pala-action.php

Pellon leveys on <?php echo htmlspecialchars($_POST['leveys']); ?> metriä
<p></p>
Pellon pituus on <?php echo htmlspecialchars($_POST['pituus']); ?> metriä

<p></p>
Pellon kokonaispinta-ala on

<?php

$first_number = htmlspecialchars($_POST['leveys']);
$second_number = htmlspecialchars($_POST['pituus']);
$sum_total = $second_number * $first_number;

print ($sum_total);

?>

neliömetriä.

Lopputuloksena oli yksinkertainen websivu, joka kysyi käyttäjältä pellon pituutta ja leveyttä ja laski niiden perusteella pellon pinta-alan.

Selection_010.png

Selection_012.png

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

Linux palvelimet – kotitehtävät 3


Linux palvelimet – kotitehtävät 3

Lähde  Tero Karvinen 2017: Linux kurssi, http://terokarvinen.com

Harjoitusympäristönä Ubuntu 17.04 (Zesty Zapus) Daily Build

Harjoituskoneen tiedot:

Emolevy X79A-GD65 (8D)

Prosessori Intel(R) Core(TM) i7-3930K

16GiB RAM

Näytönohjain GeForce GTX 690

Apache2 -webpalvelimen asennus

Asenna apache2 weppipalvelin. Lataa jokin sivu omalta palvelimeltasi, vaikka testisivu. Etsi sivulatauksesta syntynyt lokirivi.

Aloitettiin harjoitus asentamalla Apache2 komentokehotteessa komennoilla

$ sudo apt-get update

$ sudo apt-get install apache2.

Asennuksen onnistuminen voitiin varmentaa selvittämällä ensin oma IP-osoite. Tähän käytettiin komentoa ip addr.  Kun saatu osoite kirjoitettiin selaimen osoitekenttään saatiin seuraava tulos:

Selection_003.png

Seuraavaksi etsittiin lokitiedostoa, johon sivulataus tallentuu. Hakuun käytetiin seuraavia komentoja:

cd /var/log //siirryttiin kansioon, jossa lokeja yleensä säilytetään

ls //listattiin tiedostot/kansiot

cd apache2 //siirryttiin Apachen omaan kansioon

ls //listattiin tiedostot/kansiot

tail -f access.log //laitettiin ks. loki seurantaan)

Seuraavaksi suoritettiin sivulataus uudestaan jotta voitiin varmistaa, että sivulataus kirjautuu lokiin. Kirjaus näytti seuraavalta:

sensuroituIP - - [04/Feb/2017:16:59:16 +0200] "GET / HTTP/1.1" 200 3477 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 3 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html” Simo Suominen


Linux palvelimet – kotitehtävät 2

Lähde  Tero Karvinen 2017: Linux kurssi, http://terokarvinen.com

Harjoitusympäristönä Ubuntu 17.04 (Zesty Zapus) Daily Build

Harjoituskoneen tiedot:

Emolevy X79A-GD65 (8D)

Prosessori Intel(R) Core(TM) i7-3930K

16GiB RAM

Näytönohjain GeForce GTX 690

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

Avattiin terminal emulator. Tutkittiin /var/log/apt/history.log -tiedostoa, johon tallentui asennettujen ja päivitettyjen ohjelmien asennustietoja. Annettiin komento tail -F /var/log/apt/history.log. Komento näytti 10 viimeistä riviä ks. tiedostosta ja päivittyi tämän jälkeen automaattisesti ruudulle, jos tiedosto muuttuu. Jätettiin loki seurantaan ja avattiin toinen terminal emulator.

Asennettiin Shutter (komennot sudo apt-get update + sudo apt-get install shutter). History.log päivittyi automaattisesti seuraavalla litanialla:

Start-Date: 2017-01-26 17:27:21
Commandline: apt-get install shutter
Requested-By: xubuntu (999)

Install: libglade2-0:amd64 (1:2.6.4-2, automatic), libimage-magick-perl:amd64 (8:6.9.6.6+dfsg-1ubuntu3, automatic), libgnomecanvas2-common:amd64 (2.30.3-3, automatic), libgnomeui-0:amd64 (2.24.5-3.1, automatic), libxml-sax-base-perl:amd64 (1.07-1, automatic), libgoo-canvas-perl:amd64 (0.06-2ubuntu2, automatic), libhttp-server-simple-perl:amd64 (0.51-1, automatic), libimage-magick-q16-perl:amd64 (8:6.9.6.6+dfsg-1ubuntu3, automatic), libgnome2-perl:amd64 (1.046-3build1, automatic), libgnome2-vfs-perl:amd64 (1.082-1build3, automatic), libgtkimageview0:amd64 (1.6.4+dfsg-1.1, automatic), libjson-perl:amd64 (2.90-1, automatic), libxml-sax-perl:amd64 (0.99+dfsg-2ubuntu1, automatic), libgtk2-unique-perl:amd64 (0.05-2ubuntu2, automatic), libindicator7:amd64 (16.10.0+16.10.20160913-0ubuntu1, automatic), libdata-random-perl:amd64 (0.12-1, automatic), libextutils-pkgconfig-perl:amd64 (1.15-1, automatic), libwww-mechanize-perl:amd64 (1.83-1, automatic), libpath-class-perl:amd64 (0.37-1, automatic), libbonobo2-common:amd64 (2.32.1-3, automatic), libgnome2-wnck-perl:amd64 (0.16-3build3, automatic), libnet-dropbox-api-perl:amd64 (1.9-1, automatic), libgoocanvas-common:amd64 (1.0.0-1, automatic), libbonoboui2-common:amd64 (2.24.5-4, automatic), libgtk2-imageview-perl:amd64 (0.05-2build3, automatic), libpango-perl:amd64 (1.227-1build1, automatic), libjson-xs-perl:amd64 (3.030-1, automatic), shutter:amd64 (0.93.1-1.3), libcairo-perl:amd64 (1.106-1build2, automatic), libgd-perl:amd64 (2.53-3build1, automatic), libclass-method-modifiers-perl:amd64 (2.12-1, automatic), libx11-protocol-other-perl:amd64 (29-2, automatic), libgnomeui-common:amd64 (2.24.5-3.1, automatic), libgnome2-gconf-perl:amd64 (1.044-6build1, automatic), libcrypt-openssl-rsa-perl:amd64 (0.28-5, automatic), libtypes-serialiser-perl:amd64 (1.0-1, automatic), libgnome-2-0:amd64 (2.32.1-5ubuntu1, automatic), libcrypt-openssl-bignum-perl:amd64 (0.07-2, automatic), libglib-perl:amd64 (3:1.323-1, automatic), libappindicator1:amd64 (12.10.1+17.04.20161129-0ubuntu1, automatic), libxml-namespacesupport-perl:amd64 (1.11-1, automatic), libcommon-sense-perl:amd64 (3.74-2, automatic), libxml-libxml-perl:amd64 (2.0128+dfsg-1build1, automatic), libbonoboui2-0:amd64 (2.24.5-4, automatic), libgnome2-canvas-perl:amd64 (1.002-4build1, automatic), libnet-oauth-perl:amd64 (0.28-2, automatic), libsort-naturally-perl:amd64 (1.03-1, automatic), libgnomevfs2-common:amd64 (1:2.24.4-6.1ubuntu2, automatic), libclass-data-inheritable-perl:amd64 (0.08-2, automatic), libmouse-perl:amd64 (2.4.6-1, automatic), libgoocanvas3:amd64 (1.0.0-1, automatic), libgtk2-appindicator-perl:amd64 (0.15-1build4, automatic), libxml-sax-expat-perl:amd64 (0.40-2, automatic), libgnomevfs2-0:amd64 (1:2.24.4-6.1ubuntu2, automatic), libextutils-depends-perl:amd64 (0.405-1, automatic), libproc-simple-perl:amd64 (1.32-1, automatic), liborbit-2-0:amd64 (1:2.14.19-2, automatic), libgnomecanvas2-0:amd64 (2.30.3-3, automatic), libbonobo2-0:amd64 (2.32.1-3, automatic), perlmagick:amd64 (8:6.9.6.6+dfsg-1ubuntu3, automatic), libgtk2-perl:amd64 (2:1.2499-1, automatic), libgnome2-common:amd64 (2.32.1-5ubuntu1, automatic), libproc-processtable-perl:amd64 (0.53-2, automatic), libgnomevfs2-extra:amd64 (1:2.24.4-6.1ubuntu2, automatic), libfile-which-perl:amd64 (1.21-1, automatic), libxml-simple-perl:amd64 (2.22-1, automatic)

End-Date: 2017-01-26 17:27:29

Lokissa näkyi operaation aloitusaika, annettu komento ja komennon antaja (livetikun oletuskäyttäjä Xubuntu). Itse ohjelman lisäksi asennettiin tarvittavat kirjastot, joista lokissa voitiin nähdä eri kirjastojen nimet, asennettu versionumero sekä alustaversio (amd64). Lopussa näkyi operaation lopetusaika.

Virheilmoitus saatiin /var/log/auth.log -tiedostoon otettaessa SSH-yhteyttä omaan palvelimeen ja tarjoamalla väärää salasanaa kirjautuessa.

Jan 26 19:36:40 xubuntu sshd[7572]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=sensuroituiposoite  user=simppa
Jan 26 19:36:42 xubuntu sshd[7572]: Failed password for simppa from sensuroituiposoite port 48348 ssh2
Jan 26 19:36:50 xubuntu sshd[7572]: message repeated 2 times: [ Failed password for simppa from sensuroituiposoite port 48348 ssh2]
Jan 26 19:36:50 xubuntu sshd[7572]: Connection closed by sensuroituiposoite port 48348 [preauth]
Jan 26 19:36:50 xubuntu sshd[7572]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=sensuroituiposoite user=simppa

Lokissa näkyi operaation aloitus- ja lopetusaika sekä tarkempi virheilmoitus. Lisäksi siitä kävi ilmi kirjautumista yrittäneen tahon käyttäjätunnus ja ip-osoite sekä käytetty portti.

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:’)

Asennettiin demoni komennoilla sudo apt-get update + sudo apt-get install ssh.

Koska kyseessä oli livetikku, käytössä oli oletuskäyttäjä (Xubuntu) eikä salasanaa oltu määritetty. Luotiin uusi käyttäjä komennolla sudo adduser simppa. Seuraavaksi täytettiin käyttäjän tiedot, mm. vahva salasana.

Tämän jälkeen selvitettiin oma ip-osoite komennolla ip addr show. Kun IP-osoite oli selvä voitiin kirjautua myös SSH:n avulla, komennolla ssh simppa@sensuroituiposoite ja antamalla äsken luotu vahva salasana. Seuraavaksi kokeiltiin siirtää tiedosto SCP-komennon avulla, alla suora mutta ip-sensuroitu kopio terminal emulatorista:

simppa@xubuntu:~$ ls
 simppa@xubuntu:~$ exit
 logout
 Connection to sensuroituip closed.
 xubuntu@xubuntu:~$ ls
 Desktop Downloads Music Public Videos
 Documents foo.txt Pictures Templates
 xubuntu@xubuntu:~$ scp foo.txt simppa@sensuroituip:
 simppa@sensuroituip's password: 
 foo.txt 100% 12 63.5KB/s 00:00 
 xubuntu@xubuntu:~$ ssh simppa@sensuroituip
 simppa@sensuroituip's password: 
 Welcome to Ubuntu Zesty Zapus (development branch) (GNU/Linux 4.9.0-12-generic x86_64)

* Documentation: https://help.ubuntu.com
 * Management: https://landscape.canonical.com
 * Support: https://ubuntu.com/advantage
 Last login: Thu Jan 26 19:43:22 2017 from sensuroituip
 simppa@xubuntu:~$ ls
 foo.txt

Eli harjoituksessa kopioitiin onnistuneesti käyttäjän Xubuntu kansiosta tiedosto foo.txt käyttäjän simppa kansioon SSH-demonin avulla. ls -komennolla varmistettiin alussa, että käyttäjän kotikansiossa ei ollut foo.txt tiedostoa ja lopuksi sama komento varmisti, että tiedosto oli siirtynyt kotikansioon.

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

Alla olevalla komennolla asennettiin päivittäin tarvittavat ohjelmat + LAMP-alusta testikoneelle asennettuun Linuxiin. Komentoa päivitetään sitä mukaa, kun tutustutaan uusiin hyödyllisiin ohjelmiin.

sudo apt-get update && sudo apt-get -y install vlc shutter geany ssh gimp tree alsa-utils unity-tweak-tool apache2 mysql-client mysql-server libapache2-mod-php php-mysql curl lynx

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

Testikoneen kanssa oli aluksi suuria ongelmia äänentoiston kanssa. Asensin ongelmia ratkaisemaan Alsamixer -ohjelman komennoilla sudo apt-get update -> sudo apt-get install alsa-utils. Tämän jälkeen käynnistin ks. ohjelman komennolla alsamixer.

Terminal - xubuntu@xubuntu: ~_001.png

Alsamixerillä valittiin oikea äänikortti painamalla F6 (Xonar DGX) ja muutettiin nuolinäppäimillä analogisen ulostulon arvoksi Multichannel, jolloin sain äänet toimimaan kuulokkeiden kautta.

Seuraavaksi asennettiin Nethack, komennoilla sudo apt-get install nethack-console. Peliä pelataan numpadin avulla, joten numpad otettiin käyttöön pelissä komennolla echo “OPTIONS=number_pad:1”>$HOME/.nethackrc (lähde). Peli käynnistyy komennolla nethack. Peli toimi mainiosti, mutta allekirjoittanut vannoo ADOM nimeen Nethackin sijaan.

Terminal - suomisim@Thor: ~_001.png

Lopuksi asennettiin Lm-sensors seuraamaan testikoneen raudan lämpötiloja. Lähteenä asennukseen käytettiin tätä ohjetta ja suoritettiin seuraavat komennot:

$ sudo apt-get install lm-sensors // itse ohjelman asennus

$ sudo sensors-detect //ohjelma kävi läpi laitetietoja ja kysyi lisätietoja. Painettiin ENTER, jolloin hyväksyttiin oletusvalinnat

$ sudo sensors  //saatiin lämpötilatiedot komentokehotteeseen

Terminal - suomisim@Thor: ~_002.png

Ratkaise Over the wire: Bandit, tasot 0 ja 1.
http://overthewire.org/wargames/bandit/bandit0.html

Harjoitus aloitettiin käynnistämällä terminal emulator ja asentamalla SSH komennolla sudo apt-get update + sudo apt-get install ssh. Seuraavaksi otettiin SSH-yhteys bandit0 käyttäjänä serveriin bandit.labs.overthewire.org, käytetty komento oli ssh bandit0@bandit.labs.overthewire.org. Näin selvitettiin taso 0.

Salasana seuraavalle tasolle oli piilotettu serverille /home/readme -tiedostoon. Salasana löytyi komennolla cat /home/bandit0/readme. Seuraavaksi kopioitiin salasana leikepöydälle ja poistuttiin edelliseltä tasolta komennolla exit. Kirjauduttiin seuraavalle tasolle ohjeiden mukaan komennolla ssh bandit1@bandit.labs.overthewire.org ja annettiin salasanaksi edellisessä kohdassa kopioitu salasana.

Seuraavan salasanatiedoston nimeksi oli asetettu “-“. Tällöin tiedostoa käsiteltäessä esim. cat-komennolla on käytettävä tiedoston koko polkua (lähde). Seuraava salasana selvisi siis komennolla cat /home/bandit1/-

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

Linux palvelimet – kotitehtävät 1


Linux palvelimet – kotitehtävät 1

Lähde  Tero Karvinen 2017: Linux kurssi, http://terokarvinen.com

Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa.

Livetikku tehtiin Windows 7 käyttöjärjestelmällä UNetbootin -ohjelmalla (ohjelmistoversio 6.25). Xubuntu levykuva haettiin osoitteesta Xubuntu.org ohjelmalla qBittorrent.Harjoitusta varten ladattiin uusin Xubuntun LTS (long term support) versio joka testaushetkellä oli 16.04.

Harjoitusta varten tikkua testattiin muutaman vuoden vanhalla pöytäkoneella, joka oli aikoinaan huipputehokasta rautaa (tarkemmat tiedot seuraavassa tehtävässä). Koneessa  oli kiinni 2 näyttöä ja 1 televisio + välissä vielä AV-vahvistin.

Ennen tietokoneen uudelleenkäynnistystä varmistettiin Google-haun avulla boottia varten tarvittava näppäinkomento, joka oli F11.Tikulle boottaaminen onnistui ongelmitta.

Linux käynnistyi ongelmitta, tietokoneessa on kiinni 2 näyttöä ja TV ja kuva näkyi kaikissa oikealla resoluutiolla. Ääntä en saanut toimimaan, tietokoneen äänen tulisi siirtyä joko kaiuttimille tai vahvistimelle mutta kumpikaan ulostulo ei toiminut. On mahdollista, että äänikortin (Asus Xonar DGX) ajurit pitäisi asentaa erikseen. Hiiri ja Internet-yhteys toimivat mainiosti. Näppäimistö toimi ja Suomi-asetukset näppäimistöön löytyivät Settings -> Keyboard -> Layout takaa.

Päätin kokeilla onnistuuko ääniongelman korjaaminen uudemmalla Xubuntun versiolla 17.04 (Zesty Zapus) Daily Build. Tikun tekoon käytettiin tällä kertaa Windows 10 käyttöjärjestelmää UNetbootin ohjelman versio pysyi samana.

Livetikku luotiin tällä kertaa lataamatta erillistä ISO-tiedostoa. Sen sijaan sijaan valittiin levykuvan sijaan Jakelu ja valittiin haluttu versio Linuxista.

capture

unetbootin

Boottaus onnistui ongelmitta, mutta äänet eivät vieläkään toimineet. Google-haun avulla selvisi, että Xubuntu tunnistaa kyllä äänikortin, eli ongelma on muualla. Loppujen lopuksi sain äänet kuulumaan analogisesta 3,5mm portista kuulokkeisiin tämän ohjeen avulla. Asensin ensin Alsamixer -ohjelman komennoilla sudo apt-get update -> sudo apt-get install alsa-utils. Tämän jälkeen käynnistin ks. ohjelman komennolla alsamixer.

Terminal - xubuntu@xubuntu: ~_001.png

Alsamixerillä valittiin oikea äänikortti (Xonar DGX) ja muutettiin analogisen ulostulon arvoksi Multichannel. Onnistumisesta innostuneena jatkoin digitaalisen ongelman selvittämistä. Pian löysin Ubuntun foorumeilta yksittäisen vinkin, jonka perusteella sain digitaalisen ulostulon toimimaan seuraavalla konfiguraatiolla:

Volume Control_002.png

Selection_003.png

Jostain syystä äänikortin digitaalinen ulostulo oli vielä mutella (ks. kuva)

Omaksi ilokseni kokeilin tikkua vielä Lenovon pari vuotta vanhalla läppärillä (Lenovo Yoga 2). Ongelmaksi muodostui läppärin kosketusnäyttö, näppäimistö ja touchpad. Ainoastaan kosketusnäyttö toimi, mutta näppäimistö ja touchpad eivät toimineet. Ongelma ratkesi kun päivitin livetikun Xubuntun versioon 17.04.

Listaa testaamasi koneen rauta (‘sudo lshw -short -sanitize’)

Ajettiin alla oleva komento Terminal emulatorissa:

$ sudo lshw -short -sanitize

H/W path Device Class Description
==============================================================
system MS-7760 (To be filled by O.E.
/0 bus X79A-GD65 (8D) (MS-7760)
/0/0 memory 64KiB BIOS
/0/4 processor Intel(R) Core(TM) i7-3930K CP
/0/4/5 memory 384KiB L1 cache
/0/4/6 memory 1536KiB L2 cache
/0/4/7 memory 12MiB L3 cache
/0/24 memory 16GiB System Memory
/0/24/0 memory 4GiB DIMM DDR3 1333 MHz (0.8
/0/24/1 memory DIMM Synchronous [empty]
/0/24/2 memory 4GiB DIMM DDR3 1333 MHz (0.8
/0/24/3 memory DIMM Synchronous [empty]
/0/24/4 memory 4GiB DIMM DDR3 1333 MHz (0.8
/0/24/5 memory DIMM Synchronous [empty]
/0/24/6 memory 4GiB DIMM DDR3 1333 MHz (0.8
/0/24/7 memory DIMM Synchronous [empty]
/0/100 bridge Xeon E5/Core i7 DMI2
/0/100/1 bridge Xeon E5/Core i7 IIO PCI Expre
/0/100/2 bridge Xeon E5/Core i7 IIO PCI Expre
/0/100/2/0 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/2/0/8 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/2/0/8/0 display GK104 [GeForce GTX 690]
/0/100/2/0/8/0.1 multimedia GK104 HDMI Audio Controller
/0/100/2/0/10 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/2/0/10/0 display GK104 [GeForce GTX 690]
/0/100/2/0/10/0.1 multimedia GK104 HDMI Audio Controller
/0/100/3 bridge Xeon E5/Core i7 IIO PCI Expre
/0/100/3/0 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/3/0/8 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/3/0/8/0 display GK104 [GeForce GTX 690]
/0/100/3/0/8/0.1 multimedia GK104 HDMI Audio Controller
/0/100/3/0/10 bridge PEX 8747 48-Lane, 5-Port PCI
/0/100/3/0/10/0 display GK104 [GeForce GTX 690]
/0/100/3/0/10/0.1 multimedia GK104 HDMI Audio Controller
/0/100/5 generic Xeon E5/Core i7 Address Map,
/0/100/5.2 generic Xeon E5/Core i7 Control Statu
/0/100/5.4 generic Xeon E5/Core i7 I/O APIC
/0/100/11 bridge C600/X79 series chipset PCI E
/0/100/16 communication C600/X79 series chipset MEI C
/0/100/19 eno1 network 82579V Gigabit Network Connec
/0/100/1a bus C600/X79 series chipset USB2
/0/100/1a/1 usb1 bus EHCI Host Controller
/0/100/1a/1/1 bus Integrated Rate Matching Hub
/0/100/1a/1/1/6 input Razer DeathAdder
/0/100/1b multimedia C600/X79 series chipset High
/0/100/1c bridge C600/X79 series chipset PCI E
/0/100/1c/0 bus VT6315 Series Firewire Contro
/0/100/1c.1 bridge C600/X79 series chipset PCI E
/0/100/1c.1/0 bus uPD720200 USB 3.0 Host Contro
/0/100/1c.1/0/0 usb4 bus xHCI Host Controller
/0/100/1c.1/0/1 usb3 bus xHCI Host Controller
/0/100/1c.2 bridge C600/X79 series chipset PCI E
/0/100/1c.2/0 bus uPD720200 USB 3.0 Host Contro
/0/100/1c.2/0/0 usb6 bus xHCI Host Controller
/0/100/1c.2/0/1 usb5 bus xHCI Host Controller
/0/100/1c.4 bridge C600/X79 series chipset PCI E
/0/100/1c.4/0 storage ASM1062 Serial ATA Controller
/0/100/1c.6 bridge C600/X79 series chipset PCI E
/0/100/1c.6/0 bridge ASM1083/1085 PCIe to PCI Brid
/0/100/1c.6/0/4 multimedia CMI8788 [Oxygen HD Audio]
/0/100/1d bus C600/X79 series chipset USB2
/0/100/1d/1 usb2 bus EHCI Host Controller
/0/100/1d/1/1 bus Integrated Rate Matching Hub
/0/100/1d/1/1/1 scsi8 storage DataTraveler 2.0
/0/100/1d/1/1/1/0.0.0 /dev/sdd disk 15GB SCSI Disk
/0/100/1d/1/1/1/0.0.0/1 /dev/sdd1 volume 14GiB Windows FAT volume
/0/100/1d/1/1/5 input Corsair K70R Gaming Keyboard
/0/100/1e bridge 82801 PCI Bridge
/0/100/1f bridge C600/X79 series chipset LPC C
/0/100/1f.2 storage C600/X79 series chipset 6-Por
/0/100/1f.3 bus C600/X79 series chipset SMBus
/0/8 generic Xeon E5/Core i7 QPI Link 0
/0/8.3 generic Xeon E5/Core i7 QPI Link Reut
/0/8.4 generic Xeon E5/Core i7 QPI Link Reut
/0/9 generic Xeon E5/Core i7 QPI Link 1
/0/9.3 generic Xeon E5/Core i7 QPI Link Reut
/0/9.4 generic Xeon E5/Core i7 QPI Link Reut
/0/a generic Xeon E5/Core i7 Power Control
/0/a.1 generic Xeon E5/Core i7 Power Control
/0/a.2 generic Xeon E5/Core i7 Power Control
/0/a.3 generic Xeon E5/Core i7 Power Control
/0/b generic Xeon E5/Core i7 Interrupt Con
/0/b.3 generic Xeon E5/Core i7 Semaphore and
/0/c generic Xeon E5/Core i7 Unicast Regis
/0/c.1 generic Xeon E5/Core i7 Unicast Regis
/0/c.2 generic Xeon E5/Core i7 Unicast Regis
/0/c.6 generic Xeon E5/Core i7 Integrated Me
/0/c.7 generic Xeon E5/Core i7 System Addres
/0/d generic Xeon E5/Core i7 Unicast Regis
/0/d.1 generic Xeon E5/Core i7 Unicast Regis
/0/d.2 generic Xeon E5/Core i7 Unicast Regis
/0/d.6 generic Xeon E5/Core i7 Integrated Me
/0/e generic Xeon E5/Core i7 Processor Hom
/0/e.1 generic Xeon E5/Core i7 Processor Hom
/0/f generic Xeon E5/Core i7 Integrated Me
/0/f.1 generic Xeon E5/Core i7 Integrated Me
/0/f.2 generic Xeon E5/Core i7 Integrated Me
/0/f.3 generic Xeon E5/Core i7 Integrated Me
/0/f.4 generic Xeon E5/Core i7 Integrated Me
/0/f.5 generic Xeon E5/Core i7 Integrated Me
/0/f.6 generic Xeon E5/Core i7 Integrated Me
/0/10 generic Xeon E5/Core i7 Integrated Me
/0/10.1 generic Xeon E5/Core i7 Integrated Me
/0/10.2 generic Xeon E5/Core i7 Integrated Me
/0/10.3 generic Xeon E5/Core i7 Integrated Me
/0/10.4 generic Xeon E5/Core i7 Integrated Me
/0/10.5 generic Xeon E5/Core i7 Integrated Me
/0/10.6 generic Xeon E5/Core i7 Integrated Me
/0/10.7 generic Xeon E5/Core i7 Integrated Me
/0/11 generic Xeon E5/Core i7 DDRIO
/0/13 generic Xeon E5/Core i7 R2PCIe
/0/13.1 generic Xeon E5/Core i7 Ring to PCI E
/0/13.4 generic Xeon E5/Core i7 QuickPath Int
/0/13.5 generic Xeon E5/Core i7 Ring to Quick
/0/13.6 generic Xeon E5/Core i7 Ring to Quick
/0/1 scsi0 storage
/0/1/0.0.0 /dev/sda disk 240GB Corsair Force 3
/0/1/0.0.0/1 /dev/sda1 volume 78GiB Windows NTFS volume
/0/1/0.0.0/2 /dev/sda2 volume 144GiB Windows NTFS volume
/0/2 scsi1 storage
/0/2/0.0.0 /dev/sdb disk 120GB Samsung SSD 840
/0/2/0.0.0/1 /dev/sdb1 volume 299MiB Windows NTFS volume
/0/2/0.0.0/2 /dev/sdb2 volume 99MiB Windows FAT volume
/0/2/0.0.0/3 /dev/sdb3 volume 127MiB reserved partition
/0/2/0.0.0/4 /dev/sdb4 volume 110GiB Windows NTFS volume
/0/2/0.0.0/5 /dev/sdb5 volume 449MiB Windows NTFS volume
/0/3 scsi4 storage
/0/3/0.0.0 /dev/sdc disk 2TB ST2000DM001-9YN1
/0/3/0.0.0/1 /dev/sdc1 volume 30GiB Windows NTFS volume
/0/3/0.0.0/2 /dev/sdc2 volume 78GiB Windows NTFS volume
/0/3/0.0.0/3 /dev/sdc3 volume 869GiB Extended partition
/0/3/0.0.0/3/5 /dev/sdc5 volume 869GiB HPFS/NTFS partition
/0/3/0.0.0/4 /dev/sdc4 volume 885GiB Windows NTFS volume
/1 power To Be Filled By O.E.M.

Litaniasta käy ilmi mm. testikoneen emolevy X79A-GD65 (8D), prosessori (Intel(R) Core(TM) i7-3930K), RAM-muistin määrä (16GiB), näytönohjaimen malli (GeForce GTX 690) sekä kovalevyjen merkkejä + osiointitietoja.

Asenna kolme itsellesi uutta ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa

Harjoitusta varten asennettiin VLC player (median katselu/kuuntelu), Shutter (kuvankaappausohjelma) ja Geany (tekstieditori)

Aloitettiin harjoitus ajamalla komennot:

$ sudo apt-get update //saatavilla olevien APK-pakettien listan päivitys

$ apt-cache search video player //etsittiin harjoituksen vuoksi ohjelmia hakusanalla "video player"

$ sudo apt-get install vlc //asennettiin VLC media player + tarvittavat kirjastot

$ sudo apt-get install shutter //asennettiin Shutter

$ sudo apt-get install geany //asennettiin Geany

Vaihtoehtoisesti kaikki kolme olisi voitu asentaa kerralla komennolla:

$ sudo apt-get install vlc shutter geany

VLC media playerin kanssa ääniongelmat luonnollisesti jatkuivat. Ilmeisesti Linux ei tunnista erillisen äänikortin ajureita automaattisesti. Muuten ohjelma toimi nopeasti ja sujuvasti.

Testitiedosto oli Gravity elokuvan trailerivideo, joka oli pakattu H.264 -tekniikalla.

Video Type: 2048×858 (2K), 23.967 FPS, Level 4.1

Audio Type: AAC, 2.0 Channel

Shutter on edistyneempi versio Windowsin mukana tulevasta Snipping tool -kuvankaappausohjelmasta. Ohjelma toimi helposti ja monipuolisia toimintoja saattaa tulla ikävä Windows-käyttäjänä. Kaikki harjoitustehtävieni ruudunkaappaukset on tehty ks. ohjelmalla.

Geany -tekstieditori löytyi Googlettamalla “Notepad++ alternatives”. Kyseessä on siis monipuolisempi tekstieditori, esimerkiksi kevyeen koodaamiseen tai koodin tutkimiseen (kuva alla, kuvankaappaus otettu Shutterin avulla). Ohjelma toimi niin kuin piti.

artifacts.xml - -media-xubuntu-42A098ECA098E7A5-Program Files-Java-eclipse - Geany_001.png

Mitä lisenssiä kukin näistä ohjelmista käyttää? Selitä lyhyesti, mitä oikeuksia ja velvolisuuksia tuosta lisenssistä seuraa

VLC media player käyttää GPL versiota 2, eli käyttäjällä on oikeus käyttää ohjelmaa miten tahtoo, tutustua ohjelman sisältöön ja muokata sitä sekä jakaa kopioita ohjelmasta alkuperäisenä tai muokattuna versiona – myös maksua vastaan. (Lähde: VLC legal )

Shutter käyttää GPL versiota 3, joka tarjoaa samat vapaudet kuin edellinen versio mutta paikkaa tiettyjä porsaanreikiä (Lähde).

Geany käyttää VLC media playerin tapaan GPLv2 -lisenssiä.(Lähde: Geany manual)

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

MS Office (tekstinkäsittelu, taulukot, esitykset jne.): Libre Office

Infranview (kevyt kuvienkäsittely): XnView

Snipping tool (kuvankaappaus): Shutter

Photoshop (raskas kuvienkäsittely): GIMP

VPN (suojattu verkkoyhteys): OpenVPN

Spotify (musiikki): Toimii myös Linuxilla

Onedrive, Dropbox (pilvitallennus): Dropbox toimii Linuxilla, OneDriveä ei virallisesti tueta, mutta ohjeiden avulla on mahdollista synkronoida tiedostot myös Linuxilla (Lähde)

Chrome (verkkoselain): Firefox, Chromium

qBittorrent (bittorrent): qBittorrent löytyy myös Linuxille.

PC-pelaaminen: Osa toimii – osa ei.

VLC media player (mediatoistin): VLC toimii myös Linuxilla

WinRar (pakkaus/purkuohjelma): WinRar löytyy Linuxille

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

Harjoitusta varten käytiin läpi tärkeät tiedostot pöytäkoneelta ja varmistettiin, että mitään tärkeitä tietoja ei pääsisi katoamaan muita harjoituksia tehtäessä. Varmuuskopiointia on harrastettu jo ennen kurssin alkua, eikä allekirjoittaneella loppujen lopuksi ole yhtäkään tiedostoa, jonka menetys olisi korvaamatonta. Harjoituksen vuoksi tärkeät tiedostot kuitenkin kopioitiin yhteen kansioon, pakattiin WinRar -ohjelmalla ja siirrettiin pakattu tiedosto ulkoiselle kovalevylle.

Jos varmuuskopioinnille olisi kriittinen ja jatkuva tarve, käyttäisin esim. COMODO Backup -ohjelmaa, jonka avulla voi automatisoida varmuuskopiointiprosessin. Windows 10 sisältää myös automaattisen varmuuskopioinnin, mutta ohjelma ei ymmärrä kopioida kuin tietyissä kansiossa ja kirjastoissa olevat tiedostot. Tärkeimmät tekstitiedostot tietokoneellani on tallennettu pilveen, joten ne ovat turvassa. Valokuvat ja muu media on tallennettu omalle kovalevylleen tai vähintään levyn osiolle. Nämä tiedostot eivät toki ole turvassa jos laite hajoaa.

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