Linux palvelimet h4

Alkuperäinen päivämäärä: 12.2.2018

H4

Tehdään tehtäväkohdat a, s, y, b ja c, jotka löytyvät osoitteesta https://terokarvinen.com/2017/aikataulu—linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op#h4

a) Tämän kohdan ehdin tehdä jo oppitunnilla, mutta käydään lyhyesti läpi, miten asia hoidetaan.

Oletetaan, että apache2 weppipalvelin on jo asennettu ja todettu toimivaksi siten, että oletussivu näkyy.

Ensiksi luodaan käyttäjän kotihakemistoon kansio public_html, jonka sisään tallennetaan index.html -tiedosto. Tiedostoon on hyvä kirjoittaa jotain, että tiedetään myöhemmin, että tiedosto oikeasti luetaan ja toimii.

Tämän jälkeen komentoriville annetaan komento sudo a2enmod userdir. Komento kytkee päälle apache2 moduulin userdir, eli käyttäjähakemistot. Webpalvelin täytyy käynnistää tämän jälkeen uudestaan komennolla sudo systemctl restart apache2.service. Tämän jälkeen sivuja voidaan kokeilla paikallisesti osoitteessa localhost/~käyttäjä. “Ulkopuolelta” testattaessa käytetään ip-osoitetta. Omassa tilanteessani käyttäisin siis osoitetta 159.89.5.3/~miikkb. Myös miikkavaltonen.com/~miikkb toimisi, sillä domain on yhdistetty osoitteeseen.

Jos aiemmin index.html tiedostoon kirjoitettu teksti ilmestyy selaimeen, sivu toimii ja käyttäjät pystyvät luomaan sivuja omilla oikeuksillaan.

s) Myös tämän kohdan ehdin tehdä tunnilla, mutta käydään prosessi läpi.

Lähdetään suorittamaan tehtävää tilanteesta, mihin edellinen tehtävä päättyi, eli käyttäjien sivut ja apachen oletussivu toimivat.

Ensiksi navigoidaan hakemistoon /etc/apache2/sites-available. Kansiosta löytyy oletuksena tiedostot 000-default.conf ja default-ssl.conf. Emme koske näistä kumpaankaan, vaan luomme uuden tiedoston komennolla sudo nano Miikkb.example.com.conf. Tiedoston voisi nimetä miten vaan, mutta sen täytyy päättyä .conf -päätteeseen.

Ymmärtääkseni tiedosto tavallaan kertoo, mistä oletussivu haetaan, ja missä tapauksissa se näytetään.

ServerName ja ServerAlias voivat käsittääkseni olla myös tietokoneen ip-osoitteita, mikäli domainia ei ole.

DocumentRoot kertoo, mistä näytettävä sivu haetaan. Tässä tapauksessa se haetaan käyttäjän kotikansiosta, /home/miikkb/publicSite. Kansioon tulee tehdä index.html tiedosto, mikä tehdään myöhemmin.

<Directory /home/miikkb/publicSite/> ja require all granted liittyvät ehkä oikeuksiin, mutta tästä en ole laisinkaan varma. Joka tapauksessa, kun tiedosto on tehty, voimme tallentaa tiedoston ja poistua nanosta.

Siirrytään kansioon /etc/apache2/sites-enabled. Kansio sisältää tiedostot jotka ovat palvelimella käytössä. On hyvä huomata, että kansio ei oikeasti varsinaisesti sisällä tiedostoja. Komennolla ls -l näemme, että tiedostot ovat oikeasti linkkejä, eli viitteitä muualla sijaitseviin tiedostoihin.

miikkb@jeesus:/etc/apache2/sites-enabled$ ls -l

total 0

lrwxrwxrwx 1 root root 42 Feb 6 15:15 Miikkb.example.com.conf -> ../sites-available/Miikkb.example.com.conf

Tiedosto siis haetaan kansiosta sites-available, mihin se aiemmin tehtiin. Jotta tiedosto saadaan käyttöön, on annettava komentoriville komento sudo a2dissite 000-example.conf. Komennolla poistetaan tiedoston linkki sites-enabled kansiosta. Tämän jälkeen kytketään aiemmin luotu sivu käyttöön komennolla sudo a2ensite Miikkb.example.com.conf. Lopuksi palvelin täytyy käynnistää vielä uusiksi komennolla sudo systemctl restart apache2.service.

Kun palvelin on käynnistetty uudestaan, siirrymme takaisin käyttäjän kotihakemistoon. Luodaan komennolla mkdir publicSite. Kansioon luodaan tiedosto index.html komennolla nano index.html. Tiedostoon on hyvä kirjoittaa jokin testiviesti, jotta nähdään että sivu toimii.

y) Seuraavaksi etsitään jälkiä murtautumisyrityksistä. Jälkiä löytyy helposti hakemistosta /var/log tiedostosta ufw.log. Avataan tiedoston viimeisimmät merkinnät komennolla tail -f ufw.log.

