CentOS 7 NFS: Unterschied zwischen den Versionen

Aus
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „ == NFS Server einrichten == Als erstes müssen die NFS Tools installiert werden <pre>yum install nfs-utils nfs-utils-lib</pre> Nun müssen die NFS Services g…“)
 
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
  
== NFS Server einrichten ==
+
== NFS-Server einrichten ==
  
Als erstes müssen die NFS Tools installiert werden
+
Als erstes müssen die NFS-Tools installiert werden
 
<pre>yum install nfs-utils nfs-utils-lib</pre>
 
<pre>yum install nfs-utils nfs-utils-lib</pre>
Nun müssen die NFS Services gestartet werden
+
Nun müssen die NFS-Services gestartet werden
 
<pre>
 
<pre>
 
systemctl enable rpcbind
 
systemctl enable rpcbind
Zeile 25: Zeile 25:
 
/share/    192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
 
/share/    192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
 
</pre>
 
</pre>
{| class="wikitable"
+
{|style="border-style: solid; border-width: 1px"
 
|<code>/share</code>
 
|<code>/share</code>
|shared directory
+
|Das gemeinsame Verzeichnis
 
|-
 
|-
 
|<code>192.168.1.0/24</code>
 
|<code>192.168.1.0/24</code>
|IP address range of clients
+
|IP Adressraum des Clients
 
|-
 
|-
 
|<code>rw</code>
 
|<code>rw</code>
|Writable permission to shared folder
+
|Schreibrechte auf das gemeinsame Verzeichnis
 
|-
 
|-
 
|<code>sync</code>
 
|<code>sync</code>
|Synchronize shared directory
+
|Gemeinsames Verzeichnis synchronisieren
 
|-
 
|-
 
|<code>no_root_squash</code>
 
|<code>no_root_squash</code>
|Enable root privilege
+
|Root Privileg einschalten
 
|-
 
|-
 
|<code>no_all_squash</code>
 
|<code>no_all_squash</code>
|Enable user’s authority
+
|Userbefugnisse einschalten
 
|}
 
|}
Anschliessend starten wir den NFS Server neu
+
Anschliessend starten wir den NFS-Server neu
 
<pre>
 
<pre>
 
systemctl restart nfs-server
 
systemctl restart nfs-server
Zeile 51: Zeile 51:
 
== Clientseitige Konfiguration ==
 
== Clientseitige Konfiguration ==
  
Als erstes müssen die NFS Tools installiert werden
+
Als erstes müssen die NFS-Tools installiert werden
 
<pre>yum install nfs-utils nfs-utils-lib</pre>
 
<pre>yum install nfs-utils nfs-utils-lib</pre>
Nun müssen die NFS Services gestartet werden
+
Nun müssen die NFS-Services gestartet werden
 
<pre>
 
<pre>
 
systemctl enable rpcbind
 
systemctl enable rpcbind
Zeile 74: Zeile 74:
 
<pre>mount.nfs: access denied by server while mounting 192.168.1.24:/share</pre>
 
<pre>mount.nfs: access denied by server while mounting 192.168.1.24:/share</pre>
 
Eventuell kommt auch ein <code>connection timed out error</code>. Auf jeden Fall blockiert die Firewall des NFS-Servers die Verbindung.
 
Eventuell kommt auch ein <code>connection timed out error</code>. Auf jeden Fall blockiert die Firewall des NFS-Servers die Verbindung.
Wie findet man jetzt die Ports heraus, welche geöffnet werden müssen?
+
Wie findet man jetzt die Ports heraus, welche auf dem NFS-Server geöffnet werden müssen?
Folgendes Kommando gibt die Ports aus
+
Folgendes Kommando auf dem Client gibt die Ports aus
 
<pre>rpcinfo -p</pre>
 
<pre>rpcinfo -p</pre>
 
mit ähnlicher Ausgabe wie folgender
 
mit ähnlicher Ausgabe wie folgender
Zeile 105: Zeile 105:
 
     100021    1  tcp  40313  nlockmgr
 
     100021    1  tcp  40313  nlockmgr
 
     100021    3  tcp  40313  nlockmgr
 
     100021    3  tcp  40313  nlockmgr
     100021    4  tcp  40313  nlockmgr</pre>
+
     100021    4  tcp  40313  nlockmgr
 +
</pre>
 +
