Virtuaalisen weppipalvelimen konffaus

Aloitan tehtävät 6.2.2019 klo 18:31. Tehtävälistaan kuuluvat
a) Laita hankkimallesi virtuaalipalvelimelle mahdollisuus tehdä kotisivuja normaalin käyttäjän oikeuksin.
s) Laita hankkimallesi virtuaalipalvelimelle käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna.
y) Etsi palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla ipcalc, geoiplookup ja whois.
b) Tee weppisivuja paikallisella koneellasi ja kopioi ne palvelimelle scp-komennolla.
c) Ole huolellinen, jos otat vastaan syötteitä lomakkeilla (forms).

Suoritimme jo tunnilla erinäisiä toimenpiteitä tehtävän edistämiseksi. Loimme virtuaalipalvelimet, tässä tapauksessa digital oceaniin (1GB RAM, 25GB Disk) ja palvelin sijaitsee Ranskassa. Palvelimella pyörii Ubuntu 18.04 x64.

Yhdistin koneelle SSH:lla, ja tein sudo-tunnuksen itselleni. Tämän jälkeen avasin palomuurista portin 80 ja lukitsin rootin sudo usermod –lock rootilla. sshd configista kävin vielä vaihtamassa PermitRootLogin -> No.

Ensitöikseni otan ssh -yhteyden palvelimelle tehtävää A -varten.

Jotta voimme tehdä kotisivuja normaalin käytätjän oikeuksin, teemme ensin normaalin käyttäjän ilman sudo, tai admin oikeuksia. Olkoon hänen nimensä pepe.

Annetaan pepelle niin vaikea salasana, ettei hakkerit pääse hänen tunnuksillaan sisään, mutta pepe pääsee juuri ja juuri.

Pepe voi kirjautua nyt ssh:lla palvelimelle, mutta kotisivuja ei voi vielä tehdä. Pepellä on nyt oma kotikansio home -hakemistossa.

Tein pepelle oman index.html -sivun.

Mennään pihlaniemi.com/~pepe, jotta näemme onko uurastus kantanut hedelmää.

Pepen sivut toimivat, toisin kuin namecheapin mainostama SSL sertifikaatti

Seuraavaksi, tehtävä S, laitoin oletussivuksi hankkimalleni palvelimelle ruman mutta toimivan testisivun. Prosessi tehtiin osittain tunnilla, joten dokumentoin ulkomuistista alkuosan. Nimipalvelusta hankin osuvasti omalle nimelleni domainin (pihlaniemi.com). Tämän jälkeen loin oman käyttäjätunnukseni alle home/ossi/publicsites/pihlaniemi/index.html yksinkertaisen sivun. Sudo a2ensite pihlaniemi.com.conf -tiedostolla sain lisättyä sites-available -kansioon. Sitten boottasin apachen sudo service apache2 restartilla.

Lisäsin sitten etc/apache2/sites-availableen konfiguraatiotiedostoon pihlaniemi.com.conf seuraavanlaista sisältöä

Seurasi typing errorista johtuvaa kiroilua ja 403 -virhettä runsaasti. Avasin kaljan ja jatkoin toimintaa päättäväisesti. Kuitenkin ylläolevaan kuvaan olin saanut oikean konfiguraation aikaiseksi. Oikean konfiguraation jälkeen ajoin sudo systemctl reload apache

Sitten katsotaan lopputulosta:

Herraisä, sehän toimii. Kello on nyt 21:56 ja olen voittanut pienen taistelun elämässäni

Siirrytään tehtävään Y, eli katsotaan onko palvelimeni herättänyt kiinnostusta esimerkiksi bottien piireissä.

Miltei sekunnin välein palvelimelleni on yritetty tunkeutua mitä surkeammilla käyttäjätunnusehdotuksilla

Kokeilin whoisilla yhtä ip-osoitteesta ja ruotsalaiset asialla. Ehkä. Jätän asian puimisen sikseen palvelunestohyökkäyksen pelossa.

Windowsilta scp:lla siirtäminen lokaaleista tiedostoista osoittautui konstikkaaksi terminaalilla. Kello oli 22:30 ja pidin tauon.

Jatkoin klo 00:30, asensin puttyn scp -ohjelman pscp:n. Siirsin joskus digipalvelukurssilla tekemäni nettisivun linux -palvelimelleni komennolla: pscp -r Desktop\kultainenpeura2 ossi@188.166.167.2:/home/ossi