Feb 12 13:39:56 jeesus kernel: [528560.363534] [UFW BLOCK] IN=eth0 OUT= MAC=32:ae:f6:0d:16:0c:40:a6:77:34:67:f0:08:00 SRC=85.93.20.34 DST=159.89.5.3 LEN=40 TOS=0x00 PREC=0x00 TTL=250 ID=58493 PROTO=TCP SPT=52216 DPT=63387 WINDOW=1024 RES=0x00 SYN URGP=0

Feb 12 13:40:01 jeesus kernel: [528565.440320] [UFW BLOCK] IN=eth0 OUT= MAC=32:ae:f6:0d:16:0c:40:a6:77:34:67:f0:08:00 SRC=152.250.43.19 DST=159.89.5.3 LEN=40 TOS=0x00 PREC=0x00 TTL=235 ID=45793 PROTO=TCP SPT=33348 DPT=23 WINDOW=14600 RES=0x00 SYN URGP=0

Feb 12 13:40:29 jeesus kernel: [528592.811926] [UFW BLOCK] IN=eth0 OUT= MAC=32:ae:f6:0d:16:0c:40:a6:77:4f:3f:f0:08:00 SRC=112.241.205.54 DST=159.89.5.3 LEN=40 TOS=0x00 PREC=0x00 TTL=47 ID=1214 PROTO=TCP SPT=5245 DPT=23 WINDOW=3941 RES=0x00 SYN URGP=0

Yhteyttä ottavat ip-osoitteet ovat 85.93.20.34, 152.250.43.19 sekä 112.241.205.54.

85.93.20.34 on geoiplookupin mukaan Saksasta, 152.250.43.19 on Brasiliasta ja 112.241.205.54 on Kiinasta. Lokiin tulee merkintöjä melko usein lähes satunnaisista maista ja osoitteista. Tällä hämäräveikot yrittävät löytää huonosti suojattuja tietokoneita.

Lisäksi voimme tarkistaa /var/log hakemistossa sijaitsevan auth.login, mistä näemme osoitteiden lisäksi käyttäjänimiä, joina tunkeutujat yrittävät kirjautua. Nimiä on loputtomasti, mutta nostetaan esiin vaikka root, filip, alexander sekä zap. Nimet ovat siis käyttäjänimiä, joilla tunkeutujat yrittävät kirjautua tietämättä mitään tietokoneen oikeista käyttäjistä tai salasanoista.

b) Kohdassa b kokeillaan scp:n käyttöä. Scp:tä käytetään palvelinten väliseen tiedostokopiointiin.

Tehtävänä on luoda sivu paikallisella tietokoneella ja kopioida se virtuaalipalvelimeen.

Käytän testisivuna aikaisemmissa palautuksissa tehtyä lyhyttä ohjelmapätkää, mikä asettaa numeroita jonoon. Tallensin tiedoston kansioon /home/mvaltonen/public_html nimellä index.html. Seuraavaksi yritetään kopioida tiedosto virtuaalipalvelimelle kansioon /home/miikkb/public_html.

Scp:n käyttö ei ole minulle tuttua, joten vilkaisen Scp:n manuaalia komennolla man scp. Manuaali ei kuitenkaan paljon lohduttanut, joten selaan netistä käyttöohjeita. Löysin hyvät ohjeet sivulta http://www.hypexr.org/linux_scp_help.php. Sivusto kertoo komentojen käytön yksityiskohtaisesti, mikä on hyvä, sillä tiedostoja on helppo tuhota kopioimalla niitä miten sattuu.

Sivuston mukaan käytettävä komento olisi siis scp index.html miikkb@miikkavaltonen.com:/home/miikkb/public_html. Laitetaan sormet ristiin, ja kokeillaan kuinka käy.

Komentorivi kysyi virtuaalipalvelimen käyttäjän salasanaa, minkä jälkeen siirto tapahtui hämmästyttävän nopeasti.

mvaltonen@kissa:~/public_html$ scp index.html miikkb@miikkavaltonen.com:/home/miikkb/public_html

miikkb@miikkavaltonen.com’s password:

index.html 100% 758 0.7KB/s 00:00

Ennen kokeilemista mielessäni kävi ajatus siitä, että pitäisikö komento sudottaa, mutta jätin kuitenkin kokeilematta, sillä kopiointi tapahtuu käyttäjän kotihakemistossa, missä lisäoikeuksia ei pitäisi tarvita.

Nyt kun kopiointi on valmis, tarkistan onko tiedosto kopioitunut oikein. Virtuaalipalvelimen kansiosta public_html löytyy identtinen tiedosto. Kopioimalla sen publicSite tiedostoon komennolla cp index.html /home/miikkb/publicSite saan sen näkymään suoraan osoitteessa miikkavaltonen.com. Scp:n käyttö on siis onnistunut.

