Samba-Server Grundlagen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Ein Samba-Server unterstützt bei der Integration von Windows- und Unix/Linux-Rechnern.[1] Es können gegenseitig zum Beispiel Dateien getauscht oder auch Drucker freigegeben werden. Der Name Samba hat seinen Ursprung beim SMB-Protokoll (Server Message Block), das unter Windows für den netzbasierten Datenaustausch eingesetzt wird. Aktuell wird an Stelle von SMB auch immer wieder vom "Common Internet File System" (CIFS) gesprochen. CIFS ist eine Weiterentwicklung von SMB und wurde ursprünglich von Microsoft entwickelt.[2]

Ausführliche Informationen über Samba/CIFS in deutscher Sprache bietet ein online frei verfügbares Buch von Oreilly. Es ist unter Oreilly Samba 2. Auflage zugänglich. Außerdem stellt die Ubuntu-Community eine ausführliche Dokumentation bezüglich Samba zur Verfügung: Samba Community. Dieser Artikel stellt die Grundlagen im Umgang mit einem Samba-Server vor, der auf einem Ubuntu 10.04 LTS eingerichtet wird.

Server

Installation

Am Server wird das samba Paket[3] installiert, damit ein File- und Print-Server eingerichtet werden kann:

apt-get install samba

Konfiguration

Die zentrale Konfigurations-Datei findet sich unter

sudo vi /etc/samba/smb.conf

wieder. Eine Reihe von Informationen, wie der Samba-Server mittels dieser Datei konfiguriert wird, bietet die zugehörige man-Page:

man smb.conf

Die Datei ist in mehrere Bereiche unterteilt. Der globale Abschnitt ([global]) beinhaltet die Grundeinstellungen, diesem können andere Abschnitte für die Freigabe von Ressourcen folgen.

Als ersten Konfigurationsschritt wird in der Sektion "Authentication" folgende Zeile auskommentiert:

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
   security = user

Durch diese Sicherheits-Maßnahmen wird ein bestehender User am Server für den Zugriff auf die Samba-Shares benötigt.[4]

Netzwerk-Interfaces

Besitzt ihr Server mehrere Netzwerk-Interfaces, so kann es sein, dass der smb-Server an das falsche Interface gebunden wird. Dazu kann im "[global]"-Bereich der smb.conf die Zeile

interfaces = 192.168.1.1/24

eingefügt werden. In diesem Beispiel lauscht der der smb-Server auf den Adressbereich im 192.168.1.1/24 Netz.[5]

smb-Passwort hinzufügen

Der folgende Befehl legt ein smb-Passwort für den bestehenden Benutzer "smbuser" an. Dass dieser Schritt für einen bestehenden User durchgeführt wird ist insofern wichtig, da jeder smb-User einen gültigen Account am Server benötigt. Mit dem vergebenen Passwort kann später auf das smb-Share zugegriffen werden:

sudo smbpasswd -a smbuser

Da das smb-Passwort nicht mit dem Passwort des eigentlichen Accounts übereinstimmen muss, kann es durchaus aufwendig sein, die unterschiedlichen Passwörter zu verwalten. Unter Ubuntu existiert das Paket "libpam-smbpass", das dazu benutzt werden kann, um die Linux- und smb-Passwörter synchron zu halten.

Damit getätigte Änderungen wirksam werden, muss der Server die Konfiguration neu laden:

sudo service smbd reload

Zuvor können die modifizierten Einstellungen auch auf ihre Korrektheit geprüft werden:

testparm /etc/samba/smb.conf

Eine Ressource hinzufügen

Im folgenden Konfigurations-Beispiel werden die Home-Verzeichnisse der smb-User freigegeben. Im ersten Schritt wird in der Datei "smb.conf" eine neue Ressource hinzugefügt:

sudo vi /etc/samba/smb.conf

Dazu wird der folgende Abschnitt auskommentiert:

# Un-comment the following (and tweak the other settings below to suit)
# to enable the default home directory shares.  This will share each
# user's home directory as \\server\username
[homes]
   comment = Home Directories
   browseable = yes

Nun sind die Home-Verzeichnisse für alle Benutzer zugänglich, d.h. die Benutzer können gegenseitig auf ihre User-Verzeichnisse zugreifen (natürlich vorausgesetzt ein smb-Passwort wurde gesetzt und der User besitzt somit Zugriff auf den smb-Server). Der Parameter "browseable" ermöglicht Windows-Benutzern das browsen der Samba-Freigabe mit dem Windows-Explorer. Um restriktiver mit den Home-Verzeichnissen umzugehen, kann folgende Zeile auskommentiert werden:

# By default, \\server\username shares can be connected to by anyone
# with access to the samba server.  Un-comment the following parameter
# to make sure that only "username" can connect to \\server\username
# This might need tweaking when using external authentication schemes
   valid users = %S

Dann kann z.B. mit dem User "tktest" nicht mehr auf das Home-Verzeichnis von "smbuser" zugegriffen werden (aus Client-Sicht):

sudo mount -t smbfs //192.168.56.101/smbuser /media/ -o username=tktest
Password: 
mount error(13): Permission denied

Weitere Sicherheitsmaßnahmen werden z.B. unter Samba Security (help.ubuntu.com) oder auch Securing samba (samba.org) vorgestellt.

Client

Installation

Am Client werden folgende Paket für den Zugriff auf den smb-Server benötigt:

sudo apt-get install smbfs smbclient

Mit dem smbclient kann ein erster Verbindungstest durchgeführt werden:

smbclient -U smbuser -L 192.168.56.101

smb-Share einhängen

Mit dem mount-Befehl kann dann das smb-Verzeichnis lokal eingebunden werden:

sudo mount -t cifs //192.168.56.101/smbuser /media/ -o username=smbuser

Nach diesem Befehl ist das smb-Verzeichnis unter "/media/ zugänglich.

Einzelnachweise

  1. Samba, 2. Auflage www.oreilly.de
  2. SMB and CIFS overview (msdn.microsoft.com)
  3. Samba Package (packages.ubuntu.com)
  4. Samba Security (help.ubuntu.com)
  5. http://tldp.org/HOWTO/SMB-HOWTO-6.html

Das könnte Sie auch interessieren

OpenSSH Public Key Authentifizierung unter Ubuntu
OPNsense mit Grafana visualisieren
Smartmontools unter Ubuntu ohne Postfix und MySQL installieren