Komento onnistui niinkin hyvin että mukana lähti myös tiedostoja joiden en muistanut edes olevan kansiossa.

Hautaustoimiston sivut siirtyivät hienosti ja lähdin tekemään pientä PHP -scriptiä tehtävää C varten. Lopetan tämän tekemisen klo 02:00.

Jatkoin sunnuntaina klo 19:00, 10.2.2019. Pihlaniemi.com ohjaa nyt ossi/publicsites/pihlaniemi/ -hakemistoon. Tein sinne uuden filen, index.php:n sudo nano index.php:lla. Näppäilen yli 21 merkkisen jumalaisen salasanani jotta ubuntu tietää kuka on sudo ja kuka ei.

Laitetaan laatucontenttia sivulle testiksi

Mennään selaimessa testaamaan näkyykö tiedostoon laitetut kilkkeet.

Php -testi jytää selaimessa hienosti

Kello on 19:30, ja sivu näkyy juuri kuten pitääkin. lopetan tehtävät tältä viikolta.

Lähteet:
Saitin perustaminen: http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean

https://jvaris.wordpress.com/2014/03/03/linux-server-task-5-apache-name-based-virtual-hosting/
LAMP jne:
http://terokarvinen.com/2016/read-mysql-database-with-php-php-pdo

SCP:
https://stackoverflow.com/questions/8975798/scp-w-ssh-copying-a-local-file-from-windows-to-a-remote-server-using-scp
ROISTOT: https://www.tecmint.com/find-failed-ssh-login-attempts-in-linux/


Linux weppipalvelimena

Päivän agendana on tehdä viisi seuraavista tehtävävaihtoehdoista:

a) Asenna Apache, laita käyttäjien kotisivut (http://example.com/~tero) toimimaan. Testaa esimerkkikotisivulla.
b) Surffaa oman palvelimesi weppisivuja. Etsi Apachen lokista esimerkki onnistuneesta (200 ok) sivulatauksesta ja epäonnistuneesta (esim 404 not found) sivulatauksesta. Analysoi rivit.
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)

Kello on 23:30 2.1.2019.

Lähdetään A -tehtävästä liikkeelle. Vaihdetaan ensin näppäimistö lokaaliksi setxkbmap fi, sekä päivitetään järjestelmä sudo apt-get updatella. Sitten asennetaan Apache komennolla sudo apt-get install apache2.

Kun menee localhostiin selaimessa, voimme nähdä että apache rockkaa palvelimella!

Seuraavaksi tehtävän mukaisesti meidän täytyy saada weppisivun sisältö käyttäjän (xubuntu) omaan hakemistoon. Pikaisen googletuksen avulla pääsen artikkeliin https://websiteforstudents.com/setup-apache2-userdir-module-on-ubuntu-16-04-lts-servers/ jossa on mainiot ohjeet toimenpiteen suorittamiseksi.

Komennetaan terminaalia sudona a2enmod userdir, jonka jälkeen käynnistetään apache uudelleen.

Seuraavaksi tehdään public_html käyttäjän hakemistoon, sekä nanolla muokataan yksinkertainen weppisaitti pyörimään.

Saitti ei ole kaunis, mutta aikakin se pyörii juuri asentamallani Apachella ja sisältö löytyy käyttäjän hakemistosta.

Tehtävä B. Seuraavaksi käsitellään Apachen logitusta ja mennään samalla tehtävään B. Äskeisen sivun avaamisen pitäisi tuottaa http- koodi 200, eli OK. Käydään vilkaisemassa apachen logia /var/log/apache2 -hakemistossa.

Viimeisimpänä GET koodilla 200 (OK) joka saatiin aikaiseksi yksinkertaisesti avaamalla sivu

Laitoin tail -f access.log -komennon ja koitin mennä resurssiin jota ei löydy public_html -hakemistosta. Tämän pitäisi oletettavasti antaa meille virhe 404, joka tarkoittaa että HTTP -kutsu ei löydä hakemaansa resurssia.

Laitoin osoitepalkkiin http://localhost/~xubuntu/hermes joka tuotti logiin http -virhekoodin odotetusti:

127.0.0.1 – – [03/Feb/2019:22:25:24 +0000] “GET /~xubuntu/hermes HTTP/1.1” 404 505 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0”