c) Viimeisenä tehtävänä lisätään palvelimelle lyhyt PHP-sivu. Kuten aiemmissa palautuksissa, täytyy virtuaalipalvelimelle asentaa apachen php-moduuli komennolla sudo apt-get install libapache2-mod-php. Lisäksi apachen asetuksista täytyy sallia PHP:n käyttö käyttäjien sivuilla. Tämä onnistuu hakemistosta /etc/apache2/mods-available tiedostosta php7.0.conf.

Tiedostosta on tärkeä kommentoida alimmat 5 riviä laittamalla # rivin eteen. Muuta ei tarvitse muokata. Tämän jälkeen apache täytyy käynnistää uudelleen komennolla sudo systemctl restart apache2.service. Seuraavaksi voimme palata kotihakemistoon, publicSiteen ja muuttaa index.html tiedoston päätteen php:ksi, komennolla mv index.html index.php.

Lisään aikaisemmin scp:llä kopioituun tiedostoon tekstipätkän:

Here is your IP-address:

<?php $_SERVER[‘REMOTE_ADDR’] ?>

Testatessani sivua IP-osoite ei kuitenkaan näy. Konsultoin vähän kaveriani, joka tuntee PHP:n paremmin kuin minä, ja hän muistutti minua siitä, että osoite täytyy tietenkin echota näkyviin. Nykyiselläänhän komento vain kerää osoitteen eikä tee sillä mitään. Muokataan siis PHP-koodia seuraavasti:

Here is your IP-address:

<?php echo $_SERVER[‘SERVER_ADDR’] ?>

Ja sivuhan toimii. Sivu siis tulostaa käyttäjän IP-osoitteen.

Posted in Uncategorised | Leave a comment

Linux palvelimet h3

Alkuperäinen päivämäärä: 5.2.2018

H3

a) Apache asennettiin jo viime oppitunnilla. Sen toiminen voidaan tarkistaa kirjoittamalla selaimeen osoite localhost. Selaimeen ilmestyy valkoinen sivu, jossa on teksti Hello world! Sivu siis toimii. Seuraavaksi voimme tarkistaa käyttäjien sivujen toiminnan lisäämällä localhostin perään \~mvaltonen, jolloin koko osoite on siis localhost\~mvaltonen. Sivustolle tulee näkyviin tervehdys, sekä numero, joka on PHP testin laskema lasku.

h3a1

b) Surffataan palvelimen sivuja, ja luodaan onnistunut ja epäonnistunut merkintä sivunlatauksesta.

Onnistunut merkinnän saan aikaan, kun haen vaikka käyttäjän mvaltonen sivua, localhost/~mvaltonen.

Lokitiedosto löytyy /var/log/apache2/access.log, tiedostoa voimme tarkkailla komennolla tail -f access.log.

Lokin uusin merkintä onnistuneesta sivun hausta on seuraava:

127.0.0.1 – – [05/Feb/2018:02:19:26 +0200] “GET /~mvaltonen/ HTTP/1.1” 200 644 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0”

Aloitetaan rivin kääntäminen. 127.0.0.1 tarkoittaa osoitetta, josta otetaan yhteyttä. Tässä tapauksessa kyse on paikallisesta tietokoneesta, eli localhostista.

Seuraavaksi kirjataan tapahtuman päivämäärä ja aika.

GET /~mvaltonen/ tarkoittaa, että webpalvelimelta haetaan sivua /~mvaltonen, eli tietyn käyttäjän sivua. HTTP/1.1” liittyy luultavasti protokollan versioon, tässä tapauksessa yleiseen versioon 1.1.

200 ja 644 arvelen liittyvän vastauskoodeihin. Tiedän, että 200 tarkoittaa sitä, että haku onnistui. 644 en osaa sanoa mitään, enkä nopeasti löytänyt netistä mitään tietoa, mikä paljastaisi, että onko se edes vastauskoodi.

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) liittyy koneen, joka ottaa yhteyttä, tietoihin. Haku siis tehtiin Mozilla Firefoxilla. 5.0 liittyy ehkä johonkin Firefoxin versiotietoihin, mutta en osaa sanoa tarkkaan miten. X11 liittyy ehkä tietokoneen käytössäolevaan desktoppiin, mutta en ole tästä lainkaan varma. Ubuntu sen sijaan kertoo käytetyn distribuution, Xubuntuhan on käsittääkseni Ubuntu, mutta eri desktopilla. Tämän perusteella uskon X11:n liittyvän desktoppiin jotenkin. Linux x86_64; rv:58.0 kertoo, että käytössä on 64-bittinen Linux. Rv:58.0 liittyy luultavasti selaimen versioon. Gecko/20100101 Firefox/58.0 uskon liittyvän jotenkin selaimen järjestelmiin ja versioihin, mutta en tunne selainta niin hyvin, että osaisin varmuudella sanoa.

