Tehtävien tekemiseen meni n. 2,5-3 tuntia. En tarkkaan mitannut ajankulua. Tein tehtävät omalla Lenovon Thinkpad X220 -kannettavallani.
Tehtävät löytyvät sivulta http://terokarvinen.com/2020/aikataulu-linux-palvelimet-ict4tn021-3010-torstai-aamu-alkukevat-2020-5-op
a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.
Tätä tehtävää tehdessäni koin pieniä ahdistuksen ja turhautumisen tunteita, koska en joko saanut lokiin merkintöjä tai sitten sain, mutten osannut lukea niitä, koska ”hauki on kala”-tyylisiä ohjeita ei oltu annettu lokien lukemisesta. Lopulta sain kuitenkin lokiin merkintöjä, jotka ymmärsin itse aiheutetuksi.
Tavallaan ymmärrän, ettei ole saatavilla yksityiskohtaisia dioja ja tekstimateriaaleja, mutta toisaalta, kun olen vielä aloittelija linuxin suhteen, kaipaisin sellaisia. Toisaalta itse googlettelemalla ja hakemalla tietoa pystyn löytämään ratkaisun ongelmiin/tehtäviin. Se, että siihen menee todella kauan aikaa, on vain turhauttavaa.
Sitten itse tehtävään. Eli tehtävänantona oli aiheuttaa onnistunut ja epäonnistunut/kielletty toimenpide lokiin ja analysoida rivi yksityiskohtaisesti.
Käytin tätä sivua: https://stackify.com/linux-logs/ tehtävän tekemisessä. Siellä neuvottiin, kuinka lokeihin pääsee käsiksi ja mitä mistäkin lokista näkee. cd/var/log -komennolla pääsi suoraan lokeihin.
Aloitetaan epäonnistuneesta ”onnistumisesta” (eli tein jotakin, mutten tiedä kirjattiinko se lokiin):
Aluksi yritin ladata Powershellin koemennolla sudo apt-get install powershell, mutta tuli ilmoitus, että sellaista pakettia ei ollut. Yritin katsoa syslogista, joko sinne olisi tullut merkintä: ei ollut (tai sitten en osannut katsoa, mikä oli merkintä tällaisesta tapahtumasta [en myöskään ottanut kopiota mistään tekstikohdasta, joten en jälkikäteen voi edes tarkastaa asiaa]). Tällein jälkikäteen mietittynä koko powershell ohjelmaa ei varmaan edes ollut saatavilla software centeristä (myöhemmin toisessa tehtävässä vastaan tuli samanlainen tilanne).
Sitten latasin onnistuneesti VLC-videontoisto-ohjelman komentorivillä. Tein taas saman virheen, enkä ottanut kopiota syslogista, kun menin sitä tarkastelemaan. Sinne varmaan tuli merkintä, mutten nähnyt/tajunnut mikä oli sen. Ongelmaksi huomasin sen, etten katsonut aikaa, jolloin tein toimintoja. Nyt kirjoitin ylös ajankohdat, jotta voisin lokeista lukea, mitä tapahtui juuri silloin. Poistin VLC-ohjelman sudo apt-get remove vlc -komennolla kello 16.58. Lokin kohta tuolta ajalta:
| Feb 1 16:58:17 xubuntu systemd[1]: Starting Snappy daemon… |
| Feb 1 16:58:17 xubuntu snapd[6673]: AppArmor status: apparmor is enabled and all features are available |
| Feb 1 16:58:17 xubuntu snapd[6673]: backend.go:128: snapd enabled root filesystem on overlay support, additional upperdir permissions granted |
| Feb 1 16:58:17 xubuntu snapd[6673]: daemon.go:379: started snapd/2.39.2+18.04 (series 16; classic) ubuntu/18.04 (amd64) linux/5.0.0-23-generic. |
Yritin googletella eri hakusanoilla vastauksia, mutta päätin, etten tuhlaa tämän asian analysointiin/selvittelyyn enempää aikaa. Teki mieli alkaa itkeä, kun ei näyttänyt mikään toimivan tai näkyvän missään. Ehkä tuossa lukee, että vlc-ohjelma poistettiin komentorivikehotteella. En nyt ala sitä sen enempää analysoimaan, vaan siirryn onnistuneisiin onnistumiseen ja epäonnistumiseen.
Päätin kokeilla jotakin muuta kuin ohjelmien asentamista. Loin kello 17.07 sudolle salasanan. En nyt yhtään muista, mitä komentoa käytin tai mistä löysin neuvon siihen (luultavasti tein komennolla passwd root, jos luen alla olevia lokeja oikein). var/log -> less auth.log lokista löytyi merkintä tapahtumasta:
| Feb 1 17:04:53 xubuntu sudo: xubuntu : TTY=pts/0 ; PWD=/var/log ; USER=root ; COMMAND=/usr/bin/apt-get install vlc |
| Feb 1 17:04:53 xubuntu sudo: pam_unix(sudo:session): session opened for user root by (uid=0) |
| Feb 1 17:04:58 xubuntu sudo: pam_unix(sudo:session): session closed for user root |
| Feb 1 17:07:24 xubuntu sudo: xubuntu : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/usr/bin/passwd root |
| Feb 1 17:07:24 xubuntu sudo: pam_unix(sudo:session): session opened for user root by (uid=0) |
| Feb 1 17:07:28 xubuntu passwd[7000]: pam_unix(passwd:chauthtok): password changed for root |
| Feb 1 17:07:28 xubuntu passwd[7000]: gkr-pam: couldn’t update the login keyring password: no old password was entered |
| Feb 1 17:07:28 xubuntu sudo: pam_unix(sudo:session): session closed for user root |
Tässä kohdassa haluan vain tuoda esille sen universaalin faktan, että omien heikkouksien ja virheiden myöntäminen on vahvuus. Tätä koko tehtävänantoa tekiessä tuli monta kertaa sellainen ”vitsi olen tyhmä” -hetki vastaan.
Ylläolevat lokit ovat siis auth.logista, jotka kopioin, mutten sen enempää analysoinut. Nyt kun niitä liitin tähän wordpressin taulukkoon, huomasin, että ihan ensimmäisellä rivillä lukee kirjaus VLC:n asentamisesta. Olin näköjään etsinyt lokimerkintää väärästä paikasta. Ehkä jossakin muualla on myös merkintä, mutta tuolla ainakin on siitä kirjaus.
Palataan salasanan muuttamiseen sudo:lle. Siitä tuli tällainen kirjaus: Feb 1 17:07:28 xubuntu passwd[7000]: pam_unix(passwd:chauthtok): password changed for root
Tämän sivun mukaan https://ackcent.com/blog/basics-linux-events-logging/ Linuxin lokimerkinnät kirjoitetaan yleensä tällaisella syntaksilla: TIMESTAMP HOSTNAME SERVICE [PID]: MESSAGE
”A PID is an acronym for process identification number on a Linux or Unix-like operating system. A PID is automatically assigned to each process when it is created. A process is nothing but running instance of a program and each process has a unique PID on a Unix-like system.” (lähde: https://www.cyberciti.biz/faq/howto-display-process-pid-under-linux-unix/)
Eli tässä tapauksessa: service = passwd & pid = numero 7000.
pam = the Pluggable Authentication Module (PAM) system. It allows programs that rely on authentication to be written independent of the underlying authentication scheme. (lähde: https://en.wikipedia.org/wiki/Pluggable_authentication_module)
pam_unix = Module for traditional password authentication (lähde: https://linux.die.net/man/8/pam_unix)
chauthtok = change authenthication token
passwd:chauthtok -kohdan analysoisin siis niin, että se ilmoittaa, mitä palvelulle tehdään eli vaihdetaan salasana tässä tapauksessa (tai annetaan sellainen).
Lokimerkintä siis ilmoittaa, että salasana vaihdettiin root:ille.
Seuraavaksi halusin kokeilla epäonnistunutta kirjautumista. Siihen tarvitsin uuden käyttäjän, jolle luon salasanan.
Loin käyttäjän komennolla sudo useradd Blingi. Seuraavat merkinnät tulivat auth.log:iin:
| Feb 1 17:17:44 xubuntu sudo: xubuntu : TTY=pts/0 ; PWD=/ ; USER=root ; COMMAND=/usr/sbin/useradd Blingi Feb 1 17:17:44 xubuntu sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Feb 1 17:17:44 xubuntu useradd[7122]: new group: name=Blingi, GID=1000 Feb 1 17:17:44 xubuntu useradd[7122]: new user: name=Blingi, UID=1000, GID=1000, home=/home/Blingi, shell=/bin/sh Feb 1 17:17:44 xubuntu sudo: pam_unix(sudo:session): session closed for user root |
Sitten annoin käyttäjälle Blingi salasanan Blongo* komennolla sudo passwd Blingi (*tiedän, että salasana on huono, mutten nyt tässä vaiheessa jaksanut miettiä asiaa sen enempää, halusin vain päästä tehtävässä eteenpäin). Tämä sivu https://www.techwalla.com/articles/how-to-switch-users-in-a-linux-shell kertoi, miten pääsin vaihtamaan käyttäjiä eli kirjautumaan sisään Blingi-käyttäjänä. (selvennyksesi siis koirani nimi on Blingi ja Blongo on lempinimi, yhdessä ne ovat myös instagramini käyttäjänimi). Eli type ”su -” followed by a space and the target user’s username.
Sitten yritin kirjautua väärällä salasanalla:
| Feb 1 17:22:00 xubuntu su[7218]: Successful su for Blingi by xubuntu Feb 1 17:22:00 xubuntu su[7218]: + /dev/pts/0 xubuntu:Blingi Feb 1 17:22:00 xubuntu su[7218]: pam_unix(su:session): session opened for user Blingi by (uid=999) Feb 1 17:22:00 xubuntu su[7218]: pam_systemd(su:session): Cannot create session: Already running in a session Feb 1 17:22:38 xubuntu su[7218]: pam_unix(su:session): session closed for user Blingi Feb 1 17:22:49 xubuntu su[7253]: pam_unix(su:auth): authentication failure; logname= uid=999 euid=0 tty=/dev/pts/0 ruser=xubuntu rhost= user=Blingi Feb 1 17:22:51 xubuntu su[7253]: pam_authenticate: Authentication failure Feb 1 17:22:51 xubuntu su[7253]: FAILED su for Blingi by xubuntu |
Otetaan tuo ensimmäinen merkintä:
| xubuntu | su | [7253]: | pam_unix(su:auth) | authentication failure; | logname= uid=999 euid=0 tty=/dev/pts/0 ruser=xubuntu rhost= user=Blingi |
| hostaname | service | pid | moduuli(+ mitä tehdään palvelulle) | message eli mitä tapahtui | (analysoitu alla) |
logname = current user’s login name
uid = user identifier
euid = effective user id
tty = ”teletypewriter”, the terminal one is using
/dev/pts/0 = shows that one is connected to the device file at /dev/pts/0
ruser ja rhost – yritin googlettaa, mutten löytänyt vastausta. Arvelen niiden olevan lyhenteet sanoista rootuser ja roothost, koska yritin tehdä käyttäjänvaihdosta xubuntu-userina.
b) Vapaaehtoinen kohta, ei ole opetettu vielä: Asenna SSH-demoni. Kokeile omalla ssh-palvelimellasi jotain seuraavista: ssh-copy-id, sshfs, scp tai git. (Helpoin lienee scp: ‘scp foo.txt tero@example.com:’)
Vaikka tämä kohta on vapaaehtoinen, yritin kuitenkin tehdä sen. (huom! yritin, en siis onnistunut omasta mielestäni). Aloitin komennolla ssh-copy-id, ennen kuin oli edes asentanut palvelinta.
| xubuntu@xubuntu:/$ ssh-copy-id Usage: /usr/bin/ssh-copy-id [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o <ssh -o options>] …] [user@]hostname -f: force mode — copy keys without trying to check if they are already installed -n: dry run — no keys are actually copied -h|-?: print this help |
Eli tuloksena oli neuvoja, miten tuota komentoa voi käyttää.
Sitten seurasin tämän sivun ohjeita ssh-palvelimen asentamisessa: https://www.cyberciti.biz/faq/ubuntu-linux-install-openssh-server/
- 1.Open the terminal application for Ubuntu desktop.
- 2. For remote Ubuntu server you must use BMC or KVM or IPMI tool to get console access
- 3. Type sudo apt-get install openssh-server
- 4. Enable the ssh service by typing sudo systemctl enable ssh
- 5. Start the ssh service by typing sudo systemctl start ssh
- 6. Test it by login into the system using ssh user@server-nam
Sain tehtyä kohdat 1.-5., mutta viimeistä kohtaa en ymmärtänyt, joten annoin tehtävän olla.
c) Tee unelmien apt-get -komento: yksi komentorivi, joka asentaa suosikkiohjelmasi.
Tässä kohtaa olin väsertänyt tehtäviä yhtä putkeen varmaan alle sen pari tuntia, joten en henkisesti jaksanut enää miettiä unelmakomentoani. Tehtävänannossa jää myös epäselväksi, pitääkö asentaa yksi vai useampi ohjelma. Menin katsomaan, mitä kurssin muut opiskelijat olivat tehneet tässä kohtaa, joten kopioin Jussi Pelkosen vastausta (lähde: https://pelkjus.wordpress.com/2020/02/01/teht-2-komentorivi/ ), jossa hän oli samalla komennolla päivittänyt ja asentanut ohjelmat:
sudo apt-get update && sudo apt-get install vlc deluge gimp -y
(-y lopussa tarkoittaa, että assume yes)
Tämä on varmaan hyvä tapa asentaa ohjelmia.
d) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.
Tämänkin osion tekeminen tuotti tuskaa, koska koneeni alkoi toimimaan hitaasti ja jopa pysähtyi kokonaan yhdessä vaiheessa. Sammuttamalla ja käynnistämällä koneen uudestaan se toimi taas hyvin. En nyt pysty sen enempää kertomaan, miksi näin tapahtui tai mikä aiheutti sen.
Käytin tätä sivua inspiraation lähteenä ohjelmille: https://www.tecmint.com/cool-linux-commandline-tools-for-terminal/
Aluksi yritin asentaa wikit -ohjelmaa. Tuli ilmoitus, ettei pakettia löydetty. Vianmääritystä tämän sivun ohjeiden mukaan: https://itsfoss.com/unable-to-locate-package-error-ubuntu/ Ohjelman nimi oli oikein kirjoitettu komentoriville eli se ei ollut ongelmana. Tässä vaiheessa kone alkoi toimia hitaasti (ei kirjoittanut mitään ja hiiri liikkui hitaasti). Seuraavana ohjeena oli päivittää komenolla sudo apt update, jolloin kone pysähtyi kokonaan ja jouduin sammuttamaan koneen.
Uudelleen käynnistämisen jälkeen sudo apt update -komento toimi ja kone ei hidastellut. En kuitenkaan pystynyt edelleenkään lataamaan wikit:iä. Vianmääritysohjeiden seuraavassa vaiheessa piti katsoa, mikä xubuntun versio minulla on ja yhden nettisivun kautta katsoa, onko kyseinen ohjelma saatavilla sille. Tässä vaiheessa olin jo, että perkele kun pitää näin vaikeaksi mennä. Menin sitten katsomaan software centeristä, saisinko ladattua sen sieltä. No, selvisi, ettei sitä edes ole siellä. *insert facepalm gif*
Sitten latasin sellaisia ohjelmia, jotka olivat saatavilla:
lolcat, joka muuttaa komentorivin värit sateenkaariväreiksi:
boxes, joka luo erilaisia laatikoita tekstien ympärille:
Figlet Toilet, joka muuttaa tekstin paksuiksi kirjaimiksi:
Lopulta sain kuin sainkin tehtävät tehtyä, vaikka se olikin välillä ahdistusta ja tuskaa.
Opin käyttämään ja etsimään tietoa lokeista. En ehkä osaa lukea niitä täydellisesti, mutta jotenkin ne ovat nyt vähän selkeytyneet.
Osaan tehdä vianmääritystä ja tiedän, että kannattaa aloittaa helpoimmasta syyllisestä kuin mennä vaikeamman kautta.