How to Install a Basic NFS Server on Linux - CentOS 8
Inhoudsopgave:
- voorwaarden
- Stel de NFS-server in
- De NFS-server installeren
- Het maken van de bestandssystemen
- Export van de bestandssystemen
- Firewall configuratie
- Stel de NFS-clients in
- De NFS-client installeren
- Mounten van bestandssystemen
- NFS-toegang testen
- NFS-bestandssysteem ontkoppelen
- Conclusie
Network File System (NFS) is een gedistribueerd bestandssysteemprotocol waarmee u externe mappen via een netwerk kunt delen. Met NFS kunt u externe mappen op uw systeem koppelen en met de bestanden op de externe machine werken alsof het lokale bestanden zijn.
NFS-protocol wordt standaard niet gecodeerd en biedt, in tegenstelling tot Samba, geen gebruikersauthenticatie. Toegang tot de server wordt beperkt door de IP-adressen of hostnamen van de clients.
In deze zelfstudie doorloopt u de benodigde stappen om een NFSv4-server op CentOS 8 in te stellen. We laten u ook zien hoe u een NFS-bestandssysteem op de client kunt mounten.
voorwaarden
We gaan ervan uit dat u een server met CentOS 8 hebt waarop we de NFS-server en andere machines zullen instellen die als NFS-clients zullen fungeren. De server en de clients moeten via een privénetwerk met elkaar kunnen communiceren. Als uw hostingprovider geen privé-IP-adressen aanbiedt, kunt u de openbare IP-adressen gebruiken en de serverfirewall configureren om verkeer op poort
2049
alleen van vertrouwde bronnen toe te staan.
De machines in dit voorbeeld hebben de volgende IP's:
NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range
Stel de NFS-server in
In dit gedeelte wordt uitgelegd hoe u de benodigde pakketten installeert, de NFS-mappen maakt en exporteert en de firewall configureert.
De NFS-server installeren
Het pakket "nfs-utils" biedt de NFS-hulpprogramma's en daemons voor de NFS-server. Om het te installeren voert u de volgende opdracht uit:
sudo dnf install nfs-utils
Nadat de installatie is voltooid, schakelt u de NFS-service in en start u deze door:
sudo systemctl enable --now nfs-server
Standaard is op CentOS 8 NFS versies 3 en 4.x ingeschakeld, versie 2 is uitgeschakeld. NFSv2 is nu behoorlijk oud en er is geen reden om het in te schakelen. Voer de volgende
cat
opdracht uit om te controleren:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFS-serverconfiguratie-opties worden ingesteld in
/etc/nfsmount.conf
en
/etc/nfs.conf
. De standaardinstellingen zijn voldoende voor onze zelfstudie.
Het maken van de bestandssystemen
Wanneer u een NFSv4-server configureert, is het een goede gewoonte om een algemene NFS-hoofddirectory te gebruiken en de eigenlijke mappen te koppelen aan het mountpunt van de share. In dit voorbeeld gebruiken we de directeur
/srv/nfs4
als NFS-root.
Om beter uit te leggen hoe de NFS-mounts kunnen worden geconfigureerd, gaan we twee mappen (
/var/www
en
/opt/backups
) delen met verschillende configuratie-instellingen.
De
/var/www/
is eigendom van de gebruiker en
apache
en
/opt/backups
is eigendom van
root
.
Maak het exportbestandssysteem met de opdracht
mkdir
:
sudo mkdir -p /srv/nfs4/{backups, www}
Mount de eigenlijke mappen:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Om de bindmounts permanent te maken, voegt u de volgende items toe aan het bestand
/etc/fstab
:
sudo nano /etc/fstab
/ Etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Export van de bestandssystemen
De volgende stap is het definiëren van de bestandssystemen die door de NFS-server worden geëxporteerd, de opties voor delen en de clients die toegang hebben tot die bestandssystemen. Open hiervoor het bestand
/etc/exports
:
sudo nano /etc/exports
Exporteer de mappen
www
en
backups
en sta alleen toegang toe vanaf clients op het
192.168.33.0/24
netwerk:
/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)
De eerste regel bevat
fsid=0
die de NFS-rootmap
/srv/nfs
definieert. De toegang tot dit NFS-volume is alleen toegestaan voor de clients van het
192.168.33.0/24
subnet. De optie
crossmnt
is vereist om mappen te delen die submappen zijn van een geëxporteerde map.
De tweede regel laat zien hoe u meerdere exportregels kunt opgeven voor één bestandssysteem. Het exporteert de map
/srv/nfs4/backups
en staat alleen leestoegang toe tot het hele
192.168.33.0/24
bereik, en zowel lees- als schrijftoegang tot
192.168.33.3
. De
sync
vertelt NFS om wijzigingen naar schijf te schrijven voordat deze antwoordt.
De laatste regel moet voor zichzelf spreken. Voor meer informatie over alle beschikbare opties typt u
man exports
in uw terminal.
Sla het bestand op en exporteer de shares:
sudo exportfs -ra
Elke keer dat u het bestand
/etc/exports
wijzigt, moet u de bovenstaande opdracht uitvoeren. Als er fouten of waarschuwingen zijn, worden deze op de terminal weergegeven.
Om de huidige actieve export en hun status te bekijken, gebruikt u:
sudo exportfs -v
De output omvat alle aandelen met hun opties. Zoals u kunt zien, zijn er ook opties die we niet hebben gedefinieerd in het bestand
/etc/exports
. Dit zijn standaardopties en als u ze wilt wijzigen, moet u die opties expliciet instellen.
/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
root_squash
is een van de belangrijkste opties met betrekking tot NFS-beveiliging. Het voorkomt dat rootgebruikers verbonden met de clients rootrechten hebben op de gemounte shares. Het zal root
UID
en
GID
toewijzen aan
nobody
/
nogroup
UID
/
GID
.
Opdat de gebruikers op de clientcomputers toegang hebben, verwacht NFS dat de gebruikers- en groeps-ID's van de client overeenkomen met die op de server. Een andere optie is om de NFSv4-idmapping-functie te gebruiken die gebruikers- en groeps-ID's vertaalt naar namen en omgekeerd.
Dat is het. Op dit moment hebt u een NFS-server op uw CentOS-server ingesteld. U kunt nu naar de volgende stap gaan en de clients configureren en verbinding maken met de NFS-server.
Firewall configuratie
FirewallD is de standaard firewall-oplossing op Centos 8.
De NFS-service bevat vooraf gedefinieerde regels voor toegang tot de NFS-server.
De volgende opdrachten staan permanent toegang toe vanaf het subnet
192.168.33.0/24
:
sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
Stel de NFS-clients in
Nu de NFS-server is ingesteld en shares worden geëxporteerd, configureert u de volgende stap de clients en koppelt u de externe bestandssystemen aan.
Je kunt ook de NFS-share op macOS- en Windows-machines mounten, maar we zullen ons richten op Linux-systemen.
De NFS-client installeren
Installeer op de machines van de client de benodigde tools om externe NFS-bestandssystemen te mounten.
-
NFS-client installeren op Debian en Ubuntu
De naam van het pakket met programma's voor het koppelen van NFS-bestandssystemen op op Debian gebaseerde distributies is
nfs-common
. Om het te installeren, voer uit:sudo apt update
sudo apt install nfs-common
Installeer NFS client op CentOS en Fedora
Installeer op Red Hat en zijn afgeleiden het
nfs-utils
pakket:sudo yum install nfs-utils
Mounten van bestandssystemen
We werken op de clientcomputer met IP
192.168.33.110
, die lees- en schrijftoegang heeft tot het
/srv/nfs4/www
bestandssysteem en alleen-lezen toegang tot het
/srv/nfs4/backups
bestandssysteem.
Maak twee nieuwe mappen voor de koppelpunten. U kunt deze mappen op elke gewenste locatie maken.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Koppel de geëxporteerde bestandssystemen met de opdracht
mount
:
sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
Waar
192.168.33.148
het IP-adres van de NFS-server is. U kunt ook de hostnaam gebruiken in plaats van het IP-adres, maar deze moet door de clientcomputer kunnen worden opgelost. Dit wordt meestal gedaan door de hostnaam toe te wijzen aan het IP-adres in het bestand
/etc/hosts
.
Bij het koppelen van een NFSv4-bestandssysteem moet u de NFS-rootmap weglaten, dus in plaats van
/srv/nfs4/backups
moet u
/backups
.
Controleer of de externe bestandssystemen met succes zijn gekoppeld met de opdracht mount of
df
:
df -h
De opdracht drukt alle gekoppelde bestandssystemen af. De laatste twee regels zijn de gekoppelde shares:
… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www
Om de mounts permanent opnieuw op te starten, opent u het bestand
/etc/fstab
:
sudo nano /etc/fstab
en voeg de volgende regels toe:
/ Etc / fstab
192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Voor meer informatie over de beschikbare opties bij het koppelen van een NFS-bestandssysteem typt u
man nfs
in uw terminal.
Een andere optie om de externe bestandssystemen te mounten is om ofwel de
autofs
tool te gebruiken of om een systeemeenheid te creëren.
NFS-toegang testen
Laten we de toegang tot de shares testen door in elk ervan een nieuw bestand te maken.
Probeer eerst een testbestand in de map
/backups
met de
touch
:
sudo touch /backups/test.txt
Het
/backup
bestandssysteem wordt als alleen-lezen geëxporteerd en zoals verwacht ziet u een foutmelding
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
Probeer vervolgens met de opdracht
sudo
een testbestand in de map
/srv/www
als root:
sudo touch /srv/www/test.txt
Nogmaals, u ziet
Permission denied
bericht
Permission denied
.
touch: cannot touch '/srv/www': Permission denied
De map
/var/www
is eigendom van de
apache
gebruiker en deze share heeft de
root_squash
optieset, die de rootgebruiker toewijst aan de
nobody
gebruiker en de
nogroup
groep die geen schrijfrechten heeft op de externe share.
Ervan uitgaande dat er een gebruikersapache bestaat op de clientcomputer met dezelfde
UID
en
GID
als op de externe server (wat het geval zou zijn als u bijvoorbeeld apache op beide machines hebt geïnstalleerd), kunt u testen om een bestand als gebruikersapache te maken met:
sudo -u apache touch /srv/www/test.txt
De opdracht toont geen uitvoer, wat betekent dat het bestand met succes is gemaakt.
Om dit te verifiëren, geeft u de bestanden in de map
/srv/www
:
ls -la /srv/www
De uitvoer moet het nieuw gecreëerde bestand tonen:
drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt
NFS-bestandssysteem ontkoppelen
sudo umount /backups
Als het koppelpunt is gedefinieerd in het bestand
/etc/fstab
, zorg er dan voor dat u de regel verwijdert of er een opmerking bij maakt door
#
aan het begin van de regel toe te voegen.
Conclusie
In deze zelfstudie hebben we u laten zien hoe u een NFS-server instelt en hoe u de externe bestandssystemen op de clientmachines koppelt. Als u NFS implementeert in de productie en verstandige gegevens deelt, is het een goed idee om Kerberos-verificatie in te schakelen.
Als alternatief voor NFS kunt u SSHFS gebruiken om externe mappen te koppelen via een SSH-verbinding. SSHFS is standaard gecodeerd en veel eenvoudiger te configureren en te gebruiken.
Als je nog vragen hebt, kun je een reactie achterlaten.
centos nfs mount terminalHoe nextcloud met apache op centos 7 te installeren en configureren
Nextcloud is een open source, zelfgehoste bestandsuitwisseling en samenwerkingsplatform, vergelijkbaar met Dropbox. In deze zelfstudie laten we u zien hoe u Nextcloud met Apache op een CentOS 7-machine installeert en configureert.
Hoe Redmine op Centos te installeren en configureren 7
Redmine is een van de meest populaire open source projectmanagement- en issue tracking-softwaretools. Deze tutorial behandelt de stappen die nodig zijn om Redmine op CentOS 7 te installeren en configureren.
Hoe vnc op centos 7 te installeren en configureren
In deze tutorial zullen we u door de stappen leiden voor het installeren en configureren van een VNC-server op een CentOS 7-systeem. We laten u ook zien hoe u veilig verbinding kunt maken met de VNC-server via een SSH-tunnel.