Seuraavaksi luodaan vielä epäonnistunut merkintä. Yritän luoda merkintää hakemalla sivua, jota ei ole olemassa. Esimerkiksi localhost/blaa. Ilmestyi merkintä:

127.0.0.1 – – [05/Feb/2018:02:41:08 +0200] “GET /blaa HTTP/1.1” 404 494 “-” “Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0”

Merkintä on pitkälti samanlainen kuin aiempi. “GET /blaa on kuitenkin muuttunut, koska nyt haetaan sivua blaa, eikä mvaltonen -käyttäjäsivua. Myös vastauskoodit ovat muuttuneet, 404 ja 494.

404 luultavasti monelle tuttu ja tarkoittaa, että sivua ei löytynyt. 494 ei näytä viittaavan mihinkään vastauskoodiin, kuten aiemmassa kohdassa 644, joten en osaa edes arvata mihin numero liittyy. Muu pysyy samana, koska sivua hakeva laite on sama.

c) Seuraavaksi tarkoitus on luoda virhe webpalvelimen lokiin. Käyttäjän mvaltonen sisältää hieman PHP:ta, joten luodaan virhe sillä. Tällä hetkellä koodipätkä on seuraava: <?php print(5*25); ?>. Koodi laskee sivulle laskutoimituksen 5*25. Rikotaan koodipätkä muuttamalla kertomerkki * kirjaimeksi k.Sivun päivittämisen jälkeen onkin vastassa tyhjä sivu. Jotain on siis mennyt pieleen.

Lokitiedosto löytyy sijainnista /var/log/apache2/error.log. Lokitiedoston viimeinen viesti on seuraava:

[Mon Feb 05 00:38:31.996641 2018] [:error] [pid 1577] [client 127.0.0.1:33356] PHP Parse error: syntax error, unexpected ‘k25’ (T_STRING) in /home/mvaltonen/public_html/index.php on line 7

Aloitetaan rivin kääntäminen. Ensiksi kerrotaan tapahtuman ajankohta, eli siis viikonpäivä, kuukausi, päivä, sekä tarkka kellonaika. Kellonajasta mainittakoon, että on hyvä tarkistaa, että loki kirjoitetaan oikealla aikavyöhykkeellä. Tässä tapauksessa kellonaika on oikein.

Seuraavaksi luultavasti kirjataan lokimerkinnän syy, joka on [:error], eli merkintä johtuu jostakin virheestä.

[pid 1577] erittelee prosessin, joka on prosessi 1577. Tarkistan asian kuitenkin mielenkiinnosta sovelluksella htop, joka näyttää prosessit samaan tyyliin kuin top. Prosessi 1577 liityy komentoon /usr/bin/apache2 -k start, joten voin tämänkin perusteella olla varma, että virhe koskee webpalvelinta.

[client 127.0.0.1:33356] tarkoittaa kohdetta, jossa virhe on tapahtunut. Virhe on tapahtunut osoitteessa 127.0.0.1, eli paikallisessa tietokoneessa, eli localhostissa. Porttinumeroa en tosin ymmärrä, en osaa sanoa miten se liittyy. Ehkä 33356 on portti, jonka kautta käyttäjän \~mvaltonen sivu pyörii.

Seuraavana päästään itse virheeseen: PHP Parse error:, eli PHP-koodia ei pystytä lukemaan oikein, Syntax error kertoo meille, että koodin syntaksissa on vikaa. Virhe siis luultavasti johtuu siitä, että koodi on kirjoitettu väärin. Virhe koodin kääntämisessä on tapahtunut kohdassa k25, eli kun on luettu koodia <?php print(5k25); ?>, kääntäjä ei tiedä mitä numeron 5 jälkeen tapahtuu.

T_STRING merkitystä en osaa tarkentaa kovin tarkkaan, mutta voisin arvata sen liittyvän siihen, että virhe on tekstipätkässä, eli stringissä.

Lopuksi loki kertoo vielä, missä koodi, jota yritetään lukea sijaitsee, eli \home\valtonen\public_html\index.php, ja täsmentää vielä lopuksi että tekstitiedoston rivillä 7.

Ennen kohdan lopettamista korjaan tehdyn virheen, etten joskus ihmettele sivun toimimattomuutta kun en muista mitään.

e) Tehtävässä e lähden asentamaan PhpMyAdminia, jotta tietokantoja voidaan tarkastella graafisesti.

Lähden liikkeelle etsimällä netistä tietoa, PhpMyAdminin ennakkovaatimuksista. Ohjelma vaatii toimiakseen tarpeeksi uudet versiot MySQL:stä sekä PHP:stä. Asennetut versiot voidaan tarkistaa komennoilla php -v sekä mysql -V. Huom! Iso V MySQL:n kohdalla.

h3a2

PhpMyAdmin vaatii kustakin vähintään versiot 5, mutta kuten kuvasta näkyy, asennetut versiot kelpaavat helposti.

