14.02.2018

Tietojen suojaaminen

Tietoa omien sivujen eri suojausvaihtoehdoista.

Sivuston suojaaminen salasanalla

Oman sivuston (tai osan niistä) voi suojata siten, että sivuston sisällön näkeminen vaatii käyttäjätunnuksen ja salasanan syöttämistä. Esimerkki käsittelee (vain) koko oman kotisivuston suojaamisen. Jonkin sivuston osan suojaaminen noudattaa samaa periaatetta, mutta tietysti public_html-hakemisto korvataan tällöin suojattavaksi halutun hakemiston polulla, tyyliin public_html/alihakemisto tjsp.

 

Sivuston salasanasuojaamiseen tarvitaan kaksi tiedostoa: suojattavaan hakemistoon luotava tiedosto .htaccess, jossa määritellään ao. hakemistossa käytettävä suojaus sekä tunnus-salasana-tiedosto (esim.) users

, josta löytyvät suojatulle sivulle pääsyyn oikeuttavat käyttäjätunnukset ja salasanat.

Seuraavissa esimerkeissä on käytetty yhteyttä varten Putty-ohjelmistoa sekä Picoa tiedostojen luomiseksi ja muokkaamiseksi. Luonnollisesti muitakin ohjelmia voi halutessaan käyttää.

 

.htaccess -tiedoston luominen:

  • Ota ssh-yhteys yliopiston suorakäyttökoneeseen (jalava.cc.jyu.fi)

www1

 

  • Kirjoita tunnuksesi ja salasanasi.
  • Selvitä kotihakemistosi polku komennolla echo $HOME ja pidä tämä mielessä jatkoa varten
  • Siirry www-kotisivuhakemistoosi komennolla cd /wwwhome/$HOME/public_html (ja siellä tarvittaessa edelleen haluamaasi suojattavaan alakansioon esim. cd alakansio, olettaen että siellä jo on olemassa alakansio)
  • Käynnistä tekstieditori kirjoittamalla pico ja painamalla enter.

www2

 

  • Kirjoita seuraavankaltainen teksti:
AuthUserFile /nashomeX/käyttäjätunnuksesi/public_html/hidden/users  
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET>
require valid-user
</Limit>
  • Ensimmäinen rivi kertoo tulevan käyttäjätunnus-tiedoston sijainnin ja nimen
  • Korvaa ekan rivin /nashomeX/käyttäjätunnuksesi aiemmin echo $HOME -komennon avulla selvittämälläsi hakemistopolulla (HUOM! Www-palvelimen näkemät polut.eivät ala /wwwhome, joka on vain suorakäyttökoneita varten tehty erikoisjärjestely, vaan /nashomeX, kuten yllä esimerkissä)
  • Tallenna tiedosto painamalla Ctrl ja X. Anna tiedoston nimeksi .htaccess (muista piste nimen alkuun!)
  • Aseta luomasi tiedoston luku- ja kirjoitusoikeudet kohdilleen käskyllä chmod ugo+r .htaccess

 

users -tiedoston luominen

  • Luo users-tiedostoa varten uusi erityinen suojattu hakemisto public_html-hakemistoosi komennolla mkdir hidden (tämä on siis tehtävä public_html-hakemistossa). Hakemisto hidden on erityishakemisto, joka on tarkoitettu esim. tunnus-salasana-tiedostoja varten ja on sitä varten erityisesti suojattu nimensä avulla www-palvelimen asetuksissa eikä sen sisältöä näytetä koskaan www:n kautta (hakemiston nimen pitää näin toimiakseen olla täsmälleen hidden - hakemiston oikeudet tulee kuitenkin olla samat kuin www-hakemistoilla yleensäkin eli anna sinne tarvittaessa lukuoikeudet kaikille komennolla chmod ugo+rx hidden , jos niitä ei tullut suoraan hakemistoa luotaessa - hakemisto on kuitenkin piilossa sivullisilta, koska käyttäjän www-palvelimen kotihakemistoon ei sivulliset pääse levyjärjestelmänkään kautta (otherilla ei ole sinne oikeuksia - www-palvelimelle (Apache) oikeudet on annettu ACL:ien avulla, joten otherille ei oikeuksia www-kotihakemistoon tarvita).
  • Siirry tekemääsi hidden-hakemistoon komennolla cd hidden
  • Luo tunnus- ja salasanatiedosto komennolla htpasswd -c users käyttäjätunnus. Paina enter. Määritä salasana komennon lopussa annetulle käyttäjätunnukselle (kone kysyy sen kahteen kertaan)
  • Voit halutessasi lisätä uusia käyttäjiä tai vaihtaa olemassa olevan käyttäjän salasanan komennolla htpasswd users käyttäjätunnus
  • Aseta jälleen lukuoikeudet kaikille komennolla chmod ugo+r users

 

Varmista suojauksen toiminta avaamalla www-selain ja menemällä suojatulle sivullesi (esim. osoitteessa http://users.jyu.fi/~käyttäjätunnus). Jos kaikki on mennyt hyvin, sivun pitäisi aueta vasta kun määritelty tunnus ja salasana on syötetty.

 

Pääsyn rajaaminen vain tietylle nimetylle verkkoalueelle (tai IP-osoitteelle)

Pääsy sivuille voidaan sallia esim. ainoastaan tietyn nimetyn verkkoalueen (domainin) koneille .htaccess-tiedoston avulla.

Esimerkki .htaccess -tiedoston sisällöstä:

  require host jyu.fi
require ip 130.234.10.216
require not host it.jyu.fi

Tässä sallitaan pääsy yliopiston verkkoalueen (jyu.fi) ja koneelta jonka ip-osoite on 130.234.10.216. Muilta pääsy on estetty. Lisäksi pääsy on esimerkkinä erikseen estetty jyu:fi:n alla olevan it.jyu.fi-alueen koneilta.

Jos haluaa rajoittaa vain joidenki pääsy-metodien käyttöä (GET, PUT, POST...) niin tällöin pääsyvaatimukset tulee sijoittaa <LIMIT>-direktiivin sisään. Esim.

<Limit GET>
require host halava.cc.jyu.fi
</Limit>

HUOM! pääsyvaatimusten määrittelyjen syntaksi on muuttunut  www-palvelimen päivityksessä!

 

Omien sivujen suojaaminen hakurobottien indeksoinnilta (robots meta tag)

Omat kotisivut ovat oletuksena julkiset ja auki koko maailmalle. Toisinaan voi kuitenkin olla tarvetta estää hakurobottien suorittama indeksointi omien kotisivujen osalta. Yleensä käytössä on palvelinkohtainen robots.txt-tiedosto mutta siihen ei yhteiskäytössä olevalla palvelimella ole käyttäjillä pääsyä. Tällöin vaihtoehtona voi olla ip-osoitteiden mukaan tehtävät rajoitukset tai rajoittamalla pääsyä salasanan taakse.

Yksinkertaisin keino ilman pääsyrajoituksia on kuitenkin lisätä jokaiseen html-tiedostoon jonka indeksoinnin haluaa estää alkuun <head>-elementin sisään:

<meta name="robots" content="noindex,nofollow">

Eli esim.

<html>
<head>
<title>Sivun otsikko
</title>
<meta name="robots" content="noindex,nofollow"> </head>
<body>
Tässä sisältöä jota ei indeksoida
</body>

Tällä keinolla ei siis voi estää kokonaisen hakemiston sisällön indeksointia, ainoastaan html-tiedoston sisällön ja sen linkkien indeksoinnin. Jos hakemistossa on esimerkiksi kuvatiedostoja ja kyseisiin on linkki muualla kuin omilla sivuillasi niin tällöin tässä esitellyllä keinolla ei välttämättä ole mitään vaikutusta.

Lisätietoja esim. http://www.heikniemi.fi/kirj/web/robots.html