Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


'Stand-alone'-Server

Installation ] Vorbemerkungen ] [ 'Stand-alone'-Server ] Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]


Bei einen 'Stand-alone'-Server handelt es sich um einen frei stehenden, eigenständiger Server, der Arbeitsgruppen-Server oder ein Mitglied einer Arbeitsgruppen-Umgebung sein kann. Der Server kontrolliert keine Domäne und übernimmt auch keine Rolle in einer Domäne.
Im Folgenden wird vorgestellt, wie Samba als einfacher 'Stand-alone'-Server für Windows-Clients (z.B. in einer Arbeitsgruppe) eingesetzt werden kann. Dabei wird der Einsatz anhand einer praxisorientierten Konfiguration erläutert. Individuelle Änderungen und Erweiterungen können aufbauend auf diesem Beispiel, leicht realisiert werden. Der nun vorgestellte 'Stand-alone'-Server weißt dabei folgende Eigenschaften auf:

  • Jeder Benutzer sollte ein eigenes Home-Laufwerk bekommen. (share [homes])
  • Für alle Benutzer gibt es eine gemeinsames Laufwerk. (share [public])
  • Alle Benutzer und Gäste können auf ein Laufwerk nur lesend zugreifen. (share [readonly]).
  • Es gibt ein gemeinsames Laufwerk für Benutzer und Gäste. Hier darf gelesen und geschrieben werden. Das Laufwerk kann zum Austausch von Daten dienen. (share [tmp])
  • Der Samba-Server kann als Time-Server fungieren.
  • Der Samba Server kann als WINS-Server fungieren.

Dabei sind Gäste unbekannte Nutzer, die weder ein Login noch Passwort auf dem Samba-Server haben. Benutzer hingegen verfügen über ein Login und Passwort auf dem Samba-Server.

Vorbereitung

Bevor auf die eigentliche Konfiguration des Samba-Servers eingegangen wird, sollten noch einige vorbereitenden Maßnahmen bezüglich der Verzeichnisstruktur für die Freigaben getroffen werden. Samba benötigt für jede Freigabe (auch 'share' oder Laufwerk genannt) ein separates Verzeichnis.
Die '/home'-Verzeichnisse der einzelnen Benutzer brauchen in der Regel nicht extra angelegt werden, da diese bei der Erstellung der einzelnen Benutzer auf dem System erzeugt werden. Unter Debian befinden sich die '/home'-Verzeichnisse im Verzeichnis '/home'.
Für die anderen Freigeben empfiehlt es sich, innerhalb des '/home'-Verzeichnisses, ein Verzeichnis z.B. '/samba' zu erstellen, indem die notwendigen Freigaben wiederum als Verzeichnis angelegt werden ('/public', '/readonly', '/tmp').
Das folgende Schema verdeutlicht das Anlegen der Verzeichnisse:

                        +-/user_1 (755 user_1:users)
                        |
                        +-/user_2 (755 user_2:users)
/home (2775 root:staff)-+
                        +-/user_n (755 user_n:users) +-/public (775 root:users)
                        |                            |
                        +-/samba (771 root:users)----+-/readonly (755 root:users)
                                                     |
                                                     +-/tmp (777 root:users)

Das Anlegen der Verzeichnisse sollte als Benutzer 'root', mit den entsprechenden Berechtigungen geschehen. Die Zahl in den Klammen gibt den Oktal-Modus (z.B.: 'chmod 771 /home/samba') an, danach folgen Eigentümer und Gruppe (z.B.: 'chown root:users /home/samba').

Samba-Konfigurationsdatei 'smb.conf'

Bei Samba erfolgt die komplette Konfiguration in der Datei: 'smb.conf'. Die Konfigurationsdatei ist dabei in einzelne Sektionen eingeteilt. Dabei gibt es drei Standardnamen für Sektionen: '[global]', '[homes]' und '[printers]' (gelbe Markierung). Andere Namen von Sektionen (grüne Markierung) sind frei wählbar. Die Sektion '[printers]' fehlt in diesem Beispiel, da der Einsatz Samba als Netz-Drucker in einem späteren separaten Unterkapitel behandelt wird.

Die folgende Tabelle zeigt die Konfigurationsdatei: '/etc/samba/smb.conf' für den 'Stand-alone'-Server, der die erwähnten Eigenschaften (siehe oben) aufweist:

/etc/samba/smb.conf

