Jeg vil detaljer om oprettelsen af NFS-monteringspunkt på en Windows 10-klient i del 2 i denne serie. Lad os nu fokusere på en Ubuntu-server, der tilbyder NFS-lager og en Ubuntu-klient, der prøver at oprette forbindelse til den.
Opsætningen
Min NFS-server vil være baseret på Ubuntu 18.04 LTS. Du kan bruge din foretrukne Linux distro eller FreeBSD eller ethvert andet OS, der understøtter OpenZFS. Min grund til at bruge Ubuntu 18.04 er, at det er ret populært og ville reducere adgangsbarrieren betydeligt.
NFS formodes kun at være tilgængelig på mit LAN, som har undernetmasken på 255.255.255.0 og 192.168.0.1 som standard gateway. På almindelig engelsk betyder det, at alle enheder, der er tilsluttet mit hjemmenetværk (WiFi og Ethernet, et al.) Vil have IP-adresser fra 192.168.0.2 til 192.168.0.254.
NFS-serveren konfigureres til kun at tillade enheder med kun den førnævnte IP-adresse at have adgang til NFS-serveren. Dette ville sikre, at kun enheder, der har oprettet forbindelse til mit LAN, har adgang til mine filer, og omverdenen ikke kan få adgang til det. Hvis du har en 'åben Wifi'-opsætning, eller hvis sikkerheden på din routers slutpunkt er tvivlsom, vil dette ikke garantere nogen sikkerhed.
Jeg vil ikke anbefale at køre NFS over offentligt internet uden yderligere sikkerhedsforanstaltning.
Endelig har kommandoer, der køres på NFS-serveren prompten, server $ og kommandoerne, der skal køres på klientsiden, har promptklienten $
Oprettelse af OpenZFS-pool og datasæt
1. Opretter zpool
Hvis du allerede har en zpool i gang, skal du springe dette trin over. På min NFS-server, der kører Ubuntu 18.04 LTS-server, jeg installerer først OpenZFS.
server $ sudo apt installere zfsutils-linuxDernæst vil vi liste alle tilgængelige blokkenheder for at se de nye diske (og partitioner), der venter på at blive formateret med zfs.
$ lsblkNAVN MAJ: MIN RM STØRRELSE RO TYPE MOUNTPOINT
loop0 7: 0 0 89.5M 1 løkke / snap / kerne / 6130
loop1 7: 1 0 86.9M 1 løkke / snap / kerne / 4917
loop2 7: 2 0 91.1M 1 løkke / snap / kerne / 6259
sda 8: 0 0 50G 0 disk
├─sda1 8: 1 0 1M 0 del
└─sda2 8: 2 0 50G 0 del /
sdb 8:16 0 931G 0 disk
sdc 8:32 0 931G 0 disk
sr0 11: 0 1 1024M 0 rom
Et typisk eksempel er vist ovenfor, men din navngivningskonvention kan være vild anderledes. Du bliver nødt til at bruge din egen dømmekraft og være meget forsigtig med den. Du ønsker ikke ved et uheld at formatere din OS-disk. For eksempel har sda1-partitionen klart rodfilsystemet som dets monteringspunkt, så det er ikke klogt at røre ved det. Hvis du bruger nye diske, er chancerne for, at de ikke har et monteringspunkt eller nogen form for partitionering.
Når du kender navnet på dine enheder, bruger vi zpool create-kommandoen til at formatere et par af disse blokkenheder (kaldet sdb og sdc) til en zpool med en enkelt vdev, der består af to spejlede diske.
server $ sudo zpool oprette tank spejl sdb sdcserver $ sudo zpool status tank
zpool status tank
pool: tank
tilstand: ONLINE
scan: ingen anmodet
config:
NAVN STAT LÆS Opret CKSUM
tank ONLINE 0 0 0
spejl-0 ONLINE 0 0 0
sdb ONLINE 0 0 0
sdc ONLINE 0 0 0
fejl: Ingen kendte datafejl
Fremadrettet kan du tilføje diske i sæt af to (kaldet vdev) for at vokse størrelsen på denne zpool, de nye diske vises som mirror-1, mirror-2 osv. Du behøver ikke oprette din zpool som jeg gjorde, du kan bruge spejling med flere diske, du kan bruge striping uden redundans, men bedre ydeevne, eller du kan bruge RAIDZ. Du kan lære mere om det her.
I slutningen af dagen er det der betyder noget, at vi har oprettet en tank med navnet zpool. Derefter lever den delte NFS. Lad os oprette et datasæt, der deles. Sørg først for, at poolen, der hedder 'tank', er monteret. Standard monteringspunkt er '/ tank' .
server $ sudo zfs monteringstankserver $ sudo zfs Opret tank / nfsshare # Opret et nyt datasæt oven på puljen
Indstilling af tilladelser
Når du deler en NFS-mappe, har superbrugeren på klientsystemet ikke adgang til noget på delingen. Mens superbrugeren på klientsiden er i stand til at gøre noget på klientmaskinen, er NFS-monteringen teknisk set ikke en del af klientmaskinen. Så at tillade handlinger på vegne af klientsiden superbruger kortlagt som serversiden superbruger kan resultere i sikkerhedsproblemer. Som standard kortlægger NFS superbrugerhandlingerne på klientsiden til ingen: nogroup bruger og brugergruppe. Hvis du har til hensigt at få adgang til de monterede filer som root, skal datasættet på vores NFS-server også have de samme tilladelser,
server $ sudo chown ingen: nogroup / tank / nfsshareNFS-serveren kører enhver handling fra klientsiden som bruger-ingen, så ovenstående tilladelse tillader operationerne at gennemgå.
Hvis du bruger et andet (almindeligt) brugernavn, er det ofte praktisk at have en bruger med det samme nøjagtige brugernavn på begge sider.
Oprettelse af NFS-deling
Når du har oprettet Zpool, skal du installere nfs-serverpakken fra din pakkehåndtering:
server $ sudo apt installere nfs-kernel-serverTraditionelt bruger NFS-server / etc / eksport-fil til at få en liste over godkendte klienter og de filer, de har adgang til. Vi bruger dog ZFS 'indbyggede funktion til at opnå det samme.
Brug blot kommandoen:
server $ sudo zfs sæt sharenfs = ”til” / tank / nfsshareTidligere henviste jeg til kun at give visse IP'er adgang. Du kan gøre det som følger:
server $ sudo zfs set sharenfs = "[email protected] / 24" tank / nfsshare'Rw' står for læs-skriv tilladelser, og det efterfølges af rækkevidden af IP'er. Sørg for, at portnummer 111 og 2049 er åben på din firewall. Hvis du bruger ufw, kan du kontrollere det ved at køre:
server $ ufw statusNoter din servers IP på LAN ved at bruge ifconfig eller ip addr-kommandoen. Lad os kalde det server.ip
Montering på klientsiden
Når delingen er oprettet, kan du montere den på din klientmaskine ved at køre kommandoen:
klient $ mount -t nfs-server.ip: / tank / nfsshare / mntDette vil montere NFS-delingen på / mnt-mappen, men du kunne lige så let have valgt et andet monteringspunkt efter eget valg.
Konklusion
Fildeling er sandsynligvis det vigtigste aspekt af systemadministration. Det forbedrer din forståelse af lagringsstakken, netværk, brugertilladelser og privilegier. Du vil hurtigt indse vigtigheden af Princippet om mindst privilegium - Det vil sige kun give en bruger den mindst mulige adgang, den har brug for, til sit job.
Du vil også lære om interoperabiliteten mellem forskellige operativsystemer. Windows-brugere kan få adgang til NFS-filer, så også Mac- og BSD-brugere. Du kan ikke begrænse dig til et operativsystem, når du har at gøre med et netværk af maskiner, der alle har deres egne konventioner og sprog. Så fortsæt og eksperimenter med din NFS-andel. Jeg håber, du har lært noget.