SAMBA konfigurieren

Sie können den SAMBA-Server konfigurieren, indem Sie in der Datei /etc/samba/smb.conf die Voreinstellungen ändern oder neue Einstellungen hinzufügen. Weitere Informationen zu jeder Einstellung finden Sie in den Kommentaren der Datei /etc/samba/smb.conf oder indem Sie wie folgt die Manpage von /etc/samba/smb.conf an der Komandozeile aufrufen:

man smb.conf

[Tipp]

Bevor Sie die Konfigurationsdatei bearbeiten, sollten Sie eine Kopie der Originaldatei anfertigen und mit Schreibschutz versehen, damit Sie jederzeit die Originaleinstellungen wiederherstellen oder als Referenz nutzen können.

Kopie der Datei /etc/samba/smb.conf anfertigen:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original

Bearbeiten Sie jetzt die Datei /etc/samba/smb.conf und machen Sie ihre Änderungen.

Server

In addition to the SAMBA suite of file and printer sharing server applications, Ubuntu also includes other powerful server applications designed to provide additional network server functionality to Windows clients similar to the functionality provided by actual Windows servers. For example, Ubuntu offers centralized management of network resources such as computers and users via Directory Services, and facilitates the identification, and authorization of computers and users via Authentication Services.

The following sections will discuss SAMBA and the supporting technologies, such as Lightweight Directory Access Protocol (LDAP) server, and Kerberos authentication server in more detail. You will also learn about some of the available configuration directives available the SAMBA configuration file which facilitate network integration with Windows clients and servers.

Active Directory

Active Directory ist eine proprietäre Realisierung von Directory Services durch Microsoft und wird als Mittel zum Informationsaustausch von Netzwerkressourcen und Benutzern genutzt. Zusätzlich zur zentralen Verwaltung dieser Informationen agiert Active Directory als zentrale Stelle für Authentifikationssicherheit im Netzwerk. Damit kombiniert Active Directory Kompetenzen, die traditioneller Weise in seperaten, spezialisierten Anwendungen zu finden sind, um Integration, Verwaltung und Sicherheit von Netzwerkressourcen zu vereinfachen. Das SAMBA-Paket kann so konfiguriert werden, dass es Active Directory von einem Windows Domain Controller nutzt.

LDAP

Die LDAP-Serveranwendung bietet Windows-Rechnern eine dem Active Directory Service von Microsoft sehr ähnliche Funktionalität. Diese Directory Services beinhalten die Verwaltung der Identitäten und Beziehungen von Rechnern, Benutzern und Gruppen von Rechnern oder Benutzern, die Teil des Netzwerks sind und bieten ein konsistentes Mittel um diese Ressourcen zu beschreiben, zu lokalisieren und zu verwalten. Die frei verfügbare Realisierung von LDAP, die für Ubuntu vorhanden ist lautet OpenLDAP. Die Server-Dämonen, welche für die Handhabung von OpenLDAP-Directory Anfragen und für die Übertragung von Directory-Daten von einem Server zu anderen innerhalb von Ubuntu zuständig sind heißen slapd und slurpd. OpenLDAP kann in Kombination mit SAMBA genutzt werden um Datei-, Druck- und Directory Services ziemlich ähnlich einem Windows Domain Controller zu verwalten. Jedoch muss SAMBA mit LDAP-Unterstützung compiliert werden.

Kerberos

Das Kerberos Authentification Security System bietet einen standardisierten Service für Authentifizierung von Rechner und Benutzer durch einen zentralisierten Server, welcher verschlüsselte Berechtigungstikets für Authorisierungen an anderen Rechnern, die Kerberos nutzen bewilligt. Die Vorteile von Kerberos-Authentifizierung beinhaltet gegenseitige Authentifizierung, bevollmächtigte Authentifikation, Interoperabilität und vereinfachtes Vertrauensmanagement. Die primären Server-Dämonen für die Durchführung der Kerberos-Authentifikation und Kerberos-Datenbank Administration unter Ubuntu sind krb5kdc und kadmin. SAMBA kann Kerberos als Mechanismus für Authentifizierung von Rechnern und Benutzern gegenüber einem Windows Domain Controller nutzen. Um dies zu erreichen muss auf dem Ubuntu-System Kerberos installiert sein und die Konfigurationsdatei /etc/samba/smb.conf muss so konfiguriert werden, dass der richtige Realm- und Security-Modus eingestellt ist. Editieren Sie zum Beispiel die Datei /etc/samba/smb.conf und geben Sie folgende Werte ein:

realm = DOMAIN_NAME

security = ADS

anschliesend speichern sie die Datei.

[Tipp]

Vergessen sie nicht DOMAIN_NAME im Beispiel oben mit dem wirklichen Namen ihrer spezifischen Windows Domain zu ersetzen.

Damit diese Änderungen wirksam werden, müssen Sie die SAMBA-Dienste neu starten. Starten Sie die SAMBA-Dienste mit der Eingabe des folgenden Befehls in der Kommandozeile neu:

sudo /etc/init.d/samba restart

Computernamen

In Directory Services werden Rechnerkonten dazu verwendet, die Netzwerkrechner eindeutig zu identifizieren und diese unter Sicherheitsgesichtspunkten auf gleiche Art wie Benutzer zu behandeln. Rechnerkonten können genauso wie Benutzerkonten Passwörter besitzen und sind Bestandteile um Netzwerkressourcen auf die gleiche Art und Weise wie Benutzer zu autorisieren. Beispielsweise kann einem Benutzer mit gültigen Zugangsdaten von einem Rechner ohne gültige Zugangsdaten aufgrund der Netzwerkeinstellungen der Zugriff auf Netzwerkresourcen verboten werden, weil dies von einem nicht autorisiertem System aus geschieht.

Ein Rechnerkonto kann in die Passwortdatei von SAMBA hinzugefügt werden, wenn der Rechner, der hinzugefügt werden soll, zunächst in Form eines gültigen Benutzerkontos in der lokalen Passwortdatenbank existiert. Um ein Rechnerkonto in der Passwortdatei von SAMBA einzutragen, geben Sie folgende Befehlszeile in ihre Konsole ein:

sudo smbpasswd -a -m COMPUTER_NAME

[Tipp]

Bitte achten Sie darauf, COMPUTER_NAME mit dem Namen des PCs, welcher ein Rechnerkonto bekommen soll, zu ersetzen.

Daitezugriffsrechte

Dateizugriffsrechte definieren die genauen Rechte, die der jeweilige Rechner oder Benutzer zu einem bestimmten Verzeichnis, einer Datei oder einem Satz von Dateien besitzt. Diese Rechte können durch das Bearbeiten der Datei /etc/samba/smb.conf verändert werden. Wenn man zum Beispiel eine SAMBA-Freigabe mit dem Namen sourcedocs hat und diese der Gruppe namens planning nur mit Lesezugriff (read-only) zur Verfügung stellen möchte, aber der Gruppe authors und dem Benutzer richard auch Schreibrechte geben möchte, so können Sie die Datei /etc/samba/smb.conf editieren und folgende Zeilen unter dem Eintrag [sourcedocs] hinzufügen:

read list = @planning

write list = @authors, richard

Speichern sie die Datei /etc/samba/smb.conf, damit die Änderungen wirksam werden.

Eine weitere mögliche Zugangsberechtigung stellt der administrative Zugang für eine bestimmte, gemeinsam genutze Ressource dar. Benutzer mit administrativen Rechten für die jeweilige Freigabe dürfen darin jede Information lesen, schreiben oder verändern. Beispielsweise kann man dem Benutzer melissa administrative Rechte für die Freigabe namens sourcedocs zuteilen, wenn man die Datei /etc/samba/smb.conf öffnet und folgenden Zeilen unter dem Eintrag [sourcedocs] hinzufügt:

admin users = melissa

Speichern sie die Datei /etc/samba/smb.conf, damit die Änderungen wirksam werden.

Clients

Ubuntu beinhaltet Client-Anwendungen und Möglichkeiten um Netzwerkressourcen über das SMB-Protokoll aus zu tauschen. So erlaubt das Programm namens smbclient den Datenaustausch mit entfernten Dateisystemen ähnlich einem File-Transfer-Protokoll (FTP) Client. Um ein gemeinsames Verzeichnis mit dem Namen documents, welches von einem Windows-Rechner namens bill angeboten wird, zu erreichen kann man für smbclient folgendes Kommando in der Befehlszeile eingeben:

smbclient //bill/documents -U <username>

You will then be prompted for the password for the user name specified after the -U switch, and upon successful authentication, will be presented with a prompt where commands may be entered for manipulating and transferring files in a syntax similar to that used by non-graphical FTP clients. For more information on the smbclient utility, read the utility's manual page with the command:

man smbclient

Local mounting of remote network resources using the SMB protocol is also possible using the smbfs program.

To mount a shared folder named project-code on a Windows server named development as the user dlightman to your Ubuntu system's /mnt/pcode mount-point (the mountpoint you choose should be an empty folder), you would issue this command at the prompt:

sudo mount -t smbfs -o username=dlightman //development/project-code /mnt/pcode

Man wird dann nach dem Benutzerpasswort gefragt und nach erfolgreicher Authentifizierung steht einem der Inhalt der Freigabe unter dem im letzten Argument des mount-Befehls fest gelegten Einhängepunkt zur Verfügung. Um die Verbinung zu trennen genügt einfach das Kommando umount, welches man ganau so wie bei allen anderen eingehängten Datei-Systemen nutzen kann:

sudo umount /mnt/pcode

Benutzerkonten