Jetzt folgendes auf dem NFS-Server ausführen um die Firewall für den Client zu öffnen
 +
(Warum eigentlich nur die TCP-Ports?)
 +
<pre>
 +
firewall-cmd --permanent --zone=internal --add-port=111/tcp
 +
firewall-cmd --permanent --zone=internal --add-port=49130/tcp
 +
firewall-cmd --permanent --zone=internal --add-port=20048/tcp
 +
firewall-cmd --permanent --zone=internal --add-port=2049/tcp
 +
firewall-cmd --permanent --zone=internal --add-port=40313/tcp
 +
</pre>
 +
<code>--zone=internal</code> ist hier angegeben, da nur das interne Netz auf den NFS-Server zugreifen soll. Man kann die Zone auch weglassen, es ist alles eine Sache der Sicherheit ;) .
 +
Danach die Firewall neu starten
 +
<pre>
 +
firewall-cmd --reload
 +
</pre>
 +
Ein weiteres Mal können wir nun das NFS-Share mounten
 +
<pre>mount -t nfs 192.168.1.24:/share/ /mnt/nfs/share/</pre>
 +
Jetzt sollte das NFS-Verzeichnis erreichbar sein ;)
 +
 
 +
== NFS-Share auf Client prüfen ==
 +
Um zu sehen ob das Verzeichnis gemountet ist kann der Befehl
 +
<pre>mount</pre>
 +
eingegeben werden. Es folgt ein ähnliche Ausgabe:
 +
<pre>
 +
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
 +
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
 +
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=16461924k,nr_inodes=4115481,mode=755)
 +
.
 +
.
 +
.
 +
systemd-1 on /mnt/nfs/data type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=22662)
 +
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
 +
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
 +
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
 +
192.168.1.24:/share on /mnt/nfs/share type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.10,local_lock=none,addr=192.168.1.24)
 +
.
 +
.
 +
.
 +
</pre>
 +
In der letzten Zeile steht unser NFS-Share.
 +
 
 +
== Auto mount des NFS-Share (Bootfest) ==
 +
 
 +
Um unser NFS-Verzeichnis beim Boot des Servers zu mounten müssen wir folgendes in der Datei <code>/etc/fstab</code> hinzufügen
 +
<pre>192.168.1.24:/share/ /mnt/nfs/share/ nfs rw,sync,hard,intr 0 0</pre>
 +
Damit sollte die Datei <code>/etc/fstab</code> ähnlich folgender Ausgabe aussehen
 +
<pre>
 +
#
 +
# /etc/fstab
 +
# Created by anaconda on Thu Apr  4 16:43:37 2019
 +
#
 +
# Accessible filesystems, by reference, are maintained under '/dev/disk'
 +
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
 +
#
 +
UUID=9b2347ab-23c0-463e-9cb8-a4ddf9f4dfcb /                      xfs    defaults        0 0
 +
UUID=a96af4ed-b427-453e-a222-7e4f4ddddf81 /boot                  xfs    defaults        0 0
 +
UUID=d88cde23-912d-4548-8f49-08beefefef15 swap                    swap    defaults        0 0
 +
192.168.1.24:/share/                      /mnt/nfs/share          nfs    defaults,nofail,x-systemd.automount    0 0
 +
</pre>
 +
Jetzt das System rebooten und es sollte das Verzeichnis gemountet sein (prüfen, siehe oben)
 +
 
 +
Quelle: https://www.unixmen.com/setting-nfs-server-client-centos-7/

Aktuelle Version vom 28. Mai 2019, 11:25 Uhr

NFS-Server einrichten

Als erstes müssen die NFS-Tools installiert werden

yum install nfs-utils nfs-utils-lib

Nun müssen die NFS-Services gestartet werden

systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

Welches Verzeichnis soll freigegeben werden? Wir erstellen ein gemeinsames Verzeichnis, dieses muss von jedem gelesen, beschrieben und ausführbar sein.

mkdir /share 
chmod 777 /share

Jetzt muss das gemeinsame Verzeichnis exportiert werden, dazu die Datei /etc/exports editieren

/share/     192.168.1.0/24(rw,sync,no_root_squash,no_all_squash)
/share Das gemeinsame Verzeichnis
192.168.1.0/24 IP Adressraum des Clients
rw Schreibrechte auf das gemeinsame Verzeichnis
sync Gemeinsames Verzeichnis synchronisieren
no_root_squash Root Privileg einschalten
no_all_squash Userbefugnisse einschalten