Aloitan asennuksen komennolla sudo apt-get install -y phpmyadmin. Asennus kuitenkin keskeytyi, ohjelma pyytää valitsemaan, mille webpalvelimelle PhpMyAdmin halutaan asentaa. Vaihtoehtoina ovat apache2 ja lighttpd. Valitaan apache2 painamalla välilyöntiä ja enter.

h3a3

Hetken kuluttua asennus kysyi, että haluanko konfiguroida PhpMyAdminin itse, vai haluanko että se hoituu itsestään. Teksti sanoo, että konfigurointi kannattaa tehdä itse vain, jos tietää mitä tekee, joten valitaan automaattinen konfigurointi valinnalla Yes. Tämän jälkeen kysytään uutta salasanaa PhpMyAdminille. Jätin ikkunan tyhjäksi, jotta asennus generoisi siihen itse sattumanvaraisen salasanan.

h3a4

Asennuksen jälkeen PhpMyAdmin löytyy osoitteesta localhost/phpmyadmin. Palveluun kirjaudutaan sisään aiemmin tehdyillä MySQL tunnuksilla, eli omalla käyttäjänimellä ja arvotulla salasanalla.

h3a5

Testinä lisään yhden rivin tietokantaan linux. Rivi lisätään painamalla yläpalkista Insert. Function kentät jätän tyhjäksi, mutta id kenttään tulee 4, sillä lisättävä rivi on tietokannan neljäs rivi. Lisään vielä nimen, ja rivi on lisätty onnistuneesti, kun painetaan vielä inserttiä.

f) Seuraavaksi tehdään sivulle pieni ohjelma, joka suorittaa jonkin toimenpiteen nappia painettaessa. Kirjoitin lyhyen testiohjelman, joka ottaa käyttäjän syöttämät numerot ja näyttää ne peräkkäin. Lisäsin koodin /home/mvaltonen/public_html/index.php tiedostoon, johon aiemmatkin testit, kuten PHP -lasku tehtiin. Halutessasi voit ladata koodin täältä: https://www.dropbox.com/s/lrkigba072gblq9/testaus.html?dl=1 (GPLv3)

Kun käyttäjä syöttää sivulle numerot ja painaa nappia, ilmestyvät numerot peräkkäin, ohjelma siis toimii.

h3a6

Posted in Uncategorised | Leave a comment

Linux palvelimet h2

Alkuperäinen päivämäärä: 29.1.2018

H2

a) Ensimmäisenä tehtävänä on aiheuttaa lokitiedostoihin merkintöjä ja analysoida niitä. Avaan ensimmäiseksi lokitiedoston avaamalla tuore terminaali painamalla windows -näppäintä ja t.

Päästäkseni lokitiedostoon, hyppään kahdesti ylempään kansioon komennolla cd .. Komento cd, eli change directory, mahdollistaa kansioiden välillä siirtymisen. Merkintä .. tarkoittaa, että haluamme siirtyä yhden kansion “ylemmäs”. Seuraavaksi siirrytään kansioon var komennolla cd var. Listaan var kansiossa olevat kansit komennolla ls. Ilmestyvien kansioiden seasta haluan käsiksi log kansioon, joten annan komennon cd log.

Ensimmäiseksi pyrin luomaan lokimerkinnän onnistuneesta tapahtumasta. Listaan log kansion sisällön komennolla ls, jolloin paljastuvat minua kiinnostavat lokitiedostot auth.log sekä kern.log. Tiedän auth.login kirjaavan mm. Sudo alkuiset komennot, joten käytän sellaista komentoa. Ajatuskatkoksen takia kuitenkin syötän kuitenkin komennon tail -f syslog. En ole varma, mitä kaikkea loki kirjaa, mutta en kuitenkaan halunnut avata kyseistä lokia, joten palaan takaisin painamalla CTRL+C. Avaan oikean lokitiedoston terminaaliin komennolla tail -f auth.log. Siten lokitiedosto päivittyy jatkuvasti ruudulle aina uusien tapahtumien mukaan.

h2a1.jpg

Avaan testaamista varten uuden terminaalin. Terminaali aukeaa sopivasti kotikansioon, jonne voimmekin luoda tekstitiedoston pääkäyttäjänä komennolla sudo nano testi.txt. Terminaali kysyy pääkäyttäjän salasanaa, jonka syötettyä pääsemme tyhjään tekstitiedostoon. Lokitiedostoon sen sijaan on ilmestynyt välittömästi viestejä:

h2a2.jpg

