Debian Linux als PDC für Windows-Domänen

Samba als Windows Domain Controller auf dem NSLU2

28.02.2008 von ALBERT  LAUCHNER
Nachdem wir im ersten Teil der Serie Debian Linux auf dem Linksys NSLU2 installiert haben, muss der Netzwerkadapter für USB-Festplatten nun als echter Domain Controller für Windows-Netzwerke herhalten. Dabei zeigen wir auch ganz allgemein, wie Sie Samba 3.0 unter Linux als Primary Domain Controller installieren und konfigurieren.

Ein Domain-Controller im Windows-Netzwerk erhöht den Komfort und die Sicherheit ungemein. So wird etwa der Ordner „Eigenen Dateien“ automatisch auf dem Domain-Controller gespiegelt, und man hat von jedem PC im Netzwerk Zugriff darauf. Da sich der Primary Domain Controller (PDC) auch gleichzeitig um die Domain-weite Rechtevergabe kümmert, kann man Netzwerkfreigaben fein granuliert vergeben. Und weil nicht nur zu jedem Nutzer, sondern auch zu jedem PC eine gesicherte Vertrauensstellung besteht, haben Eindringlinge beispielsweise über das WLAN keine Chance, an vertrauliche Daten zu gelangen - selbst wenn sie die Zugangsdaten eines Nutzer erbeutet haben.

Diese Vorteile gibt es zumindest von Microsoft nicht umsonst. Doch Samba unter Linux erledigt das alles quasi nebenbei. Lässt man Linux dann auch noch auf dem nur rund 70 Euro teuren NSLU2 von Linksys laufen, der mit einem Stromverbrauch von nur ein paar Watt geräuschlos vor sich hin arbeitet, gibt es kein Argument mehr gegen einen PDC auch in kleinen Netzwerken.

NSLU2: Der taschenbuchgroße Netzwerkadapter der Cisco-Tochter Linksys bindet im Originalzustand USB-Festplatten ins LAN ein. Wir nutzen ihn als echten Windows Domain Controller.

Im ersten Teil unserer Miniserie zum NSLU2 haben wir den Upgrade der Firmware auf ein Debian-Linux beschrieben. Anschließend haben wir gezeigt, wie Sie im Notfall wieder auf die Original-Firmware zurückwechseln können.

Im diesem Teil geht es nun um die eigentliche Installation des Samba-Servers, dessen Konfiguration als Primary Domain Controller für Windows-Clients und deren Einbindung in die Domäne. Im abschließenden dritten Teil der Miniserie, der demnächst erscheint, geht es dann um Tipps, Tuning und weitere Einsatzmöglichkeiten des Linksys NSLU2. Dabei behandeln wir das Thema Linux-Tunig für Flash-Speicher auch ganz allgemein.

Miniserie Linksys NSLU2

Debian-Linux-Installation auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744030

Samba als Windows Domain Controller auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744753

Tipps, Tricks und Tuning für den NSLU2

noch nicht erschienen

Paketinstallation mit apt

apt ist ein Paketmanager und steht für Advanced Packaging Tool. Über dieses Kommandozeilen-Tool, das neben Debian auch auf viele andere Distributionen portiert ist, lassen sich bequem neue Softwarepakete unter Berücksichtigung aller Abhängigkeiten installieren. apt hält eine Liste aller verfügbaren Softwarepakete lokal vor. Dieses sogenannte Repository wird über das Internet aktualisiert. Auch die Installationen laufen in der Regel über das Internet ab.

Wollen Sie über den Paketverwalter ein Programm installieren, verbindet sich apt zu einem Server, lädt das Paket herunter und spielt es ein. Sind nicht alle Abhängigkeiten erfüllt, erledigt das der Paketmanager für Sie.

Verbinden Sie sich vom PC aus über PuTTY mit Ihrem NSLU2. Zunächst einmal bringen Sie das apt-Repository auf den aktuellen Stand. Als root erledigen Sie dies mit apt-get update . Prüfen Sie anschließend mit apt-get upgrade, ob alle bereits installierten Softwarepakete auf dem aktuellen Stand sind.

apt-get: Als Erstes sollte man den Paketmanager selbst aktualisieren. Ab dann übernimmt er die Installation der Softwarepakete.

