Inhaltsverzeichnis
Als wir zum ersten Mal nach Vorschlägen für die Aufnahme in die Samba HOWTO-Dokumentation fragten, fragte gleich jemand nach Beispielkonfigurationen , und zwar nach vielen. Diese Bitte ist jedoch schwierig zu erfüllen, zumal man unserer Einschätzung nach mehr lernt, wenn man sich viele Ausschnitte aus Produktionssystemen anschaut. Dies ist es, was der Rest dieses Dokuments macht: Es zeigt ausführliche Beschreibungen der Konfigurationsmöglichkeiten innerhalb des Kontextes des betroffenen Kapitels. Wir hoffen, dass dieses Kapitel die verlangte „Medizin“ ist.
Samba braucht sehr wenig Konfiguration, um ein arbeitsfähiges Basissystem zu erzeugen. In diesem Kapitel gehen wir vom Einfachen zum Komplexen vor, und für jeden stellen wir alle Schritte und Konfigurationsdateien vor, die benötigt werden, um Samba zum Laufen zu bringen. Bitte beachten Sie, dass ein umfassend konfiguriertes System wahrscheinlich zusätzliche praktische Möglichkeiten ergibt. Die zusätzlichen Möglichkeiten werden im Rest dieses Dokuments behandelt.
Die Beispiele, die hier benutzt werden, haben wir von Leuten erhalten, die Anfragen zu Beispielkonfigurationen gestellt hatten. Alle Identitäten wurden zu deren Schutz verschleiert, und die Ähnlichkeit zu unrealistischen und nicht existierenden Seiten ist beabsichtigt.
Im ersten Fall von Konfigurationsbeispielen gehen wir vom Fall einer äußerst einfachen Systemvoraussetzung aus. Es gibt manchmal wirklich das Bestreben, etwas zu kompliziert zu machen, statt so einfach wie möglich mit geringstem Aufwand.
??? dokumentiert den Servertyp, der vielleicht der richtige für CD-ROM Freigaben ist oder der auf Dokumente für Netzwerk-Benutzer verweist. Diese Konfiguration wird ebenfalls in ???, ??? erläutert. Der Zweck dieser Konfiguration ist es, ein Freigabe-Laufwerk zur Verfügung zu stellen, auf das von jedem, auch von Gästen, lesend zugegriffen werden kann.
Das zweite Beispiel zeigt eine Minimal-Konfiguration eines Druckservers, so dass jedermann drucken kann, der die richtigen Druckertreiber auf seinem Rechner installiert hat. Dies ist ein Abbild des Systems, das in ???, ??? beschrieben ist.
Das nächste Beispiel ist das eines gesicherten Datei- und Druckservers in einer Büroumgebung, der nur von Benutzern genutzt werden kann, die ein Konto auf diesem System haben. Dieser Server ist absichtlich als ein Arbeitsgruppen-, Datei- und Druckserver ausgelegt, ist aber wesentlich sicherer als ein anonymer Dateiserver. Diese Art von System wird typischerweise die Bedürfnisse eines kleinen Büros abdecken. Der Server bietet keine Netzwerk- Anmelde-Möglichkeiten und keinen Domänencontroller, ist also nur ein Network Attached Storage (NAS)-Device- und Druckserver.
Abschließend betrachten wir noch ein etwas komplexeres System, das sowohl in ein Microsoft Windows-Netzwerk integriert ist als auch dieses komplett ersetzen kann. Die zur Verfügung gestellten Beispiele decken sowohl Domänen-Mitgliedsserver ab als auch Samba-Domänencontroller (PDC/BDC), und schlussendlich beschreiben wir detailliert ein großes verteiltes Netzwerk mit Außenstellen in Filialen.
Die Konfigurationsbeispiele sind so angelegt, dass sie alles enthalten, um Samba zum Laufen zu bekommen. Sie beinhalten keine grundlegenden Konfigurationen von Betriebsystem-Plattformen, dies würde den Rahmen dieses Texts sprengen.
Es wird des Weiteren davon ausgegangen, dass Samba korrekt installiert wurde, entweder durch Installationspakete, die vom Betriebssystem-Provider zur Verfügung gestellt wurden, oder auf andere Weise.
Der Begriff „Stand-alone-Server“ bedeutet nichts anderes, als die Tatsache, dass es sich nicht um einen Domänencontroller handelt und der Server auch nicht an der Domänenkontrolle teilnimmt. Es kann ein sehr einfacher Arbeitsgruppen-ähnlicher Server sein, oder es kann sich auch um einen etwas komplexeren Server als Mitglied eines Domänensicherheitskontextes handeln.
Das Ziel dieses Servertyps ist es, jedem Benutzer jedes Dokument oder jede Datei zugänglich zu machen, das bzw. die auf den Freigaberessourcen liegt. Die Freigaberessourcen können dabei ein CD-ROM-Laufwerk, ein CD-ROM-Image oder eine Dateispeicherebene sein.
Als die Beispiele entwickelt wurden, wurde Wert darauf gelegt, dass das System wachsen und mehr Möglichkeiten bieten kann, wie es eben im echten Arbeitsalltag passiert, wenn eine Firma in ihrer Größe und ihren Bedürfnissen wächst und Veränderung braucht.
Die Konfigurationsdatei:
Beispiel 3.1. Konfiguration Anonymer Nur-Lese-Server
| # Global parameters |
| [global] |
| workgroup = MITTELERDE |
| netbios name = HOBBIT |
| security = share |
| [data] |
| comment = Daten |
| path = /export |
| read only = Yes |
| guest ok = Yes |
Der Dateisystem-Freigabepunkt wird /export sein.
Alle Dateien werden von einem Benutzer namens Jack Baumbach gehalten. Jacks Anmeldename wird jackb sein. Sein Passwort wird m0r3pa1n sein, natürlich ist das nur das Beispiel, das wir benutzen; benutzen Sie es nicht in einer Produktionsumgebung, da alle Leser dieses Dokuments das Passwort kennen werden.
Prozedur 3.1. Installationsprozedur Nur-Lese-Server
Fügen Sie den Benutzer dem System hinzu (mit Erzeugung des Benutzer-Homeverzeichnisses):
root# useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackb
Erzeugen Sie das Verzeichnis, und setzen Sie die Rechte und Mitgliedschaft:
root# mkdir /export root# chmod u+rwx,g+rx,o+rx /export root# chown jackb.users /export
Kopieren Sie die Dateien, die freigegeben werden sollen, nach /export.
Installieren Sie die Samba-Konfigurationsdatei (/etc/samba/smb.conf) wie gezeigt.
Testen der Konfigurationsdatei:
root# testparm
Beachten Sie alle Fehlermeldungen, die evtl. angezeigt werden. Fahren Sie nicht fort, bevor Sie nicht eine fehlerfreie Rückmeldung erhalten. Ein Beispiel der Rückmeldungen der folgenden Datei wird die Datei anzeigen.
Load smb config files from /etc/samba/smb.conf Processing section "[data]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions [Press enter] # Global parameters [global] workgroup = MITTELERDE netbios name = HOBBIT security = share [data] comment = Data path = /export read only = Yes guest only = Yes
Starten Sie Samba mit der für Ihr Betriebssystem-Plattform möglichen Methode.
Konfigurieren Sie Ihren Microsoft Windows-Client für die Arbeitsgruppe MITTELERDE, setzen Sie den Maschinennamen auf ROBBINS, starten Sie den PC neu, und warten Sie ein paar (2 - 5) Minuten. Dann öffnen Sie den Windows Explorer und betrachten die Netzwerkumgebung. Die Maschine HOBBIT sollte sichtbar sein. Wenn Sie auf das Icon dieser Maschine klicken, sollte es sich öffnen und Zugriff auf die Freigabe data ermöglichen. Danach klicken Sie auf diese Freigabe, und Sie sollten Zugriff auf die Dateien haben, die wir vorher im /export Verzeichnis abgelegt hatten.
Die oben genannten Informationen (die nachstehenden „global parameters“) stellen den kompletten Inhalt der Datei /etc/samba/smb.conf dar.
Sie sollten diese Konfiguration als eine Erweiterung des vorstehenden Beispiels ansehen. Der Unterschied ist, dass der Freigabezugriff nun mit der Benutzeridentität von jackb und der primären Gruppe, der jackb angehört, zusammenhängt. Eine weitere Verbesserung, die wir machen können, ist, den Benutzer jackb zu der Datei smbpasswd hinzuzufügen. Um dies zu erledigen, machen Sie Folgendes:
root# smbpasswd -a jackb New SMB password: m0r3pa1n Retype new SMB password: m0r3pa1n Added user jackb.
Das Hinzufügen dieses Benutzers zu der Datei smbpasswd erlaubt es, dass alle Dateien, die in den Explorer-Eigenschaften angezeigt werden, als zu jackb gehörend angezeigt werden und nicht mit Unbekannter Benutzer beschriftet sind.
Die komplette geänderte Datei smb.conf wird in ??? dargestellt.
Beispiel 3.2. Geänderte anonyme Schreib-Lese-Datei smb.conf
| # Globale Parameter |
| [global] |
| workgroup = MITTELERDE |
| netbios name = HOBBIT |
| security = SHARE |
| [data] |
| comment = Daten |
| path = /export |
| force user = jackb |
| force group = users |
| read only = No |
| guest ok = Yes |
Ein anonymer Druckserver bietet zwei Vorteile:
Er erlaubt das Drucken auf allen Druckern von einer einzigen Stelle aus.
Er reduziert den Netzwerkverkehr dadurch, dass viele Benutzer nur eine beschänkte Anzahl von Druckern nutzen können.
Bei der einfachsten Form von anonymen Druckservern ist es allgemein so, dass die korrekte Installation von Druckertreibern auf Windows-Arbeitsstationen verlangt wird. In diesem Fall wird der Druckserver so ausgelegt, dass er Druckaufträge einfach zum Spooler durchreicht, und der Spooler sollte auf „raw pass-through“ für den Drucker konfiguriert sein. Mit anderen Worten: Der Drucker-Spooler darf keinen Filter benutzen oder den Datenstrom zum Drucker in irgendeiner Form verarbeiten.
In dieser Konfiguration ist es nicht erwünscht, den Drucker-Wizard anzuzeigen, und wir wollen auch keinen automatischen Treiberdownload haben, also werden wir dies in der folgenden Konfiguration auch abschalten. ??? ist die daraus entstandene Datei smb.conf.
Beispiel 3.3. Anonymer Druckserver smb.conf
Die vorangegangene Konfiguration ist nicht ideal. Sie benutzt keine angenehmen Funktionen und stellt absichtlich keine elegante Lösung dar. Dennoch: Sie ist grundlegend, und sie druckt.
Windows-Benutzer müssen einen lokalen Drucker installieren und dann die Ausgabeschnittstelle zum Drucker ändern, nachdem sie die Treiber installiert haben. Die Ausgabeschnittstelle kann dann auf den Netzwerkdrucker dieser Maschine gesetzt werden.
Stellen Sie sicher, dass das Verzeichnis /var/spool/samba wie gewünscht verwendet werden kann. Die folgenden Schritte stellen dies sicher:
Das Verzeichnis muss durch den Benutzer superuser (root) und dessen Gruppe gehalten werden:
root# chown root.root /var/spool/samba
Die Verzeichnis-Rechte müssen für öffentlichen Lese-Schreibzugriff mit dem sticky-bit wie gezeigt gesetzt werden:
root# chmod a+rw TX /var/spool/samba
Auf CUPS-aktivierten Systemen gibt es eine Möglichkeit, raw-Daten direkt auf den Drucker auszugeben, ohne diese durch CUPS-Druckerfilter hindurchzuleiten. An Stellen, an denen diese Methode erwünscht ist, muss ein so genanntes raw-printing device konfiguriert sein. Es ist außerdem notwendig, den raw mime-Handler in den Dateien /etc/mime.conv und /etc/mime.types einzuschalten. Sehen Sie in ??? nach.
Nach diesem einfachen System sehen wir uns einen etwas komplexeren Server an.
Unser neuer Server wird einen öffentlichen Bereich zur Dateiablage verlangen, der nur von authentifizierten Benutzern (z.B. solchen mit einem lokalen Konto) beschrieben werden kann, und enthält außerdem ein Home-Verzeichnis. Es wird einen Drucker geben, der für alle verfüg- und nutzbar sein wird.
Diese konstruierte Umgebung (es wurde keine Spionage zur Erlangung der Daten durchgeführt) zeigt eine sehr einfache Umgebung, die sicher genug, aber nicht zu kompliziert ist.
Die Benutzer werden sein: Jack Baumbach, Mary Orville und Amed Sehkah. Jeder wird ein Passwort haben (diese werden in weiteren Beispielen dann nicht nochmals aufgeführt). Mary wird die Druckeradministratorin sein und wird alle Dateien in dem öffentlichen Bereich halten.
Diese Konfiguration wird auf der User Level Security basieren, die den Standard darstellt und die standardmäßig Microsoft Windows-kompatible verschlüsselte Passwörter in einer Datei /etc/samba/smbpasswd ablegt. Der Standard-smb.conf-Eintrag, der dies ermöglicht, ist: passdb backend = smbpasswd, guest. Da dies der Standard ist, ist es nicht notwendig, ihn in die Konfigurationsdatei zu schreiben. Beachten Sie dabei bitte, dass der Gast-Backend automatisch in die Liste der aktiven passdb-Backends eingetragen wird, egal ob dies in der Samba-Konfigurationsdatei direkt aufgeführt wird oder nicht.
Prozedur 3.2. Installieren des Secure Office Servers
Fügen Sie alle Benutzer zum Betriebssystem hinzu:
root# useradd -c "Jack Baumbach" -m -g users -p m0r3pa1n jackb root# useradd -c "Mary Orville" -m -g users -p secret maryo root# useradd -c "Amed Sehkah" -m -g users -p secret ameds
Konfigurieren Sie die Samba-smb.conf-Datei, wie in ??? beschrieben.
Beispiel 3.4. Secure Office Server smb.conf
Initialisieren Sie die Microsoft Windows-Passwort-Datenbank mit den neuen Benutzern:
root# smbpasswd -a root New SMB password: bigsecret Reenter smb password: bigsecret Added user root. root# smbpasswd -a jackb New SMB password: m0r3pa1n Retype new SMB password: m0r3pa1n Added user jackb. root# smbpasswd -a maryo New SMB password: secret Reenter smb password: secret Added user maryo. root# smbpasswd -a ameds New SMB password: mysecret Reenter smb password: mysecret Added user ameds.
Installieren Sie die Drucker, indem Sie das CUPS-Web-Interface nutzen. Stellen Sie sicher, dass alle Drucker, die mit Microsoft Windows-Clients freigegeben sind, als raw printing devices installiert sind.
Starten Sie Samba mit dem betriebssystem-eigenen Administrations-Interface. Alternativ können Sie dies auch manuell tun:
root# nmbd; smbd;
Konfigurieren Sie das /export-Verzeicnis:
root# mkdir /export root# chown maryo.users /export root# chmod u=rwx,g=rwx,o-rwx /export
Überprüfen Sie, dass Samba korrekt läuft:
root# smbclient -L localhost -U% Domain=[MITTELERDE] OS=[UNIX] Server=[Samba-3.0.0] Sharename Type Comment --------- ---- ------- public Disk Data IPC$ IPC IPC Service (Samba-3.0.0) ADMIN$ IPC IPC Service (Samba-3.0.0) hplj4 Printer hplj4 Server Comment --------- ------- OLORIN Samba-3.0.0 Workgroup Master --------- ------- MITTELERDE OLORIN
Verbinden Sie sich zu OLORIN als maryo:
root# smbclient //olorin/maryo -Umaryo%secret OS=[UNIX] Server=[Samba-3.0.0] smb: \> dir . D 0 Sat Jun 21 10:58:16 2003 .. D 0 Sat Jun 21 10:54:32 2003 Documents D 0 Fri Apr 25 13:23:58 2003 DOCWORK D 0 Sat Jun 14 15:40:34 2003 OpenOffice.org D 0 Fri Apr 25 13:55:16 2003 .bashrc H 1286 Fri Apr 25 13:23:58 2003 .netscape6 DH 0 Fri Apr 25 13:55:13 2003 .mozilla DH 0 Wed Mar 5 11:50:50 2003 .kermrc H 164 Fri Apr 25 13:23:58 2003 .acrobat DH 0 Fri Apr 25 15:41:02 2003 55817 blocks of size 524288. 34725 blocks available smb: \> q
Bis hierher sollten Sie die Konfigurationsgrundlagen mitbekommen haben. Ehrlich, jetzt ist es an der Zeit, etwas komplexere Beispiele kennen zu lernen. Für den Rest dieses Kapitels werden wir die Anleitungen abkürzen, da sie vorher bereits behandelt wurden.
In diesem Abschnitt werden wir uns die einfachstmögliche Serverkonfiguration ausdenken, die man erstellen kann, um ein Vertriebsbüro glücklich zu machen. Seien Sie gewarnt, die Anwender sind Vertriebsleute und haben dementsprechend schlimme Anforderungen. Das Budget sieht nur einen Server für diese Einrichtung vor.
Das Netzwerk wird durch eine interne Information Services Group (ISG) verwaltet, zu der wir gehören. Interne Regeln sind typisch für eine mittelständische Organisation; die Personalabteilung ist der Ansicht, dass die ISG ihr untersteht, weil deren Mitglieder ständig Benutzer hinzufügen oder löschen. Des Weiteren müssen die Abteilungsleiter zähnefletschend darum kämpfen, grundlegende Netzwerkdienste für Ihre Mannschaft zu erhalten. Die Buchhaltung ist natürlich ebenfalls wieder etwas anderes, sie bekommt stets, was sie braucht. Dies sollte vorerst die Situation beschreiben.
Wir werden die Benutzer aus dem letzten Beispiel nehmen. Der Vertrieb hat einen eigenen zentralen Drucker, den alle Abteilungsangehörigen nutzen können. Es gibt auch noch einen Scheckdrucker, den aber nur die Person nutzen darf, die autorisiert ist, Schecks zu drucken. Der Chefbuchhalter (CFO) möchte, dass dieser Drucker vollständig geschützt ist und deshalb auch in seinem eigenen privaten Teil des Büros aufgebaut ist. Deshalb muss es ein Netzwerkdrucker sein.
Die Vertriebsstelle benutzt eine Vertriebssoftware namens SpytFull, die von einem zentralen Applikationsserver aus läuft. Die Software ist für einen Server lizenziert, es gibt keine Arbeitsplatzkomponenten, und sie wird von einer gemappten Freigabe aus gestartet. Die Datenablage erfolgt in einem Unix-basierenden SQL-Backend. Die UNIX-Gurus kümmern sich darum, es ist also nicht unser Problem.
Die Vertriebsmanagerin (maryo) möchte ein allgemein zugängliches Dateisystem und zusätzlich eine getrennte Dateiablage für Formbriefe (nastygrams). Der Bereich für die Formbriefe soll für alle Vertriebsmitarbeiter außer der Managerin selbst nur lesbar sein. Das allgemein zugängliche Dateisystem muss ein strukturiertes Layout haben: Es muss sowohl einen zentralen Bereich für alle Mitarbeiter geben, um allgemeine Dokumente zu speichern, als auch einen getrennten Bereich für den jeweiligen Mitarbeiter selbst, in dem er private Dinge ablegen kann, aber die Managerin möchte auf alle diese Bereiche vollen Zugriff haben. Die Benutzer haben ein privates Home-Verzeichnis für persönliche Dateien, die arbeitsgebunden sind, und für Materialien, die nichts mit ihrer Arbeit zu tun haben.
Der Server valinor wird ein Mitglied der Firmendomäne sein. Die Vetriebsleute haben nur einen lokalen Server. Benutzerkonten werden auf dem Domänencontroller liegen, genauso wie die Arbeitsplatzprofile und alle Netzwerk-Richtliniendateien.
Fügen Sie keine Benutzer zu den UNIX/Linux-Servern hinzu, dies wird in der zentralen Domäne gemacht.
Konfigurieren Sie smb.conf, wie in ??? und ??? beschrieben.
Beispiel 3.5. Mitgliedsserver smb.conf (globale Einstellungen)
Beispiel 3.6. Mitglieds-Server smb.conf (Freigaben und Dienste)
Treten Sie der Domäne bei. Beachten Sie: Starten Sie Samba nicht, bevor dieser Schritt abgeschlossen ist!
root# net rpc join -Uroot%'bigsecret' Joined domain MITTELERDE.
Stellen Sie unbedingt sicher, dass der nscd-Daemon auf allen Systemen abgeschaltet oder heruntergefahren ist, auf denen winbind lauffähig konfiguriert ist.
Starten Sie Samba mit der für Ihre Betriebssystem-Plattform vorgegebenen Methode. Sie können dies als root auch manuell ausführen:
root# nmbd; smbd; winbindd;
Konfigurieren Sie die Nameservice-Switch-Konfigurationsdatei auf Ihrem System, um Benutzer- und Gruppennamen durch winbind aufzulösen. Ändern Sie die folgenden Zeilen in /etc/nsswitch.conf:
passwd: files winbind group: files winbind hosts: files dns winbind
Setzen Sie das Passwort, um wbinfo nutzen zu können:
root# wbinfo --set-auth-user=root%'bigsecret'
Überprüfen Sie, dass die Domänenbenutzer und Gruppenzugehörigkeiten korrekt aufgelöst werden können, indem Sie das Folgende ausführen:
root# wbinfo -u MITTELERDE+maryo MITTELERDE+jackb MITTELERDE+ameds ... MITTELERDE+root root# wbinfo -g MITTELERDE+Domain Users MITTELERDE+Domain Admins MITTELERDE+Domain Guests ... MITTELERDE+Accounts
Überprüfen Sie, dass winbind läuft. Das Folgende demonstriert die korrekte Auflösung des Benutzernamens durch das System-Dienstprogramm getent:
root# getent passwd maryo maryo:x:15000:15003:Mary Orville:/home/MITTELERDE/maryo:/bin/false
Ein abschließender Test, ob wir dies auch unter Kontrolle haben, versichert uns dann:
root# touch /export/a_file root# chown maryo /export/a_file root# ls -al /export/a_file ... -rw-r--r-- 1 maryo users 11234 Jun 21 15:32 a_file ... root# rm /export/a_file
Die Konfiguration ist nahezu fertig. Dies ist ein günstiger Zeitpunkt, um die Verzeichnisstruktur für diese Einrichtung anzulegen:
root# mkdir -p /export/{spytfull,public}
root# chmod ug=rwxS,o=x /export/{spytfull,public}
root# chown maryo.Accounts /export/{spytfull,public}
Für den Rest dieses Kapitels liegt der Schwerpunkt auf der Konfiguration der Domänenkontrolle. Die folgenden Beispiele sind für zwei Implementierungsstrategien ausgelegt. Erinnern Sie sich: Unsere Aufgabe ist eine einfache, aber funktionierende Lösung. Der Rest dieses Buches soll helfen, die Gelegenheit für eine größere Funktionalität und die damit einhergehende Komplexität zu beleuchten.
Sie können einen Domänencontroller recht einfach konfigurieren, indem Sie das neue tdbsam-Passwort-Backend nutzen. Dieser Konfigurationstyp ist gut für kleine Büros, hat aber eine beschränkte Skalierungsmöglichkeit (Replikation funktioniert nicht), und die Performance wird vermutlich sinken, wenn die Größe und Komplexität der Domäne zunehmen.
Die Nutzung von tdbsam sollte am besten auf Einrichtungen beschränkt werden, die nicht mehr als einen primären Domänencontroller (PDC) benötigen. Wenn die Größe einer Domäne anwächst, kommt der Wunsch nach einem zusätzlichen Domänencontroller auf. Versuchen Sie nicht, eine Microsoft Windows-Netzwerkumgebung zu klein auszulegen; Domänencontroller stellen lebenswichtige Authentifizierungsdienste zur Verfügung. Die folgenden Merkmale sind Symptome einer zu klein ausgelegten Domänencontroller-Umgebung:
Domänen-Anmeldungen schlagen sporadisch fehl.
Dateizugriffe auf einen Domänen-Mitgliedsserver schlagen sporadisch fehl, es kommt zu Fehlermeldungen mit Zugriffsverweigerungen.
Eine besser skalierbare Option für Domänencontroller-Authentifizierungs-Backends könnte das Microsoft Active Directory oder ein LDAP-basierendes Backend nutzen. Samba-3 stellt dies für beide Optionen als einen Domänen-Mitgliedsserver zur Verfügung. Als ein PDC ist Samba-3 nicht in der Lage, eine genaue Alternative zu den Funktionalitäten zur Verfügung zu stellen, die Active Directory bietet. Samba-3 kann eine skalierbare LDAP-basierende PDC/BDC-Lösung zur Verfügung stellen.
Das tdbsam-Authentifizierungs-Backend bietet keine Funktion zum Replizieren der Datenbankinhalte, außer für externe Möglichkeiten (z.B. gibt es kein autarkes Protokoll in Samba-3 für die Security-Account-Manager-(SAM-)Datenbank-Replikation).
Falls Sie also mehr als einen Domänencontroller benötigen, sollten Sie kein tdbsam-Authentifizierungs-Backend benutzen.
Der Netzwerkserver des Ingenieurbüros, den wir hier präsentieren, ist dazu gedacht, das neue tdbsam-Passwort-Backend zu demonstrieren. Die tdbsam-Funktion ist neu in Samba-3. Sie soll viele Benutzer- und Maschinenkonten zur Verfügung stellen, die mit Microsoft Windows NT4 möglich sind. Es ist sicher, dies in kleineren Netzwerken zu benutzen.
Eine PDC-Konfiguration in Produktion, die das tdbsam-Passwort-Backend benutzt, können Sie ??? hier sehen ???:
Beispiel 3.7. Ingenieurbüro smb.conf (Globale Einstellungen)
Beispiel 3.8. Ingenieurbüro smb.conf (Freigaben und Dienste)
Erstellen Sie die benötigten UNIX-Gruppenkonten mit Ihrem betriebssystem-spezifischen Werkzeug:
root# groupadd ntadmins root# groupadd designers root# groupadd engineers root# groupadd qateam
Erstellen Sie Benutzerkonten auf dem System mit Ihrem betriebssystem-spezifischen Werkzeug. Stellen Sie sicher, dass die Benutzer-Home-Verzeichnisse ebenfalls erzeugt wurden. Fügen Sie den Gruppen die Benutzer zu, die Sie für die Zugriffskontrolle auf die Dateien, Verzeichnisse und Drucker, wie in Ihrer Samba-Umgebung gewünscht, benötigen.
Weisen Sie jeder UNIX-Gruppe die NT-Gruppe zu: (Vielleicht ist es hilfreich, diesen Text in ein kleines Shell-Skript namens initGroups.sh zu kopieren.) <title>Shell-Skript zur Initialisierung der Gruppen-Zuweisungen</title>
#!/bin/bash #### Shell-Skript für spätere Verwendung aufbewahren # Als Erstes weisen wir bekannte Gruppen zu: net groupmap modify ntgroup="Domain Admins" unixgroup=ntadmins rid=512 net groupmap modify ntgroup="Domain Users" unixgroup=users rid=513 net groupmap modify ntgroup="Domain Guests" unixgroup=nobody rid=514 # Dann für unsere eigenen Domänen-Gruppen: net groupmap add ntgroup="Designers" unixgroup=designers type=d rid=1112 net groupmap add ntgroup="Engineers" unixgroup=engineers type=d rid=1113 net groupmap add ntgroup="QA Team" unixgroup=qateam type=d rid=1114
Erzeugen Sie das Verzeichnis scripts zur Nutzung in der [NETLOGON]-Freigabe:
root# mkdir -p /var/lib/samba/netlogon/scripts
Legen Sie die Anmelde-Skripten (Batch- oder cmd-Skripten), die verwendet werden sollen, in diesem Verzeichnis ab.
Die vorige Konfiguration stellt einen voll funktionierenden primären Domänencontroller (PDC) zur Verfügung, zu dem noch die gewünschten Dateifreigaben und Drucker hinzugefügt werden müssen.
In diesem Kapitel wollen wir kurz einen Überblick über eine Samba-3-Konfiguration geben, die ein Authentifizierungs-Backend nutzt, das auf dem Lightweight Directory Access Protocol (LDAP) basiert. Die Hauptgründe für diese Wahl waren zum einem die Möglichkeit, einen primären und einen Backup-Domänencontroller (BDC) zur Verfügung zu stellen, und zum anderen ein größeres Maß an Skalierbarkeit, um den Anforderungen an eine sehr verteilte Umgebung gerecht zu werden.
Dies ist ein Beispiel für eine Minimalkonfiguration, um einen Samba-3-PDC mit einem LDAP-Authentifizierungs-Backend zu nutzen. Es wird vorausgesetzt, dass das Betriebssystem korrekt konfiguriert wurde.
Die Idealx-Skripten (oder gleichwertige) werden benötigt, um LDAP-basierende Posix- und/oder SambaSamAccounts zu verwalten. Die Idealx-Skripten können von dieser Idealx-Webseite heruntergeladen werden. Sie können ebenfalls vom Samba-tarball genommen werden. Linux-Distributionen installieren die Idealx-Skripten meist in dem Verzeichnis /usr/share/doc/packages/sambaXXXXXX/examples/LDAP/smbldap-tools. Die Idealx-Skriptversionen smbldap-tools-0.8.2 sind bekanntermaßen eine gute Arbeitsgrundlage.
Nehmen Sie aus den Samba-Quellen ~/examples/LDAP/samba.schema, und kopieren Sie dies in das Verzeichnis /etc/openldap/schema/.
Setzen Sie den LDAP-Server auf. Dieses Beispiel passt zu OpenLDAP 2.1.x. Die Datei /etc/openldap/slapd.conf sieht so aus: <title>Beispieldatei slapd.conf</title>
# Hinweis: auskommentierte Zeilen wurden entfernt
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
database bdb
suffix "dc=quenya,dc=org"
rootdn "cn=Manager,dc=quenya,dc=org"
rootpw {SSHA}06qDkonA8hk6W6SSnRzWj0/pBcU3m0/P
# Das obige Passwort ist 'nastyon3'
directory /var/lib/ldap
index objectClass eq
index cn pres,sub,eq
index sn pres,sub,eq
index uid pres,sub,eq
index displayName pres,sub,eq
index uidNumber eq
index gidNumber eq
index memberUid eq
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index default sub
Erzeugen Sie die folgende Datei samba-ldap-init.ldif:
# Organisation für SambaXP Demo
dn: dc=quenya,dc=org
objectclass: dcObject
objectclass: organization
dc: quenya
o: SambaXP Demo
description: Der SambaXP Demo LDAP Tree
# Organisatorische Rolle für die Verwaltung des Verzeichnisses
dn: cn=Manager,dc=quenya,dc=org
objectclass: organizationalRole
cn: Manager
description: Directory Manager
# Aufsetzen der Container für die Benutzer
dn: ou=People, dc=quenya, dc=org
objectclass: top
objectclass: organizationalUnit
ou: People
# Aufsetzen eines Administrator-Handles für die People OU
dn: cn=admin, ou=People, dc=quenya, dc=org
cn: admin
objectclass: top
objectclass: organizationalRole
objectclass: simpleSecurityObject
userPassword: {SSHA}0jBHgQ1vp4EDX2rEMMfIudvRMJoGwjVb
# Das vorige Passwort ist 'mordonL8'
Laden Sie die vorigen Initialdaten in die LDAP-Datenbank:
root# slapadd -v -l initdb.ldif
Starten Sie den LDAP-Server durch das Werkzeug oder die Methode, das bzw. die für die verwendete Betriebssystem-Plattform am besten geeignet ist.
Installieren Sie die Idealx-Skriptdateien im Verzeichnis /usr/local/sbin, und konfigurieren Sie dann die Datei smbldap_conf.pm, um Ihre Systemkonfiguration anzupassen.
Die Datei smb.conf, die diesen Backend steuert, kann hier gefunden werden ???:
Beispiel 3.9. LDAP-Backend smb.conf für einen PDC
Fügen Sie das LDAP-Passwort zu der Datei secrets.tdb hinzu, so dass Samba die LDAP-Datenbank aktualisieren kann:
root# smbpasswd -w mordonL8
Fügen Sie Benutzer und Gruppen wie benötigt hinzu. Benutzer und Gruppen, die über Samba-Werkzeuge hinzugefügt wurden, werden automatisch sowohl dem LDAP- Backend als auch dem Betriebssystem hinzugefügt.
??? zeigt die Beispielkonfiguration für den BDC.
Entscheiden Sie, ob der BDC seinen eigenen LDAP-Server haben soll oder nicht. Falls der BDC auch der LDAP-Server ist, ändern Sie die folgende smb.conf wie angezeigt. Die Standardkonfiguration in ??? benutzt einen zentralen LDAP-Server.
Beispiel 3.10. Remote LDAP-BDC smb.conf
Konfigurieren Sie die Verzeichnisse NETLOGON und PROFILES für den PDC wie in ???.