Benutzerkonten ermöglicht Personen mit einem bestimmten Authorisierungsgrad, bestimmte Computer- und Netzwerkressourcen zu benutzen. Typischerweise wird ein Benutzerkonto in einer Netzwerkumgebung jeder Person, die einen Computer oder das Netzwerk benützen darf, zugeordnet und gĺeichzeitig definieren Zugriffsrechte und Richtlinien, welche speziellen Rechte ein Benutzerkonto hat. Um SAMBA-Netzwerkbenutzer für ihr Ubuntu-System zu definieren, können Sie densmbpasswd-Befehl verwenden. Um zum Beispiel einen SAMBA-Benutzer mit dem Namen jseinfeld zu ihrem System hinzuzufügen, würden Sie den folgenden Befehl in der Kommandozeile eingeben:

smbpasswd -a jseinfeld

Die Anwendung smbpasswdwird Sie dann auffordern, ein Passwort f

New SMB password:

Geben Sie das Passwort, das Sie für den Benutzer festlegen möchten ein, und smbpasswd wird Sie auffordern, das Passwort erneut einzugeben:

Retype new SMB password:

Geben Sie das Passwort erneut ein und smbpasswd wird den Eintrag für den Benutzer in der SAMBA Passwortdatei hinzufügen.

Gruppen

Gruppen definieren eine Sammlung von Rechnern oder Benutzern, welche einen gemeinsamen Level an Zugriffsrechten für bestimmte Netzwerkressourcen besitzen und bieten damit einen gröberen Level für die Zugangskontrolle. Wenn man zum Beispiel eine Gruppe qa definiert und diese die Benutzer freda, danika und rob, sowie eine weitere Gruppe support die Benutzer danika, jeremy und vincent enthält, so stehen die Netzwerkressourcen, welche für die Gruppe qa frei geschaltet sind, den Benutzern freda, danika und rob aber nicht jeremy oder vincent zur Verfügung. Da die Benutzerin danika in beiden Gruppen eingetragen ist kann sie auch auf alle Ressourcen zugreifen, die für eine der beiden Gruppen frei geschalten ist. Die anderen Benutzer aber können nur die für ihre Gruppe frei gegebenen Ressourcen nutzen.

Um in der SAMBA-Konfigurationsdatei /etc/samba/smb.conf eine Gruppe anzulegen muss man dem Gruppennamen ein "@" Symbol voransetzen. Wenn Sie zum Beispiel eine Gruppe namens sysadmin in einer bestimmen Sektion der Konfigurationsdatei anlegen wollen, müssen Sie den Gruppennamen als @sysadmin eingeben.

Gruppenrichtlinie

Die Gruppenrichtlinien definieren bestimmte SAMBA-Konfigurationen in Bezug auf die Domäne oder Arbeitsgruppe zu der der Rechner gehört und auch andere globale Einstellungen für den SAMBA-Server. Wenn zum Beispiel der SAMBA-Server zur Windows-Arbeitsgruppe LEVELONE gehört, dann kann man die Datei /etc/samba/smb.conf folgender Maßen ändern:

workgroup = LEVELONE

Speichern Sie die Datei und starten Sie SAMBA neu, damit die Änderungen wirksam werden.

Andere wichtige, globale Richtlinien beinhaltet der Server String, welcher den NETBIOS-Servernamen definiert, damit Ubuntu diesen an andere Rechner im Windows-basierten Netzwerk schicken kann. Ihr Ubuntu-System wird dann von Windows-Clients und anderen Rechnern, die per SMB-Protokoll kommunizieren mit diesem Namen anerkannt. Zusätzlich können Sie den Namen und die Position der SAMBA-Server-Logdatei mit Hilfe der log file Anweisung in der Datei /etc/samba/smb.conf konfigurieren.

Einige der zusätzlichen Anweisungen, welche globale Gruppenrichtlinien regeln beinhalten Spezifiaktionen über die globale Natur aller frei gegebenen Ressourcen. Zum Beispiel betreffen bestimmte Anweisungen unter dem Kopfteil [global] der Datei /etc/samba/smb.conf alle Freigaben bis eine überschreibende Anweisung unter den Kopfteil einer bestimmten Freigabe eingetragen wird. Um alle Freigaben als durchsuchbar für alle Clients des Netzwerks zu machen gibt man die Anweisung browseable mit einem booleanen Argument unter den Kopfteil [global] der Datei /etc/samba/smb.conf ein. Folgende Code-Zeile muss dazu eingetragen werden:

browseable = true

unter die [global] Sektion von /etc/samba/smb.conf, dann können alle Freigaben von Ihrem Ubuntu System von allen autorisierten Clients via SAMBA durchsucht werden, bis eine bestimmte Freigabe die Anweisung browseable = false enthält, welches die globalen Anweisungen überschreibt.

Andere Beispiele, welche auf die gleiche Weise funktionieren, sind die Anweisungen public und writeable. Die Anweisung public nimmt einen booleanen Wert und entscheidet, ob eine bestimmte freigegebene Ressource für alle Clients sichtbar ist, authorisiert oder nicht. Die Anweisung writeable nimmt ebenfalls einen booleanen Wert und definiert, ob eine bestimmte freigegebene Ressource von allen Netzwerk-Clients beschrieben werden kann.