Ero sivun ”NFS” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 572 merkkiä lisätty ,  1. tammikuuta 2019
p
Lisätty Palvelin-malline
p (→‎/etc/exports: Lisätty parametri wdelay)
p (Lisätty Palvelin-malline)
 
(4 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
[[wikipedia:Network_File_System_(protocol)|NFS]] eli Network Filesystem on [[Sun Microsystems]]in kehittämä menetelmä tiedostojärjestelmien jakamiseen Unix-järjestelmien välillä. Linuxissa vaihtoehtoina on [[käyttäjä]]tason ja [[ydin]]tason nfs-palvelimet. NFS-protokollasta on käytössä kolme eri versiota, 2, 3 ja 4.
'''NFS''' eli [[wikipedia:Network_File_System_(protocol)|Network Filesystem]] on [[Sun Microsystems]]in kehittämä menetelmä tiedostojärjestelmien jakamiseen Unix-järjestelmien välillä. Linuxissa vaihtoehtoina on [[käyttäjä]]tason ja [[ydin]]tason nfs-palvelimet. NFS-protokollasta on käytössä kolme eri versiota, 2, 3 ja 4.


== Palvelin ==
== Palvelin ==
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/exports-[[asetustiedosto]]n avulla määritellään, mitkä paikalliset tiedostojärjestelmät on mahdollista liittää muualla sijaitsevien koneiden tiedostojärjestelmiin. Tiedoston syntaksi on yksinkertainen:
[[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:
 
Jos systeemi on kuitenkin toisinpäin, seuraavat rivit /etc/hosts.allowissa 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.


== Kirjoitusoikeudet ==
'''HUOM!'''
Pelkkä [[tiedostojärjestelmä|tiedostojärjestelmän]] [[mount|liittäminen]] kirjoitusoikeuksin ei anna tavallisille käyttäjille kirjoitusoikeuksia, vaan ne vaativat että sekä asiakas- että palvelinkoneessa on saman [[UID]]:n (tunnistenumeron) ja nimen omaava käyttäjä, joka on merkitty tiedostojen omistajaksi. [[NIS]]- tai [[LDAP]]-palveluiden ollessa käytössä UID-numerot ovat jo valmiiksi samat kaikissa koneissa.
 
Liitettäessä NFS-jakoa, ei osoite jaettavaan tiedostoon välttämättä ole sama kuin SMB:llä. Mikäli polku jaettavaan kohteeseen on väärin, valittaa palvelin hieman harhaanjohtavasti käyttäjäoikeuksista tyyliin:
  mount_nfs: can’t access /jako/nettikansio: Permission denied
 
 
== 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.
 
Kaikkien asiakaskoneiden käyttäjätunnukset on siis luotava niin, että niillä 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ä).


Tietyn tunnistenumeron omaavan käyttäjän voi luoda [[useradd]]-komennolla seuraavasti:
[[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==
*[[NFSv4 Fedorassa]]
*[[NFSv4 Fedorassa]]
*[[Samba]]
*[[FTP]]
*[[FTP]]
*[[SFTP]]
*[[SFTP]]
Rivi 107: Rivi 125:
[[Luokka:Verkko]]
[[Luokka:Verkko]]
[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
{{Malline:Palvelin}}
574

muokkausta

Navigointivalikko