Inhaltsverzeichnis
Dieses Kapitel befasst sich ausschließlich mit den Unterschieden zwischen Samba-3.0.0 und Samba-2.2.8a. Es zeigt, wo in der Konfiguration Parameter geändert wurden und stellt eine einfache Anleitung für den Umstieg von 2.2.x auf 3.0.0 dar.
Das Standard-Verhalten von Samba-3.0.0 sollte ungefähr dasselbe sein wie das von Samba-2.2.x. Das Standard-Verhalten, wenn der neue Parameter passdb backend nicht in der Datei smb.conf gesetzt ist, entspricht demselben Standard-Verhalten von Samba-2.2.x mit encrypt passwords = Yes und benutzt die Datenbank smbpasswd.
Warum sagen wir dann, das Verhalten sollte ungefähr dasselbe wie bei Samba-2.2.x sein? Weil Samba-3 neue Protokolle beherrscht, z.B. die Unterstützung für Unicode, was zur Folge haben kann, dass anderer Protokoll-Code verwendet wird. Das neue Verhalten unter solchen Umständen ist nicht exakt dasselbe wie das frühere. Die gute Nachricht dabei ist, dass die Domänen- und Maschinen-SIDs beim Upgrade beibehalten werden.
Wenn das Samba-2.2.x-System ein LDAP-Backend verwendet hat und keine Zeit vorhanden ist, um die LDAP-Datenbank upzudaten, sollten Sie zumindest prüfen, dass passdb backend = ldapsam_compat in der Datei smb.conf gesetzt ist. Das restliche Verhalten sollte mehr oder minder das gleiche bleiben. Zu einem späteren Zeitpunkt, wenn Zeit vorhanden ist, um ein neues zu Samba-3 kompatibles LDAP-Backend zu implementieren, ist es möglich, die alte LDAP-Datenbank unter Verwendung des Befehls pdbedit zu migrieren (siehe ???).
Die wichtigsten neuen Features sind:
Active Directory Support. Dieses Release kann sich einer ADS-Realm als Mitgliedsserver anschließen und Benutzer mittels LDAP/Kerberos authentifizieren.
Samba kann nun Unicode on-the-fly verhandeln, und es gibt intern eine viel bessere Infrastruktur für Multi-byte- und Unicode-Zeichensätze.
Neues Authentifizierungssystem. Das interne Authentifizierungssystem wurde fast komplett neu geschrieben. Die meisten Veränderungen sind intern, aber auch das neue Authoring-System ist sehr vielfältig konfigurierbar.
Neuer Befehl „net“. Der neue Befehl „net“ wurde hinzugefügt. Er ähnelt dem Windows-Befehl „net“. Eventuell werden einige andere Werkzeuge (wie smbpasswd) durch Sub-Befehle in „net“ ersetzt.
Samba kann nun Status32-codes von NT on-the-wire verhandeln. Dies verbessert den Umgang mit Fehlern und deren Codes deutlich.
Bessere Windows-200x/XP-Druck-Unterstützung, einschließlich der Bereitstellung von Drucker-Attributen im ADS.
Neue ladbare RPC-Module für passdb-Backends und Zeichensätze.
Neue standardmäßige Dual-Dämon-Unterstützung für Winbind mit besserer Performance.
Unterstützung für die Migration von einer Windows NT 4.0-Domäne auf eine Samba-Domäne unter Beibehaltung von Benutzer-, Gruppen- und Domänen-SIDs.
Unterstützung für das Herstellen von Vertrauensstellungen mit Windows NT 4.0-Domänencontrollern.
Initial-Unterstützung für eine verteilte Winbind-Architektur unter Verwendung eines LDAP-Verzeichnisses zur Speicherung der Zuordnungen von SIDs zu UIDs/GIDs.
Große Updates im Samba-Dokumentationsbaum.
Volle Unterstützung für Client- und Server-Signing, um für Kompatibilität mit den Standard-Sicherheitseinstellungen von Windows 2003 zu sorgen.
Und es gibt noch viele weitere Verbesserungen!
Dieser Abschnitt enthält eine kurze Liste von Veränderungen an den Parametern in smb.conf, die in der Samba-Release 3.0.0 enthalten sind. Bitte konsultieren Sie die smb.conf(5)-Manpage für vollständige Beschreibungen der neuen oder geänderten Parameter.
(alphabetisch geordnet):
admin log
alternate permissions
character set
client codepage
code page directory
coding system
domain admin group
domain guest group
force unknown acl user
nt smb support
post script
printer driver
printer driver file
printer driver location
status
stip dot
total print jobs
use rhosts
valid chars
vfs options
(Die neuen Parameter wurden nach Funktion gruppiert):
Fernwartung
abort shutdown script
shutdown script
Verwaltung von Benutzer- und Gruppen-Konten:
add group script
add machine script
add user to group script
algorithmic rid base
delete group script
delete user from group script
passdb backend
set primary group script
Authentifikation:
auth methods
realm
Protokoll-Optionen:
client lanman auth
client NTLMv2 auth
client schannel
client signing
client use spnego
disable netbios
ntlm auth
paranoid server security
server schannel
server signing
smb ports
use spnego
Datei-Dienst:
get quota command
hide special files
hide unwriteable files
hostname lookups
kernel change notify
mangle prefix
map acl inherit
msdfs proxy
set quota command
use sendfile
vfs objects
Drucken:
max reported print jobs
Unicode und Zeichensätze:
display charset
dos charset
unicode
UNIX charset
Zuordnung von SIDs zu UIDs/GIDs:
idmap backend
idmap gid
idmap uid
winbind enable local accounts
winbind trusted domains only
template primary group
enable rid algorithm
LDAP:
ldap delete dn
ldap group suffix
ldap idmap suffix
ldap machine suffix
ldap passwd sync
ldap user suffix
Allgemeine Konfiguration:
preload modules
privatedir
encrypt passwords (Standard-Wert: YES)
mangling method (Standard-Wert: hash2)
passwd chat
passwd program
password server
restrict anonymous (Integer-Wert)
security (neuer ADS-Wert)
strict locking (Standard-Wert: YES)
winbind cache time (erhöht auf 5 Minuten)
winbind uid (veraltet zugunsten von idmap uid)
winbind gid (veraltet zugunsten von idmap gid)
Dieser Abschnitt enthält kurze Beschreibungen der neuen Datenbanken, die mit Samba-3 eingeführt wurden. Bitte vergessen Sie nicht, Ihre existierenden ${lock directory}/*tdb-Dateien zu sichern, bevor Sie auf Samba-3 upgraden. Samba wird die Datenbanken upgraden, wenn sie geöffnet sind (wenn nötig), jedoch wird das Downgrade von 3.0 auf 2.2 nicht unterstützt.
Die neuen tdb-Dateien sind in ??? beschrieben.
Tabelle 30.1. TDB-Datei-Beschreibungen
| Name | Beschreibung | Backup? |
|---|---|---|
| account_policy | Einstellungen zu Benutzer-Richtlinien | Ja |
| gencache | Allgemeine Caching-DB | Nein |
| group_mapping | Zuordnungstabelle von Windows-Gruppen/SID zu UNIX-Gruppen | Ja |
| idmap | Neue Tabelle für die ID-Zuordnung von SIDs zu UNIX-UIDs/GIDs | Ja |
| namecache | Einträge im Namensauflösungs-Cache | Nein |
| printing/*.tdb | Gepufferte Ausgabe des Befehls `lpq command', die für jeden Druckdienst angelegt wird | Nein |
| registry | Read-only-Samba-Registry-Gerüst, das Unterstützung für den Export verschiedener Datenbank-Tabellen via winreg-RPCs bietet | no |
Die folgenden Themen sind bekannte Veränderungen im Verhalten zwischen Samba-2.2 und Samba-3, die manche Installationen beeinflussen können.
Wenn Samba-2.2 als Mitglied einer Windows-Domäne arbeitet, würde es alle Benutzer, die vom entfernten DC authentifiziert wurden, dem „guest account“ zuordnen, wenn keine UID durch den Aufruf getpwnam() erhalten werden kann. Samba-3 weist die Verbindung als „NT_STATUS_LOGON_FAILURE“ ab. Es gibt derzeit keine Möglichkeit, das Verhalten von Samba-2.2 wiederherzustellen.
Beim Hinzufügen von Maschinen zu einer Samba-2.2-Domäne wurde „add user script“ verwendet, um die UNIX-Identität des Maschinen-Vertrauenskontos anzulegen. Samba-3 führt „add machine script“ ein, das zu diesem Zweck spezifiziert werden muss. Samba-3 wird nicht auf die Verwendung von „add user script“ zurückgreifen, wenn kein „add machine script“ vorhanden ist.
Es gibt einige Änderungen, an die Samba-Administratoren beim Wechsel auf Samba-3 denken sollten.
Verschlüsselte Passwörter sind nun standardmäßig aktiviert, um besser mit Out-of-the-box-Windows-Client-Installationen zusammenzuarbeiten. Das bedeutet, dass entweder (a) ein Samba-Konto für jeden Benutzer angelegt werden muss oder dass (b) „encrypt passwords = no“ explizit in smb.conf gesetzt sein muss.
Die neue Option security = ads wurde eingeführt, um die Integration einer ADS-Domäne unter Verwendung der nativen Windows-Kerberos-5- und LDAP-Protokolle zu ermöglichen.
Samba-3 beinhaltet auch die Möglichkeit, Verkettungen von Authentifikationsmethoden (auth methods) und Konten-DB-Backends (passdb backend) einzusetzen. Bitte konsultieren Sie die Manpage für smb.conf und ??? für Details. Obwohl beide Parameter auf vernünftige Standard-Werte gesetzt wurden, ist es doch wahrscheinlich, dass Sie ihre Bedeutung kennen lernen wollen, um den korrekten Betrieb von Samba zu gewährleisten.
Bestimmte Funktionen des Befehls smbpasswd wurden auf das neue Werkzeug smbpasswd, das Werkzeug net und das neue pdbedit-Utility aufgeteilt. Details dazu finden Sie in den jeweiligen Manpages.
Dieser Abschnitt stellt kurz die neuen Features vor, die die Samba/LDAP-Integration betreffen.
Eine neue Objektklasse (sambaSamAccount) wurde eingeführt, um die alte Klasse sambaAccount zu ersetzen. Diese Änderung hilft dabei, Attribute umzubenennen, um Kollisionen mit Attributen anderer Hersteller zu vermeiden. Es gibt ein Konverter-Skript (examples/LDAP/convertSambaAccount), das eine LDIF-Datei in das neue Schema konvertiert.
Beispiel:
$ ldapsearch .... -b "ou=people,dc=..." > old.ldif $ convertSambaAccount <DOM SID> old.ldif new.ldif
Sie können <DOM SID> abfragen, indem Sie auf dem Samba PDC (als root)
$ net getlocalsid <DOMAINNAME>
ausführen.
Das alte sambaAccount-Schema kann weiterhin verwendet werden, indem man das Passdb-Backend ldapsam_compat spezifiziert. sambaAccount und zugehörige Attribute wurden jedoch in den „historical“-Abschnitt der Schema-Datei verschoben und müssen erst auskommentiert werden, um sie verwenden zu können. Die Samba-2.2-Objektklassen-Deklaration für einen sambaAccount hat sich in der samba.schema-Datei von Samba-3 nicht verändert.
Andere neue Objektklassen und deren Anwendungen beinhalten:
sambaDomain Domänen-Information zur Zuordnung von RIDs für Benutzer und Gruppen. Die Attribute werden im „ldap suffix“-Verzeichnis-Eintrag automatisch hinzugefügt, wenn ein UID/GID-Bereich für die idmap gesetzt und das „ldapsam“-Passdb-Backend ausgewählt wurde.
sambaGroupMapping Ein Objekt, das die Beziehung zwischen einer posixGroup und einer Windows-Gruppe/SID repräsentiert. Diese Einträge werden im „ldap group suffix“ gespeichert und mit dem Befehl „net groupmap“ verwaltet.
sambaUNIXIdPool Wird automatisch im „ldap idmap suffix“ angelegt und enthält die nächste verfügbare „idmap-UID“ und „idmap-GID“.
sambaIdmapEntry Das ist ein Objekt, das eine Zuordnung zwischen einer SID und einer UNIX-UID/GID speichert. Diese Objekte werden vom idmap_ldap-Modul je nach Bedarf angelegt.
Die folgenden neuen smb.conf-Parameter wurden hinzugefügt, um bestimmte LDAP-Abfragen zu unterstützen, wenn passdb backend = ldapsam://... spezifiziert wurde.
ldap suffix für die Suche nach Benutzer- und Maschinen-Konten.
ldap user suffix für das Speichern von Benutzer-Konten.
ldap machine suffix für das Speichern von Maschinen-Vertrauenskonten.
ldap group suffix posixGroup/sambaGroupMapping-Einträge.
ldap idmap suffix sambaIdmapEntry-Objekte.
Wenn ein ldap suffix definiert ist, wird es an alle verbleibenden sub-suffix-Parameter angehängt. In diesem Fall ist die Reihenfolge der Suffixe in smb.conf wichtig. Platzieren Sie ldap suffix immer als ersten Eintrag in der Liste.
Wegen einer Beschränkung in Sambas Parsing von smb.conf sollten Sie die DNs nicht in Anführungszeichen einschließen.
Samba-3 unterstützt ein LDAP-Backend für das idmap-Subsystem. Die folgenden Optionen informieren Samba darüber, dass die idmap-Tabelle auf dem Verzeichnis-Server „onterose“ in der Partition „ou=idmap,dc=quenya,dc=org“ gespeichert werden soll.
| [global] |
| ... |
| idmap backend = ldap:ldap://onterose/ |
| ldap idmap suffix = ou=idmap,dc=quenya,dc=org |
| idmap uid = 40000-50000 |
| idmap gid = 40000-50000 |
Bei dieser Konfiguration können Winbind-Installationen auf mehreren Servern sich einen UID/GID-Zahlenbereich teilen. Dadurch werden die Probleme bei der Zusammenarbeit mit NFS vermeiden, die es in Samba-2.2 gab.