Ero sivun ”NFS” versioiden välillä
Siirry navigaatioon
Siirry hakuun
ei avata palomuuria koko maailmalle; tcpwrappers sallii verkkokohtaiset määrittelyt; UID:t /on/ synkronoitava; passwd-kopiointi; tietoturvaa
p (→/etc/exports: Lisätty parametri wdelay) |
LP (keskustelu | muokkaukset) (ei avata palomuuria koko maailmalle; tcpwrappers sallii verkkokohtaiset määrittelyt; UID:t /on/ synkronoitava; passwd-kopiointi; tietoturvaa) |
||
Rivi 5: | Rivi 5: | ||
=== Palomuuri === | === Palomuuri === | ||
NFS käyttää oletuksena porttia 2049, joten avaa kyseinen portti [[palomuuri]]sta komennoilla | NFS käyttää oletuksena porttia 2049, joten avaa kyseinen portti [[palomuuri]]sta komennoilla | ||
iptables -A INPUT -p tcp --dport 2049 -j ACCEPT | iptables -A INPUT -p tcp --dport 2049 --source $LOCALNET -j ACCEPT | ||
iptables -A INPUT -p udp --dport 2049 -j ACCEPT | iptables -A INPUT -p udp --dport 2049 -j ACCEPT | ||
Portin avauskomennot on hyvä lisätä sopivaan käynnistystiedostoon, jotta se suoritettaisiin aina järjestelmän käynnistyessä. | Portin avauskomennot on hyvä lisätä sopivaan käynnistystiedostoon, jotta se suoritettaisiin aina järjestelmän käynnistyessä. Aseta [[ympäristömuuttuja]] LOCALNET tai korvaa se omalla sisäverkon nimellä tai osoitteella, esimerkiksi 192.168.0.0/255.255.255.0 | ||
=== /etc/exports === | === /etc/exports === | ||
/etc/ | [[Asetustiedosto]]n /etc/[[exports]] avulla määritellään, mitkä paikalliset tiedostojärjestelmät on mahdollista liittää muualla sijaitsevien koneiden tiedostojärjestelmiin. Tiedoston syntaksi on yksinkertainen: | ||
/hakemisto sallitut_koneet(liitosparametrit) | /hakemisto sallitut_koneet(liitosparametrit) | ||
Esimerkiksi: | Esimerkiksi: | ||
Rivi 20: | Rivi 20: | ||
*<tt>no_root_squash</tt> = Oletuksena kun asiakaskoneen root-käyttäjä hakee tiedostoja, käsitellään ne nobody-käyttäjänä palvelimella. Jos <tt>no_root_squash</tt> on käytössä, on asiakaskoneen root-käyttäjällä samat oikeudet jakoon kuin palvelinkoneen root-käyttäjällä. | *<tt>no_root_squash</tt> = Oletuksena kun asiakaskoneen root-käyttäjä hakee tiedostoja, käsitellään ne nobody-käyttäjänä palvelimella. Jos <tt>no_root_squash</tt> on käytössä, on asiakaskoneen root-käyttäjällä samat oikeudet jakoon kuin palvelinkoneen root-käyttäjällä. | ||
*<tt>no_subtree_check</tt> = Jos vain osa tallennusmediasta (esim. levyasema) on jaettu, "subtree checking" tarkistaa että asiakaskoneelta pyydetty tiedosto on osa jaettua hakemistoa. no_subtree_checkin nopeuttaa toimintaa jos koko tallennusmedia on jaettu. | *<tt>no_subtree_check</tt> = Jos vain osa tallennusmediasta (esim. levyasema) on jaettu, "subtree checking" tarkistaa että asiakaskoneelta pyydetty tiedosto on osa jaettua hakemistoa. no_subtree_checkin nopeuttaa toimintaa jos koko tallennusmedia on jaettu. | ||
*<tt>sec</tt> = Määrittelee tietoturvatason [[kerberos]]ta käyttäen. Oletusarvoisesti NFS sallii salakuuntelun, datan muuntamisen jne. (vanhoilla kerneleillä eri syntaksi) | |||
*<tt>sync</tt> = Kuittaa muutokset asiakaskoneelle vasta sitten, kun ne on fyysisesti kirjoitettu palvelinkoneen levylle (vrt [[sync]]-komento). Sync on oletusasetus, ja sen määritteleminen erikseen aiheuttaa varoituksen. | *<tt>sync</tt> = Kuittaa muutokset asiakaskoneelle vasta sitten, kun ne on fyysisesti kirjoitettu palvelinkoneen levylle (vrt [[sync]]-komento). Sync on oletusasetus, ja sen määritteleminen erikseen aiheuttaa varoituksen. | ||
*<tt>wdelay</tt> = Palvelin viivästyttää levylle kirjoittamista, jos se epäilee että toinen pyyntö on kiireellisempi. Tämä voi parantaa suorityskykyä vähentämällä erillisten kirjoituskertojen määrää. | *<tt>wdelay</tt> = Palvelin viivästyttää levylle kirjoittamista, jos se epäilee että toinen pyyntö on kiireellisempi. Tämä voi parantaa suorityskykyä vähentämällä erillisten kirjoituskertojen määrää. | ||
Rivi 36: | Rivi 37: | ||
=== /etc/hosts.allow ja /etc/hosts.deny === | === /etc/hosts.allow ja /etc/hosts.deny === | ||
/etc/[[hosts.allow]] on asetustiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti [[hosts.deny]]ssä listataan ne, joilla ko. oikeutta ei ole. Oletuksena kaikilla koneilla paitsi hosts.denyssä listatuilla on yleensä oikeus yhdistämiseen. | /etc/[[hosts.allow]] on asetustiedosto, jossa listataan koneet joilla on oikeus yhdistää palvelimelle ja vastaavasti [[hosts.deny]]ssä listataan ne, joilla ko. oikeutta ei ole. Oletuksena kaikilla koneilla paitsi hosts.denyssä listatuilla on yleensä oikeus yhdistämiseen. On tavallista kieltää kaikki yhteydet tiedostossa hosts.deny, jolloin seuraavat rivit tiedostossa /etc/hosts.allow sallivat nfs:n käytön tietyille koneille: | ||
portmap: ip,ip2 | portmap: ip,ip2 | ||
lockd: ip,ip2 | lockd: ip,ip2 | ||
Rivi 45: | Rivi 44: | ||
statd: ip,ip2 | statd: ip,ip2 | ||
Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää. | Samalla tavalla voi hosts.denyssä estää tiettyjä koneita käyttämästä nfs:ää. Tiedostoissa voi myös sallia tai kieltää käytön esimerkiksi verkottain: 192.168.0.0/255.255.0.0 sallii yhteydet kaikista paikallisverkoista, joiden ip-osoitteet alkavat 192.168. Katso lähemmin [[man]] hosts_access ([[Tcpwrappers]]). | ||
=== NFS-palvelun käynnistäminen === | === NFS-palvelun käynnistäminen === | ||
Rivi 83: | Rivi 82: | ||
Samat nfs-jaot voi liittää useampaan eri hakemistoon mount-komennon valitsimella --bind. | Samat nfs-jaot voi liittää useampaan eri hakemistoon mount-komennon valitsimella --bind. | ||
== | == Käyttäjän oikeudet == | ||
[[Käyttäjä]]n oikeudet NFS-jaolla määritellään käyttäjätunnuksen [[UID]]:n (tunnistenumeron) mukaan, tunnuksen nimeä ei tarkisteta. Jos siis käyttäjät on luotu itsenäisesti eri koneille, oikeuksia annetaan satunnaisen käyttäjän oikeuksien mukaan. | |||
Tietyn tunnistenumeron omaavan käyttäjän voi luoda [[useradd]]-komennolla seuraavasti: | Kaikkien asiakaskoneiden käyttäjätunnukset on siis luotava niin, että nillä on samat UID:t ja [[GID]]:t ([[ryhmä|ryhmien]] tunnistenumerot) kuin palvelinkoneella, ainakin niiden tunnusten ja ryhmien osalta, jotka omistavat tai saavat käyttää jaon tiedostoja (jos jaossa ei ole järjestelmätiedostoja, järjestelmä-UID:t saavat erota, mikä voi olla oleellista jos käytössä on eri jakeluita tai jopa kokonaan eri käyttöjärjestelmiä). | ||
[[NIS]]- tai [[LDAP]]-palveluiden ollessa käytössä UID-numerot ovat valmiiksi samat kaikissa koneissa. Tietyn tunnistenumeron omaavan käyttäjän voi luoda [[useradd]]-komennolla seuraavasti: | |||
useradd -u numero nimi | useradd -u numero nimi | ||
Jonka jälkeen salasana asetetaan komennolla [[passwd]]: | Jonka jälkeen salasana asetetaan komennolla [[passwd]]: | ||
passwd nimi | passwd nimi | ||
Sopivat osat palvelimen [[passwd-tiedosto]]a voi myös kopioida uusille koneille ja lisätä niiden passwd-tiedostoihin ennen käyttäjätunnusten luomista (ensimmäinen tunnus jouduttaneen tässä tapauksessa määrittelemään uudestaan). | |||
== Tietoturva == | |||
NFS-järjestelmä käyttää tavallisesti asiakaskoneen antamia UID- ja GID-arvoja (käyttäjä- ja ryhmätunnuksia). Asiakaskoneen ylläpitäjä (root) voi siis esiintyä minä tahansa palvelinkoneen käyttäjänä NFS-jakoa käyttäessään ja tämä koskee myös verkkoon liitettyä vierasta konetta, sikäli kun se voi käyttää ip-numeroa, jolle on määritelty oikeus käyttää NFS-jakoa. NFS-jako on siis lähtökohdiltaan täysin turvaton. | |||
Oletusasetuksena on kuitenkin, että UID 0 (root) muunnetaan käyttäjätunnukseksi nobody, jolloin asiakaskoneen ylläpitäjä ei pääse muuttamaan tiedostoja, jotka ovat root-tunnuksen omistuksessa ja joihin muilla ei ole kirjoitusoikeuksia. Asetuksella all_squash asiakaskoneen tunnuksista ei välitetä, vaan kaikki käyttö hoidetaan [[nobody]]-tunnuksen oikeuksin. | |||
NFS voi käyttää [[kerberos]]-järjestelmää varmistamaan käyttäjät, varmistamaan pakettien eheyden tai estämään salakuuntelu. | |||
==Katso myös== | ==Katso myös== |