Anschliessend starten wir den NFS-Server neu

systemctl restart nfs-server

Clientseitige Konfiguration

Als erstes müssen die NFS-Tools installiert werden

yum install nfs-utils nfs-utils-lib

Nun müssen die NFS-Services gestartet werden

systemctl enable rpcbind
systemctl enable nfs-server
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

NFS-Shares auf Clients mounten

Einen Mountpoint auf dem Client erstellen

mkdir -p /mnt/nfs/share

Nun das Verzeichnis auf dem Client mounten

mount -t nfs 192.168.1.24:/share/ /mnt/nfs/share/

Da die Firewall auf dem Server unseren Client nicht kennte sollte jetzt eine Ausgabe dieser Art erscheinen

mount.nfs: access denied by server while mounting 192.168.1.24:/share

Eventuell kommt auch ein connection timed out error. Auf jeden Fall blockiert die Firewall des NFS-Servers die Verbindung. Wie findet man jetzt die Ports heraus, welche auf dem NFS-Server geöffnet werden müssen? Folgendes Kommando auf dem Client gibt die Ports aus

rpcinfo -p

mit ähnlicher Ausgabe wie folgender

   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  43602  status
    100005    1   udp  20048  mountd
    100024    1   tcp  49130  status
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  41856  nlockmgr
    100021    3   udp  41856  nlockmgr
    100021    4   udp  41856  nlockmgr
    100021    1   tcp  40313  nlockmgr
    100021    3   tcp  40313  nlockmgr
    100021    4   tcp  40313  nlockmgr

Jetzt folgendes auf dem NFS-Server ausführen um die Firewall für den Client zu öffnen (Warum eigentlich nur die TCP-Ports?)

firewall-cmd --permanent --zone=internal --add-port=111/tcp
firewall-cmd --permanent --zone=internal --add-port=49130/tcp
firewall-cmd --permanent --zone=internal --add-port=20048/tcp
firewall-cmd --permanent --zone=internal --add-port=2049/tcp
firewall-cmd --permanent --zone=internal --add-port=40313/tcp

--zone=internal ist hier angegeben, da nur das interne Netz auf den NFS-Server zugreifen soll. Man kann die Zone auch weglassen, es ist alles eine Sache der Sicherheit ;) . Danach die Firewall neu starten

firewall-cmd --reload

Ein weiteres Mal können wir nun das NFS-Share mounten

mount -t nfs 192.168.1.24:/share/ /mnt/nfs/share/

Jetzt sollte das NFS-Verzeichnis erreichbar sein ;)

NFS-Share auf Client prüfen

Um zu sehen ob das Verzeichnis gemountet ist kann der Befehl

mount

eingegeben werden. Es folgt ein ähnliche Ausgabe:

sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=16461924k,nr_inodes=4115481,mode=755)
.
.
.
systemd-1 on /mnt/nfs/data type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=22662)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
192.168.1.24:/share on /mnt/nfs/share type nfs4 (rw,relatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.10,local_lock=none,addr=192.168.1.24)
.
.
.

In der letzten Zeile steht unser NFS-Share.

Auto mount des NFS-Share (Bootfest)

Um unser NFS-Verzeichnis beim Boot des Servers zu mounten müssen wir folgendes in der Datei /etc/fstab hinzufügen

192.168.1.24:/share/ /mnt/nfs/share/ nfs rw,sync,hard,intr 0 0

Damit sollte die Datei /etc/fstab ähnlich folgender Ausgabe aussehen

#
# /etc/fstab
# Created by anaconda on Thu Apr  4 16:43:37 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=9b2347ab-23c0-463e-9cb8-a4ddf9f4dfcb /                       xfs     defaults        0 0
UUID=a96af4ed-b427-453e-a222-7e4f4ddddf81 /boot                   xfs     defaults        0 0
UUID=d88cde23-912d-4548-8f49-08beefefef15 swap                    swap    defaults        0 0
192.168.1.24:/share/                      /mnt/nfs/share          nfs     defaults,nofail,x-systemd.automount     0 0

Jetzt das System rebooten und es sollte das Verzeichnis gemountet sein (prüfen, siehe oben)

Quelle: https://www.unixmen.com/setting-nfs-server-client-centos-7/