Nikolai Zhukov (bfy466 Haaga-Helia AMK)

  • Home
rss
  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h7

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h7 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 15.03.2021

    Opettaja: Tero Karvnen




    Tehtävät

    a) Ratkaise valitsemasi vanha arvioitava laboratorioharjoitus tältä kurssilta. (Löytyy DuckDuckGolla tai Googlella sekä linkeistä tältä sivulta).b) Tarkista, että olet viitannut jokaisessa tehtävässä kaikkiin lähteisiin. Esimerkiksi kurssiin, tehtävänantoihin, käyttämiisi toisten kotitehtävärapotteihin, manuaalisivuihin, kotisivuihin... c) Kaikki tehtävät arvioitavaksi. Palauta linkki sivuun, josta löytyvät kaikki kotitehtäväraporttisi. Arviointi tehdään ensisijaisesti tästä linkistä. Linkki voi olla esimerkiksi blogin etusivu (jos blogissa on vain kotitehtävät) tai sivuun, jossa on linkki kuhunkin tehtävään. Kaikki tehtävät -linkin palautus Moodlessa kohtaan "Kaikki tehtävät arvioitavaksi". d) (vapaaehtoinen) Käytä Linuxia kurssin ulkopuolella.e) (vapaaehtoinen) Varaa kalenteristasi viikon välein aikoja Linux-harjoitteluun kurssin jälkeen.
    Muista ilmoittautua kursseille: Palvelinten hallinta (suositeltava kurssi tämän jatkoksi), Python weppikurssi w21 (varmistunee tällä viikolla) ja Tunkeutumistestaus (katso ennakkovaatimukset). Tervetuloa!

    Toteuttaminen
    Vanhan laboratorioharjoituksena valitsin v 2018 toteutettu:
    http://terokarvinen.com/2018/arvioitava-laboratorioharjoitus-linux-palvelimet-ict4tn021-6-torstai-alkukevat-2018-5-op/

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


    Lähtökohteena otin kannettava tietokone Lenovo T410, jossa kovalevy oli alustettu.
    Valmistin Debian10 asennustikun jo kotitehtävässä h1.
    Aloitin asennus ja tein kaikki askelit kuin h1 kotitehtävässä:
    Loin uuden käyttäjän bfy466 ja lisäsin sen sudo ryhmään.
    Asensin ufw palomuri:
    Asensin Apache2 palvelin ja tarkistin, että vastava palvelu on käynnissä:
    Saman tien tarkistin selaimella "localhost" oletus websivu joka kuuluu Apache2:lle.

    *** Kuormitustehtävä *** Apache2 nykyinen kuormitus on noin 1.1% (55 tasks out of 4915)

    Tein oman oletussivun ja tarkistin, että localhos viitää siihen:
    Löisin ohjeet PHP asennuksesya tästä:
    https://phoenixnap.com/kb/how-to-install-phpmyadmin-on-debian-10

    ja tästä (+MariaDB):
    https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mariadb-php-lamp-stack-on-debian-10#step-2-%E2%80%94-installing-mariadb


    Asensin PHP ja vastaava libapache2-mod-php:
    mysql serverin asennus ei onnistui, koska se on korvattu MariaDB pakkaukseen:
    Asennetaan MariaDB :
    Tarkistin, että MariaDB on käynnistetty:
    *** Kuormitustehtävä ***
    Apache2 nykyinen kuormitus on noin 0.1% (6 tasks out of 4915)
    MariaDB nykyinen kuormitus on noin 0.6% (30 tasks out of 4915)
    Käynnistin MariaDB serverin rajapintaa, loin uuden käyttäjän ja loin uuden tietokannan ('clients')
    Edelliseen käsittelyn varten asensin phpMyAdmin:
    Tein config tiedoston oheen mukaan: https://phoenixnap.com/kb/how-to-install-phpmyadmin-on-debian-10
    Kun yritin käynnistää phpMyAdmin, törmäsin seuraviin ongelmaan:
    Ratkaisun olen löyttänyt tästä:
    https://stackoverflow.com/questions/35424982/how-can-i-enable-the-mysqli-extension-in-php-7
    Molemmat pakkaukset oli asennettu onnistuneesti ja sain käyttöön phpMyAdmin rajapinnan.
    johon pääsin MariaDB käyttäjän tunnuksilla:
    Nyt voin käsitellä tietokannan:
    Lisätään tietokannalle taulukon client_names ja ohjeessa tarvittavat pylvät ja rivit.
    Lisätään PHP skripti "clients.php" joka hakee asiakkaat tietokannalta:
    $user = "bfy466";
    $password = "zzz";
    $database = "clients";
    $table = "client_names";

    try {
    $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
    echo "

    Tervetuloa Sorkka ja Rauta Oy:n nettisivulle

      ";
    echo "

    Alla tämänhetkiset asiakkaamme:

      ";
    foreach($db->query("SELECT name_official FROM $table") as $row) {
    echo "
  • " . $row['name_official'] . "
  • ";
    }


    echo "";
    } catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "
    ";
    die();
    }


    Muokkasin hosts tiedoston seuraavasti:

    127.0.0.1 www.sorkkarauta.example.com

    Käynnistämällä www.sorkkarauta.example.com/clients.php saamme asiakkaiden lista:
    *** Kuormitustesti ***
    bfy466@bfy466:~$ ab -c 100 -n 10000 www.sorkkacrm.example.com/
    This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/

    Benchmarking www.sorkkacrm.example.com (be patient)
    Completed 1000 requests
    Completed 2000 requests
    Completed 3000 requests
    Completed 4000 requests
    Completed 5000 requests
    Completed 6000 requests
    Completed 7000 requests
    Completed 8000 requests
    Completed 9000 requests
    Completed 10000 requests
    Finished 10000 requests


    Server Software: Apache/2.4.38
    Server Hostname: www.sorkkacrm.example.com
    Server Port: 80

    Document Path: /
    Document Length: 290 bytes

    Concurrency Level: 100
    Time taken for tests: 1.455 seconds
    Complete requests: 10000
    Failed requests: 0
    Non-2xx responses: 10000
    Total transferred: 4700000 bytes
    HTML transferred: 2900000 bytes
    Requests per second: 6871.09 [#/sec] (mean)
    Time per request: 14.554 [ms] (mean)
    Time per request: 0.146 [ms] (mean, across all concurrent requests)
    Transfer rate: 3153.72 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 1 0.5 0 6
    Processing: 3 14 3.3 12 33
    Waiting: 1 14 3.2 12 31
    Total: 6 14 3.2 13 33
    ERROR: The median and mean for the initial connection time are more than twice the standard
    deviation apart. These results are NOT reliable.

    Percentage of the requests served within a certain time (ms)
    50% 13
    66% 14
    75% 16
    80% 17
    90% 20
    95% 21
    98% 23
    99% 24
    100% 33 (longest request)

    Tarkoitukset ovat yleensä:
    Time taken for tests: 1.455 seconds jaetaan 10000 ja saamme 14 ms per request.
    Ajat jotka tarvitaan yhteyksiin:
    min mean median max
    Total: 6 14 3.2 13 33
    100% yhteyksistä on suoritettu 33ms aikana.








    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021

    h6

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h6 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 08.03.2021

    Opettaja: Tero Karvnen




    Tehtävät

    a) Tietokanta wepissä. Tee oma yksinkertainen, tietokantaa käyttävä ohjelma. Ohjelmalla tulee olla jokin käyttötarkoitus. Voit tehdä ohjelman muokkaamalla Teron koodia (muista lähdeviite).
    b) Laita tietokantaohjelmasi toimimaan mod_wsgi:n kanssa.
    c) Vapaaehtoinen: Tauluja. Tee Flask-ohjelma, jossa on vähintään kaksi taulua (tables).
    d) Vapaaehtoinen: Tunnussana! Tee Flask-ohjelma, jossa on autentikoituminen. Voit käyttää kovakoodattua käyttäjätunnusta ja salasanaa. Tiivisteen teko onnistuu esimerkiksi werkzeug.check_password_hash() -funktiolla.
    c) Vapaaehtoinen, vaikea: Pankki vai luotto? Tee Flask-ohjelma, joka ottaa vastaan maksuja. Voit käyttää Paypal tai Stripe -palveluita ohjelmointirajapinnan läpi. Maksun maksamisen jälkeen voi esimerkiksi lukea jonkun sivun tai ladata itselleen PDF-tiedoston. Tässä harjoituksessa käsittelet rahaa ja harjoittelet ulkopuolisen ohjelmointirajapinnan (API) käyttöä.
    d) Vapaaehtoinen: CRUD. Tee Flask-ohjelma, jossa tietueita voi luoda (Create), lukea (Read), päivittää (muokata, Update) ja poistaa (Delete). Aimmissa harjoituksissa olet jo luonut ja lukenut tiedostoja, joten lisäät vaan muokkauksen ja poiston.

    Toteuttaminen
    Käytetään Tero Karvisen ohjeet malliksi.








    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h5

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h5 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 22.02.2021

    Opettaja: Tero Karvnen




    Tehtävät

    • Tee kukin tehtävä alusta lähtien ja kirjaa samalla, vaikka olisit kokeillut tunnilla. Jos pidät propellihattua, katso kohta x.
    • a) Hello Flask! Tee Python Flask hei maailma kehitysympäristössä. Voit siis käyttää tuotantoon sopimatonta app.run(debug=True) ajoa.
    • b) Tuotanto-Flask. Tee tuotantotyyppinen asennus Flaskista käyttäen Apachen WSGI-modulia. Kokeile, että pystyt muokkaamaan koodia ilman sudoa ja saat uuden version käyttöön käynnistämättä Apachea uudelleen. ('touch foo.wsgi').
    • c) Lisää tuotanto-Flaskiin muotit (templates).
    • d) Sun IP. Tee Flask-sivu, jolla näkyy tietoja käyttäjästä. Esimerkiksi request.user_agent.string, request.remote_addr. Muista "from flask import request".
    • e) Vapaaehtoinen. Tee palvelinohjelma, joka laskee jotain käyttäjän antamista luvuista. Painoindeksi, tonttunimesi, pisteytys salasanallesi tms. Tässä tarvitaan lomakkeita (forms) ja POST-pyyntöjen lukemista.
    • x) Propellivaihtoehto, vapaaehtoinen, korvaa muut kohdat. Julkaise hyödyllinen Flask-ohjelma, joka käyttää tietokantaa ja lomakkeita. Hyöty voi olla pienikin, mutta ohjelman tulee tehdä jotain järkevää. (OK: äänestä paras kissankuva, ilmoittaudu arpajaisiin, nallekarhujen lainausjärjestelmä. Ei käy: lue esimerkkitietueita foo ja bar tietokannasta.) Hauskaa koodailua!

    Toteuttaminen
    Otamme esimerkit ja ohjeet Tero Karvisen web-sivulta:
    http://terokarvinen.com/2017/hello-python-flask-web-app-development-server-install-on-ubuntu-16-04/index.html

    Asennetaan python3-flask:
    Luodaan kansio publicFlask/ ja siellä tiedosto main.py

    Tiedoston sisältö on otettu http://terokarvinen.com/2017/hello-python-flask-web-app-development-server-install-on-ubuntu-16-04/index.html sivulta.
    Käynnistämällä saamme valmis palvelin "host" osoitteessa 127.0.0.1 portissa 5000.
    Palvelin osaa käsitellä HTTP GET pyynnöt ja vastata tyksinkertäisen HTML sivun kanssa.
    Konsolin GET pyyntö:
    Selaimen GET pyyntö:

    Tämä kappale on tehty ohjeiden mukaan: https://terokarvinen.com/2020/deploy-python-flask-to-production/

    Asennetaan Apache2 ja vaihdetaan oletussivun yksinkertäisen teksti ilmoitukseen:
    sudo apt-get update
    sudo apt-get -y install apache2
    echo "Learn Apache with Tero Karvinen" | sudo tee /var/www/html/index.html

    Toimii sekä konsolissa että selaimella.

    Luodaan uuden käyttäjän bfy466wsgi jokä käytetään meidän uudella asennuksella.

    Olen törmännyt ongelmaan: moi.conf näyttää siltä
    Mutta Apache2 ei suostui käynnistää uudelleen ja ei toimii silti.
    Suoritin
    sudo apt-get -y install libapache2-mod-wsgi-py3
    mutta ei auttoi.

    Valitettavasti en pystynyt ratkaistaa sen.

    08.03.2021 UPDATE
    Olen löyttänyt vian:
    Piti suorittaa komento:
    sudo a2enmod wsgi

    Sen jälkeen Apache suostui käynnistää uudelleen ja Configtest meni ohi.
    Ratkaisu löytyi tästä:
    https://stackoverflow.com/questions/33320889/invalid-command-wsgidaemonprocess-deploy-django-application-on-centos-6-7#47399305

    Nyt sain 403 Forbidden...
    Voimme nyt luoda vastaav kansio ja määritellä "terowsgi" käyttäjän oikeudet:
    "tero.wsgi" ja "hello.py" failien luomisen jälkeen saamme seuraava:

    Samalta näyttää Firefoxin sivu:










    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h4

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h4 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 14.02.2021

    Opettaja: Tero Karvnen




    Tehtävät

    • a) Tee alusta lähtien oma julkinen palvelin Internetiin.
    • Vinkkejä: Tee siis uusi virtuaalipalvelin (esim "Droplet") ja sille tarvittavat alkutoimet. Tee uusi DNS-nimi. Alanimiä voi yleensä tehdä maksutta: esim. jos hallitsee TeroKarvinen.com, voi tehdä hattu.TeroKarvinen.com. Tässä tehtävässä on tarkoitus sujuvoittaa koko prosessi, tee siis uusi A-tietue nimipalvelimeen ja uusi virtuaalipalvelin alusta lähtien, vaikka sinulla olisi jo sekä nimi että palvelin. Kun kaikki toimii ja raportti on valmis, voit poistaa turhan palvelimen ja jättää itsellesi esimerkiksi vain yhden käyttöön. Jos jäät jumiin, pyri päättelemään, mitkä osat toimivat ja mitkä eivät; ratkomme viimeiset ongelmat yhdessä tunnilla. Palautusaika on tuttuun tapaan 24h ennen seuraavaa tapaamiskertaa, eli vasta talvivapaan jälkeen.
    • b) Vapaaehtoinen: Etsi lokeistasi merkkejä murtautumisyrityksistä ja analysoi ne.
    • c) Vapaaehtoinen: Laita TLS-salakirjoitus (https) toimimaan certbot ja Let's Encrypt avulla.
    • d) Vapaaehtoinen: Tee weppisivuja omalla, paikallisella koneellasi ja kopioi ne palvelimmelle scp-komennolla.
    • x) Vaikea, vapaaehtoinen vaihtoehtotehtävä Tämä on vain niille parille propellihatulle, jotka halusivat vaikeamman tehtävän. Korvaa muut h4 koti- ja tuntitehtävät. Koodaa ja julkaise uusi tietokantaa hyödyntävä weppipalvelu. Palvelun pitää ratkaista jokin käytännön ongelma, esimerkiksi ilmoittautuminen tapahtumaan, pisteytä tunti, äänestä suosikkia tms. Voit hyödyntää vanhoja koodejasi, kunhan lopputulos on uusi. Voit käyttää mitä vain kehitysalustaa (framework), esimerkiksi LAMP, Flask, Django, Postgre, Mariadb... Muista lisätä raporttiin ruutukaappaukset keskeisestä toiminnallisuudesta.

    Toteuttaminen
    Tero Karvisen vinkin avlla olen tehnyt Haaga-Helian sähköpostilla tili Githubissa ja sitten sain alennukset ja promokoodit opiskelijana.
    Muun muuassa sain tehtyä Digitalocean.com:ssa tilin ja virtuaalipalvelimen.
    Luodaan ensimmäinen "Droplet" eli virtuaalipalvelimen.
    Käyttöjärjestelmänä valitaan Debian 10 ja perusominaisuudet.
    Valitaan datacenterina euroopan alue Saksassa.
    Valitaan autentikointi salasanalla (jota myöhemmin voidaan vaihtaa SSH:ksi)

    Luonnin jälkeen saamme valmis Droplet.

    Nyt saamme pääsyä konsoliin josta voimme asentaa tarvittavat sovellukset:
    Asensin Apache2
    sudo apt-get install apache2
    Laitoin omat sivut käyttöön
    sudo a2enmod userdir
    ja laadin
    Nyt luodaan netissä oman domain eli verkkotunnus.
    Githubin alennuksen avulla, sain Name.com :ssa ilmainen verkkotunnus vuoden ajalle.
    Loin domain "bfy466.live"

    Nyt vaihdetaan Name.com DNS tallennukset Digitalocean.com:iin.
    Tarkistetaan mikä on sen jälkeen oletus DNS parametrit:
    whois bfy466.live
    Nyt DNS tallennettu Digitalocean.com palvelimeille.
    Palutetaan Droplet asetuksiin ja luomme uuden Domainin DNS tallennus:
    Luodaan ennen kaikkea A tallennus joka viittaa julkisen nimen meidän droplettiin.
    Syötetään "@" siirtämällä "hostname" (ilman ala-domainia) droplettiin.
    Sitten lisätään "www" alias, jotta myöskin www.bfy466.live osoittaa samaan droplettiin.

    Nyt voimme testata, pääsemmekö selaimella:

    Onnistuneesti pääsemme sekä "bfy466.live", että "www.bfy466.live"







    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h3

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h3 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 06.02.2021

    Opettaja: Tero Karvnen




    Tehtävät

    • 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)
    • m) Vaihda Apachen oletussivu. Eli laita palvelimen etusivulla (ilman tildeä) näkyvä sivu niin, että alkuperäinen on jonkun käyttäjän kotihakemistossa ja voit muokata sitä ilman pääkäyttäjän oikeuksia.
    • n) Laita kaksi nimeä samaan IP-osoitteeseen. Voit simuloida nimipalvelun toimintaa /etc/hosts -tiedoston avulla. Eli niin, että samalla palvelimella osoitteella teronlenkkisivu.com tulee eri sisältö kuin osoitteella opipentest.com.

    Toteuttaminen
    a) Apache2 asennus:
    Katsotaan mikä on koneen IP osoite:
    Koska käytämme WIFI (wlp3s0), sen IP 192.168.0.116 on localhost osoite.
    Kokeilemme avata sen Firefoxilla:
    ja pääsemme Apache2 aloitussivuun. Se tarkoittaa, että web-palvelin asennettu kunnolla.
    Luodaan omat esimerkkisivut:
    cd /var/www/html
    sudo mkdir website
    cd website/
    sudo touch index.html
    sudo nano index.html

    Ctrl+O Ctrl+Z ja restaitoidaan Apache2 palvelin:
    sudo systemctl restart apache2

    Nyt pääsemme omalle sivulle Firefoxilla:

    Laitetaan omat sivut käyttöön:
    sudo a2enmod userdir
    Käynnistetään Apache2 uudelleen:
    systemctl restart apache2
    Luodaan oman kansion:
    cd ~
    mkdir public_html
    cd public_html
    nano index.html
    Ctrl+O Ctrl+Z
    Nyt pääsemme Firefoxilla omalle sivulle:
    http://192.168.0.116/~bfy466/


    Apache2 lokit sijaitsevat täällä:
    /var/log/apache2/access.log
    /var/log/apache2/error.log

    sudo nano /var/log/apache2/access.log

    Löytyy useat rivit jotka esittävät erillaisien websivujen käyntiä:
    192.168.0.116 - - [08/Feb/2021:19:19:41 +0200] "GET /~bfy466/ HTTP/1.1" 200 458 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0"
    Se tarkoittaa, että onnistuneesti saimme websivu näkyviin. Selitykset oli saatu tästä:
    https://www.apacheviewer.com/log-format/

    192.168.0.116 %h host IP Address of visitor
    - - %u user Empty in many cases unless user is authenticated
    [08/Feb/2021:19:19:41 +0200] %t date & time Date and time that the event occurred
    "GET /~bfy466/ HTTP/1.1" \"%r\" request Request string
    200 %>s status HTTP Status code
    https://httpstatuses.com/200 selittää sen kuin 200 OK The request has succeeded.

    458 %b size HTTP Size
    "-" \"%{Referer}i\" Referer Referer host
    "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0" \"%{User-agent}i\"
    User agent header Web browser or Bot identification
    Käyttänössä se on selaimen+käyttöjärjestelmän tunnistus.

    Toinen rivi tarkoittaa, että sivun avaaminen epäonnistui:

    192.168.0.116 - - [08/Feb/2021:19:19:48 +0200] "GET /~bfy468/ HTTP/1.1" 404 492 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0)$
    Samat lokin osat, eroa on se, että HTTP statuksen koodi on 404
    404 NOT FOUND
    The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

    Kolmas rivi kertoo, että kysytty websivu oli siirty jossain muualla ja ei enää saatavilla alkuperäiselta osoitteelta:

    192.168.0.116 - - [08/Feb/2021:18:25:22 +0200] "GET /website HTTP/1.1" 301 582 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0"

    301 %>s status HTTP Status code
    301 MOVED PERMANENTLY
    The target resource has been assigned a new permanent URI and any future references to this resource ought to use one of the enclosed URIs.

    Vaihdamme Apachen oletussivun:
    cd /var/www/html

    Tästä löytyy index.html, joka on Apachen oletussivu.
    sudo mv index.html index_apache2.html
    sudo nano index.html
    Lisätään joku yksinkertainen HTML rakenne (example.com esimerkisivu):
    Talennuksen jälkeen pääsemme Firefoxilla oletusivulle:







    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h2

    Linux Server Course - Linux palvelimet ict4tn021-3014


    Aihe: h2 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 02.02.2021

    Opettaja: Tero Karvnen




    Tehtävät

    • a) Aiheuta lokiin kaksi eri tapahtumaa: yksi esimerkki onnistuneesta ja yksi esimerkki epäonnistuneesta tai kielletystä toimenpiteestä. Analysoi rivit yksityiskohtaisesti.
    • b) Tee unelmien apt-get -komento: yksi komentorivi, joka asentaa suosikkiohjelmasi.
    • c) Asenna komentokehotteen paketinhallinnasta kolme itsellesi uutta komentorivillä toimivaa ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.
    • d) Tarkista, että raporteissasi on lähdeviitteet: kurssiin, tehtävänantoihin, muiden opiskelijoiden raportteihin weppisivuihin, man-sivuihin ja kaikkeen muihinkin käyttämiisi lähteisiin. (tätä "Tarkista, .." alakohtaa ei tarvitse raportoida)
    • e) Opettele ulkoa ja harjoittele tärkeimmät komennot (tätä "opettele ulkoa" alakohtaa ei tarvitse raportoida):

      Karvinen 2020: Command Line Basics Revisited
    • f) Harjoittele komentokehotetta päivittäin. On hyvä, jos osaat komennot täysin automaatiotasolla lihasmuistista, kun siirrymme demonien pariin. (Kuten sovimme, tätä "Harjoittele komentokehotetta päivittäin" alakohtaa ei tarvitse raportoida)
    • g) Vaikeampi vapaaehtoinen bonuskohta, 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:’)

    Toteuttaminen
    a) Tein seuraavat: uloskirjoitus ja kokeilin sisäänkirjauttaa "root" käyttäjänä väärällä salasanalla. Sitten sisäänkirjautin oikealla salasanalla.

    Katsotaan loki:
    $ cd /var/log/
    $ nano auth.log

    Löytyy väärän salasanan kokeilu:

    Feb 2 11:49:43 debianHH systemd-logind[500]: New session c4 of user lightdm.
    Feb 2 11:49:43 debianHH systemd: pam_unix(systemd-user:session): session opened for user lightdm by (uid=0)
    Feb 2 11:49:53 debianHH lightdm: pam_unix(lightdm:auth): authentication failure; logname= uid=0 euid=0 tty=:0 ruser= rhost= user=root
    Feb 2 11:49:58 debianHH lightdm: pam_unix(lightdm-greeter:session): session closed for user lightdm

    Sitten löytyy oikean salasanan kirjauttaminen:

    Feb 2 11:49:58 debianHH systemd-logind[500]: New session 10 of user root.
    Feb 2 11:50:00 debianHH polkitd(authority=local): Registered Authentication Agent for unix-session:10 (system bus name :1.123 [/usr/lib/policykit-1-gnome/p$
    Feb 2 11:50:01 debianHH pkexec: pam_unix(polkit-1:session): session opened for user root by (uid=0)


    b) Asennetaan Blender 3D mallintaminen ohjelmaa:
    $ sudo apt-get update
    $ sudo apt-get install -y blender
    -y parametri vastaa "yes" kaikkiin asennusta tuleviin kysymyksiin.
    Tulos:







    Muistiinpanojen yhteenveto








  • Published by Nikolai Zhukov January 24th, 2021
    Featured Photo

    h1

    Aihe: h1 kotitehtävä

    Kurssi: Linux Server Course - Linux palvelimet ict4tn021-3014

    Päiväys: 24.01.2021

    Opettaja: Tero Karvnen




    Tehtävät

    • a) Tee oma Linux-livetikku. Kokeile sitä jossain muussa kuin koulun koneessa. _Tämä kohta ei edellytä asentamista – jos kuitenkin asennat, ota ensin varmuuskopiot. Jos ehdit tehdä tikun jo tunnilla, voit poikkeuksellisesti raportoida muistin perusteella jälkikäteen, mutta muista silloin mainita muistinvaraisuudesta.
    • b) Listaa testaamasi koneen rauta (‘sudo lshw -short -sanitize’).
    • c) Asenna kolme itsellesi uutta ohjelmaa. Kokeile kutakin ohjelmaa sen pääasiallisessa käyttötarkoituksessa.
    • d) Mitä lisenssiä kukin näistä ohjelmista käyttää? Selitä lyhyesti, mitä oikeuksia ja velvolisuuksia tuosta lisenssistä seuraa.
    • e) 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. (Päivitetty: korjasin tämän kohdan tunnuskirjaimen d->e)
    • f) Vapaaehtoinen lisätehtävä: varmuuskopioi tiedostosi (voit käyttää esimerkiksi ulkoista USB-levyä)

    Toteuttaminen
    a) Linux-jakelupaketeista valitsin Debian 10. http://www.debian.org/
    Livetikun ISO imago sain ladattua opettajan antava linkistä (debian-live-10.7.0-amd64-xfce+nonfree.iso).
    Imagon latasin Rufus (https://rufus.ie) ohjelman avulla 16Gt muistitikulle joka oli alustettu ja valmistettu.
    Käytin vanhan kannattevan tietokoneen (Lenovo T410 - Core i5 / 4+2 GBRAM / 256GB SSD ) ja tein kovalevylle partitionin uudelleenmäärittelyn ja alustus, siksi varmuuskopiointi en tehnyt.
    b) Hyödylliset ohjeet löysin blogista https://vitux.com/.
    Ennen kaikkea käynnistin sovelluksien päivitys "sudo apt-get update".
    Asensin wget "apt-get install wget"
    Latasin Teamviewerin paketti "wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb"
    Asensin TeamViewer etätyöpöytäsovellus käynnistämällä "apt-get install ./teamviewer_amd64.deb"
    Nyt voin yhdistää koneeseen ja saada kaikki toiminnot netin kautta.
    Koneen raudan listaus tapahtuu "lshw" komennon avulla Terminaalissa. Oletuksena jostain syystä Debianissa ei oli ollut "lshw" ohjelmaa. Asensin sen käynnistämällä "sudo apt-get install lshw".
    Tulokset ovat seuraavia:
    ja toinen sivu:
    Näyttää siltä, että kaikki Lenovon laitteet oli tunnistettu ja niille asennettu ajurit. Testasin perustoiminnot (näppäimistö, langaton hiiri, touchpad, joystick, ääni, CD/DVD), kaikki toimivat OK.
    c) Poistin vanhan LibreOffice version joka tuli Debianin kanssa: "sudo apt-get remove libreoffice-core"

    Latasin LibreOffice tästä: https://www.libreoffice.org/download/download/?type=deb-x86_64&version=7.0.4&lang=fi
    Puretaan pakkauksesta failit ja pakkaukset:
    Terminaalissa siirretään kansioon:
    "cd /root/Downloads/LibreOffice_7.0.4.2_Linux_x86-64_deb/DEBS/"
    ja asennataan kaikki sovellukset:
    "sudo dpkg -i *.deb"
    Asennuksen jälkeen LibreOffice on uudistunut:
    Asenntaan Wine (Windowsin sovellusten käynnitysohjelman). Tiedän, että tietokoneeni on 64 bit ja suoritetaan:
    "sudo apt-get install wine64"
    ja
    "sudo dpkg --add-architecture i386"

    d)
    1. TeamViewrerilla on "Freemeum" lisenssi henkilökohtaisen (non-commercial) käyttöön. Tarkoitus on, että sovelluken ei saa muokkaa (lähtökoodi ei ole saatavilla), saa julkaistaa, muttei myydä. (https://www.teamviewer.com/en-us/info/free-for-personal-use/)
    2. LibreOffice:lla on Mozilla Public License v2.0 "https://www.mozilla.org/en-US/MPL/2.0/" joka ei tuoda mitään takuutta, mutta antaa käyttäjlle oikeudet käyttää, jäljentää, asettaa saataville, muokata, näyttää, suorittaa, jaella ja muutoin hyödyntää julkaisujaan joko muokkaamattomasti, muutoksin tai osana.
    3. Wine:lla on GNU Lesser General Public License jossa on tietyt rajoitukset GPL lisensin verran: Pääasiallinen eroavaisuus GPL:n ja LGPL:n välillä on se, että LGPL-ohjelmistot voidaan linkittää dynaamisesti yhteen ei-GPL-lisensoidun ohjelman osan kanssa. Tämä mahdollistaa sen, että esimerkiksi kaupallisten ohjelmistojen ei tarvitse julkaista lähdekoodia, vaikka ohjelma käyttäisikin LGPL-lisensoituja komponentteja. LGPL-lisensoitua ohjelmaa voi levittää myös GPL-lisenssin alla, mikä taas mahdollistaa LGPL-lisensoitujen komponenttien käytön myös GPL-ohjelmissa.
    e) Joka päivä käytän:
    1. Office ohjelmat ja niiden vastaavat Linuxin ohjelmat löytyy esim. LibreOffice paketissa.
    2. Teamviewer ja sinne vastaa samalainen Linuxin sovellus
    3. Paint.net ja vastaava Linuxin ohjelmisto on Gimp
    4. Outlook ja vastaava Linuxin sovellus on esim. Mozilla Thunderbird.
    5. Google SketchUp ja monimutkaisempi mutta hyvin tehokkaampi vastaava on esim. Blender.

    f) Varmuuskopioinnin varten asensin Backintime sovellus (https://packages.debian.org/buster/backintime-common) joka antaa mahdollisuus kopioda koneen tiedot kokonaan. Tein USB muistitikkuun kopio.



    Muistiinpanojen yhteenveto

    • Linuxin asennus ja käyttö ei ole niin vaikkea kuin mietin aiaksemmin. Kannattaa oppia enemmään perusteet Linuxin rakennuksesta, tiedoston järjestelmästä, ohjelmistojen asennuskesta ja räätälöinnistä.






© 2025 Nikolai Zhukov (bfy466 Haaga-Helia AMK).

Powered by Postach.io