Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:server:nfs]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
anwenderwiki:server:nfs [2017/12/04 19:43]
sven
anwenderwiki:server:nfs [2017/12/04 19:48] (aktuell)
sven
Zeile 1: Zeile 1:
 +====== 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.
 +
 +<note important>​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.</​note>​
 +
 +=== Ü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):
 +<​code>​
 +lsmod | grep lockd
 +</​code>​
 +zeigt eine Zeile, die mit 
 +<​code>​
 +lockd ...
 +</​code>​
 +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:
 +<​file>​
 +# nfs: nlockmgr auf einen festen Port legen
 +options lockd nlm_udpport=4002 nlm_tcpport=4002
 +</​file>​
 +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