Samba als PDC und Printserverby Thorben.L. (Name von der Redaktion geändert) Inhaltsverzeichnis1.1.1 Installation und Konfiguration...................... .............................. 1.2.2 Rechtestrategie und Verzeichnisstruktur der Domäne.................. 1.2.3 Konfiguration des Primary Domain Controller (Anmeldeserver).... 1.2.4 Konfiguration des Fileservers...................................... 1.2.5 Konfiguration des Printservers..................................... 1.3 Installation von Windows XP-Professional auf den Workstations............
2. Anhang.............................................................................................................. 2.1 Glossar....................................................................................................... 2.2 verwendete Literatur..................................................................................
I. xxx III. Verzeichnisstruktur und Rechte / Domänenstruktur V. Shellskripte (useraccount / clientaccount) / Logon-Skripte VII. Integration der WS in die Domäne VIII. Druckerkonfiguration über das Webfronted von Cups / Adobe-Postscript-Treiber X. xxx
1.1 Samba Installation und Kompilation
Die heruntergeladene Datei hat die Endung .tar.gz. Dies entspricht einem komprimierten Dateiformat. Um die Applikation installieren und kompilieren zu können musste diese zuerst unter Verwendung des Befehls tar –xzvf samba-latest.tar.gz dekomprimiert werden. Der für die Installation benötigte Quellcode lag danach dekomprimiert in dem Verzeichnis /download/samba-3.0.0/ vor. Allgemein betrachtet verläuft die Installation in drei aufeinander folgenden Schritten. Der erste Arbeitsschritt besteht darin, anzugeben, mit welchen zusätzlichen Fähigkeiten und Eigenschaften der vorhandene Quellcode kompiliert werden soll. Dabei überprüft das Samba eigene Konfigurationsprogramm „configure“ das bestehende System auf Kompatibilität zur gewünschten Sambakonfiguration. Im zweiten Schritt wird der Quellcode dann übersetzt und im dritten Arbeitsschritt wird Samba dann installiert. Da für das Projekt eine Standardinstallation ausreichte, wurden keine zusätzlichen Parameter hinter ./configure angegeben und Samba anhand der Befehlskette ./configure & make && make install installiert. Die Standardinstallation legt automatisch eine neue Verzeichnisstruktur unter dem Pfad /usr/local/samba.., wie in (AnlageIII/2) dargestellt, an. Zum Abschluss der Sambainstallation folgten noch das Erzeugen der Hauptkonfigurationsdatei smb.conf in das Verzeichnis /usr/local/samba/lib.. und der Passwortdatei smbpasswd in das Verzeichnis /usr/local/samba/private.. .
Grundsätzlich besteht die Sambasoftware aus zwei Daemonen (Dienstprogramme), dem „smbd“ und dem „nmbd“, die beide gestartet sein müssen, damit der ordnungsgemäße Betrieb sichergestellt ist. Die Funktion des „nmbd-Daemon“ besteht darin, alle Namensanfragen von sämtlichen Arbeitsstationen zu beantworten. Hierbei werden IP-Adressen in die entsprechenden NetBIOS-Namen oder NetBIOS- Namen in die entsprechenden IP-Adressen übersetzt. Der „smbd- Daemon“ ist der zentrale Server-Prozess von Samba. Er ist für die eigentlichen Datei- und Druckerdienste zuständig. Er verwaltet die definierten Freigaben und entscheidet über alle Zugriffe auf diese. Beide Daemonen können über die Ausführung der Startskripte „*smbd –D“ und „*nmbd –D“, die unterhalb des Verzeichnisses /usr/local/samba/sbin abgelegt worden sind, manuell gestartet werden. Damit aber die beiden Daemonen während eines Systemboots automatisch starten, bedarf es einiger Konfigurationen innerhalb der Boot-Sequenzen von Linux. Hierzu musste zuerst das im Sambapaket enthaltene Suse-kompatible Startskript „rcsmb“ der Sambainstallation angepasst werden. Dazu wurden die entsprechenden Pfade für die smb.conf, für die beiden Startprogramme „*smbd“ und „*nmbd“ sowie der Pfad für die Prozessnummern (pid) der beiden Daemonen editiert. Anschließend musste das rcsmb-Skript in das Verzeichnis /etc/init.d kopiert werden. Hier liegen alle Skripte, die das System während des Bootvorgangs abarbeitet. Ob ein Skript abgearbeitet wird oder nicht, entscheidet das System aufgrund eines „Links“ in den Runlevels. Das heißt, dass das rcsmb-Skript gegen die entsprechenden Runlevels gelinkt werden musste. Die Verknüpfung wurde über den „Runleveleditor“ erstellt, der über den YAST angesteuert werden kann. Bei dieser Konfiguration wurde ein Verweis in den Runlevel 2 und 3 gesetzt.
1.2.2 Die Rechtestrategie und Verzeichnisstruktur der Domäne (s.AnlageIII/1 und 3).
Vor Beginn der eigentlichen Konfiguration von Samba mussten die globalen Gruppen und alle benötigten Ordner mit ihren spezifischen Berechtigungen auf dem Server angelegt werden .Es wurden folgende Gruppen über das Konfigurationsprogramm YAST unter dem Menuepunkt „Sicherheit und Benutzer ; Gruppen bearbeiten und anlegen“ erstellt: Fibu ® für alle Mitarbeiter der Finanzbuchhaltung Wws ® für alle Mitarbeiter des Warenwirtschaftssystems Smbuser ® Standardgruppe für alle Accounts Smbadmin ® Gruppe der Samba-Administratoren DoClient ® Gruppe der Domänenclients
Alle für den PDC relevanten Ordner, /netlogon; /profile und /skripte sowie die Verzeichnisstrukturen /privat/user und /public wurden unterhalb des Mountpoints /home angelegt. Das gesamte Verzeichnis /homei erhält root als Besitzer mit „Schreib-Lese und Ausführungsrechten (r-w-x)“ und die Gruppenzugehörigkeit Smbuser mit nur „Lese- und Ausführungsrechten (r - x)“. Für diese Einstellungen verwendete ich die folgenden Befehle mit dem Paramter -R: chgrp -R Smbuser DAU und chmod -R 750 DAU Die Angabe des Parameters -R bewirkt eine rekursive Ausführung der Befehle, so dass sich die Änderungen auf alle Unterverzeichnisse gleichermaßen auswirken. Die Mountpoints /FIBU und /WWS erhalten root als Besitzer mit „Schreib-Lese und Ausführungsrechten (r-w-x)“, wobei /FIBU die Gruppenzugehörigkeit der Gruppe Fibu und /WWS die Gruppenzugehörigkeit der Gruppe Wws erhalten. Beide Gruppen besitzen ebenfalls „Schreib-Lese und Ausführungsrechte (r-w-x)“ auf den jeweiligen Verzeichnissen.
1.3 Konfiguration des Anmeldeservers (PDC)
Die Hauptkonfigurationsdatei ist die „smb.conf“ (s.AnlageIV). Diese Datei ist in mehrere Abschnitte „Sections“ unterteilt, die jeweils durch einen Abschnittsnamen in eckigen Klammern eingeleitet werden. Jede smb.conf hat eine Sektion mit der Bezeichnung „[global]“. In dieser werden Festlegungen getroffen, die den Server als Ganzes betreffen. Samba besitzt vier verschieden Sicherheitsebenen, die alle auf eine unterschiedliche Art und Weise die Authentifizierung, und damit den Zugriff auf Freigaben steuern. Damit Samba als Primary-Domain-Controller agieren kann, muss die Sicherheitsebene mit „security=user“ definiert werden. Diese Sicherheitsstrategie setzt allerdings ein gültiges Benutzerkonto für jedes Domänenmitglied auf dem System sowie ein weiteres Konto für Samba selbst voraus. Damit eine „globale Anmeldung“ der User möglich ist, war es notwendig die Optionen „domain logons“ und „encrypt password“ auf „yes“ zu setzten. Der Parameter „encrypt passwords“ wird benötigt um Samba die Verwaltung von verschlüsselten Passwörter ab Windows 98 und Windows NT 4.0 mit Service Pack 3 zu ermöglichen. Anhand der Optionen „domain master“, „local master“ und „preferred master=yes“ übernimmt Samba den Suchdienst innerhalb seiner Domäne. Dabei bestimmt der Eintrag „os level“ -der mit einem Integerwert deklariert wird- als welches Betriebssystem sich Samba gegenüber dem Netzwerk ausgeben soll, wenn es um die Verteilung der Suchdienste geht. Mit den Optionen „workgroup“ und „netbios name“ wurde der Name der Domäne und der Servername festgelegt. Die Option „logon script=%U.bat“ verweist auf ein benutzerspezifisches „Logon-Skript“, das über die Freigabe „[netlogon]“ zur Verfügung gestellt wird. Bei einer globalen Anmeldung wird diese dann vom Server aus an die Workstation übergeben und dort ausgeführt. Die Variable %U übernimmt dabei als Wert den Namen des Users, der sich an der Domäne anmeldet. Das bedeutet, dass für jedes Domänenmitglied ein „Logon-Skript“ unter der Freigabe „[netlogon]“ hinterlegt sein muss. Damit jedem User ein „Roaming Profile“ zur Verfügung steht und dadurch eine globale Anmeldung von jeder Domänen-Arbeitsstation aus möglich ist, wird die Option „logon path=\\%N\profile\%U“ gesetzt. Dabei stehen die Parameter „\\%N“ für den Netbiosnamen des PDCs und „\%U“ für den Namen des Domänenmitglieds. Die Angabe \profile\ dient als Verknüpfung zu der Sektion „[profile]“. In dieser Sektion ist unter Verwendung diverser Optionen die Pfadangabe des tatsächlichen Verzeichnisses sowie die Berechtigungen auf die später abgelegte Windows-Profile angegeben. Innerhalb des Verzeichnisses /profile haben alle User ihr eigenes Unterverzeichnis, das nach ihnen benannt ist. In dieses wird bei einer globalen Anmeldung und einer anschließenden Abmeldung das userspezifische Windows- Profil abgelegt. Dieses servergespeicherte Profil ist dann zentral verfügbar und wird bei einer erneuten globalen Anmeldung von dem Server auf die Workstation kopiert. Die Option „admin users=@Smbadmin“ legt die Gruppe fest, denen Samba „root-Rechte“ für administrative Tätigkeiten vergibt, wie zum Beispiel das Einbinden neuer Arbeitsstationen in die Domäne „home.lan“.
Skripte zur Samba Benutzerverwaltung Generell werden beim Anlegen eines Useraccounts die Befehle „useradd [Name]“ für die Systemebene und „smbpasswd -a[Name]“ für die Sambaebene verwendet. Die Befehlskombinationen „useradd [Computername]\$“ und „smbpasswd -a-m [Computername]“ werden für das Anlegen eines Clientaccounts verwendet. Hierbei muss hinter dem Namen der Workstation ein „$“ gesetzt sein, damit das System dieses als Maschinenkonto erkennen kann . Um die Administration der Benutzerverwaltung zu vereinfachen, wurden von mir die Shellskripte „useraccount.bat“ und „clientaccount.bat“ geschrieben. Das Skript „useraccount“ automatisiert dabei das Anlegen neuer Benutzerkonten und „clientacount“ das Anlegen von Domänen-Arbeitsstationskonten. Bei der Ausführung von „useraccount“ (s.AnlageV/1) wird zunächst der Benutzername und anschließend die Gruppenzugehörigkeit abgefragt. Daraufhin wird automatisch auf dem System durch die Ausführung des Befehls useradd mit den zusätzlichen Parametern -d ,-s ,-c und -G der Account erstellt. Dabei beschreibt -d den Pfad für das persönliche Verzeichnis (Homeverzeichnis) des Users. Da aus Sicherheitsgründen jedem Mitarbeiter eine lokale Anmeldung auf dem Server verwehrt bleiben soll, wird der Parameter -s mit der Option /bin/false gesetzt. Die Kombination „-s /bin/false/ “ bewirkt, dass keine Anmeldeshell auf dem Server für den angelegten Account existiert. Der Parameters -c kommentiert die Gruppenzugehörigkeit und mit -G werden die zuvor ausgewählte Gruppe sowie die Standardgruppe „Smbuser“ dem neuen Account zugeordnet. Der anschließende Aufruf des Befehls mkdir erzeugt das „Homeverzeichnis“ unter dem Pfad /home/privat/ user/$USER und das „Profilverzeichnis“ unter dem Pfad /home/pfofile/ $USER. Die Befehle chmod und chown setzen die entsprechenden Zugriffsberechtigungen und weisen der neuen Verzeichnisstruktur den Besitzer zu. Im weiteren Ablauf wird durch den Aufruf von smbpasswd -a $USER der nötige Account für die Sambaebene angelegt. Im letzten Ausführungsschritt wird das benutzerspezifische Logon-Skript generiert. Hierbei wird aufgrund der Gruppenzugehörigkeit das entsprechende unter /skripte hinterlegte Basisskript ausgewählt und unter Verwendung des Accountnamens dann in das Verzeichnis /netlogon als „Username.bat“ kopiert. Das Skript clientaccount (s.AnlageV/2) dient der Erstellung von Accounts für Arbeitsstationen. Bei diesem Skript wird ebenfalls vor dem Anlegen zunächst der Computername abgefragt und anschließend durch useradd -g-c-d-s [Computername]\$ das Konto auf dem System erzeugt. Alle Arbeitsstationskonten werden der Gruppe DoClient zugeordnet. Der Aufruf smbpasswd -a-m [Computername] bewirkt das Anlegen des Kontos für Samba.
Logon Skripte (s.AnlageV/3) Logon-Skripte sind Batchdateien, die einen oder mehrere MS-DOS/NT-Befehle enthalten, die zum Zeitpunkt der globalen Anmeldung nacheinander auf der Workstation ausgeführt werden. Insgesamt wurden von mir die vier Standardskripte „logAdmin.bat“, „logFibu.bat“, „logWWS.bat“ und „Smbuser.bat“ geschrieben, die alle in dem Basisverzeichnis /skripte abgelegt sind. Alle vier Skripte dienen der benutzerspezifischen Konfiguration der Arbeitsstationen während einer globalen Anmeldung an der Domäne. Bei der Ausführung des ersten Befehls net -mit der Option set time- wird die Systemzeit der Workstation mit der des Servers synchronisiert. Anschließend werden durch die Ausführung des Befehls net use die angegebenen Laufwerksbuchstaben mit den entsprechenden Freigaben des Sambaservers verbunden. Diese erscheinen dann als Netzlaufwerke auf der Arbeitsstation. Dem User stehen dann sofort die für ihn berechtigten Freigaben zu Verfügung.
1.4 Konfiguration des Fileservers
Freigaben werden durch das Anlegen von weiteren Sektionen in der Datei smb.conf (s.AnlageIV) deklariert. Insgesamt wurden vier neue Sektionen spezifiziert. Eine für den Zugriff auf die Applikation der Finanzbuchhaltung mit dem Freigabenamen „[Fibu]“ und eine weitere für den Zugriff auf das Warenwirtschaftssystem mit dem Freigabenamen „[WWS]“. Des weiteren ein öffentliches, das über den Freigabenamen „[public]“ allen Netzwerkteilnehmern gleichermaßen zur Verfügung steht, sowie „[privat]“, das als Freigabe für die persönlichen Verzeichnisse der Benutzer dient. Der gruppenspezifische Zugriff auf die Freigaben [Fibu] und [WWS] wurden anhand der Option „valid users=@entsprechender Gruppenname“ ermöglicht. Mit „writeable=yes“ bekommen die zugewiesenen Gruppen das Recht schreibend auf diese zuzugreifen. Die Kombinationen aus „create mask“ und „force create mode“ sowie „directory mask“ und „force directory mode“ sorgen für das Setzen der gewünschten Berechtigungs-Bits auf neu angelegte Dateien bzw. Verzeichnisse. Hierbei wird die „Welt“ außen vor gelassen. Aufgrund der Tatsache, dass alle Accounts der Gruppe Smbuser standardmäßig angehören, erhalten damit auch alle neu angelegten Verzeichnisse und Dateien unterhalb von /Fibu und /WWS diese als Gruppenzugehörigkeit, wenn keine Änderungen in der bis dahin bestehenden Konfiguration vorgenommen werden würden. Dieser Zustand würde ein enormes Sicherheitsrisiko darstellen, da alle Mitglieder der Gruppe Smbuser theoretisch mit Lese-Schreib- und Ausführungsrechten auf die neu angelegten Dateien und Verzeichnisse ausgestattet wären. Um die Vertraulichkeit von neu angelegten Verzeichnissen und Dateien unterhalb von /Fibu und /WWS zu gewährleisten, wurde auf diesen das „set-group-ID-Bit“ gesetzt. Diese Zuweisung erfolgte über die Eingabe von chmod g+s /Fibu bzw. chmod g+s /WWS. Dadurch ist sichergestellt, dass alle neu angelegten Strukturen unterhalb von /Fibu die Gruppenzugehörigkeit Fibu und unterhalb von /WWS die Gruppenzugehörigkeit Wws erhalten.
1.5 Konfiguration des Printservers
Um Drucker unter Samba zur Verfügung stellen zu können müssen diese zunächst einmal von Linux aus ansprechbar sein. Hierfür wurde das Drucksystem „Cups“ konfiguriert. Cups bietet -wie im Soll-Konzept bereits erwähnt- eine webbasierte Konfigurationsschnittstelle. Unter Verwendung der URL http://home:631/admin kann diese Schnittstelle von allen Arbeitsstationen aus -die berechtigt sind- bequem über einen Webbrowser aufgerufen werden. Um das Web-Interface von einer anderen Station aus ansprechen zu können mussten zuvor einige Einstellungen in der Hauptkonfigurationsdatei von Cups der cupsd.conf unter dem Editierungsbereich „Security Options“ vorgenommen werden. Während einer Druckerkonfiguration über „Cups“ werden automatisch zwei druckerspezifische Konfigurationsdateien erzeugt. Diese sind die „printers.conf“ und die printcap-Datei. In der „printers.conf“ werden alle druckerspezifischen Parameter (z.B Schnittstelle oder Default-Printer) definiert. Die printcap-Datei listet die über Cups konfigurierten Drucker auf. Alle unter /etc/printcap aufgelisteten Drucker können als Netzwerkdrucker über Samba für Windows-Clients freigeben werden. Damit Samba diese Druckerdefinitionsdatei auch ansprechen kann, ist es notwendig diese in der Sektion [global] unter Verwendung des Parameters „printcap name=/etc/princap“ anzugeben. Weiterhin musste dass verwendete Drucksystem mit der Option „printing=cups“ für Samba beschrieben werden. Die eigentliche Druckerfreigabe wurde über die Deklaration einer weiteren Sektion in der smb.conf realisiert. Innerhalb dieser Freigabe sind die Optionen „printable = yes“, „public= yes“, „path=/var/spool/samba“ sowie „printer = lp“ gesetzt. Der Parameter printable definiert dabei eine Druckerfreigabe, public sorgt für den allgemeinen und uneingeschränkten Zugriff und path legt den Spool-Bereich fest, in das Samba den Druckauftrag als Datei ablegt. Die Angabe der Option printer verweist auf die unter /etc/printcap beschriebenen Warteschlange „lp“ des installierten Druckers. Generell besteht die Möglichkeit, Drucker auf zwei Arten über Cups zu konfigurieren, entweder als „Postscript-Printer“ oder als „Raw-Printer“. Ist ein Drucker als „Raw-Printer“ konfiguriert, so muss die Aufbereitung des Druckauftrags in die entsprechende Druckersprache auf der Arbeitsstation selbst mittels des spezifischen Druckertreibers erfolgen. Das einheitliche Druckformat unter Linux ist allerdings Postscript, das durch die Mithilfe des Zusatzprogramms Ghostscript in viele druckereigene Formate umgewandelt werden kann. Diese Fähigkeit von Ghostscript kann voll ausgenutzt werden, indem auf allen Workstations ein „generischer Postscript-Treiber“ installiert wird, dabei ist es für die Clients völlig unbedeutend, welches Druckermodell sich hinter einer Freigabe von Samba tatsächlich verbirgt. Die Umwandlung findet ausschließlich auf dem Printserver mittels Ghostscript statt. Der große Vorteil dieser Methode liegt darin, dass nur ein einziger, universeller Postscript-Treiber notwendig ist, egal ob als Plattform Windows XP oder Windows NT 4.0 verwendet wird. Als universeller Treiber wurde hierzu auf allen Clients, zu einem späteren Zeitpunkt des Projektes der „universelle- Postscript-Treiber“ von Adobe installiert.
1.6 Integration von XP Clients
Ø Mit XP hat Microsoft eine geänderte Verschlüsselung für Domain-Logins eingeführt, die Samba 3.0.0 nicht beherrscht. Ø Über den Editor für „lokale Sicherheitsrichtlinien“ lässt sich die neue Verschlüsselungsmethode auf den Clients deaktivieren. (s.Anlage III)
Nach dem erfolgreichen Einbinden aller Arbeitsstationen in die Domäne, folgte die Installation des Druckers auf dem Server über das Web-Interface von Cups. Die Vorgehensweise ist unter AnlageVIII/1 dargestellt. Anschließend wird auf allen Arbeitsstationen der universelle Postscript-Treiber installiert und durch das Menue „Drucker und Faxgeräte“ die lokale Schnittstelle (LPT1) mit der Sambafreigabe verknüpft (s.AnlageVIII/2).
2. Anhang
Roaming Profile „streunende- Profile“- zentral abgelegte Benutzerprofile, die für jede Arbeitsstation zur Verfügung stehen.
FreeBSD ist ein Unix-System
Proxy-Server Zwischenspeicherung - meist für Internetseiten. Ein Proxy-Server wird häufig eingesetzt, um den Zugang zu Webseiten beschleunigen zu können.
Squid Software-Paket des Proxys unter Unix- bzw. Linux- Distributionen.
RAID “Redundant-Array of Independent-Disks” - redundante Reihe unabhängiger Laufwerke.
Twisted Pair „verdrilltes-Kabel“, Kabeltyp für Fast Ethernet, Steckernorm ist RJ45
YAST “yet another systemadministration tool ”- System Konfigurationswerkzeug speziell bei Suse-Distributionen.
PDC “Primary-Domain-Controller”- ist ein Server, der innerhalb einer Netzwerk- Domäne zur Verwaltung (z.B. von Benutzerkonten) eingesetzt wird
Remote-Access Fernzugriff auf ein System (z.B. Server).
dedicated Ein Server dient ausschließlich der Bereitstellung von Netzwerkdiensten. Der Server wird nicht als zusätzliche WS genutzt.
Hot-Swap der Austausch einer defekten Festplatte innerhalb eines Raid-Arrays während des laufenden Betriebs.
Grub der gängigste Bootloader bei Linux- Distributionen.
root Benutzerkonto sowie der Name einer Gruppe mit uneingeschränkten Zugriffsrechten auf das System.
Daemon Bezeichnung für ein „Dienstprogramm“ unter Unix- und Linuxsystemen.
Runlevel Der Runlevel definiert den Betriebszustand des Systems.
Cups Common-Unix-Printing-System, aktuellstes Drucksystem für Unix- und Linux- Distributionen.
chgrp (change group) Ändert die Gruppenzugehörigkeit eines Verzeichnisses oder einer Datei. chown (change owner) Ändert den Eigentümer eines Verzeichnisses oder einer Datei. chmod (change mode) Setzen der Berechtigungs-Bits für „Besitzer,Gruppe,Welt“ („rwx-rwx-rwx“ oder „777“). mkdir (make directory) Erzeugen eines Verzeichnisses
Bücher:
d.Punkt – Samba für Unix/Linux- Administratoren
O’Reilly – Samba kurz & gut
Suse Press – Das Samba Buch
Suse Press – Suse linux 8.2 Administrationshandbuch
|