Wenn Sie ein Paket suchen, dessen Namen sie ungefähr kennen, nutzen Sie den Aufruf apt-cache search, gefolgt von dem Suchstring. Mehr zu apt-get finden Sie in unserem Artikel Linux-Installation mit apt.

Zeitsynchronisation

Als erstes Paket werden wir ntpdate auf dem Debian-NSLU2 installieren. Es sorgt dafür, dass der NSLU2 in regelmäßigen Abständen seine Systemzeit mit einem Timeserver synchronisiert. Für den geplanten Einsatz als Domain-Controller ist eine gültige Systemzeit ein unbedingtes Muss. Die Installation von ntpdate erledigt der Aufruf von apt-get install ntpdate

ntpdate-Installation: apt kümmert sich um alle Abhängigkeiten.

ntpdate benötigt beim Aufruf mindestens einen gültigen Timeserver, deren Adressen man auf zahlreichen Seiten ergoogeln kann. Am besten übergibt man ntpdate beim Aufruf gleich mehrere Adressen, falls einer der Timeserver einmal offline ist. Mit dem Aufruf

ntpdate -b ptbtime1.ptb.de ntp1.fau.de ntp1.uni-augsburg.de

können Sie gleich einmal das Setzen der Uhrzeit überprüfen.

Richtige Uhrzeit: ntpdate gleicht die Systemzeit mit einem Timeserver im Internet ab.

Um den Zeitabgleich regelmäßig automatisch durchzuführen, fügen Sie folgende Zeile in die Datei /etc/crontab ein:

45 22 * * * root /usr/sbin/ntpdate -b ptbtime1.ptb.de ntp1.fau.de ntp1.uni-augsburg.de >> /var/log/messages

Dann erfolgt der Zeitabgleich täglich um 22:45 Uhr. Das Gelingen sollte man anfangs noch im Logfile unter /var/log/messages überprüfen.

Tipp: Zum Editieren von Textdateien auf dem NSLU2, wie etwa der crontab, nutzen Sie entweder vi. Eine Kurzanleitung zur Benutzung dieses Standard-Linux-Editors finden Sie in unserem Beitrag Crash-Kurs: Arbeiten mit vi. Leichter fällt die Bearbeitung von Dateien mit dem ebenfalls auf dem NSLU2-Debian installierten Editors namens nano, mit dem auch Windows-Anwender schnell zurechtkommen.

Datenfestplatte einbinden

Vor der eigentlichen Installation von Samba binden wir nun eine zweite USB-Festplatte für die späteren Benutzerdaten ein. In unserem Fall nutzen wir dazu nur einen 4-GByte-USB-Stick, das Vorgehen ist aber bei einer „großen“ externen USB-Festplatten identisch.

Stecken Sie die Datenfestplatte am mit „Disk 2“ bezeichneten USB-Port des NSLU2 an. Der Aufruf des Debian-Partitionstools mit cfdisk /dev/sdb erzeugt auf der am zweiten USB-Port angesteckten Platte erst einmal eine Linux-Partition. Mit mkfs.ext3 /dev/sdb1 kann man diese dann formatieren und mit mount /dev/sdb1 /mnt testweise in das System einbinden. Ein abschließender Aufruf von df sollte die neue Platte dann mit ihren Größenangaben anzeigen.

Neuer Massenspeicher: mkfs erzeugt auf der zweiten Festplatte das Dateisystem, mount bindet es ein.

Als Nächstes legen wir mit mkdir /data einen Mountpunkt für die neue Platte an. Nach einem Aufruf von nano /etc/fstab binden wir die neue Festplatte wie im Screenshot gezeigt dauerhaft am Mountpoint /data in das System ein.

nano-Editor: Mit nano kann man die fstab bearbeiten und die neue Festplatte dauerhaft am Mountpoint einbinden.

Schalten Sie nun den NSLU2 mit dem Befehl shutdown -h now aus. Nach dem Neustart sollte die Datenplatte über das Verzeichnis /data ansprechbar sein. Mehr Details zur Verwaltung von Partitionen unter Linux - unter anderem mit cfdisk - finden Sie in unserem Artikel Linux: Festplatten richtig und komfortabel partitionieren.

Samba installieren