Ensimmäisenä kirjataan ylös tapahtuman päivämäärä ja aika. Seuraavana listataan laitteen nimi, kissa. Seuraavana listataan luultavasti tapahtuma, eli sudon käyttö. Se käy mielestäni järkeen, joten uskon asian olevan niin. Sen jälkeen on tapahtuman aiheuttaja, eli käyttäjä, eli tässä tapauksessa mvaltonen. TTY:stä en osaa sanoa mitään. PWD tarkoittaa luultavasti paikkaa, jossa komento ajettiin, eli tässä tapauksessa käyttäjän mvaltonen kotikansiossa. USER saattaisi tarkoittaa käyttäjää, jonka oikeuksia pyydettiin. Sudo -komento pyytää pääkäyttäjän, eli rootin oikeuksia “lainaan”, joten tämä käy järkeen. Lopuksi COMMAND kertoo, mitä pääkäyttäjän oikeuksia haluttiin tehdä, tässä tapauksessa haluttiin avata ohjelma nano ja luoda tekstitiedosto testi.txt.

Lopuksi lokiin kirjataan, että pääkäyttäjän oikeudet on “lainattu” session ajaksi, eli vain nano -ohjelman suorittamiseen. Tästä rivistä en osaa todeta mitään uusista kohdista, CRON[3525] tai pam_unix(cron:session), mutta uskon vahvasti niiden liittyvän jotenkin sudo session avaamiseen.

Kun tyhjä tekstitiedosto suljetaan, ilmestyy lokiin vielä yksi rivi:

Jan 29 01:17:01 kissa CRON[3525]: pam_unix(cron:session): session closed for user root.

Tämä tarkoittaa sitä, että aiemmin luotu sessio suljetaan, eikä kenelläkään ole enää pääkäyttäjän oikeuksia.

Seuraavaksi tehtävänä oli luoda merkintä epäonnistuneesta tai kielletystä toimenpiteestä. Joudun pohtimaan toimivaa tapaa yllättävän pitkää, sillä tiedän auth.login kirjaavan vain pääkäyttäjän oikeuksien jakamisia, enkä tiedä tarkkaan mihin muut epäonnistuneet toiminnot, mitä en vielä ole edes keksinyt, kirjattaisiin. Juteltuani tuttuni kanssa ja muisteltuani aikaisempia oppitunteja mieleeni juolahti ssh -yhteyksien kirjaaminen, mikä luultavasti näkyy auth.log tiedostossa, sillä yhteyden muodostaminen ja kirjautuminen vaatii oikeaa pääkäyttäjän salasanaa.

Siispä kokeilen yhdistää omaan tietokoneeseeni ssh:lla komennolla ssh mvaltonen@kissa. Terminaali kysyy salasanaa, jonka syötettyäni pääsen sisään ja riemukseni huomaan, että auth.logiin on jäänyt kirjautumisesta merkintä.

Luodakseni merkintä epäonnistuneesta tapahtumasta, yritän kirjautua ssh:lla sisään uudestaan kirjoittamalla tarkoituksella väärän salasanan. Teko jätti lokiin seuraavan ilmoituksen:

Jan 29 02:38:06 kissa sshd[6446]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=127.0.0.1 user=mvaltonen

Hyppään tuttujen kohtien yli ja analysoin vain muuttuneet asiat. Aikaisemmin sshd[6446] paikalla luki sudo, joten voin olla melko varma, että tämä kohta kertoo tapahtuman, mikä tässä tapauksessa on ssh-daemonin käyttö. Numeron 6446 yhteyttä en tosin ymmärrä. En myöskään tiedä mihin pam_unix liittyy, mutta sen perässä oleva (sshd:auth) liittyy ssh-daemonin kautta tapahtuvaan autentikointiin. Seuraavaksi esiintyy paljon tekstiä, johon en osaa ottaa kantaa, mutta rhost uskon tarkoittavan osoitetta, josta yhteys otetaan. Tässä tapauksessa se on 127.0.0.1, eli sama kone. User luultavasti tarkoittaa käyttäjää, jona yritetään kirjautua.

b) Hypätään kohdan yli, SSH on jo asennettu ja testattu toimivaksi oppitunnilla.

c) Seuraavana tehtävänä on tehdä “unelmien apt-get komento”, jolla saadaan asennettua kaikki tarvittavat ohjelmat yhdellä komennolla. Ennen ohjelmien listaamista, aloitetaan kirjoittamalla terminaaliin sudo apt-get update, jotta voidaan asentaa uusia ohjelmia.

Aloitetaan komennon kirjoittaminen, sudo apt-get install -y libreoffice ssh kdenlive mumble vlc unetbootin gimp audacity. Parametri -y vaikuttaa siten, että komentokehote ei enää kysy erikseen asennetaanko ohjelmat.

Komennon kautta asentuu muutamia vapaa-ajan puuhasteluohjelmia, sekä opiskeluun soveltuvia työskentelyohjelmia. Komento tulee luultavasti elämään opintojen edetessä, kun vastaan tulee uusia hyödyllisiä ohjelmia.

d) Seuraavaksi asennetaan kolme uutta komentorivillä. Kyselin tutuilta muutamia ohjelmia asennettavaksi, ja sain vastauksena ohjelmat SL, cmatrix ja htop.