[global]
        workgroup = ARBEITSGRUPPE
        netbios name = DEBIAN
        server string = Stand-alone-Server: %h
        interfaces = 192.168.1.10/255.255.255.0
        map to guest = Bad User
        username map = /etc/samba/smbusers
        log level = 1
        log file = /var/log/smb.log
        time server = Yes
        deadtime = 15
        keepalive = 30
        os level = 64
        preferred master = Yes
        wins proxy = Yes
        wins support = Yes

[homes]
        comment = Benutzer-Freigabe
        read only = No
        create mask = 0755
        browseable = No

[public]
        comment = Oeffentliche-Freigabe (Benutzer)
        path = /home/samba/public
        valid users = root, @root, @smb-admins, @users, @smb-users
        read only = No

[readonly]
        comment = ReadOnly-Freigabe (Benutzer)
        path = /home/samba/readonly
        write list = root, @root, @smb-admins
        guest ok = Yes

[tmp]
        comment = Tmp-Freigabe (Benutzer u. Gaeste)
        path = /home/samba/tmp
        read only = No
        create mask = 0777
        directory mask = 0777
        guest ok = Yes
        wide links = No

Innerhalb einer Sektion befinden sich Parameter, die die Eigenschaften der einzelnen Freigaben festlegen. Die dabei verwendeten Schlüsselworte sind zum Teil selbsterklärend, deshalb wird nur auf die relevanten Parameter eingegangen:

In der Sektion '[globals]' werden die globalen und allgemeinen Einstellungen für den Samba-Server berücksichtigt. Die einzelnen Einstellungen haben dabei folgende Bedeutung:

  • workgroup
    Der Parameter 'workgroup' legt den Namen der Arbeitsgruppe fest. Sollen z.B. Windows-Client und der Samba-Server sich in einer Arbeitsgruppe befinden, so ist der Name der Arbeitsgruppe bei beiden Systemen gleich zu setzen.
  • netbios name
    Entspricht den NetBIOS-Name des Samba-Servers
  • server string
    Mit 'server string' wird die Kommentarzeile des Servers festgelegt. In diesem Fall steht die Ersetzung '%h' für den Hostnamen des Servers. Der Server-String kann mit 'net view <SERVERNAME>' unter Windows oder mit 'smbclient -L <SERVERNAME>' unter Unix abgefragt werden.
  • interfaces
    Hier wird die Aktivität des Samba Servers auf ein bestimmtes Subnetz begrenzt. Wird diese Angabe nicht gemacht, wird jedes verfügbare Netz angesprochen.
  • encrypt passwords
    Bestimmt ob mit verschlüsselte oder unverschlüsselte Passwörter gearbeitet wird.
  • map to guest
    Der Parameter legt fest wie Samba sich bei ungültigen Passwort verhält. Mit der Einstellung 'Bad User' werden bekannte Benutzer mit falschem Passwort abgewiesen, jedoch Anfragen von Benutzernamen, die nicht in der Benutzerdatei vorhanden sind können mit den recht des 'guest account' auf den Server zugreifen.
  • username map
    Der Parameter 'username map' definiert die Datei in der die Benutzerübersetzung festgelegt ist. Normalerweise sollte jedem Benutzer ein Benutzerkonto zugeordnet werden. In einigen Fällen kann es nötig sein, dass ein Benutzer unter einem anderen Namen am Client angemeldet ist, als beim Samba-Server. Hier eine Beispiel-Datei zu 'username map':

    /etc/samba/smbusers

    # This file allows you to map usernames from the clients to the server.
    # Unix_name = SMB_name1 SMB_name2 ...
    #
    # Cf. section 'username map' in the manual page of smb.conf for more
    # information.

    root = administrator admin
    nobody = guest pcguest smbguest

    In diesem Bsp. wird z.B. den Windows-Benutzer: 'administrator' oder 'admin' das Samba-Login: 'root' zugeordnet. Beim Login von 'administrator' auf dem Samba-Server wird ihm das /root-home-Verzeichnis zugeordnet.

  • log level
    Umfang der Fehler- und Diagnosemeldungen
  • log file
    Speicherort der Log-Datei.
  • time server
    Mit diesem Parameter wird die Zeit-Server Funktionalität aktiviert. Windows-Clients können die Zeit mit den Kommando 'net time <Samba-Server>' abfragen.
  • deadtime
    Zeit in Sekunden, bevor nicht aktive Zugriffe auf Shares beendet werden.
  • keep alive
    'keep allive' gibt die Zeit in Sekunden an wann überprüft wird ob ein Client noch erreichbar ist.
  • os level
    Der 'os level' ist der Kennwert zum aushandeln des Master Browsers. Bei der Standardeinstellung '20' wird Samba am der Wahl teilnehmen und sich gegen allen Arbeitstationen von Microsoft durchsetzen. Arbeitet Samba in einen Netzwerk mit NT-Servern so werden die NT-Server dem Masterbrowser unter sich ausmachen, es sollte ein höherer Wert eingetragen werden.
  • preferred master
    Mit 'preferred master = Yes' wird bei jeden Starten des 'nmbd' eine Browser-Wahl eingeleitet.
  • wins proxy
    'wins proxy' leitet Broadcast-Anfragen an WINS weiter.
  • wins support
    Dient dazu den WINS-Server von Samba einzuschalten. WINS hat die Aufgabe NetBIOS-Namen in IP-Adressen umzusetzen. In einem Netzwerk sollte es nur einen WINS-Server geben. Falls 'wins support' auf 'No' steht, so kann mit dem Parameter 'wins server' der WINS-Server angegeben werden.

