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:
- http://www.cs.helsinki.fi/Etunimi.Sukunimi/
Tämä on selkeä ja yksinkertainen ja suositeltavin maailmalle ilmoitettavaksi. Etunimi.Sukunimi (tai Etunimi.A.Sukunimi) on sama kuin cs.helsinki.fi:ssä käytettävä postialias, jonka voi tarkistaa Linuxissa komennolla lupa. - http://www.cs.helsinki.fi/~käyttäjätunnus/
Viittaminen henkilökohtaisiin kotisivuihin on perinteisesti tapahtunut tällä osoitteella, mutta mato-merkki (tilde,~) on ongelmallinen. - http://www.cs.helsinki.fi/u/käyttäjätunnus/
Tämä on lyhyt ja helposti kirjoitettavissa. Tämä muoto on käytössä myös muualla, esim. TKK:lla. - http://www.cs.helsinki.fi/people/Etunimi.Sukunimi/
Tämä on saman muotoinen kuin mitä Tietotekniikkaosasto käyttää.
Users' home pages
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
- SSL-salaus
- SSI-tuki (Server Side Includes, palvelimella tapahtuva HTML-tiedostojen jäsentäminen)
- Käyttäjät voivat itse säädellä palvelimen toimintaa omilla
sivuillaan
.htaccess
-tiedostojen avulla. - Käyttäjien omien CGI-ohjelmien ajo on palvelimella estetty turvallisuussyistä.
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:
- Yleiset intranet-sivut sijaitsevat osoitteissa, jotka ovat muotoa https://www.cs.helsinki.fi/intranet/jotain.
- Käyttäjäkohtaisia intranet-sivuja voi luoda tekemällä intranet-nimisen alihakemiston kotihakemistoon, eli /home/fs/käyttäjätunnus/intranet/ (kuten /home/fs/käyttäjätunnus/public_html/). Käyttäjäkohtaisiin intranet-sivuihin viitataan osoitteella https://www.cs.helsinki.fi/i/käyttäjätunnus/.
- Ryhmäkohtaisia intranet-sivuja voi luoda tekemällä intranet-nimisen alihakemiston ryhmähakemiston juureen, eli /home/group/ryhmännimi/intranet/. Ryhmäkohtaisiin intranet-sivuihin viitataan osoitteella https://www.cs.helsinki.fi/intranet/group/ryhmännimi/.
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
:
Allow
-komennolla sallitaan sivun lukeminen annetuilta koneiltaDeny
-komennolla kielletään sivun lukeminen annetuilta koneiltaOrder
-komennolla määritellään sovelletaanko ensinAllow
-komentoja (oletusarvoisesti sivulle pääsy on kielletty) vaikoDeny
-komentoja (oletusarvoisesti sivulle pääsy on sallitty)
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:
- Jukka Packalénin Johdatus HTML-kieleen
- Tietotekniikkaosaston WWW-ohjeet
- W3C:n HTML:n virallinen kotisivu
- Paljon voi oppia myös tutkimalla valmiiden HTML-dokumenttien koodia (Mozillan valikosta View -> Page Source)
Laitoksen WWW-palvelimen käyttöppaat ovat seuraavissa paikoissa:
- laitoksella käytettävän WWW-palvelinohjelmiston, Apachen, käyttöopas
- Apachen SSL-salakirjoituksen toteuttavan kirjaston, mod_ssl, käyttöopas
Takaisin atk-järjestelmien ohjesivulle
atk-apu@cs.helsinki.fi