Aloitetaan siis asentaminen. Edellisen tehtävän oppeja hyödyntäen, voin asentaa ohjelmat yhdellä komennolla sudo apt-get install -y cmatrix sl htop.

Testataan ensiksi ohjelmaa cmatrix kirjoittamalla terminaaliin cmatrix.

h2a3

Kirjaimet pomppivat ruudulla autenttisesti, todetaan ohjelma toimivaksi ja suljetaan se komennolla CTRL+C.

Siirrytään seuraavaan ohjelmaan, SL. Ohjelman tarkoitus on kuulemma “rankaista” käyttäjää väärinkirjoitetusta LS komennosta pakottamalla käyttäjä katsomaan, kun veturi ajaa terminaalin halki. Testaan ohjelmaa kerran tarkoituksella, mutta pidän ohjelman asennettuna, jotta myöhemmin saadaan aitoja käyttötapauksia.

h2a4

Juna tosiaan ajoi ruudun halki. Ohjelma sulkeutui lopuksi itsestään, ja pystyin jatkamaan terminaalin käyttöä.

Lopuksi kokeillaan ohjelmaa htop. Olen nähnyt aikaisemmin tuttuni käyttävän ohjelmaa, ja tiedän sen olevan hieman käyttäjäystävällisempi versio ohjelmasta top.

h2a5

Ohjelma näyttää ydinkohtaisen rasituksen sekä muistin käytön melko tarkasti. Prosesseja pystyy järjestelemään klikkailemalla otsakkeita, kuten PID tai USER. Alapalkin mukaan F9 -näppäimellä pystyy tappamaan ilmeisesti prosesseja, mutta en uskaltanut sitä kokeilla, sillä muistan kokeilleeni joskus aikaisemmin komentoa sudo kill 1, mistä palautuminen oli jännää.

Tähän päättyy tehtävä H2.

Posted in Uncategorised | Leave a comment

Linux palvelimet h1

Alkuperäinen päivämäärä: 22.1.2018

 

Tässä kurssin ensimmäinen tehtäväpalautus:

a) Ensiksi haetaan 64-bittinen versio Xubuntun levykuvasta osoitteesta https://xubuntu.org/download. Kuvan voi ladata torrenttina tai mirroreista, tässä tapauksessa lataamme mirrorista. Tiedosto, jonka haluamme on xubuntu-16.04.3-desktop.amd64.iso.

Seuraavaksi käytetään livetikun luomiseen Rufusta, löytyy osoitteesta https://rufus.akeo.ie.

Ohjelmasta ei tarvitse muuttaa muuta, kuin että painetaan FreeDOS lista auki, ja valitaan siitä ISO-kuva. Sen jälkeen painetaan viereistä painiketta ja valitaan ladattu kuva.

Aloita -painiketta painettaessa ohjelma kysyy, että ladataanko ldlinux.sys ja lxlinux.bss internetistä, sillä niitä tarvitaan. Livetikkua ei voida tehdä muuten, joten valitaan Kyllä.

Seuraavaksi ohjelma kysyy, että kirjoitetaanko kuva ISO-kuvana vai DD-kuvana. Valitaan meille tutumpi ISO-kuva.

Lopuksi ohjelma vielä varoittaa tikun alustamisesta.

Testasin tikkua omalla kotikoneella sekä koululäppärillä, live preview toimi molemmissa tapauksissa, joten julistetaan tikku toimivaksi.

b) Listataan koululäppärin rauta komennolla sudo lshw -short -sanitize.

Terminaali kysyy pääkäyttäjän salasanaa, kuten aina sudo komentoja tehdessä.

H/W path Device Class Description

=======================================================

system HP ProBook 6570b (A5E64AV)

/0 bus 17AB

/0/c memory 64KiB BIOS

/0/0 processor Intel(R) Core(TM) i5-3230M CPU @ 2.6

/0/0/2 memory 32KiB L1 cache

/0/0/3 memory 256KiB L2 cache

/0/0/4 memory 3MiB L3 cache

/0/1 memory 32KiB L1 cache

/0/5 memory 8GiB System Memory

/0/5/0 memory 4GiB SODIMM DDR3 Synchronous 1600 MH

/0/5/1 memory 4GiB SODIMM DDR3 Synchronous 1600 MH

/0/100 bridge 3rd Gen Core processor DRAM Controll

/0/100/2 display 3rd Gen Core processor Graphics Cont

/0/100/14 bus 7 Series/C210 Series Chipset Family

/0/100/14/0 usb3 bus xHCI Host Controller

/0/100/14/0/2 input Microsoft Nano Transceiver 1.1

/0/100/14/1 usb4 bus xHCI Host Controller

/0/100/16 communication 7 Series/C210 Series Chipset Family

/0/100/19 enp0s25 network 82579V Gigabit Network Connection

/0/100/1a bus 7 Series/C210 Series Chipset Family

