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.
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.
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.