Lokirivistä näkee kätevästi Apachen clientin IP-osoitteen, timestampin kutsun tekohetkestä, kutsutyypin sekä pyydetyn urlin (GET /~xubuntu/hermes) ja HTTP -protokollan versio. lisäksi mukana tulee virhekoodi (404), merkkijonon pituus (505), sekä ns. user agent josta näkee millä softalla / alustalla kutsu on tehty.

Tehtävä J: Lähdetään asentamaan koko LAMP -pakettia muita tehtäviä varten. Apache löytyykin jo Linuxistani. Yritin asentaa mysql serverin. sudo apt install mysql-server. Syslog ilmoittaa fatal errorista.

xubuntu@xubuntu:/$ mysql
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2). Yritin bootata koneen, asentaa apachen uudelleen ja mysql uudelleen. Sama virhe palautuu yhä.


Jatketaan kuitenkin PHP:lla. sudo apt install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php. Asennus onnistuu muuten, mutta mysql-moduulit aiheuttivat virheen:

Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Käynnistetään apache kuitenkin uudelleen. sudo service apache2 restart

Testataan PHP:n toimivuus php -r ‘echo “\n\nYour PHP installation is working fine.\n\n\n”;’

Apachen ja PHP:n toimivuus testattu, valitettavasti MySQL Server ei alkanut toimia. Yritetty käyttää toimenpiteitä https://stackoverflow.com/questions/11657829/error-2002-hy000-cant-connect-to-local-mysql-server-through-socket-var-run -keskustelusta apuna, mutta sama virhe tulee toistuvasti.

Tehtävä F: Lähdetään tekemään PHP -scriptia. En osaa PHP:ta yhtään joten tässähän sitä viisastuu samalla.

Etsitään dirconf-tiedosto, koska serverin pitäisi priorisoida HTML -tiedostojen sijaan PHP filejä: sudo nano /etc/apache2/mods-enabled/dir.conf

Teen pienen filen /var/www/html hakemistoon jolle annan nimeksi index.php. Tiedostoon laitan sisälle sudo nanolla <?php
print(“Toimiiko???”); ?>

Helloworld -tyyppinen testiscripti pyörii nyt apachen voimalla ja näyttää PHP -tiedoston sisällön


Helloworld tyyppisen kokeilun jälkeen rohkenen yrittää tehdä tehtävän mukaisen laskuri-PHP -tiedoston. Kokemattomana PHP-maakarina googletan esimerkkejä.

Copy<form action="site.php" method="GET">
     Num1: <input type="number" name="num1">
     Num2: <input type="number" name="num2">
     <input type="submit">
</form>

<?php
     $num1 = $_GET["num1"];
     $num2 = $_GET["num2"];
     echo $num1 + $num2;
?>
https://www.mikedane.com/web-development/php/creating-a-calculator/

Hienoa! Nyt meillä on sovellus joka laskee yksinkertaisen matematiikkalaskun.

Kello on nyt 2:26, tehtävät ovat olleet henkisesti rankkoja.

Siirrytään tehtävään D. Tehdään apachen configuraatiotiedostoon virhe, ja mennään ihmettelemään sitä lokitiedostoista.

Navigoin hakemistoon /etc/apache2/ josta löytyy tiedosto apache2.conf. Sudo nano apache2.confilla lähdetään tuhoamaan toimivaa configuraatiota.

Tein kaksi muutosta tiedostoon apache2.conf. Muutin DefaultRuntimeDirin “APACHE_RUIN_DIR” ja PidFileen lisäsin “222”

sudo service apache2 restart tuotti virheilmoituksen “Job for apache2.service failed because the control process exited with error code.
See “systemctl status apache2.service” and “journalctl -xe” for details.”

Apachemme kaatui hienosti jo ensimmäiseen muutokseen. Runtime -hakemistoa ei löytynyt konfiguraatiomuuttujan takaa. Palvelun käynnistäminen epäonnistuu ja http-serverimme on alhaalla.

Feb 04 00:36:30 xubuntu systemd[1]: Starting The Apache HTTP Server…
Feb 04 00:36:30 xubuntu apachectl[28201]: [Mon Feb 04 00:36:30.730887 2019] [core:warn] [pid 28204] AH00111: Config variable ${APACHE_RUIN_DIR} is not defined
Feb 04 00:36:30 xubuntu apachectl[28201]: apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot

Kävin myös katsomassa var/log/apache2/error.login, jossa oli melko geneerinen ilmoitus uudelleenkäynnistymisestä [Mon Feb 04 00:36:30.662104 2019] [mpm_prefork:notice] [pid 27274] AH00169: caught SIGTERM, shutting down. Googlettamisen tuloksena havaitsin, että tälläisiä ilmoituksia saattaa tulla ihan normaalistikin, mutta error.logiin ei tullut virheestä muuta tietoa.

Kello on 03:15 ja tehtävät ovat tehty. Huomasin tehtävien aikana, että terminaalin käyttö on helpottanut huomattavasti ja se ei tunnu yhtä vieraalta kuin aikaisemmin. Asiat tuntuvat myös löytyvän helpommin ja PHP sekä Apache tuntuu nyt paljon tutummalta. Apachen asentaminen ja pyörittäminen tuntui hyvin yksinkertaiselta näin perustasolla.

Tehtävät:

http://terokarvinen.com/2018/aikataulu-linux-palvelimet-ict4tn021-3004-ti-alkukevat-2019-5-op  (H3)

Weppipalvelimet:
Kotihakemisto: https://websiteforstudents.com/setup-apache2-userdir-module-on-ubuntu-16-04-lts-servers/
Logit: https://blog.codeasite.com/how-do-i-find-apache-http-server-log-files/
Loki-ilmoituksen tutkiminen: https://serverfault.com/questions/607873/apache-is-ok-but-what-is-this-in-error-log-mpm-preforknotice/607880

Asennus:
LAMP: https://howtoubuntu.org/how-to-install-lamp-on-ubuntu
MySql-ongelmat:
https://stackoverflow.com/questions/11657829/error-2002-hy000-cant-connect-to-local-mysql-server-through-socket-var-run
PHP:
Scripti: https://www.mikedane.com/web-development/php/creating-a-calculator/
Conffaus: https://stackoverflow.com/questions/7873634/why-does-index-html-have-priority-over-index-php

Linux palvelimen terminaali ja lokit

Aloitin tekemään kurssin h2 -harjoituksia kello 20:18, samalla koneella kuin aikaisemmassa harjoituksessa, eli Lenovo P51:lla. Harjoituksen aikana ajan XUbuntu -järjestelmää livetikulta.

Ensinmäinen harjoitus on etsiä Linuxin logista esimerkki onnistuneesta ja epäonnistuuneesta toimenpiteestä. Koska ajamme joka bootissa tyhjenevää Linuxia, ei meillä ole mitään ohjelmistoa ja tavanomaisten käytössä ilmenevien virheiden mahdollisuus on hyvin pieni.

Tässä vaiheessa järjestelmässä salasanan yrittäminen väärin kirjoittamalla on varma tapa saada logitettava virheilmoitus.

Lähdetään siis liikkeelle käynnistämällä terminaali, ja muuttamalla näppäimistö lokaaliksi setxkbmap fi.

Selvittelin https://www.digitalocean.com/community/tutorials/how-to-monitor-system-authentication-logs-on-ubuntu -sivulta missä Ubuntussa logitetaan sisäänkirjautumisia. Lähdetään katsomaan login sisältöä ennen salasanan asettamista.

auth.log boottauksen jälkeen 20:45

Löysimme lokitiedoston. Lähdetään asettamaan salasanaa.

Ajan komennon passwd, jonka jälkeen terminaali kysyy nykyistä salasanaa. Sitä ei luonnollisesti bootin jälkeen ole. Tämän jälkeen annan uuden salasanan joka sisältää yhdeksän merkkiä, isoja ja pieniä kirjaimia, numeron ja erikoismerkin. Tästä näemme auth logissa merkinnän salasananvaihdon onnistumisesta

Jan 27 18:49:10 xubuntu passwd[2801]: pam_unix(passwd:chauthtok): password changed for xubuntu – Salasana vaihdettu siis onnistuneesti.

Kyseisessä lokirivissä näkyy toimenpiteen aika ja päivämäärä, sekä palvelin jossa komento ajetaan. Ilmeisesti passwd[2801] viittaa lokissa rivinumeroon ja komentoon josta lokimerkintä on tullut. Tämän jälkeen lokissa on käyttäjätunnus (pam_unix) jolle salasana vaihdettiin, sekä lokitettu toimenpide, eli salasanan vaihtaminen kansankielistettynä versiona.

