Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

Tietoa laitoksesta:

 

TKTL:n WWW-ohje

HUOM! Tämä sivu koskee vain TKTL:n käyttäjien kotisivuja, jotka sijaitsevat TKTL:n fs-tiedostopalvelimella ja joiden WWW-palvelin on www.cs.helsinki.fi. Tietotekniikkaosaston WWW-ohjeet ovat osoitteessa http://www.helsinki.fi/ohjeet/kotisivu.html.

Kotisivu levyllä ja siihen viittaaminen

Käyttäjän kotisivu ja muut ulkomaailmaan näkyvät WWW-sivut sijaitsevat käyttäjän fs-levypalvelimen kotihakemistossa public_html-alihakemistossa:

/home/fs/käyttäjätunnus/public_html/

Varsinainen kotisivu sijaitsee /home/fs/käyttäjätunnus/public_html/-hakemistossa tiedostossa index.html:

/home/fs/käyttäjätunnus/public_html/index.html

Kotisivu näkyy ulkomaailmalle usealla vaihtoehtoisella osoitteella:

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

Jos haluat, että Tietotekniikkaosasto lisää omaan kotisivuluetteloonsa linkin kotisivullesi, on siitä ilmoitettava erikseen Tietotekniikkaosastolle täyttämällä tämä lomake.

Kotisivun laatiminen

Luo ensin kotihakemistoosi hakemisto public_html:

    mkdir /home/fs/käyttäjätunnus/public_html

Sen jälkeen luo index.html-tiedosto tähän hakemistoon. Voit myös käyttää pohjana jonkun käyttäjän valmista, sinulle sopivannäköistä kotisivua. Talleta löytämäsi sivu omaan public_html-hakemistoosi nimellä index.html. Esimerkiksi Mozillassa tallennus tapahtuu valinnalla File / Save As....

Jotta WWW-palvelin näyttää kotisivun maailmalle, sille ja sen hakemistopolulle täytyy lisätä sopivasti oikeuksia. Tämä tapahtuu esimerkiksi antamalla kotihakemistossa seuraavat komennot

    chmod a+x .
    chmod a+x public_html
    chmod a+r public_html/*

Laitoksen WWW-palvelin

Laitoksen WWW-palvelimen palvelinohjelmisto on Apache. Palvelimen ominaisuuksiin kuuluvat muun muassa

Käyttäjien omien CGI-ohjelmien ja muiden erityisten WWW-sovellusten ajo on mahdollista tietokantapalvelimella db.cs.helsinki.fi. Tähän liittyviin ohjeisiin on linkkejä TKTL:n atk-ohjeiden etusivulla.

Sivujen lukijoiden rajoittaminen

Tietojenkäsittelytieteen laitoksen intranet

Helpoin tapa rajoittaa sivun lukijoita on sijoittaa se TKTL:n intranettiin, jolloin sivulle pääsy on automaattisesti rajattu laitoksen henkilökuntaan ja opiskelijoihin ja kaikki tietoliikenne on salakirjoituksella suojattua. Käytännössä edellytetään SSL-salaavan HTTPS-prokollan käyttöä ja TKTL:n atk-järjestelmien käyttäjätunnusta ja salasanaa. Jos tarvitaan eri tavalla määriteltyä pääsynvalvontaa, on rajoitus tehtävä itse htaccess-tiedoston avulla alempana olevien ohjeiden mukaan.

Intranet-sivuja voi olla yleisiä, ryhmäkohtaisia ja käyttäjäkohtaisia:

Sivujen lukijoiden rajoittaminen asetustiedostolla

Sivulle pääsyä voi rajoittaa hakemistokohtaisella asetustiedostolla, käytännössä joko asiakaskoneen nimen perusteella tai käyttäjien autentikoinnilla. Molemmat vaihtoehdot otetaan käyttöön luomalla hakemistokohtainen .htaccess-asetustiedosto ja muokkaamalla sitä. Tätä kuitenkaan ei tarvita, jos käytetään edellä mainittua TKTL:n intranettia.

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), 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 ryhmäksi WWW-palvelimen ryhmän ja antaa hakemistoon pääsyoikeuden 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, jos tavoitteena on sallia sivujen lukeminen ainoastaan laitoksen koneista, yliopiston koneista tai joistakin 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 turhan kalliita. SSL:n toiminnasta ja SSL-autentikoinnista on enemmän tietoa Apachen SSL-laajennuksen käyttöoppaasta.

Käyttäjien rajoittaminen salasanalla 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 voi (ja pitää) nyt olla maailman lukuoikeus, koska wwwpasswd-hakemistoon kuitenkin pääsee käyttäjän itsensä lisäksi vain WWW-palvelin. Jos maailman lukuoikeutta ei ole, WWW-palvelin ei pysty lukemaan tiedostoa.

Käyttäjätiedostossa on joka rivillä yksi käyttäjätunnus ja käyttäjän salakirjoitettu salasana kaksoispisteellä eroteltuna. Koska salasana on salakirjoitettu, ei käyttäjätiedoston tiukasti ottaen tarvitsisi olla salainen, mutta nykyisillä tietokoneilla salakirjoitettujen salasanojen murtaminen raalla voimalla on 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ää hakemistossa /opt/apache/bin olevilla ohjelmilla (manuaalisivut ovat vastaavasti hakemistossa /opt/apache/man/man1). Esimerkiksi käyttäjätunnuksen test-lisääminen salanalla testi tapahtuu näin:

       jjaakkol@melkki:~$ /opt/apache/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:~$

Tietoliikenteen salaus

Oletuksena WWW-palvelimen ja selaimen välinen keskustelu on selväkielistä. Näin ollen jokin palvelimen ja asiakkaan välillä oleva 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 (esimerkiksi Mozilla, Netscape, Galeon, Opera, Konqueror, Internet Explorer, w3m) voi liikenteen laitoksen palvelimen ja selaimen välillä salata yksinkertaisesti käyttämällä muotoa

       https://www.cs.helsinki.fi/

olevia osoitteita (eli protokollan http sijasta käytetään https-protokollaa).

Miten sallitaan ainoastaan salatut yhteydet?

Jos sivut sisältävät arkaluonteista tietoa tai niille autentikoidaan salasanalla, 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

Osoitteessa https://www.cs.helsinki.fi/u/jjaakkol/private/ on 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.

Lisäohjeita

Lisää tietoa HTML:stä on seuraavissa paikoissa:

Laitoksen WWW-palvelimen käyttöppaat ovat seuraavissa paikoissa:


Takaisin atk-järjestelmien ohjesivulle

atk-apu@cs.helsinki.fi