Richtiges Verwalten von NFS- und SAMBA-Dämonen

Wichtung: 4

Beschreibung: Die Kandidaten sollen in der Lage sein, die NFS-, smb- und nmb-Dämonen zu verwalten.

Wichtigste Wissensgebiete:
Einbinden von Netzwerkdateisystemen via NFS.
Konfiguration von NFS um lokale Dateisysteme zu exportieren.
Start, Stopp und Neustart des NFS-Servers.
Installieren und Konfigurieren von Samba mit dem vorhandenen GUI-Tools (swat) oder durch Editieren der /etc/smb.conf (Hinweis: Dieses Gebiet schließt fortgeschrittenes Wissen über NT-Domänen bewusst aus, beinhaltet jedoch das einfache Benutzen gemeinsamer Home-Verzeichnisse und Drucker sowie die Konfiguration des nmbd als WINS-Client).

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:
/etc/exports
/etc/fstab
/etc/smb.conf
mount
umount

Network File System (NFS)

Freigaben im Netzwerk sind eine feine Sache. Man kann ohne Austausch von beschreibbaren Medien auf Dateien zugreifen, die sich auf einem anderen Rechner/Server befinden. Das Network File System (kurz NFS) ermöglicht die Freigabe und den Zugriff von bzw. auf Verzeichnisse. NFS ist der Standard für die Dateifreigabe von Unix/Linux.

Zugriff auf NFS-Freigaben

NFS-Freigaben werden mit dem Mount-Befehl in das Dateisystem eingehangen. Folgendes Beispiel verdeutlicht die Syntax, um NFS-Freigaben einzubinden:

mount -t nfs petersPC:/home/public /mnt/freigabe_petersPC

Mit der Option -t wird das Dateisystem (in diesem Fall logischerweise NFS) festgelegt. petersPC ist der Remote-Rechner, auf dem sich die NFS-Freigabe befindet. Nach dem Doppelpunkt erfolgt der absolute Pfad des Freigabeverzeichnisses.

Natürlich kann man in der Datei /etc/fstab festlegen, dass die NFS-Freigabe automatisch nach dem Starten des Linux-Betriebssystems eingehangen wird:

//Auszug /etc/fstab

petersPC:/home/public /mnt/freigabe_petersPC nfs defaults 0 0

Erstellen von NFS-Freigaben

Das NFS-Dateisystem basiert auf Remote Procedure Calls (RPC), welches den "entfernten Zugriff" ermöglicht, also den Zugriff von Remote-Host auf den Server. Für die Verwaltung des RPC-System bzw. für die Zuweisung der Ports ist der so genannte portmapper zuständig. Der portmapper weist den einzelnen Prozeduren einen Port oberhalb von 10000 zu. Damit NFS-Freigaben erstellt werden können, muss als erstes der portmapper-Dämon gestartet sein:

// Starten von portmapper

/etc/init.d/portmap start

// Anzeigen der RPC-Dienste

# rpcinfo -p
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper

Der Befehl rpcinfo -p zeigt die auf der Maschine laufenden RPC-Dienste an. Nun sind die Grundlagen für die NFS-Dateifreigabe geschaffen. Als nächstes müssen die eigentlichen Freigaben deklariert werden. Dies erfolgt in der Datei /etc/exports:

# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
/home/freigabe/public (ro,all_squash)
/home/freigabe/all 192.168.2.0/24(rw,async)
/home/freigabe/general *.heimnetz.de(ro)

/home/freigabe/rechner1 rechner1(rw,async,no_root_squash)
/home/freigabe/rechner2 rechner2(rw,async,no_root_squash)

Die Optionen im Detail:

rw = Client hat Schreib- und Leserechte
ro = Client hat nur Leserechte
root_squash = Die UID/GID 0 (z. B. die von root) auf der Client-Seite wird nobody übersetzt. Somit werden keine Root-Rechte auf der Freigabe erstellt.
no_root_squash = schaltet das Root-Squashing aus
all_squash = Ähnlich wie root_squash, nur dass alle Benutzer automatisch mit den Rechten nobody arbeiten
anonuid, anongid = Der Benutzer nobody benutzt jetzt UID und GID definiert durch diese Optionen.

Jetzt müssen die rpc.mountd und rpc.nfs Daemons gestartet werden, um einen laufenden NFS-Server zu bekommen. Hier eine Übersicht der notwendigen Dämonen und Dateien:

- portmapper
- rpc.nfsd
- rpc.mountd
- /etc/exports

SMB-Server - Samba-Freigaben für Windows-Clients

Der Datenaustausch zwischen dem Windows- und Linux-Betriebsystemen wird durch den so genannten SAMBA-Server bzw. SAMBA-Client ermöglicht, der dafür sorgt, dass ein Linux-Rechner auf die Windows-Freigaben zugreifen kann bzw. dieser Freigaben für die Windows-Rechner erstellt.

