Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:server:nfs]] 

NFS

Die linuxmuster.net stellte die Homeverzeichnisse der Benutzer den Clients via SAMBA zu Verfügung. Hier wird beschrieben, wie man dies alternativ vis NFS macht.

Nach allgemeiner Meinung gilt NFS als unsicher gegenüber Cifs, u.a. weil ein Client sich nur mit seiner IP-Adresse, nicht aber seiner MAC-Adresse ausweist.

Überblick

Die passenden Pakete müssen installiert werden. Dann müssen die mannigfaltigen Dienste auf feste Portnumern konfiguriert und diese beim Firewall eingetragen werden. Abschließend kann man von einem Client aus testen.

Vorgehensweise

1. Die Pakete nfs-kernel-server und nfs-common installieren.

2. Die benötigten Freigaben werden in die Datei /etc/exports eingetragen. Für die Home-Verzeichnisse wird der ganze Baum freigegeben (10.16.1.1 muss durch die IP-Adresse des Servers ersetzt werden):

/home 10.16.1.1/12(rw,sync,no_subtree_check)

3. Die Dienste müssen auf feste Portnummern gelegt werden.

a) Als Orientierung dient das Programm rpcinfo -p. Es sollte schließlich (nach erfolgter richtiger Konfiguration, also am Ende dieses Artikels) folgendes erscheinen:

 18:32/0 arktur /etc # rpcinfo -p
 Program Vers Proto   Port
  100000    2   tcp    111  portmapper
  100000    2   udp    111  portmapper
  100024    1   udp   4000  status
  100024    1   tcp   4000  status
  100003    2   udp   2049  nfs
  100003    3   udp   2049  nfs
  100003    4   udp   2049  nfs
  100021    1   udp   4002  nlockmgr
  100021    3   udp   4002  nlockmgr
  100021    4   udp   4002  nlockmgr
  100021    1   tcp   4002  nlockmgr
  100021    3   tcp   4002  nlockmgr
  100021    4   tcp   4002  nlockmgr
  100003    2   tcp   2049  nfs
  100003    3   tcp   2049  nfs
  100003    4   tcp   2049  nfs
  100005    1   udp   4003  mountd
  100005    1   tcp   4003  mountd
  100005    2   udp   4003  mountd
  100005    2   tcp   4003  mountd
  100005    3   udp   4003  mountd
  100005    3   tcp   4003  mountd
  100011    1   udp   4004  rquotad
  100011    2   udp   4004  rquotad
  100011    1   tcp   4004  rquotad
  100011    2   tcp   4004  rquotad

b) Der Portmapper hat immer den Standardport 111. Daran muss nichts geändert werden. Genauso hat der nfs-Dämon immer den Standardport 2049. Alle weiteren Dienste benutzen üblicherweise wechselnde Ports.

c) rpc.statusd
In der Datei /etc/default/nfs-common wird die vorhandene Variable

STATDOPTS=„–port 4000 –outgoing-port 4001“

gesetzt. Die Überprüfung erfolgt durch Neustart von nfs-common und rpcinfo -p (/etc/init.d/nfs-common restart).

d) rpc.mountd
In der Datei /etc/services wird der Eintrag für den rpc.mountd entweder ergänzt oder verschoben. Die entsprechenden Zeilen müssen hinterher lauten:

mount           4003/udp                # rpc.mountd
mount           4003/tcp                 # rpc.mountd

Überprüfung durch Neustart von nfs-kernel-server und rpcinfo -p (/etc/init.d/nfs-kernel-server restart).

e) rpc.rquotad
In der Datei /etc/services wird der Eintrag für den rpc.rquotad ergänzt. Die entsprechenden Zeilen müssen hinterher lauten:

rquotad         4004/udp                 # rpc.rquotad
rquotad         4004/tcp                 # rpc.rquotad

Überprüfung durch Neustart von quotarpc und rpcinfo -p (/etc/init.d/quotarpc restart).

f) rpc.nlockmgr
Um festzustellen, welche Variante richtig ist, prüfen Sie, ob der lockd als Modul geladen ist (als root am Server):

lsmod | grep lockd

zeigt eine Zeile, die mit

lockd ...

beginnt. Damit ist lockd als Modul geladen und Variante 1 ist richtig, andernfalls ist Variante 2 richtig.

Variante 1: lockd als Modul

Man kann dem lockd, der als Modul geladen wird, die Portnummer als Option mit auf den Weg geben, dazu erzeugt man in dem Verzeichnis /etc/modprobe.d/ die Datei lockd. Sie erhält folgenden Inhalt:

# nfs: nlockmgr auf einen festen Port legen
options lockd nlm_udpport=4002 nlm_tcpport=4002

Danach muss (sicherheitshalber) der Server neu gestartet werden, damit die Optionen geladen werden.

Variante 2: lockd in den Kernel kompiliert

Da der lockd in den Kernel kompiliert worden ist, kann seine Portnummer nur durch einen Parameter in der Kernelzeile beeinflusst werden. In der Datei /boot/grub/menu.lst wird die Zeile „kernel …“ des zu bootenden Kernels um die Parameter lockd.udpport=4002“ und „lockd.tcpport=4002 ergänzt. Der Eintrag lautet damit:

title           Debian GNU/Linux, kernel 2.6.24-3-server
root            (hd0,0)
kernel          /boot/vmlinuz-2 ... sda1 ro lockd.udpport=4002 lockd.tcpport=4002
initrd          /boot/initrd.img-2.6.24-3-server
savedefault

Überprüfung nach einem Neustart des Servers durch rpcinfo -p.

3. Alle Ports, die für dem Server bekannte Rechner freigegeben sein sollen, müssen in der Datei /etc/linuxmuster/allowed_ports eingetragen werden. Alle hier aufgelisteten Ports werden in die Firewallregeln eingetragen. Die Datei lautet nach den Eintragungen:

#
# List of allowed intranet ports.
# Allowed only for imported workstations. 
#
# nfs: portmap(111 u|t), mountd(4003 u|t), nfs(2049 u|t), status(4000,4001 u|t)
#      nlockmgr(4002 u|t) rquotad(4004 u|t)
# protocol tcp|udp        portlist

tcp 111,2049,4000:4004,domain,ldap,ldaps,ipp,auth,sunrpc,netbios-ssn,microsoft-ds,1095:1125,webcache
udp 111,2049,4000:4004,domain,netbios-ns,netbios-dgm,9000:9100

Überprüfung nach Neustart von linuxmuster-base (/etc/init.d/linuxmuster-base restart) von einem registrierten Linuxclient aus durch „rpcinfo -p server“. Es sollten die angegebenen Ports aufgelistet werden. Außerdem mit dem Portscanner „nmap server“ die freigegebenen Ports testen.

4. Wenn alle diese Vorbereitungsschritte erledigt sind, kann man von einem registrierten Linuxclient aus den Baum mit dem Befehl mount server:/home /home einhängen.

Anmerkungen

  • Durch ein Update des Servers können einige dieser Änderungen wieder rückgängig gemacht werden. Daher sollte man sich Kopien der geänderten Dateien sichern.
 [[anwenderwiki:server:nfs]] anwenderwiki/server/nfs.txt · Zuletzt geändert: 2017/12/04 19:48 von sven