Ero sivun ”NFS” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
Lisätty Palvelin-malline
Pb (keskustelu | muokkaukset) p (→Aiheesta muualla: opensuse.fi) |
p (Lisätty Palvelin-malline) |
||
(11 välissä olevaa versiota 8 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
[[wikipedia:Network_File_System_(protocol)| | '''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/ | [[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: | ||
/varasto 192.168.0.0/255.255.255.0(rw | /varasto 192.168.0.0/255.255.255.0(rw) | ||
Sallisi /varasto -niminen paikallinen hakemiston liittämisen verkosta 192.168.0.0/255.255.255.0 (eli koneet, joiden ip on välillä 192.168.0.0 - 192.168.0.255 saavat tehdä liitoksen). Kun /etc/exports -tiedosto on kirjoitettu halutunlaiseksi, käynnistetään nfs-palvelin (vaikkapa /etc/init.d/nfs-kernel-server start). | Sallisi /varasto -niminen paikallinen hakemiston liittämisen verkosta 192.168.0.0/255.255.255.0 (eli koneet, joiden ip on välillä 192.168.0.0 - 192.168.0.255 saavat tehdä liitoksen). Kun /etc/exports -tiedosto on kirjoitettu halutunlaiseksi, käynnistetään nfs-palvelin (vaikkapa /etc/init.d/nfs-kernel-server start). | ||
Liitosparametrejä: | |||
*<tt>rw</tt> = Luku- ja kirjoitusoikeudet | *<tt>rw</tt> = Luku- ja kirjoitusoikeudet | ||
*<tt>ro</tt> = Vain lukuoikeudet | *<tt>ro</tt> = Vain lukuoikeudet | ||
*<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. | ||
*sync = | *<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>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>async</tt> = Syncin vastakohta, mahdollistaa muutosten kuittaamisen asiakaskoneelle jo ennen kuin ne on kokonaan kirjoitettu levylle. Nopeuttaa toimintaa, mutta saattaa vikatilanteessa johtaa tietojen katoamiseen. Asyncin määritteleminen aiheuttaa varoituksen. | |||
Liitosparametrit on kuvattu tarkemmin exportsin [[man]]-sivulla (<tt>man exports</tt>). | |||
Jaettavalle hakemistolle voi jossain tapauksissa olla järkevää asettaa [[sticky bit]] esimerkiksi komennolla | Jaettavalle hakemistolle voi jossain tapauksissa olla järkevää asettaa [[sticky bit]] esimerkiksi komennolla | ||
Rivi 32: | 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 41: | 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 71: | Rivi 74: | ||
service rpcidmapd start | service rpcidmapd start | ||
NFS-jaot ovat siitä mukavia, että ne voidaan [[Mount|liittää]] ja [[umount|irrottaa]] kuin mikä tahansa muukin [[tiedostojärjestelmä]]. Tiedostojärjestelmän tyyppi on nfs ja siihen viitataan muodossa palvelin: | NFS-jaot ovat siitä mukavia, että ne voidaan [[Mount|liittää]] ja [[umount|irrottaa]] kuin mikä tahansa muukin [[tiedostojärjestelmä]]. Tiedostojärjestelmän tyyppi on nfs ja siihen viitataan muodossa palvelin:polku, esimerkiksi palvelimelta, jonka ip on 192.168.0.1 liitettäisiin hakemisto /varasto seuraavasti: | ||
mount -t nfs 192.168.0.1:/varasto /mnt/varasto | mount -t nfs 192.168.0.1:/varasto /mnt/varasto | ||
Vastaavasti liitoksen voi tehdä [[fstab|/etc/fstabissa]] seuraavasti: | Vastaavasti liitoksen voi tehdä [[fstab|/etc/fstabissa]] seuraavasti: | ||
Rivi 79: | 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. | ||
== | '''HUOM!''' | ||
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== | ||
Rivi 91: | Rivi 112: | ||
*[[Samba]] | *[[Samba]] | ||
*[[FTP]] | *[[FTP]] | ||
*[[SFTP]] | *[[SFTP]] | ||
*[[Fish]] | *[[Fish]] | ||
Rivi 99: | Rivi 119: | ||
*[http://wiki.linux-nfs.org/index.php/Main_Page Linux-NFS-wiki] | *[http://wiki.linux-nfs.org/index.php/Main_Page Linux-NFS-wiki] | ||
*[http://opensuse.fi/NFS NFS opensuse.fi:n wikissä] | *[http://opensuse.fi/NFS NFS opensuse.fi:n wikissä] | ||
{{Tiedostojärjestelmät}} | |||
[[Luokka:Tiedostojärjestelmät]] | [[Luokka:Tiedostojärjestelmät]] | ||
[[Luokka:Verkko]] | [[Luokka:Verkko]] | ||
[[Luokka:Ohjeet]] | [[Luokka:Ohjeet]] | ||
{{Malline:Palvelin}} |