/0/100/1a/1 usb1 bus EHCI Host Controller

/0/100/1a/1/1 bus Integrated Rate Matching Hub

/0/100/1a/1/1/3 multimedia HP HD Webcam [Fixed]

/0/100/1b multimedia 7 Series/C210 Series Chipset Family

/0/100/1c bridge 7 Series/C210 Series Chipset Family

/0/100/1c.1 bridge 7 Series/C210 Series Chipset Family

/0/100/1c.2 bridge 7 Series/C210 Series Chipset Family

/0/100/1c.2/0 bus IEEE 1394 Host Controller

/0/100/1c.2/0.1 generic SD/MMC Host Controller

/0/100/1c.2/0.2 generic Standard SD Host Controller

/0/100/1c.3 bridge 7 Series/C210 Series Chipset Family

/0/100/1c.3/0 wlo1 network BCM43228 802.11a/b/g/n

/0/100/1d bus 7 Series/C210 Series Chipset Family

/0/100/1d/1 usb2 bus EHCI Host Controller

/0/100/1d/1/1 bus Integrated Rate Matching Hub

/0/100/1d/1/1/6 generic BCM20702A0

/0/100/1f bridge HM76 Express Chipset LPC Controller

/0/100/1f.2 storage 7 Series Chipset Family 6-port SATA

/0/2 scsi0 storage

/0/2/0.0.0 /dev/sda disk 500GB HGST HTS725050A7

/0/2/0.0.0/1 /dev/sda1 volume 487MiB Linux filesystem partition

/0/2/0.0.0/2 /dev/sda2 volume 465GiB Extended partition

/0/2/0.0.0/2/5 /dev/sda5 volume 465GiB Linux filesystem partition

/0/3 scsi1 storage

/0/3/0.0.0 /dev/cdrom disk DVD-ROM UJ8D1

/1 power CC06055XL

c) Seuraavaksi asennetaan kolme opiskeluun enemmän tai vähemmän hyödyllistä ohjelmaa.

Aloitetaan Libre Officesta.

Avataan terminaali, ja kirjoitetaan komento sudo apt-get install libreoffice. Asennuksen mukana asentuu automaattisesti mm. Writer, Math sekä Calc. Paketti vastaa siis hyvin Microsoftin Office-pakettia.

Asennuksen valmistuttua siirrytään käyttämään LibreOffice Writeria GEditin sijaan ennen kuin teksti siirretään blogiin, jotta saadaan oikea käyttötapaus ohjelmalle.

Seuraavana asennetaan kuvankäsittelyyn Gimp. Asennus tapahtuu terminaalin kautta komennolla sudo apt-get install gimp. Asennuksen jälkeen piirretään testinä kuva.

 

Viimeisenä asennetaan videotoistoa varten VLC komennolla sudo apt-get install vlc.

d) Käydään läpi asennettujen ohjelmien käyttölisenssejä.

LibreOffice on julkaistu Mozilla Public License 2.0 -lisenssillä.

Tämä tarkoittaa sitä, että käyttäjällä on oikeudet myydä, muokata sekä jakaa ohjelmistoa vapaasti.

Lisenssisopimus pitää myös huolen siitä, ettei LibreOfficen kehittäjiä voida asettaa vastuuseen muiden tekemistä töistä.

Käyttäjän on myös pakko sisällyttää alkuperäinen ohjelmisto, kunnioittaa tekijänoikeutta, sekä ilmoittaa alkuperäisestä lähteestä ja kehittäjästä.

Gimp on julkaistu Creative Commons Attribution-ShareAlike 4.0 International -lisenssillä.

Tämä tarkoittaa sitä, että ohjelmistoa saa käyttää kaupallisesti, sitä saa levittää, muokata sekä nimetä uudestaan. Jatkokehittäjän on kuitenkin pakko mainita alkuperäinen kehittäjä, sisällyttää alkuperäinen tekijänoikeus, sekä erottaa omat muokkaukset alkuperäisestä työstä.

VLCn kehittäjän lisenssisivu on hieman epäselvä, mutta ilmeisesti ohjelmisto on julkaistu GNU General Public License v2.0 -lisenssillä.

Tämä tarkoittaa sitä, että tuotetta voi käyttää vapaasti mihin vaan. Ohjelmistoa levitettäessä on kuitenkin sisällytettävä alkuperäinen tuote sekä jakaa lähdekoodi. Jatkokehitelty ohjelmisto on julkaistava myös GNU General Public License v2.0 -lisenssillä.

e) Seuraavaksi listataan muutama Windows ohjelma, ja kullekin Linux vastine.

Windows Linux Käyttötarkoitus

Paint.net GIMP Kuvankäsittely

VLC VLC Videotoisto

Sony Vegas Pro 14 ? Videoeditointi

Audacity ? Äänenmuokkaus

Posted in Uncategorised | Leave a comment