Die Sektion '[homes]' ist die Freigabe für das Heimatverzeichnis eines Benutzers.

Das Share '[public]' ist ein gemeinsames Laufwerk für alle Benutzer. Hier können Daten zum Austausch oder gemeinsamen Zugriffe ablegen werden. Mit dem Parameter 'valid user' werden die Benutzer/Benutzergruppen festgelegt, die auf die Freigabe zugreifen dürfen.

Im der Freigabe '[readonly]' werden Daten für Benutzer zum Lesen bereitgestellt. Diese Verzeichnis kann z.B. zur Bereitstellung von Software dienen. Die einzigen User der hier schreiben dürfen, müssen Mitglied aus der Gruppe: '@root' oder '@smb-admins' sein.

Das Share '[tmp]' dient als Austauschverzeichnis für Benutzer und Gäste, hier kann jeder Schreiben und Lesen. Dieses Verzeichnis sollte in regelmäßigen Abständen gelöscht werden.

Nach dem der Samba-Dienst neu gestartet wurde, sollte es nun möglich den 'Stand-alone'-Server als Windows-Benutzer zu nutzen. Weitergehende Informationen zur Konfiguration der Clients, werden in einem späteren Unterkapitel behandelt.

Anmerkungen

Nach Änderungen in der Datei: 'smb.conf' , müssen die Dienste: 'smbd' und 'nmbd' neu gestartet werden. Das Starten geschieht am einfachsten durch Aufruf von: '/etc/init.d/smb restart' auf Kommandoebene.

Die formale Richtigkeit der 'smb.conf' lässt sich mit dem Aufruf des Tools: 'testparm' überprüfen, jedoch über die Funktionsfähigkeit des Gesamtkonzepts sagt dieses allerdings (fast) nichts aus.

Weitere Infos

Homepage: Samba http://www.samba.org/
The Official Samba-3 HOWTO and Reference Guide http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/
Samba-3 by Example http://us4.samba.org/samba/docs/man/Samba-Guide/
Deutschsprachige Übersetzung der Dokumentation zu Samba 3 http://gertranssmb3.berlios.de/
Samba Version 3.0.9-Referenz http://www.millin.de/downloads/3-89990-121-5/kapitel17/index.html
Samba, 2. Auflage http://www.oreilly.de/german/freebooks/samba2ger/
Linux Samba HOWTO http://www.linuxhaven.de/dlhp/HOWTO/DE-Samba-HOWTO.html
Samba Webseiten von 'sernet' http://samba.sernet.de/samba.html
Manualseiten zu: samba; smb.conf; smbpasswd man samba; man smb.conf; man smbpasswd
System-Dokumentation:  samba; samba-common /usr/share/doc/samba; /usr/share/doc/samba-common

Home ] Nach oben ] Installation ] Vorbemerkungen ] [ 'Stand-alone'-Server ] Domänencontroller ] Netz-Drucker ] Windows-Zugriff ] Linux-Zugriff ] SWAT ] Sonstiges ]

letzte Änderung: 18. März 2006

 

Copyright © 2004 Norbert Eusterholz