Die spätere Arbeit als Domain-Controller wird von dem Softwarepaket Samba erledigt. Dieses installieren wir mit einem einfachen Aufruf von atp-get install samba. Im Test trat dabei gelegentlich ein „post-installation“-Scriptfehler auf. Legen Sie in diesem Fall mit mkdir /etc/samba ein Verzeichnis für die Konfigurationsdateien von Samba manuell an. Darin erzeugen Sie mit dem nano-Editor die Datei smb.conf, in die Sie in die erste Zeile die Zeichenfolge „[global]“ eintragen. Ein erneuter Aufruf von atp-get install samba beseitigt dann den Fehler zuverlässig und startet auch gleich die benötigten Dienste.

Ein weiteres nützliches Softwarepaket ist SWAT, über das sich der Samba-Server remote über einen Browser vom PC aus konfigurieren lässt. Der Aufruf von apt-get install swat erledigt dessen Installation.

Basisinstallation erledigt: Die Samba-Dienste smbd und nmbd laufen, swat ist installiert.

Ab jetzt kann man die Konfiguration des Samba-Servers über dessen IP-Adresse oder Servernamen auf Port 901 erreichen. In unserem Fall genügt der Aufruf von http://linksys:901 im Browser auf dem PC, um auf die Startseite von SWAT zu gelangen. Als Zugangsdaten nutzen wir root und das entsprechende Passwort.

Schaltzentrale: Über den Browser eines PCs lässt sich Samba über SWAT konfigurieren.

Domäne anlegen

Im Folgenden werden wir die Windows-Domäne „SLUGDOM“ anlegen und vom Samba-Server auf dem NSLU2 als Domain-Controller verwalten lassen. In unserem Testnetzwerk sollen zwei Windows-PCs mit den Namen „PC1“ und „PC2“ laufen. Als Benutzer arbeiten darauf „albert“ und „petra“. Jeder soll einen exklusiven Zugriff auf sein privates Home-Laufwerk und auf sein Windows-Nutzerprofil inklusive der „Eigene Dateien“ haben. Zudem soll der NSLU2 ein gemeinsames Verzeichnis namens „public“ anbieten.

Wir beschränken uns hier bewusst auf ein einfaches Netzwerk, um auch reinen Windows-Usern ohne große Netzwerkkenntnisse den Domain-Aufbau zu ermöglichen. Auch legen wir die Nutzerkonten manuell an, was bei kleinen Netzwerken dem scriptgesteuerten Weg vorzuziehen ist. Selbstverständlich kann man später die Struktur und das Usermanagement beliebig erweitern und optimieren. Allein zu Samba existieren dazu auf www.samba.org und speziell unter http://us1.samba.org/samba/docs/ frei als PDF erhältliche Bücher mit vielen hundert Seiten zur Konfiguration.

Zunächst legen wir auf der Linux-Konsole über PuTTY die für unsere Testdomäne notwenigen Verzeichnisse an:

cd /data
mkdir netlogon
mkdir profiles
mkdir public
mkdir home
chmod 777 netlogon
chmod 777 profiles
chmod 777 public
chmod 777 home

Um die Zugriffsrechte machen wir uns keine weiteren Sorgen. Lokale Benutzer haben wir nicht auf dem NSLU2, die Rechte beim Zugriff über das Netzwerk regeln wir später über die Samba-Shares.

Bevor wir uns nun um die Rechner, die Benutzer und die Rechtevergabe kümmern, noch ein paar grundlegende Anmerkungen. Im Windows-Domänenkonzept existiert nicht nur für jeden Benutzer ein eigener Account. Auch die Rechner benötigen einen Maschinen-Account. So erhält ein Eindringling über das WLAN keinerlei Zugang zur Domäne, selbst wenn er den Benutzernamen und das Passwort eines Users kennt.

Damit Samba dieses Sicherheitskonzept unter Linux nachbilden kann, müssen wir zunächst die User und die Maschinen-Accounts auf der Linux-Kommandozeile anlegen. Dabei werden die Maschinen-Accounts wie normale Benutzer-Accounts erzeugt. Anschließend ist es zusätzlich nötig, diese Accounts nochmals in die Samba-interne Benutzerverwaltung einzutragen.

Accounts unter Linux anlegen

