Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Samba-Server

  1. #1
    404 - Title not found Avatar von LKH
    Registriert seit
    Jul 1999
    Ort
    Jena
    Beiträge
    3.709

    Samba-Server

    Samba Server


    * * * Einleitung
    * * * Voraussetzungen
    * * * Die Konfigurationsdatei
    * * * Samba als PDC für Windows NT und 2000 Clients



    Einleitung


    Windows- und OS/2-Rechner benutzen das SMB-Protokoll (Server Message Block) für die Kommunikation im Netz. SMB baut auf NetBIOS auf, das ebenfalls von Microsoft stammt. NetBIOS ist nur ein Netzwerkprotokoll, kein Transportprotokoll. Der Transport erfolgt über ein anderes Transportprotokoll, z.B. TCP/IP. Somit kann in einem heterogenen Netz ein einheitliches Transportprotokoll benutzt werden, was die Konfiguration der Clients sowie das Routing erheblich vereinfacht.
    Für die Nutzung des SMB-Protokolls auf UNIX- und Linuxmaschinen benötigt man einen eigenen Serverdienst. Dieser wird durch das freie Softwarepaket Samba ermöglicht.
    Diese FAQ soll kein mehere hunderte Seiten starkes Samba-Buch ersetzen und geht davon aus, dass die Software ordnungsgemäss installiert wurde und der Adminstrator weiss, wo der die Konfigurationsdateien -und Programme findet.

    Voraussetzungen


    Im folgenden wird davon ausgegangen, dass...

    1. alle benötigten Programme installiert sind:


      • Samba 2.2.x

      • SWAT (Samba Web Administration Tool (Teil des Sambapakets)


    2. das Netzwerk grundsätzlich einsatzbereit ist (alle Rechner erreichen sich per ping)

    3. die Arbeitsstationen laufen unter Windows 98 oder höher

    4. auf allen Windows-Clients ist NetBIOS und TCP/IP installiert und an die Netzwerkkarten gebunden ist


    Die Konfigurationsdatei


    Die gesamte Serverkonfiguration wird in einer Datei vorgenommen, nämlich der /etc/smbd.conf (unter Umständen liegt die Datei auch an anderer Stelle). Diese Datei kann mit einem Editor oder über das Webinterface SWAT, das zum Lieferumfang von Samba gehört, bearbeitet werden. Das Aussehen
    erinnert sehr an Windows ini-Dateien. Eine einfache Konfigurationsdatei
    könnte wie folgt aussehen:




    [Global]
      workgroup = WORKGROUP
      guest account = nobody
      keepalive = 30
      socket options = TCP_NODELAY
      hosts allow = 192.168.11.0/255.255.255.0

    [Homes]
      comment = Home
      read only = No
      browseable = Yes
      public = No
      create mode = 0750

    [Programme]
      comment = Programme
      path = /export/samba/programme
      read only = No
      browseable = Yes
      create mode = 0777

    ;Alle Drucker einbinden; Drucken ueber Windows auf raw
    [printers]
      path = /tmp
      create mode = 0700
      printable = Yes
      browseable = No


    Die Einträge haben folgende Bedeutung:













    [Global]Sektion der globalen Einstellungen
    workgroupbezeichnet die Arbeitsgruppe oder Windows-Domäne, der der Server angehört
    guest accountbezeichnet den UNIX-Benutzer, der als Gast ohne Passwort mit minimalen Rechten auf die Ressourcen zugreifen darf
    keep aliveZeit in Sekunden, in denen der Server nachschaut, ob der Client noch "lebt"
    socket*options*=*TCP_NODELAYDaten werden nicht in kleinen Datenblöcken zusammengefasst
    hosts allownur von diesem Netz darf auf den Server zugeriffen werden
    [Homes], [Programme], [printers]Defintionen der Freigabe
    commentBezeichnung der Freigabe in der Netzwerkumgebung
    read onlyschaltet den Schreibzugriff ein oder aus (No=aus, YES=an)
    browseabledie Freigabe wird in der Netzwerkumgebung des Clients angezeigt
    publicder Gastzugang wird erlaubt (Yes) oder unterbunden (No)
    create modeFestlegung, mit welchen UNIX-Zugriffsrechten Dateien angelegt werden
    printableHier darf Gedruckt werden


    Nach dem Neustart des Sambaservers müsste der Server in der Netzwerkumgebung des Windows-Clients erscheinen. Ist dies nicht der Fall, kann das mehrere Gründe haben:

    • die Netzwerkumgebung ist noch nicht aktualisiert worden (warten oder <F5> drücken)
    • überprüfen, ob der Server überhaupt erreichbar ist durch die Eingabe von "
      \\servername" in der Adresszeile oder über Start -> Suchen -> Computer
    • eine Firewall blockiert den Zugriff (einfach mal kurzzeitig stoppen und dann die Konfiguration ändern)
    • das "Dummydevice" ist installiert (deinstallieren!)
    • der Arbeitsgruppenname ist auf dem Windowsclient und Linuxserver unterschiedlich (ändern!)


    Ein Doppelklick auf den Server lässt dann die Freigabe erkennen: hier nur das Homeverzeichnis des Benutzers.



    Standardmässig liegt die Sicherheit bei der Freigabe; der Benutzer wird vor dem Öffnen nach seinem Benutzernamen und Passwort gefragt. Hier merkt man nun, dass zwei Welten aufeinander treffen: die angelegten Linuxbenutzer kommen nicht auf die Freigabe. Samba verwaltet seine Benutzer selbst und hat eine eigene Benutzerdatei:
    die smbpasswd. Bevor ein Zugriff auf die Freigaben möglich ist, muss erst ein Sambabenutzer angelegt werden. Das geht als root mit folgendem Befehl:


    smbpasswd -a user


    Das "-a" steht für add (hinzufügen); "user" für den Namen eines bereits
    angelegten Linuxbenutzers. smbpasswd fragt dann zweimal das Benutzerpasswort ab. Wie gesagt: es lassen sich nur Benutzer hinzufügen, die Linux schon bekannt sind.

    Sollen alle schon angelegten Benutzer automatisch hinzugefügt werden, geht die über die Eingabe von


    cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd


    als root von der Konsole. Ob dies sinnvoll ist, ist jeweils eine Einzelfallentscheidung. Es werden nämlich auch die für bestimmte Dienste angelegten Benutzer übertragen (z.B. wwwrun für den Apache, mysql für das gleichnamige Datenbanksystem etc.).

    Nach eine Sambaneustart kann der soeben hinzugefügte Benutzer auf sein Linux-Homeverzeichnis auch von einem Windowsrechner zugreifen. Wird der Zugriff verweigert, obwohl das richtige Passwort eingetragen wurde, kann das daran liegen, dass

    1. der Client unverschlüsselte Passwörter sendet (Windows 95 oder niedriger)
    2. durch den Eintrag encrypt passwords = No in der [Global]-Sektion.


    In Mischumgebungen (z.B. Windows 95 und Windows 2000) ist daher auf das schwächste Glied Rücksicht zu nehmen. In der smb.conf ist über den Eintrag encrypt passwords = No in der [Global]-Sektion die Verschlüsselung abzuschalten. Ab Windows 98 ist dann durch einen geeigneten Eintrag in der Registry ebenfalls die Verschlüsselung zu unterbinden. Die Registrierungsschlüssel findet man im Dokumentationsverzeichnis von Samba.

    Samba als PDC für Windows NT und 2000 Clients



    Um den Samba-Server als Primären Domänen Controller einsetzen zu können, sind insbesondere für Windows 2000 Clients einige Erweiterungen an der smb.conf vorzunehmen:


    # Global parameters
    [global]
    workgroup = WORKGROUP ; Name der Domäne
    netbios name = SERVER ; NetBIOS-Name des Servers
    server string = Samba %v (PDC) ; Kommentar
    interfaces = 192.168.11.1/24 ; IP der Netzwerkkarte
    bind interfaces only = Yes ; nur diese Schnittstelle verwenden
    encrypt passwords = Yes ; Passwortverschlüsselung
    map to guest = Bad User ; Gastbenutzer
    passwd program = /usr/bin/passwd %u ; Passwortprogramm
    unix password sync = Yes ; UNIX- und Samba Passworte synchronisieren
    log level = 3 ; Debug-Level
    log file = /var/log/%U.smb ; Pfad zur Log-Datei
    keepalive = 30 ; Warten auf Client (in sek.)
    domain admin group = @root ; Gruppe des Domänenadministrators
    domain admin users = root ; der Domänenadministrator
    admin users = root ; Administrator mit allen Rechten auf allen Freigaben (Vorsicht!)
    logon script = logon.cmd ; Name des Anmeldeskripts
    logon path = \\%N\%u\profiles ; Pfad der servergespeicherten Profile
    logon drive = H: ; Laufwerksbuchstabe des Homeverzeichnisses
    logon home = %H ; Pfad zum Homeverzeichnis (/home/user)
    domain logons = Yes ; Domänenanmeldung
    os level = 65 ; der mit dem höchsten Level wird der Masterbrowser
    preferred master = True ; bevorzugter Masterbrowser
    domain master = True ; PDC
    hosts allow = 192.168.11.0/255.255.255.0 ; Zugriff nur von diesem Netz(bereich)


    Die Einträge domain admin group = @root und domain admin users = root sorgen dafür, dass über den Benutzer root neue Arbeitsstationen in der Domäne angemeldet werden können. Zur Zeit ist dies nur über einen root-Zugriff möglich. Man kann zwar andere Benutzer/Gruppen eintragen, diese können allerdings noch nicht verwendet werden.

    Damit der Sambaserver als Primärer Domänen Controller von den Arbeitsstationen akzeptiert wird, sind die Einträge

    os level = 65
    preferred master = True
    domain master = True

    nötig.

    Die Datei logon.cmd ist eine NT/2000-Batchdatei, die u.a. die Laufwerkszuordnungen vornehmen kann. Sie hat z.B. folgenden Inhalt:


    @ECHO OFF
    NET USE P:\ \\SERVER\Programme


    Dadurch können Freigaben an Laufwerksbuchstaben gebunden werden (hier z.B. wird die freigegebene Ressource& quot;Programme" mit dem Laufwerk P: verbunden). DieseB atchdateien sind unbedingt im DOS-Format zu speichern (Zeilenende mit <CR><LF>). Im obigen Beispiel würde sich die logon.cmd im Homeverzeichnis des Benutzers befinden. Der Benutzer muss Leserechte an dieser Datei haben.
    Um die Datei vor Manipulationen zu schützen, kann sie auch in einem Verzeichnis gespeichert werden, auf das die Windowsuser keinen Zugriff haben. Der Speicherplatz wird durch den Paramter logon home = ... festgelegt. Sollen für jeden Benutzer individuelle Logon-Skripte angelegt werden, so sind diese als "benutzername.cmd" zu speichern und in der smb.conf mit
    %h.cmd einzutragen (%h ist der Platzhalter für den Benutzernamen nach der Anmeldung). Für gruppenspezifische Logonskripte ist sinngemäss zu verfahren
    (Speicherung als gruppenname.cmd, Eintrag in der smb.conf als %g.cmd.)

    Damit sich der Windowsrechner an der Domäne anmelden darf, ist auf dem Server ein Rechnerkonto (Machine Trust Account) einzurichten. Ohne "winbind" aus dem TNG-Zweig ist diese Einrichtung auf dem Linuxserver vorzunehmen. Als erstes ist ein Benutzer mit dem Rechnernamen anzulegen (der Rechnername ist der NetBIOS-Name mit angehängtem "$"):

    useradd rechner$ -b /dev/null -s /bin/false
    (hier würde ein Benutzer mit dem Namen "rechner", dem Homeverzeichnis "/dev/null" und der Shell "/bin/false" ohne Passwort angelegt, ein Einloggen unter dieser Benutzerkennung ist nicht möglich)

    Mit smbpasswd -a -m rechner$ ist dann das Rechnerkonto in der Domäne anzulegen. Damit die Änderungen wirksam werden, ist der Sambadienst neu zu starten.

    Die weitere Einrichtung erfolgt dann vom Windows-Rechner selbst. Dazu muss man sich dort als Administrator anmelden. Über die Systemeinstellungen kommt man über die Registerkarte "Netzwerkidentifiktion" zu den Eigenschaften.

    Durch Anklicken des Buttons "Eigenschaften" können Sie den Rechnernamen nochmals überprüfen und den Domännamen eintragen.

    Anschliessend versucht der Rechner eine Verbindung zum Server aufzubauen. Danach werden Sie nach einem Konto gefragt, dass über die Privilegien verfügt, den Rechner in die Domäne
    aufzunehmen. Tragen Sie hier die Daten für root ein. Hat soweit alles geklappt, werden Sie freundlich in der Domäne begrüsst:

    Nach einem Neustart des Rechners können Sie sich nun mit den Anmeldedaten eines unter Samba angelegten Benutzers anmelden. Gegebenenfalls sind die Optionen des Anmeldebildschirms zu öffen
    und die Domäne auzuwählen.

    Nach der Anmeldung können die Benutzer jeweils nur ihre, der Administrator alle Profile von lokal gespeichert auf servergespeichert ändern.

    Troubleshooting

    Es kann passieren, dass der Windowsrechner nicht direkt in die Domäne aufgenommen wird. Dies kann vielfältige und nicht immer nachvollziehbare Ursachen haben. Folgende Liste ist mit Sicherheit nicht vollständig, hat aber bisher immer geholfen (über weitere Tips wäre ich dankbar):

  2. Die smb.conf mit testparm prüfen
  3. Genaue Schreibweisen der Rechner- und Domännamen überprüfen
  4. Rechnerkonto angelegt mit angehängtem "$" sowohl unter Linux wie auch für Samba
  5. Ggf. das Rechnerkonto aus der smpasswd löschen und den Machine Trust Account mit smpasswd -a -m ... neu anlegen
  6. Nach allen Änderungen Samba neu starten
  7. In einem Fall half nur, den Rechner umzubenennen und mit neu angelegtem Rechnerkonto wieder anzumelden (nur Bill weiss warum). Ein Umbenennen
    eines Domänenmitglieds funktioniert allerdings hervorragend.
  8. Keine Änderungen an den Sicherheitsrichtlinien vornehmen bzw. den Standard wiederherstellen

    Und nun viel Spass mit mehr Sicherheit und Performance sowie beim Ausgeben der eingesparten Server- und Clientlizenzen.




    © Copyright 2001 by Leander Kirstein-Heine, Computer & Network Consulting, Engelplatz 11, D-07743 Jena
    Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled "GNU Free Documentation License".
  9. Geändert von LKH (14.11.01 um 17:30 Uhr)
    freedom is just another word for nothing left to loose ...

  10. #2
    Kommunikator
    Registriert seit
    Apr 1999
    Ort
    Reutlingen
    Beiträge
    3.671
    Hallo,

    beim Kommando:

    smbpasswd -a $user

    war bei mir noch ein -e notwendig.

    Also smbpasswd -a -e $user

    Viele Grüsse

    Eicke

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •