Historiaa ja yleistä tietoa NIS+:sta

Leena Heino

v 1999

NIS eli Network Information Service on SunSoftin kehittämä tapa jakaa tietoa käyttäjistä ja koneista verkotetussa ympäristössä. NIS-client ja NIS-server toteutuksia on saatavissa moniin eri käyttöjärjestelmiin. NIS+ on uudempi versio NIS:stä ja siinä on kehitetty mm. verkotetun ympäristön skaalautuvuutta. NIS+:ssa on myös enemmän otettu huomioon tietoturva verkotetussa ympäristössä.

Alussa oli vain tiedostoja ...

Kaikki passwd-, shadow-, group-, hosts- yms. -tiedostot siirrettiin tarpeen vaatiessa toisille koneille. Tämä on/oli tietenkin aika työlästä ja tällaisessa systeemissä on hankalaa tietää ovatko kaikkien koneiden tiedostot samaa versiota. Myöskin tällainen tilanne vaatii sen, että salasanat ja muut paivitykset em. tiedostoihin tehdään vain yhdessä koneessa, varsinkin jos halutaan että salasanat ovat samat jokaisella koneella.

Sitten tuli NIS ...

NIS parantaa tuota tilannetta siten, että otetaan kayttöön client- server -malli. Työasemat kysyvat passwd yms. tietoja joltakin tietyltä serveriltä ja siten tietoja ei tarvitse erikseen levittää jokaiselle koneelle.

Hankalaa NIS:ssa on mm. se, että se on varsin luottavainen käyttäjiin ja ylläpitäjiin ja että se on todella avoin. Salasanojen kun ei välttämättä haluta liikkuvan verkossa selväkielisenä. Olisi myös tarpeen, että kuka tahansa NIS-käyttäjä ei saisi serveriltä kaikkea mahdollista tietoa.

NIS:n tapa tallettaa nuo tiedot serveriin voi myöskin tuottaa ongelmia. NIS oli tarkoitettu korvaamaan n+1 /etc -tiedostoa, joten NIS serverillä on n+1 eri NIS taulua.

Myöskin NIS-avaruus oli litteä. Siellä oli vain serveri ja tällä serverillä oli sitten clientteja.

(HUOM! NIS oli alkuperaiseltä nimeltään Yellow Pages, mutta tuo Yellow Pages on British Telecomin omistama tavaramerkki. Historiallisena jäänteenä tästä on se etta NIS-komennot ovat yp-alkuisia. NIS+ -komennot ovat nis-alkuisia)

Ja sen jälkeen tuli NIS+ ...

NIS:ssä on huonoja puolia ja niitä korjaamaan tehtiin NIS+. NIS+ - domain voi sisältää alidomaineita. NIS+ -domainta hoitaa aina yksi server jokaista alidomainia (subdomain) kohti ja sitten tietenkin on se NIS+ -pääserveri (master server). NIS+ -servereillä on usein varaservereitä (replica). Alidomainien serverit ovat vain servereitä ilman sen kummallisempia lisämääreitä.

Myöskin NIS-taulujen käsittelyssa tapahtui muutoksia. Kun aikaisemmin pystyttiin etsimään vain ensimmäisen sarakkeen perustella, niin NIS+:ssa haku voidaan tehdä minkä tahansa sarakkeen mukaan. Siten ei tarvita niin monia erilaisia tauluja kuin oli NIS:ssä ja ei enää tarvita tauluja, joissa on sama tieto mutta vain erilaisessa sarakejärjestyksessä.

NIS+ myös parantaa turvallisuutta, silla jokainen NIS+ -operaatio varmistetaan. Varmistus tapahtuu siten, että tehdään vertailuja siitä onko käyttäjällä (NIS+ -clientti, joka voi olla käyttäjä tai yksittäinen kone) oikeus kyseiseen operaatioon. Tuon vertailun perusteella NIS+ -serveri joko hylkää tai hyväksyy operaation.

NIS+:aa on mahdollista ajaa NIS-yhteensopivassa muodossa. Valitettavasti vain tälloin esimerkiksi menetetään kaikki NIS+:n tuomat turvallisuustarkistukset. NIS kun ei tue mitään tietojen autentikoitia tms. vaan NIS-clienteille NIS+ -serverin tiedot pitää olla avoimena.

NIS+ -maailmassa kaikki ovat clienttejä NIS+ -servereille. Jonkin alidomainin serverin kotidomain (home domain) ja serveri on ylemmän tason serveri. Poikkeuksena tästä on NIS+ -domainin pääserveri, joka on vain pääserveri.

NIS+ ja turvallisuus

NIS+ on suunniteltu sellaiseksi, että se turvaa samalla sekä sen, kuka voi muuttaa tietoja että sen, kenellä on oikeus nähdä tietoja. Käyttäjällä siis voi olla oikeus katsoa tietoja, mutta ei muuttaa niitä. NIS+ tarkistaa aina sen kuka on kayttäjä ja mistä pyynto tulee. Käyttäjän oikeudet on siis eriytetty niistä oikeuksista mitä on sillä koneella, jossa käyttäja on.

Kredentiallit (credentials). Aina kun käyttäjä, joka ei ole ylikäyttäjä (root, superuser), tekee jotain NIS+ -operaatiota hänet tunnistetaan oman kredentiaalinsa mukaan. Jos taas ylikäyttäjä tekee jotakin NIS+ -operaatiota, niin hänet tunnistetaan koneen kredentiaalin mukaan. Käyttajista/koneista käytetaan NIS+ -maailmassa nimitystä principal.

Kredentiaaleja on kahta tyyppia: paikallinen (LOCAL), joka on sama kuin UID, sekä DES-kredentiaali. Käyttäjällä voi olla kummatkin kredentiaali-tyypit, mutta koneella voi vain olla DES-kredentiaali . Nämä DES-kredentiaalit on aina tallettettu käyttäjän/koneen domainserveriin.

NIS+ -oikeudet ovat hyvin lähellä sitä mitä ne ovat normaalissa unix- maailmassa. Poikkeavuuksia kuitenkin on: NIS+ -tauluissa on omistajan, ryhmän ja maailman oikeudet aivan kuin tiedostoissakin. Tähän on vielä lisänä nobody, joka tarkoittaa kaikkia niitä, jotka eivät muuten ole autorisoitu näkemään/käyttämään tietoa. Maailman oikeudet tässä tapauksessa tarkoittaa niitä käyttäjiä, jotka kuuluvat kyseiseen NIS+ -domainiin. Myöskin NIS+ -operaatiot on luokiteltu hiukan eritavalla kuin tiedostoissa. Tiedostoissahan on luku-, kirjoitus- ja suoritusoikeudet. NIS+:ssa oikeudet ovat luku, muokkaus, luonti ja tuhoaminen.

NIS+ voidaan myös maaritellä oikeuksia NIS+ -taulujen lisäksi myös yksittäisille riveille tai sarakkeille. Normaalissa tapauksessa käyttäjä, joka on luonut NIS+ -taulun on myös sen omistaja.

Kun NIS+ -serverille tulee joku NIS+ -operaatio, niin serveri alkaa vertailemaan niiden taulujen-, sarakkeidein-, ja rivien oikeuksia, joita tuo NIS+ -operaatio koskee, NIS+ -operaation esittäneen käyttäjan oikeuksiin. Jos käyttäjällä on tarpeelliset oikeudet, niin NIS+ -serveri suorittaa operaation.

NIS+ -serveri voi toimia kolmella eri turvatasolla:

Lähteet

Rick Ramsey: All About Administering NIS+