Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Tietoa laitoksesta:

 

World-Wide Web-kotisivu


HUOM! Tämä sivu koskee vain TKTL:n käyttäjien kotisivuja, jotka sijaitsevat fyysisesti TKTL:n tiedostopalvelimella fs.cs.helsinki.fi ja joiden WWW-palvelimena toimii www.cs.Helsinki.FI. ATK-osastolla on omat ohjeensa osoitteessa http://www.helsinki.fi/ohjeet/kotisivu.html.

Kotisivun koti

Käyttäjän kotisivu ja muut ulkomaailmaan näkyvät WWW-sivut sijaitsevat käyttäjän omassa kotihakemistossa alihakemistossa:
    ~/public_html/
Varsinainen kotisivu sijaitsee ~/public_html/ hakemistossa tiedostossa:
    ~/public_html/index.html
ja se näkyy ulkomaailmalle kahden eri URL:in kautta:
    http://www.cs.Helsinki.FI/~käyttäjätunnus/ ja
    http://www.cs.Helsinki.FI/u/käyttäjätunnus/
Molemmat URL:it toimivat täsmälleen samalle tavalla. Oman URL:in valinta on pitkälti makuasia, mutta seuraavat asiat kannattaa ottaa huomioon: Lisäksi laitoksella on uudelleenohjaus (redirect) URL:ista http://www.cs.helsinki.fi/people/Etu.Sukunimi (vastaa sähköpostiosoitetta Etunimi.Sukunimi@cs.helsinki.fi) osoitteeseen http://www.cs.helsinki.fi/u/käyttäjätunnus, mikä auttaa oikean sivun löytämisssä vaikka käyttäjätunnus ei ole tiedossa.

Sivulle Users' home pages-sivulle päivittyy automaattisesti kerran vuorokaudessa (yöllä) linkki kotisivullesi.

Jos haluat, että Atk-osasto lisää omaan kotisivuluetteloonsa linkin kotisivullesi, on sinun ilmoitettava siitä erikseen Atk-osastolle täyttämällä tämä lomake.

Oman kotisivun laatiminen

o Voit aloittaa näin

Alkuun pääset helpoimmin suorittamalla jossakin Atk-osaston Unix-koneessa komennon

    luokotisivu

Se luo kotihakemistoosi hakemiston public_html ja sinne tiedoston index.html, sekä asettaa tarvittavat käyttöoikeudet. Tämän jälkeen vain täydennät kotisivullesi haluamasi tiedot. Ks. lisätietoja Atk-osaston ohjeista.

o Voit myös tehdä näin

Luo ensin kotihakemistoosi hakemisto public_html.

    mkdir ~/public_html

Etsi sitten jonkun käyttäjän valmis, sinulle sopivannäköinen kotisivu. Talleta löytämäsi sivu omaan public_html-hakemistoosi nimellä index.html. Netscapessa se onnistuu valinnalla File / Save As...). Muista asettaa talletusmuodoksi Source.

