TL;DR
en mycket kortare guide finns i Ubuntu Server Guide om du behöver mer info, läs nedan.
introduktion
NFS (Network File System) låter dig ”dela” en katalog som finns på en nätverksansluten dator med andra datorer / enheter i nätverket. Datorn där Katalogen finns kallas servern och datorer eller enheter som ansluter till den servern kallas klienter. Klienter brukar ”montera” den delade katalogen för att göra den till en del av sin egen katalogstruktur.,
NFS är perfekt för att skapa nas (nätverksansluten lagring) i Linux / Unix-miljö. Det är ett inbyggt Linux / Unix-protokoll i motsats till Samba som använder SMB-protokollet som utvecklats av Microsoft. Apple OS har bra stöd för NFS. Windows 7 har lite stöd för NFS.
NFS är kanske bäst för fler ”permanenta” nätverksmonterade kataloger som / hemkataloger eller regelbundet tillgängliga delade resurser. Om du vill ha en nätverksandel som gästanvändare enkelt kan ansluta till, är Samba mer lämpad., Detta beror på att verktyg finns lättare över gamla och proprietära operativsystem för att tillfälligt montera och lossa från Samba-aktier.
Ubuntu innan du distribuerar NFS bör du vara bekant med:
- Linux-fil och katalogbehörigheter
- montering och borttagning (avmontering) filsystem
detta HowTo gör Ubuntu server nfsv4 redo.
NFS quick start
Om du förstår vad du gör, Använd denna korta genomgång för att ställa in en nfsv4-server på Ubuntu (utan autentiseringssäkerhet). Montera sedan delningen på en Ubuntu-klient., Det har testats på Ubuntu 14.04.
NFS server
för att kontrollera att NFS-servern inte är installerad kan du göra det…
-
$ dpkg -l | grep nfs-kernel-server
Installera de paket som krävs…
-
# apt-get install nfs-kernel-server
För enklare underhåll kommer vi att isolera alla NFS-export i en katalog, där de riktiga katalogerna kommer att monteras med –bind-alternativet.
-
låt oss säga att vi vill exportera våra användares hemkataloger i/hem / användare., Först skapar vi exportfilsystemet:
# mkdir -p /export/users
det är viktigt att /export och /export/användare har 777 behörigheter eftersom vi kommer att komma åt NFS-delen från klienten utan LDAP/NIS-autentisering. Detta gäller inte om du använder autentisering (se nedan)., Montera nu den riktiga användarkatalogen med:
# mount --bind /home/users /export/users
för att rädda oss från att skriva om detta efter varje omstart lägger vi till följande
linje till /etc/fstab
/home/users /export/users none bind 0 0
-
det enda viktiga alternativet i /etc/default/NFS-kernel-server för nu är need_svcgssd. Den är inställd på ” Nej ” Som standard, vilket är bra, eftersom vi inte aktiverar nfsv4-säkerhet den här gången.
för att ID-namnen ska kunna mappas automatiskt kräver både klienten och servern/etc / idmapd.,conf-fil för att ha samma innehåll med rätt domännamn. Dessutom bör den här filen ha följande rader i avsnittet kartläggning:
-
Nobody-User = nobodyNobody-Group = nogroup
klienten kan dock ha olika krav för Nobody-användaren och Nobody-gruppen. Till exempel på RedHat varianter är det nfsnobody för båda. cat / etc / passwd och cat / etc / group ska visa” nobody ” – kontona.
På så sätt behöver inte server och klient användarna dela samma UID / GUID.,
för dem som använder LDAP-baserad autentisering, Lägg till följande rader i klientens idmapd.conf:
Method = nsswitch
detta gör att idmapd vet att titta på nsswitch.conf för att avgöra var den ska leta efter autentiseringsuppgifter (och om du redan har LDAP-autentisering, bör nsswitch inte kräva ytterligare förklaring).
för att exportera våra kataloger till ett lokalt nätverk 192.168.1.0 /24 lägger vi till följande två rader till/etc/export
Portmap Lockdown
valfritt
Lägg till följande rad till/etc / värdar.,deny:
rpcbind mountd nfsd statd lockd rquotad : ALL
genom att blockera alla klienter först, endast klienter i/etc / värdar.Tillåt nedan kommer att tillåtas att komma åt servern.
lägg nu till följande rad till/etc / värdar.allow:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
där strängen ”lista över IP-adresser” är, måste du göra en lista över IP-adresser som består av servern och alla klienter. Dessa måste vara IP-adresser på grund av en begränsning i portmap (det gillar inte värdnamn). Observera att om du har Nis inställd, bara lägga till dessa till samma rad.,
Obs: se till att listan över auktoriserade IP-adresser inkluderar localhost-adressen (127.0.0.1) som startskripten i de senaste versionerna av Ubuntu använder rpcinfo-kommandot för att upptäcka nfsv3-stöd, och detta kommer att inaktiveras om localhost inte kan ansluta.,unt det kompletta exportträdet med ett kommando:
vi kan också montera en exporterad delträd med:
-
# mount -t nfs -o proto=tcp,port=2049 <nfs-server-IP>:/users /home/users
för att rädda oss från att skriva om detta efter varje omstart lägger vi till följande rad till /etc/fstab:
-
<nfs-server-IP>:/ /mnt nfs auto 0 0
om posten i /proc/mounts efter montering visas som <NFS-server-IP>:// (med två snedstreck), kan du behöva ange två snedstreck i /etc/fstab, annars kan umount klaga på att den inte kan hitta fästet.,
det automatiska alternativet monteras vid start. Detta fungerar dock inte om din klient använder en wifi-anslutning som hanteras på användarnivå (efter inloggning), eftersom nätverket inte kommer att vara tillgängligt vid starttiden. I Ubuntu 12.04 LTS och senare hanteras wifi-anslutningar på systemnivå som standard, så automatisk montering av NFS-aktier vid starttid ska fungera bra.
Ubuntu Server kommer inte med någon init.d / netfs eller andra skript för att göra detta för dig.
Portmap Lockdown
valfritt
Lägg till följande rad till/etc / värdar.,deny:
rpcbind : ALL
genom att blockera alla klienter först, endast klienter i/etc / värdar.Tillåt nedan kommer att tillåtas att komma åt servern.
lägg nu till följande rad till/etc / värdar.Tillåt:
rpcbind : NFS server IP address
var ”NFS server IP-adress” är serverns IP-adress. Detta måste vara numeriskt! Det är så portmap fungerar.
NFS Server
Förinstallationsinstallation
inget av följande förinstallationssteg är absolut nödvändigt.
användarbehörigheter
NFS användarbehörigheter är baserade på användar-ID (uid)., UIDs för alla användare på klienten måste matcha dem på servern för att användarna ska ha tillgång. De typiska sätten att göra detta är:
- Manuell lösenordsfilsynkronisering
-
användning av LDAP
-
användning av NIS
det är också viktigt att notera att du måste vara försiktig med system där huvudanvändaren har root – åtkomst-den användaren kan ändra UID: s på systemet för att tillåta sig tillgång till någons filer. Den här sidan förutsätter att det administrativa teamet är den enda gruppen med root-åtkomst och att de alla är betrodda., Allt annat representerar en mer avancerad konfiguration, och kommer inte att behandlas här.
gruppbehörigheter
med NFS bestäms användarens åtkomst till filer av hans/hennes medlemskap i grupper på klienten, inte på servern. Det finns dock en viktig begränsning: högst 16 grupper skickas från klienten till servern, och om en användare är medlem i mer än 16 grupper på klienten kan vissa filer eller kataloger vara oväntat otillgängliga.
värdnamn
valfritt om du använder DNS
Lägg till Klientnamn och IP-adresser till /etc/värdar. Den verkliga (inte 127.,0.0.1) IP-adressen för servern borde redan vara här. Detta säkerställer att NFS fortfarande fungerar även om DNS går ner. Du kan lita på DNS om du ville, det är upp till dig.
NIS
valfritt – utför bara steg om du använder NIS
Obs! Detta fungerar bara om du använder NIS. Annars kan du inte använda netgroups, och bör ange enskilda IP-eller värdnamn i / etc / export. Läs avsnittet buggar i man netgroup.
redigera/etc / netgroup och Lägg till en rad för att klassificera dina kunder. (Detta steg är inte nödvändigt, men är för enkelhetens skull).,
myclients (client1,,) (client2,,)
självklart kan fler klienter läggas till. myclients kan vara vad du vill; Detta är ett netgroup namn.
kör det här kommandot för att återskapa YP-databasen:
sudo make -C /var/yp
Portmap-låsning
valfritt
Lägg till följande rad till/etc / värdar.deny:
rpcbind mountd nfsd statd lockd rquotad : ALL
genom att blockera alla klienter först, endast klienter i/etc / värdar.Tillåt nedan kommer att tillåtas att komma åt servern.
lägg nu till följande rad till/etc / värdar.,allow:
rpcbind mountd nfsd statd lockd rquotad : list of IP addresses
där strängen ”lista över IP-adresser” är, måste du göra en lista över IP-adresser som består av servern och alla klienter. Dessa måste vara IP-adresser på grund av en begränsning i portmap (det gillar inte värdnamn). Observera att om du har Nis inställd, bara lägga till dessa till samma rad.,
Installation och konfiguration
installera NFS Server
sudo apt-get install rpcbind nfs-kernel-server
aktier
redigera /etc/export och Lägg till aktierna:
/home @myclients(rw,sync,no_subtree_check)/usr/local @myclients(rw,sync,no_subtree_check)
ovanstående aktier /hem och /usr/lokal för alla kunder i myclients netgroup.
ovanstående aktier /hem och /usr/lokal till två kunder med fasta ip-adresser. Bäst används endast med maskiner som har statiska ip-adresser.
/home 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)/usr/local 192.168.0.0/255.255.255.0(rw,sync,no_subtree_check)
ovanstående aktier /hem och/usr / lokal till alla kunder i det privata nätverket som faller inom det angivna ip-adressintervallet.,
rw gör dela läsa / skriva, och synkronisering kräver att servern endast svara på förfrågningar när eventuella ändringar har spolats till disk. Detta är det säkraste alternativet (async är snabbare, men farligt. Det rekommenderas starkt att du läser man export.
Efter att ha konfigurerat/etc/Export, Exportera aktierna:
sudo exportfs -ra
du vill göra det här kommandot när/etc / export ändras.,
starta om tjänster
om /etc/default/portmap ändrades måste portmap startas om:
sudo service portmap restart
NFS-kärnservern kräver också en omstart:
Säkerhetsanteckning
bortsett från de UID-problem som diskuterats ovan bör det noteras att en angripare kan komma att starta om potentiellt maskerad som en maskin som får kartlägga aktien, vilket gör det möjligt för dem att skapa godtyckliga Uids för att komma åt dina filer. En potentiell lösning på detta är IPSec, se även avsnittet NFS och IPSec nedan., Du kan ställa in alla dina domänmedlemmar att prata bara med varandra över IPSec, som effektivt autentiserar att din klient är den som den säger att den är.
IPSec fungerar genom att kryptera trafik till servern med serverns nyckel, och servern skickar tillbaka alla svar krypterade med klientens nyckel. Trafiken dekrypteras med respektive nycklar. Om klienten inte har de nycklar som klienten ska ha kan den inte skicka eller ta emot data.
ett alternativ till IPSec är fysiskt separata nätverk., Detta kräver en separat nätverksomkopplare och separata ethernet-kort och fysisk säkerhet för det nätverket.
NFS Client
Installation
sudo apt-get install rpcbind nfs-common
Portmap Lockdown
valfritt
Lägg till följande rad till/etc / hosts.deny:
rpcbind : ALL
genom att blockera alla klienter först, endast klienter i/etc / värdar.Tillåt nedan kommer att tillåtas att komma åt servern.
lägg nu till följande rad till/etc / värdar.Tillåt:
rpcbind : NFS server IP address
var ”NFS server IP-adress” är serverns IP-adress. Detta måste vara numeriskt!, Det är så portmap fungerar.
värdnamn
valfritt om du använder DNS
Lägg till servernamnet till /etc/värdar. Detta säkerställer att NFS-fästen fortfarande fungerar även om DNS går ner. Du kan lita på DNS om du ville, det är upp till dig.
Fästen
kontrollera om allt fungerar
Du bör försöka montera det nu., Den grundläggande mallen du kommer att använda är:
sudo mount ServerIP:/folder/already/setup/to/be/shared /home/username/folder/in/your/local/computer
så till exempel:
sudo mount 192.168.1.42:/home/music /home/poningru/music
montera vid start
NFS fästen kan antingen monteras automatiskt när de nås med hjälp av autofs eller kan ställas in med statiska fästen med hjälp av poster i/etc / fstab. Båda förklaras nedan.
Automounter
Installera autofs:
sudo apt-get install autofs
följande konfigurationsexempel ställer in hemkataloger för att automatisera en NFS-server vid inloggning. Andra kataloger kan ställas in för att automatiskt vid åtkomst också.,
Lägg till följande rad i slutet av/etc / auto.master:
/home /etc/auto.home
skapa nu/etc / auto.startsida och infoga följande:
* solarisbox1.company.com.au,solarisbox2.company.com.au:/export/home/&
Starta om autofs för att aktivera konfigurationen:
sudo service autofs start
statiska Fästen
innan du konfigurerar fästen, se till att katalogerna som fungerar som monteringspunkter redan har skapats.
i/etc / fstab, Lägg till rader för aktier som:
servername:dir /mntpoint nfs rw,hard,intr 0 0
rw monterar det läsa / skriva., Självklart, om servern delar den skrivskyddad, kommer klienten inte att kunna montera den som något annat än det. Den hårda monterar andelen så att om servern blir otillgänglig väntar programmet tills det är tillgängligt. Alternativet är mjukt. intr låter dig avbryta / döda processen. Annars kommer det att ignorera dig. Dokumentation för dessa finns i monteringsalternativen för NFS-sektionen i man mount.
filsystemen kan nu monteras med mount / mountpoint eller mount-a för att montera allt som ska monteras vid uppstart.,
anmärkningar
minimalistiska NFS-Inställningar
stegen ovan är mycket omfattande. Det minsta antalet steg som krävs för att ställa in NFS listas här:
http://www.ubuntuforums.org/showthread.php?t=249889
använda grupper med NFS-aktier
När du använder grupper på NFS-aktier (NFSv2 eller NFSv3), kom ihåg att detta kanske inte fungerar om en användare är medlem i mer än 16 grupper. Detta beror på begränsningar i NFS-protokollet., Du kan hitta mer information om Launchpad (”tillstånd nekas när användaren tillhör grupp som äger grupp skrivbara eller setgid kataloger monterade via nfs”) och i den här artikeln: ”Vad är affären på 16 grupp-ID begränsning i NFS?”
IPSec Notes
om du använder IPSec orsakar standardavstängningsordningen i Breezy/Dapper att klienten hänger som den stängs av eftersom IPSec går ner innan NFS gör det., För att åtgärda det, gör:
sudo update-rc.d -f setkey removesudo update-rc.d setkey start 37 0 6 S .
en bugg har lämnats in här:https://launchpad.net/distros/ubuntu/+source/ipsec-tools/+bug/37536
felsökning
montering av NFS-aktier i krypterat hem fungerar inte vid uppstart
montering av en NFS-andel i en krypterad hemkatalog fungerar bara efter att du har loggat in och ditt hem är dekrypterat. Det innebär att användning av/etc / fstab för att montera NFS-aktier vid uppstart inte fungerar – eftersom ditt hem inte har dekrypterats vid monteringstillfället., Det finns ett enkelt sätt runt detta med hjälp av symboliska länkar:
- skapa en alternativ katalog för att montera NFS-aktierna i:
$ sudo mkdir /nfs$ sudo mkdir /nfs/music
-
redigera /etc/fstab för att montera NFS-aktien i den katalogen istället:
nfsserver:music /NFS/music NFS auto 0 0
- skapa en symbolisk länk i ditt hem och peka på den faktiska monteringsplatsen (i vårt fall radera katalogen”musik”som redan finns där först):
$ rmdir /home/user/Music$ ln -s /nfs/music/ /home/user/Music