Für den Maschinen-Account legen wir zunächst eine eigene Gruppe unter Linux an mit groupadd -g 300 clientpc

Die beiden PCs fügen wir nun als Maschinen-Account dieser Gruppe zu. Die Parameter verhindern, dass man sich mit diesen Accounts als User einloggen kann. Zudem erhalten die Maschinen-Accounts so kein eigenes Home-Verzeichnis. Wichtig ist, dass man an dieser Stelle ein $-Zeichen an das Ende des Rechnernamens anhängt. Anschließend sperren wir noch die Accounts über passwd -l zusätzlich.

useradd -g clientpc -d /dev/null -s /bin/false PC1$
useradd -g clientpc -d /dev/null -s /bin/false PC2$
passwd -l PC1$
passwd -l PC2$

Nun müssen wir noch auf der „Linux-Seite“ die beiden User anlegen. Das erreichen wir über die folgenden Befehle:

useradd -m -d /data/home/albert albert
useradd -m -d /data/home/petra petra

Linux-typisch verwenden wir bei den „echten“ User-Accounts die Kleinschreibung des Namens. Durch die Optionen -m -d legt useradd je ein Home-Verzeichnis auf der zweiten Datenfestplatte im Verzeichnis /data/home an. Dies ist bei dem geplanten Einsatzgebiet wichtig, denn ansonsten hätten die User ihr Linux-Home-Verzeichnis auf dem primären USB-Stick, auf dem sich das Debian-Linux-Betriebssystem befindet. Da wir die Home-Verzeichnisse für Windows zum Schreiben freigeben, könnten die Windows-User recht schnell die Systempartition füllen.

Samba als PDC konfigurieren

Jetzt können wir die Kommandozeile erst einmal verlassen. Die Konfiguration von Samba erfolgt über den Browser am PC. Wichtig dabei: Erst wenn Sie die Basiskonfiguration wie beispielsweise die Pfade für das Home- und Profile-Verzeichnis erledigt haben, dürfen Sie die User zu Samba hinzufügen. Alles andere führt zu den merkwürdigsten Fehlern (und schlaflosen Nächten), wenn Sie später die Windows-PCs anmelden wollen.

Wizard: Mit drei Klicks wird Samba zum PDC.

Der Aufruf von http://linksys:901 (beziehungsweise dem Namen oder der IP-Adresse Ihres Servers) öffnet die Konfigurationsoberfläche von SWAT. Über die Schaltfläche Wizard erledigen wir die Grobkonfiguration. Wir wählen die Optionen „Domänen-Controller“, „WINS-Server“ und „Home-Verzeichnisse“ freigeben. Nach einem Klick auf „Übernehmen“ wechseln wir zu „Bearbeite Parameter“.

Taufe: Der Domain-Controller und die Domäne erhalten ihren Namen.

Tragen Sie bei Workgroup den gewünschten Domänen-Namen ein und prüfen Sie, ob der Netbios-Name mit dem Server-Namen Ihres NSLU2 übereinstimmt. Vergleichen Sie auch die Einstellungen der Sicherheitsoptionen mit denen im Screenshot. Schreiben Sie dann die Daten mit „Commit Changes“ in die Samba-Konfigurationsdatei /etc/samba/smb.conf. Eine kleine Falle gibt es beim Domänennamen: Falls Ihre PCs bislang in einer gemeinsamen Arbeitsgruppe sind, muss sich der Domänennamen vom Namen der Arbeitsgruppe unterscheiden, ansonsten scheitert später der Login.

Wechseln Sie dann zum Punkt „Globals“. Konfigurieren beziehungsweise kontrollieren Sie die Einstellungen gemäß den beiden Screenshots. Je nach SWAT und Samba-Version müssen Sie dazu eventuell die Option „Erweiterte Ansicht“ wählen. Haben Sie speziell ein Auge auf die Felder „Invalid users“, bei denen mitunter root eingetragen ist, und auf die Gruppe „Login Optionen“.

Globale Optionen1: Vergleichen Sie die Einstellungen mit Ihrer Konfiguration.
Globale Optionen2: Auch diese Parameter sollten Sie genau überprüfen.

Shares anlegen

Unter dem Hauptpunkt „Shares“ erstellen wir nun die nötigen Freigaben. Der Wizard zu Beginn der Samba-Konfiguration hat bereits den Share „homes“ für die privaten Home-Laufwerke angelegt. Diese mappt Samba auch gleich automatisch unter Windows auf den Laufwerksbuchstaben H:\. Auch die Rechte wurden so gesetzt, dass jeder User sein eigenes Home erhält, auf das nur er Zugriff hat.

Noch ein Tipp vorweg: SWAT zeigt sich beim Anlegen der Shares mitunter zickig und vergisst, die Parameter zu speichern. Lassen Sie SWAT nach jedem Klick auf „Änderungen speichern“ oder „Erstelle Freigabe“ etwas Zeit. Wechseln Sie danach einmal auf einen anderen Hauptmenüpunkt. Gehen Sie dann zu Shares zurück und prüfen Sie, ob Ihre Änderungen auch übernommen wurden.

Share für das Home: Achten Sie darauf, dass der Share nicht „read only“ und „available“ ist.

Zwingend benötigen wir für den Domain-Controller den Share „Netlogon“. Diesen legen wir auf das vorher erzeugte Verzeichnis /data/netlogon. Wie im Screenshot gezeigt, ist der Share weder browseabel noch beschreibbar. Unter diesem Share könnte man ein Login-Script ablegen, das Windows dann beim Anmelden eines Users automatisch ausführt.

Netlogon: Unter diesem Share kann man Login-Scripte für Windows ablegen.

Weitere Shares

Jetzt benötigen wir noch einen Share für die User-Profile, in die Windows zum Beispiel „Eigene Dateien“ ablegt. Dieser muss den Namen „Profiles“ tragen. Die Optionen von create mask und directory mask sorgen hier dafür, dass nur der jeweilige User Zugriff auf die vom ihm gespeicherten Dateien erhält.

Der wohl wichtigste Share: Unter Profiles legt Windows die individuellen Nutzerdaten ab.

Abschließend fehlt nur noch unser erster Share für die gemeinsame Nutzung, den wir mit dem Namen „public“ im Verzeichnis /data/public erstellen. Dessen Parameter entnehmen Sie ebenfalls dem Screenshot.

Der erste echte Share: Unter „public“ speichern die User später die gemeinsam genutzten Dateien.

Nun ist die Konfiguration von Samba erst einmal erledigt. Wenn Sie jetzt auf den Hauptmenüpunkt „View“ klicken, sehen Sie die von Ihnen vorgenommenen Einstellungen. Vergleichen Sie diese nochmals mit der smb.conf im Anhang am Ende dieses Artikels.

User und Maschinen in Samba anlegen

Wie bereits erwähnt, müssen nun noch alle Benutzer und Domänen-PCs in der Samba-internen Verwaltung SAM registriert werden. Dazu dient das Programm pdbedit. Zunächst tragen wir unsere beiden PCs in die SAM ein:

pdbedit -a -m -u PC1
pdbedit -a -m -u PC2

Beachten Sie, dass wir hier im Gegensatz zur Erstellung für Linux kein $-Zeichen mehr am Ende des Maschinenkontennamens benötigen. Der Parameter -m weist den hinter -u angegebenen Namen als Rechnervertrauenskonto aus.

Registrierung bei Samba: Mit pdbedit erzeugt man ein Samba-Konto für alle PCs in der Domäne.

User in Samba anlegen

Anschließend legen wir noch die eigentlichen Benutzerkonten an. Um später von Windows aus die PCs anmelden zu können, fügen wir auch den User root hinzu. pdbedit fragt jeweils nach einem Passwort, mit dem sich der Benutzer dann später unter Windows einloggt.

pdbedit -a -u root
pdbedit -a -u albert
pdbedit -a -u petra

User-Registrierung: Auch alle Domänenbenutzer werden mit pdbedit in der Samba-internen Datenbank angelegt.

Zum Abschluss der Konfiguration wechseln Sie nochmals zu SWAT und dem Menüpunkt „Status“. Betätigen Sie dort die Buttons „Alle Stoppen“ und anschließend „Alle Starten“, um den Samba-Server mit der aktuellen Konfiguration in das Netzwerk einzubinden.

Samba-Neustart: Über SWAT müssen alle Samba-Dienste gestoppt und dann neu gestartet werden.

Noch ein Tipp, falls Sie beim ersten Test Problem mit Ihrer Domäne feststellen und an der Grundkonfiguration des Samba-Servers Änderungen vornehmen: Änderungen wie etwa die Position des Home-Verzeichnisses und des Profil-Pfades werden bei den bereits angelegten Usern nicht automatisch upgedatet. Entweder Sie korrigieren diese Einstellungen manuell über die vielen Optionen von pdbedit. Einfacher geht es aber, wenn Sie die User in Samba einfach löschen und dann neu anlegen. Zum Löschen benutzen Sie ebenfalls pdbedit mit der Option -x wie in folgendem Beispiel für den Benutzer albert: pdbedit -x -u albert

PC in die Domäne einbinden

Im Prinzip steht jetzt der Anmeldung der PCs an der Domäne nichts mehr im Weg. Loggen Sie sich unter Windows als Administrator ein. Ein Rechtklick auf den Arbeitsplatz bringt Sie zum Reiter „Computername“. Gehen Sie dort auf „Ändern“, geben Sie Ihre Domäne ein und bestätigen Sie den Beitritt mit dem User root und dem in Samba dafür vergebenen Passwort.

Domänen-Beitritt: Loggen Sie sich unter Windows als Administrator ein, nutzen Sie aber beim eigentlichen Beitritt „root“ und das Linux-root-Passwort.

Nach einer kurzen Pause sollte alles erledigt sein. Jetzt ist nur noch ein Reboot nötig, und der Rechner hängt in der Domäne.

Erfolgsmeldung: Der PC ist in die Domäne aufgenommen.

Wählen Sie beim nächsten Anmelden einen unter Samba vergebenen Benutzernamen und das dazugehörige Passwort. Bei „Anmelden an“ tragen Sie den Namen Ihrer Domäne ein.

User-Anmeldung: Ab jetzt können sich die Benutzer des PCs an der Domäne anmelden.

Jetzt sollten Sie noch manuell den öffentlichen Share „public“ mit einem Laufwerksbuchstaben verbinden, und fertig ist das sichere Domänen-Netzwerk.

Shares: Der PDC stellt dem User sein privates Home und ein öffentliches public-Verzeichnis zur Verfügung.

An dieser Stelle beenden wir die Beschreibung der Konfiguration von Samba und des Domänen-Controllers. Ein möglicher nächster Schritt wäre die Erweiterung als Printserver mit zentraler Verwaltung der Druckertreiber. Mehr dazu finden Sie in unserem Beitrag Linux als Printserver mit Samba 3. Weitere Anregungen geben die Beiträge in den unten aufgeführten „Links zum Artikel“.

Ausblick

In diesem Teil unserer Miniserie zum NSLU2 haben wir die Installation und Konfiguration von Samba 3.0 als Domain-Controller beschrieben. Im nächsten Artikel geht es dann um Tuning-Möglichkeiten für den NSLU2. Dabei behandeln wir auch das Thema Linux-Optimierungen für Flash-Devices ganz allgemein. (ala)

Miniserie Linksys NSLU2

Debian-Linux-Installation auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744030

Samba als Windows Domain Controller auf dem NSLU2

www.tecchannel.de/link.cfm?pk=1744753

Tipps, Tricks und Tuning für den NSLU2

noch nicht erschienen

Anhang: Funktionsfähige smb.conf

Diese Beispielkonfigurationsdatei für Samba enthält alle nötigen Einstellungen und Shares, um Samba als Domain-Controller zu konfigurieren.

# Samba config file created using SWAT
# from 192.168.100.84 (192.168.100.84)
# Date: 2008/02/20 12:30:54

[global]
workgroup = SLUGDOM
logon path = \\%L\profiles\%U
logon drive = h:
logon home = \\%L\%U
domain logons = Yes
wins support = Yes
ldap ssl = No

[homes]
valid users = %S
read only = No
browseable = No

[Netlogon]
comment = Fuer Windows-Logon noetig
path = /data/netlogon
valid users = %S
read only = No
browseable = No

[Profiles]
comment = Fuer Windows-Profile
path = /data/profiles
read only = No
create mask = 0700
directory mask = 0700
browseable = No

[public]
comment = Oeffentliches Verzeichnis zum Datenaustausch
path = /data/public
read only = No