Anna vielä kotisivusi hakupolulle maailman tarvitsemat oikeudet, niin kotisivu on kaiken Internet-kansan luettavissa. Komenna kotihakemistossasi seuraavasti

    chmod a+x ~ 
    chmod a+x public_html
    chmod a+r public_html/*
Editoi kopioimasi dokumentti sitten mieleiseksesi.

Laitoksen WWW-palvelin

Laitoksen WWW-palvelimen palvelinohjelmistona on Apache-1.3.6. Palvelimen ominaisuuksiin kuuluu Poliittinen päätös käyttäjien omien CGI-skriptien sallimisesta laitoksen tietokantapalvelimella db.cs.helsinki.fi on tehty. Päätös toteutetaan käytännössä vielä tämän kevään aikana.

Sivujen lukijoiden rajoittaminen

Oletusarvoisesti kaikki public_html hakemistosta löytyvät WWW-palvelimen luettavissa olevat sivut ovat myös koko Internetin luettavissa. Joskus on kuitenkin tarpeellista rajoittaa sivujen lukijakuntaa. Tähän on tarjolla kaksi vaihtoehtoa: käyttäjien rajoittaminen asiakaskoneen nimen perusteella ja käyttäjien autentikointi. Molemmat vaihtoehdot otetaan käyttöön editoimalla hakemistokohtaista .htaccess konfiguraatiotiedostoa. Sivujen lukijoita rajoitettaessa on tärkeää muistaa, että kaikki käyttäjät, jotka voivat lukea tiedostoja laitoksen levypalvelimelta (eli jokainen joka omistaa laitoksen käyttäjätunnuksen ja guest-käyttäjät), voivat lukea sivut suoraan public_html-hakemistosta. Näin ollen ensin pitää varmistaa että sivujen talletushakemisto on vain sivujen omistajan ja WWW-palvelimen luettavissa. Laitoksen Linuxeissa tämä tapahtuu wwwonly komennolla:
       jjaakkol@melkki:~/public_html$ mkdir private
       jjaakkol@melkki:~/public_html$ wwwonly private
       jjaakkol@melkki:~/public_html$ ls -ld private
       drwx--x---   2 jjaakkol www          1024 Mar 30 16:22 private/
Eli wwwonly komento vaihtaa hakemiston omistajaryhmäksi WWW-palvelimen ryhmän ja antaa hakemistoon lukuoikeuden ainoastaan hakemiston omistajalle ja WWW-palvelimelle.

Lukijoiden rajoittaminen asiakaskoneen nimen perusteella

Usein asiakaskoneen nimen perusteella tapahtuva käyttäjien rajoittaminen on riittävän hyvä ratkaisu palvelun suojaamiseen ulkopuolisilta. Erityisesti tämä ratkaisu toimii mikäli tavoitteena on sallia sivujen lukeminen ainoastaan laitoksen koneista, yliopiston koneista tai jostain tietyistä henkilökunnan koneista. Tämä tapahtuu editoimalla rajoituksien kohteena olevassa hakemistossa .htaccess-tiedostoa. Rajoittaminen tapahtuu komennoilla Order, Allow ja Deny: Palvelimen oletuskonfiguraatio vastaa seuraavaa .htaccess tiedostoa:
        Order allow,deny    # Sovelletaan ensin allow sääntöjä
        Allow from all      # Sallitaan sivujen luku kaikkialta
Seuraavalla .htaccess-tiedostolla annetaan vain TKTL:n koneille (koneet, joiden domain-nimi päättyy osoitteeseen cs.Helsinki.FI) lukuoikeus .htaccess-tiedoston sisältävään hakemistoon:
        Order deny,allow           # Sovelletaan ensin deny sääntöjä
        deny from all              # Ei sallita kenenkään lukea sivuja,
        allow from .cs.Helsinki.FI # paitsi TKTL:n verkon sisäpuolelta
Tällä .htaccess-tiedostolla annetaan lukuoikeus vain kolmelle työhuoneissa sijaitsevalle tunnettujen käyttäjien hallussa oleville koneille:
        Order deny,allow           # Sovelletaan ensin deny sääntöjä
        deny from all              # Ei sallita kenenkään lukea sivuja
        # Paitsi seuraavien kolmen koneen
        allow from hernekari.cs.helsinki.fi rankki.cs.helsinki.fi
        allow from juksu.cs.helsinki.fi

Lukijoiden rajoittaminen käyttäjätunnistuksella

Voit rajoittaa sivujesi lukijoita myös käyttäjien tunnistamisella, joko salasanalistoilla tai SSL-protokollan avulla. Luotettavin ja varmin tapa lukijoiden tunnistamiseen on SSL:n kryptografiset autentikointimenetelmät, jotka toimivat myös laitoksen WWW-palvelimella, mutta ovat käytännössä joko turhan monimutkaisia tai turhaan kalliita. SSL:n toiminnasta ja SSL-autentikoinnista löytyy lisää tietoa Apachen SSL-laajennuksen käyttöoppaasta. Salasanalla tapahtuva käyttäjien rajoittaminen tapahtuu lisäämällä .htaccess-tiedostoon seuraavat rivit:
       # Seuraava rivi käskee WWW-palvelinta autentikoimaan käyttäjät
       AuthType Basic
       # Seuraavan tekstin WWW-selain näyttää kysyessään käyttäjätunnusta
       # ja salasanaa
       AuthName "Salainen Kansio"
       # Käyttäjä/salasanalista haetaan seuraavasta tiedostosta:
       AuthUserFile /home/fs/jjaakkol/wwwpasswd/users
       # Mikä tahansa käyttäjätiedostostosta löytyvä käyttäjä kelpaa:
       require valid-user
       # Voitaisiin vaatia myös jokin tietty käyttäjä:
       require user guest
HUOM! Käyttäjien salasanatiedosto täytyy säilyttää paikassa josta WWW-palvelin pystyy sen lukemaan, mutta joka ei näy WWW-palvelimesta ulkopuolisille. Hyvä tapa toteuttaa tämä on käyttää wwwonly komentoa jossain muualla kuin public_html-hakemistossa.
       jjaakkol@melkki:~$ mkdir wwwpasswd
       jjaakkol@melkki:~$ wwwonly wwwpasswd
       jjaakkol@melkki:~$ ls -ld wwwpasswd
       drwx--x---   2 jjaakkol www          1024 Mar 30 18:06 wwwpasswd/
Käyttäjätiedostossa on joka rivillä yksi käyttäjätunnus ja käyttäjän kryptattu salasana kaksoispisteellä eroteltuna. Koska salasana on kryptattu, ei käyttäjätiedoston tiukasti ottaen tarvitsisi olla salainen, mutta nykyisillä tietokoneilla salakirjoitettujen salasanojen murtaminen raalla voimalla on valitettavasti mahdollista eikä edes kovin vaikeaa. Tässä on esimerkki käyttäjätiedostosta /home/fs/jjaakkol/wwwpasswd/users, jossa guest-käyttäjällä on salasana "demo":
       guest:zh9d/xXd3KsRQ
Käyttäjätiedostoja voidaan ylläpitää hakemistosta /opt/apache-1.3.6/bin löytyvillä ohjelmilla (manuaalisivut löytyvät vastaavasti hakemistosta /opt/apache-1.3.6/man/man1). Esimerkiksi käyttäjätunnuksen test-lisääminen salanalla testi tapahtuu näin:
       jjaakkol@melkki:~$ /opt/apache-1.3.6/bin/htpasswd wwwpasswd/users test
       New password:
       Re-type new password:
       Adding password for user test
       jjaakkol@melkki:~$ cat wwwpasswd/users
       guest:zh9d/xXd3KsRQ
       test:yHgqLjBHzexmg
       jjaakkol@melkki:~$

Salaus

Oletusarvoisesti WWW-palvelimen ja selaimen välinen keskustelu on täysin selväkielistä. Näin ollen jokin palvelimen ja asiakkaan väliltä löytyvä kolmas osapuoli voi kuunnella kaikki käytetyt salasanat ja sivujen sisällön. Tämä voidaan estää käyttämällä palvelimen ja selaimen välillä verkkoliikenteen salaavaa SSL-protokollaa. SSL-kykyisellä selaimella (esim. Netscape ja MSIE) voi liikenteen laitoksen palvelimen ja selaimen välillä salata yksinkertaisesti käyttämällä muotoa
       https://www.cs.helsinki.fi/
olevia URL:eja (eli protokollan http sijasta käytetään https-protokollaa).

Miten sallia ainoastaan salatut yhteydet

Mikäli sivut sisältävät arkaluonteista tietoa, kannattaa estää sivujen lukeminen selväkielisellä protokollalla. Tämä tapahtuu lisäämällä sivut sisältävän hakemiston .htaccess-tiedostoon rivi
       # Vaadi, että sivut luetaan SSL-salausta käyttäen
       SSLRequireSSL
Osoitteesta https://www.cs.helsinki.fi/u/jjaakkol/private/ löytyy sivu, jonka voi lukea vain SSL-salausta käyttäen ja jossa käyttäjiltä vaaditaan aiemmin esitetyllä tavalla guest-käyttäjätunnus demo-salasanalla.

Ohjeita ja oppaita

Lisää tietoa HTML:stä kannattaa voi lähteä lukemaan seuraavilta sivuilta: Laitoksen WWW-palvelimen käyttöppaat (erityisesti .htaccess-tiedoston käytöstä) löytyvät seuraavista paikoista:
29. maaliskuuta 1999, Jani.Jaakkola@cs.Helsinki.FI

LeHTori 10+