Einhängen von Samba-Freigaben

Das Einhängen von Samba-Freigaben erfolgt nach demselben Prinzip wie bei den NFS-Freigaben, lediglich das Dateisystem ist ein anderes:

//Anmelden mit Gast-Account
mount -t smbfs -o guest //petersPC/freigabe /mnt/freigabe_petersPC

//Mounten mit smbmount
smbmount -o guest //petersPC/freigabe /mnt/freigabe_petersPC

//Anmelden mit Benutzerdaten
mount -t smbfs -o username=peter,password=abcde //petersPC/freigabe /mnt/freigabe_petersPC

Erstellen von Samba-Freigaben

Um Samba-Freigaben zu erstellen, muss auf dem Rechner der Samba-Server installiert und gestartet sein. Dazu müssen zwei Daemonen gestartet werden:

/etc/init.d/smbd start
/etc/init.d/nmbd start

smbd = stellt Datei- und Druckerdienste zur Verfügung
nmbd = NetBIOS-Nameserver, ähnlich dem WINS-Dienst

Samba wird zentral in der Konfigurationsdatei /etc/smb.conf konfiguriert. Neben der globalen Sektion, in der allgemeine Einstellungen zum Samba-Server definiert werden. Anschließend folgen die Freigaben selbst, in folgendem Beispiel die Freigaben Home, Freigabe und Portage:

// Auszug /etc/smb.conf

[global]

;String, mit dem sich der Samba-Server meldet
;(%h = Hostname, %v = Samba-Version)
server string = Tuxmobil %v
comment = Samba 3.0.5

;Für "myworkgroup" den Namen der Arbeitsgruppe einsetzen,
;der auch auf dem Win-PC eingetragen ist
workgroup = ARBEITSGRUPPE

guest account = nobody
keep alive = 60
os level = 2
kernel oplocks = false
security = share

;Rechner eintragen, die auf die Freigaben zugreifen dürfen
hosts allow = 192.168.0.

encrypt passwords = yes
printing = bsd
printcap name = /etc/printcap
load printers = yes
socket options = TCP_NODELAY
map to guest = Bad User
wins support = no

;IP-Adressen der Interfaces, die Samba abfragen soll
interfaces = 192.168.0.5/255.255.255.0


[Home] # Name der Freigabe
comment = Passwort benötigt! # Kommentar zur Freigabe
path = /home/chef # Verzeichnis, dass freigegen wird
user = chef # Benutzer, die darauf zugreifen dürfen
public = no # Ist das Verzeichnis öffentlich zugänglich?
writeable = yes # Man hat Schreibzugriff

[Freigabe] # Name der Freigabe
comment = Freigabe # Kommentar zur Freigabe
path = /home/chef/temp # Verzeichnis, dass freigegen wird
public = yes # Ist das Verzeichnis öffentlich zugänglich?
writable = yes # Man hat Schreibzugriff
chmod = 777 # Alle dürfen schreiben und ausführen

[Portage] # Name der Freigabe
comment = Gentoo-Portage # Kommentar zur Freigabe
path = /usr/portage/distfiles # Verzeichnis, dass freigegen wird
public = yes # Ist das Verzeichnis öffentlich zugänglich?
writable = yes # Man hat Schreibzugriff

Drucker freigeben

Mithilfe von Samba ist es auch möglich, Drucker für andere Rechner im Netzwerk freizugeben. Wenn man alle Drucker freigeben möchte, dann schreibt man folgendes in die /etc/smb.conf:

// Alle Drucker freigeben. 
// Freigabe muss printers lauten
// Auf Path müssen alle Schreibrechte haben

[printers]
comment = Alle Drucker
path = /tmp
create mask = 0700
printable = Yes
browseable = No
guest ok = Yes

Möchte man nur einen bestimmten Drucker freigeben, so muss man den Druckernamen explizit angeben:

// Einzelnen Drucker freigeben

[Samsung]
comment = Samsung ML2200
path = /tmp
create mask = 0700
guest ok = Yes
printable = Yes
printer name = lp2

Samba und WINS

Samba als WINS-Client
Um einen Samba Server an einen bestehenden WINS-Server anzuhängen, dessen Dienste und Namensauflösungen zu nutzen, muss folgendes in die Globale-Sektion eingetragen werden:

  [global]
...
wins server = 192.168.2.111
...

Samba als WINS-Server
Auch Samba kann als WINS-Server fungieren:

  [global]
...
wins support = yes
...

Weitere Informationen

http://www.selflinux.org/selflinux/html/nfs.html
http://www.pc-erfahrung.de/linux/linux-samba.html
http://www.linux-praxis.de/lpic1/lpi102/1.113.4.html