Kuitenkin päädyn testimielessä unohtamaan salasanani, ja koittamaan vaihtaa se takaisin tyhjäksi. Laitan uudeleen passwd -komennon, jonka jälkeen sain lokiin (auth.log) virheilmoituksen Jan 27 19:05:24 xubuntu passwd[3019]: pam_unix(passwd:chauthtok): authentication failure; logname= uid=999 euid=0 tty= ruser= rhost= user=xubuntu

Oheisen virheilmoituksen logname viittaa kirjautuneeseen käyttäjään, jota ei livetikulta ajettaessa oletuksena ole. Uid=999 viittaa Linuxin oletuskäyttäjään, EUID eli effective user id, tämä kenttä täyttyy kun prosessin käyttäjä poikkeaa alkuperäisestä (uid). TTY on jotain ihan käsittämätöntä legacyhömppää josta en saanut mitään selkoa edes googlettamalla. Ruser viittaa kirjautuneisiin laitteisiin paikallisverkossa jotka vastaavat (https://linux.die.net/man/1/rusers), rhost palauttaa yhden ip-osoitteen, mutta tässä kontekstissa livetikulla en tiedä mikä ip tähän pitäisi tulostua. Varmaan jos auth -muutos tulee jostain paikallisverkon laitteesta, joka eroaa laitteesta jossa XUbuntua ajetaan.

Softan asennus terminaalin kautta

Seuraavaksi koitetaan asentaa Chrome -selain. Käyttöjärjestelmän mukana tuleva firefox 59.0.2 kaatuu jatkuvasti. Kuitenkaan sudo apt-get update ei toimi. Koitin ottaa screenshotin ja sekin tuotti virheilmoituksen.

Järjestelmässä screenshotin ottaminenkin tuotti virheen.

Koitin ratkaista ongelman linkin https://askubuntu.com/questions/358560/eread-error-read-5-input-output-error-ethe-package-lists-or-status-file -ohjeiden mukaisesti. Poistetaan listat aptista ja tehdään ne uudelleen, jonka jälkeen update:

sudo rm -r /var/lib/apt/lists/
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Yritän ajaa sudo apt-get updaten uudelleen:

Get:3 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
0% [3 InRelease 77.9 kB/242 kB 32%] [4 InRelease 1138 B/88.7 kB 1%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
Get:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
0% [5 InRelease 5497 B/88.7 kB 6%] [4 InRelease 20.0 kB/88.7 kB 22%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
0% [4 InRelease 25.8 kB/88.7 kB 29%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
sh: 1: /usr/bin/test: Input/output error
sh: 1: /bin/echo: Input/output error
Reading package lists… Done
E: The repository ‘cdrom://Xubuntu 18.04 LTS Bionic Beaver – Release amd64 (20180426) bionic Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Problem executing scripts APT::Update::Post-Invoke-Success ‘/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call –system –dest org.freedesktop.PackageKit –object-path /org/freedesktop/PackageKit –timeout 4 –method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null’
E: Sub-process returned an error code

Get:3 http://archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [88.7 kB]
0% [3 InRelease 77.9 kB/242 kB 32%] [4 InRelease 1138 B/88.7 kB 1%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
Get:5 http://archive.ubuntu.com/ubuntu bionic-updates InRelease [88.7 kB]
0% [5 InRelease 5497 B/88.7 kB 6%] [4 InRelease 20.0 kB/88.7 kB 22%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
0% [4 InRelease 25.8 kB/88.7 kB 29%]Failed to exec method /usr/lib/apt/methods/gpgv ( via /usr/lib/apt/methods/gpgv)
sh: 1: /usr/bin/test: Input/output error
sh: 1: /bin/echo: Input/output error
Reading package lists… Done
E: The repository ‘cdrom://Xubuntu 18.04 LTS Bionic Beaver – Release amd64 (20180426) bionic Release’ does not have a Release file.
N: Updating from such a repository can’t be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Method gpgv has died unexpectedly!
E: Sub-process gpgv returned an error code (100)
E: Method /usr/lib/apt/methods/gpgv did not start correctly
E: Problem executing scripts APT::Update::Post-Invoke-Success ‘/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call –system –dest org.freedesktop.PackageKit –object-path /org/freedesktop/PackageKit –timeout 4 –method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null’
E: Sub-process returned an error code

Linux yrittää murtaa miestä, mutta pysyn vahvana. Psyykeeni muurit eivät murru ja jatkan yrittämistä. Koitan sulkea linuxin käyttöliittymän kautta, ja sekin tuotti virheen.

Sammuttaessa uloskirjautumisen prosessi epäonnistui myös.

Tässä vaiheessa huomasin että koira oli heilauttanut USB -tikkua, jota epäilen syyksi loki-ilmoituksille että tiedostoja ei löydy apt -komennoissa ja järjestlemän peruskomponentit kaatuvat.

Pidin 15 minuutin tauon, kello on nyt 22:00. Boottasin koneen ja virheet tuntuvat poistuneen. Sudo apt-get upgrade toimii taas.

Ajan sudo apt-get updaten, jonka jälkeen apt-cache searchilla haen, millä saan Google Chromen ladattua.

Kohta surffaillaan mukavasti Chrome -selaimella!

Seuraavaksi asennamme kolme(3) ohjelmaa, joita käytetään komentokehoitteesta. Asennetaan ensimmäisenä Lynx. Lynx on komentorivipohjainen verkkoselain.

Sudo apt-get install lynx tekee työtä käskettyä ja saan ladattua Lynxin. Menen katsomaan tätä blogia komentorivin kautta:

En voi käsittää kuka haluaisi selata verkkoa terminaalilla, mutta ohjelma toimii kuitenkin!

Seuraavaksi asensin GNUChessin sudo apt-get gnuchess.

Pääsin ottamaan terminaalista mittaa shakkiottelussa.

Seuraavaksi asennetaan Linux -piireissä käsittääkseni suosittu Vim.
Sudo apt-get install vim – ohjelma latautui onnistuneesti.

Kirjoitin terminaaliin vim – jonka jälkeen ohjelma käynnistyi. Seuraavaksi kirjoitin Hello Linux. Seuraavaksi selvitin Googlen kautta miten tiedosto saadaan tallennettua levylle.

Googlen avulla ja : x -komennolla lisäämällä tiedostonimen perään “testi” -niminen tiedosto tallentui kotihakemistoon. Data tallentui myös tiedoston sisään.

22:38 sain asennettua ohjelmat sekä testattua virheilmoituksia ja katsottua ohjelmat ja lokitiedostot läpi.

Lähteet

Terminaalikomennot:
http://terokarvinen.com/2009/command-line-basics-4
http://terokarvinen.com/2008/commands-for-admin-4
https://askubuntu.com/questions/358560/eread-error-read-5-input-output-error-ethe-package-lists-or-status-file
https://stackoverflow.com/questions/28381359/probably-incorrect-release-file-causing-apt-get-update-to-fail/34947334

Ohjelmat:https://www.linux.fi/wiki/Lynx
https://www.linux.fi/wiki/Vim
http:// http://vim.wikia.com/wiki/Saving_a_file
https://www.gnu.org/software/chess/manual/gnuchess.html

Lokitus:
https://linux.die.net/man/1/rusers
https://manpages.debian.org/jessie/jdresolve/rhost.1.en.html
https://askubuntu.com/questions/481906/what-does-tty-stand-for
https://www.digitalocean.com/community/tutorials/how-to-monitor-system-authentication-logs-on-ubuntu
https://linux.die.net/man/8/pam_unix

Asennus ja softan lataaminen

Tarkoituksenani on ensimmäisenä asiana tehdä oma Linux livetikku.

Käytössäni on Kingston Data Traveler USB 3.0 64GB muistitikku, johon on tarkoitus asentaa Linux Ubuntu.

Latasin version 18.04, Bionic Beaver, ilman torrenttiohjelmaa käyttäen Ranskalaista mirroria. Valitsin
xubuntu-18.04-desktop-amd64.iso -filen ladattavaksi, tiedoston koko 1.3Gt. Tämän jälkeen latasin UNetbootin -ohjelman, jotta levykuvasta saadaan bootissa hyödynnettävä kokonaisuus.

Käynnistin lataamani Unetbootin -ohjelman, josta valitsin Diskimagen lähdedataksi. Valitsin .iso -tiedoston Documents -kansiosta jonne latasin Bionic Beaverin.
ääKatsoin muistitikulta, ja sinne oli muodostunut boottaamiseen tarvittavat tiedostot, tai pikemminkin ne oli luettu levykuvasta ja tallennettu tikulle. Backupit ovat otettuna koneeltani viime sunnuntaina EaseUSTodoBackup -ohjelmalla.

Boottasin koneen pitämällä Enteriä pohjassa. Boot -menusta valitsin USB -laitteen boottaamista varten. Seuraavaksi aukesi valikko, jossa tarjottiin vaihtoehtoa kokeilla Ubuntua tai asentaa se. Valikko sulkeutui itsestaan ja päädyin työpöydälle. Hiiri ja näppäimistö eivät toimineet. Boottasin uudelleen, ja valitsin nopeasti Try Ubuntu jonka jälkeen pääsin työpöydälle. Nyt hiiri ja näppäimistö toimivat. Ensitöikseni avasin terminaalin ja vaihdoin näppäimistön kielisyyden suomen asetuksille komennolla setxkbmap fi.

Seuraavaksi tarkastin oman työkoneeni hardwaren komennolla sudo lshw -short -sanitize

Screenshotin ottaminen terminaalista sujui näppärääkin näppärämmin vasemmalla altilla ja printscreenilla.

Seuraavaksi asentelemme softaa. Päivitetään ensin järjestelmää sudo apt-get updatella, jotta saamme ladattua ohjelmistoa.
Asennamme Atomin, Kazamin ja MPlayerin.

sudo apt install MPlayer/Kazam/Atom. Atomin kanssa käytettiin lisäkomentoa sudo add-apt-repository ppa:webupd8team/atom

Nauhoitin Kazamilla videon työpöydän käyttämisestä. Kazam on tarkoitettu nauhoitteiden tekemiseen tietokoneen käyttämisestä. Toistin videon ajamalla mplayer <videonnimi> -komennon terminaalissa. Video alkoi toistaa ilman viivettä. Mplayeria ei löydy valikosta muiden ohjelmien seasta, mutta terminaali tunnistaa komennon. Seuraavaksi testaamme Atomin.

Vaihdoin Atomin koodauskieleksi pythonin ja nyt sovellus tukee python syntaksia ja ehdotuksia. Kevyt, yksinkertainen ja toimiva!

Lisenssit

Atom käyttää MIT -lisenssiä, joka poistaa kehittäjältä vastuun ohjelmiston aiheuttamista vahingoista, eikä vakuuta tuotetta millään tavalla. Tuote jaetaan sellaisenaan ja sitä voidaan käyttää kaupallisessa tarkoituksessa, sekä muokata itse toisenlaiseksi. Tuotetta voi lisensoida ja myydä sillä ehdolla, että softan mukana kulkee copyright -teksti, sellaisenaan.

Kazam ja MPlayer käyttävät GNU GPL v3 tai v2 (versiosta riippuen) -lisenssiä. Tämän lisenssin alla olevat ohjelmistot ovat kenen tahansa käytettävissä, kopioitavissa, muutettavissa sekä edelleenjaettavissa. Loppukäyttäjän on vain muistettava, että muunnellut ohjelmistot tulee myös jakaa saman lisenssin alla, eikä sille saa antaa lisärajoitteita.

Muihin käyttämiini ohjelmiin kuuluu esimerkiksi Spotify, josta on asennettava Linux -versio, sekä Chromium -selain, josta on myös Linuxille oma versio. Microsoftin Office -tuoteperhe on minulla työkäytössä, johon Linuxilla on ilmainen vaihtoehto, eli Libreoffice. SQL Server Management Studio ei ole virallisesti tuettu Linuxille, ja usein parhaana käytäntönä pidetään, että SQL palvelimeen yhdistetään jollain toisella clientilla. Esimeriksi DBeaver -clientia suositellaan tähän käyttötarkoitukseen, mutta monet lisäohjelmat, kuten valtaosa RedGaten työkaluista MS SQL Serverille, eivät luonnollisesti ole käytettävissä muissa ohjelmistoissa.

Lähteet

Atom lisenssi: https://raw.githubusercontent.com/atom/atom/master/LICENSE.md
Xubuntu 18.04.1: https://xubuntu.org/news/18-04-1-released/
Livetikun luominen: http://terokarvinen.com/2017/creating-legacy-boot-xubuntu-usb
UNetbootin: https://unetbootin.github.io/
Kazam & lisenssitiedot: https://launchpad.net/kazam
Mplayer & lisenssitiedot: http://www.mplayerhq.hu/design7/info.html
GNU GPL3: https://www.gnu.org/licenses/gpl-3.0.html
Linux SQL Server vaihtoehdot (DBeaver): https://www.slant.co/topics/9123/~sql-clients-for-linux#3
Atom editori: https://atom.io/
Libreoffice: https://fi.libreoffice.org/