Salasanasuojattujen WWW-sivujen laatiminen
Tavallisia käyttäjien kotisivuja voi suojata luotettavasti tunnuksilla ja salasanoilla
sekä koneiden Internet-osoitteilla ja -nimillä. Tietyistä perusasioista on kuitenkin
huolehdittava ennen kuin sivut ovat varmasti piilossa sivullisten uteliailta
katseilta.
Suojaus käyttäjätunnuksilla
Luodaan haluttuun hakemistoon tiedosto .htaccess. Tällä tiedostolla
voidaan määritellään suojauksen tarvitsemat tiedostot, joista haetaan käyttäjien
tunnukset ja salasanat sekä mahdollinen ryhmä, johon käyttäjä kuuluu. Tarpeen
mukaan voidaan myös erotella käyttäjät internet-osoitteiden avulla.
Esimerkkitiedosto:
AuthName "Only For Your Eyes"
AuthType Basic
AuthUserFile /home/t/u/tunnus/passwd
require valid-user
Ensimmäinen kohta AuthName määrittelee nimen tälle suojaukselle.
Kun käyttäjä on kirjoittanut kelvollisen tunnuksen ja salasanan suojaukseen,
on hänellä mahdollisuus palata uudelleen samalla nimellä suojatuille sivuille
ilman, että häneltä kysytään tunnusta ja salasanaa uudelleen. Jos tekstissä
on välilyöntejä on se laitettava lainausmerkkeihin.
Kohdassa AuthType määritellään mitä suojaustapaa käyttäjän
tunnistamiseen käytetään. Tällä hetkellä ainoa mahdollinen käyttäjän tunnistustapa
on nimeltään Basic. Uudempi Digest niminen
tunnistustapa on tulossa käyttöön, kunhan www-selaimien ja -palvelimien valmistajat
pääsevät sen käytöstä yhteisymmärrykseen. Digest mahdollistaa turvallisemman
suojauksen tarkistamisen kuin Basic.
AuthUserFile kertoo palvelimelle mistä tiedostosta suojaukseen
liittyvät tunnukset ja salasanat luetaan. Samalla tavoin AuthGroupFile
kohdan nimeämällä tiedostolla voidaan kertoa tiedoston paikka, jossa ovat suojaukseen
liittyvät ryhmät.
Hakemistopolkuun merkitty /home/t/u/tunnus tarkoittaa omaa
kotihakemistoasi, joka muodostuu Jippiin liittymissä käyttäjätunnuksen kahden
ensimmäisen kirjaimen mukaan, esim. /home/t/i/tigert. Hakemistopolku
näkyy myös ftp-ohjelmassa kun otetaan yhteys Jippiin palvelimeen.
Kohdassa require voi määritellä käyttäjät joilla on oikeus
tämän suojauksen takana oleviin sivuihin. Esimerkissä oleva merkintä valid-user
tarkoittaa, että kaikilla salasanatiedostossa olevilla tunnuksilla on pääsyoikeus
näille sivuille. Tässä kohti ei ole kuitenkaan pakko sallia kaikille salasanatiedostossa
oleville tunnuksille pääsyä sivuille vaan voidaan rajoittaa oikeus vain halutuille
tunnuksille:
require user kalle tiina
Edellä oleva sallii vain käyttäjien kalle ja tiina pääsyn sivuille vaikka salasanatiedostossa
olisi muitakin tunnuksia.
Salasanatiedoston käyttäminen
Salasanatiedostossa on lueteltuna tunnuksia ja salasanoja, joilla on mahdollisuus
päästä suojatuille sivuille. Tätä tiedostoa ei pidä sijoittaa minnekään public_html
hakemiston alle mistä sen voi joku käydä katsomassa www-selaimellaan. Parempi
paikka tälle tiedostolle on vaikkapa oma www-kotihakemisto /home/t/u/tunnus
Salasanatiedosto on esimerkiksi seuraavanlainen:
yllapitaja:jHZXiBko34CI2
kalle:LgKEFSSWxwu3c
tiina:kXlk9RjFnTLfU
jaska:F7AA0AgurXqTk
Salasanatiedostoja voit tehdä kahdella tavalla. Kryptattuja salasanoja saa
aikaiseksi esimerkiksi kirjoittamalla koneella unix.saunalahti.fi (salasana
on siis se sana joka halutaan kryptata):
/opt/local/bin/crypt salasana
Tämän komennon ongelma on, että kuka tahansa käyttäjä pystyy näkemään ps-komennolla
mitä salasanaa olet kryptaamassa. Kannattaakin kryptata useampi salasana, niin
arvaaminen on hankalaa (varsinkin kun tunnus johon salasana liitetään voi olla
ihan mitä tahansa).
Toinen vaihtoehto on käyttää ohjelmaa htpasswd, jolle kerrotaan suoraan salasanatiedosto
ja käyttäjätunnus, joka halutaan lisätä. Ohjelma kysyy salasanan ja tallettaa
sen käyttäjätunnuksen komentorivillä mainittuun tiedostoon.
/opt/local/bin/htpasswd -c /home/t/u/tunnus/passwd tiina
Optiolla -c kerrotaan ohjelmalle, että sen pitää luoda uusi tiedosto. Jos samanniminen
tiedosto on ennestään olemassa, niin se tyhjennetään ja lisätään haluttu käyttäjä
siihen.
Ryhmien käyttäminen
Jos suojatuille sivuille pääsyä halutaan rajoittaa vain tietyille salasanatiedostossa
oleville käyttäjille, on mahdollista kirjoittaa kaikkien käyttäjien nimet require
riville. Jos nimiä kertyy paljon tälle riville, on niitä kuitenkin hankala ylläpitää.
Kätevämpi keino valittujen käyttäjien päästämiseksi tietyille sivuille on tehdä
tiedosto ryhmille. Luomalla ryhmän jasenet voi rajoittaa suojatuille
sivuille pääsyä vaikkapa seuraavasti:
require group jasenet
Ryhmiäkin voi olla useampia mainittuna rajoituksessa:
require group yllapito jasenet
require user yllapitaja
Edellä olevalla rajoituksella sivuja pääsevät katsomaan ryhmiin yllapitajat
ja jasenet kuuluvat sekä erikseen mainittuna vielä käyttäjä,
jonka nimi on yllapitaja.
Ryhmä tiedosto toimii siten, että siinä on listattuna jokainen ryhmä omalla
rivillään ja yksittäinen käyttäjä voi kuulua yhteen tai useampaan ryhmään. Jokainen
rivi kertoo ryhmän ja käyttäjälistan erotettuna kaksoispisteellä. Käyttäjiä
voi olla listattuna useampia ja ne on eroteltuna välilyönnillä.
jasenet:kalle tiina
yllapito:jaska yllapitaja
AuthGroupFile kohtaa käytetään kertomaan ryhmätiedoston paikka.
Internet-osoitteella suojaaminen
Suojaustiedostoon mahdollista lisätä määreitä, joilla kerrotaan mistä internet
osoitteista suojatuille sivuja saa katsella. Näitä määreitä ovat order,
allow ja deny. Suojattuja sivuja pääsee katsomaan mikäli kaikki
niille määritellyt ehdot täyttyvät (sekä tunnus&salasana ja oikea osoite).
Suojaustiedostoon voi kuitenkin sijoittaa määritteen Satisfy any, jolloin
minkä tahansa ehdon täyttyminen mahdollistaa sivujen katselun. Alla
allow
Syntaksi: allow from osoite osoite ...
Allow määrite kertoo mistä internet-osoitteista suojatuille sivuille pääsee.
- all
- Kaikista osoitteista pääsee sivuille.
- 'osittainen domain'
- Koneen nimi, joka loppuu mainitulla merkkijonolla.
- 'täydellinen IP-osoite'
- Koneen IP-osoite, jolla on pääsy sivuille.
- 'osoittainen IP-osoite'
- Kolme ensimmäistä IP-osoitteen numeroa rajoittamaan (esim. 192.168.0 )
Esimerkki:
allow from .saunalahti.fi
Kaikki koneet, joiden nimi loppuu domain-nimeen saunalahti.fi pääsevät sivuille.
deny
Syntaksi: deny from osoite osoite ...
Deny määrite kertoo mistä internet-osoitteista suojatuille sivuille ei
pääse.
- all
- Kaikista osoitteista on pääsy sivuille kielletty.
- 'osittainen domain'
- Koneen nimi, joka loppuu mainitulla merkkijonolla ei pääse sivuille.
- 'täydellinen IP-osoite'
- Koneen IP-osoite, jolla ei ole pääsyä sivuille.
- 'osoittainen IP-osoite'
- Kolme ensimmäistä IP-osoitteen numeroa rajoittamaan (esim. 192.168.0 )
Esimerkki:
deny from .saunalahti.fi
Kaikilta koneilta, jotka tulevat saunalahti.fi domain:sta on pääsy kielletty.
order
Order määrite kertoo missä järjestyksessä allow ja deny määritteitä käytetään.
- deny,allow
- deny määritteet katsotaan ennen allow määritteitä (alkutila on OK).
- allow,deny
- alloow määritteet katsotaan ennen deny määritteitä (alkutila on EI PÄÄSYÄ).
- mutual-failure
- Vain sellaiset internet-osoitteista tulevat päästetään, jotka ovat allow
listassa, eivätkä esiinny deny listassa (alkutila on EPÄMÄÄRÄINEN)
Esimerkki:
order deny,allow
deny from all
allow from .saunalahti.fi
Vain saunalahti.fi -domainista tulevat käyttäjät sallitaan, kaikista muista
domaineista tulevilla ei ole pääsyä sivuille.
|