Eine der größeren
Herausforderungen, wenn man sich in einer Mischumgebung bewegt, in der nicht
alle Client mit Windows 2000 SP4/Windows XP oder Windows 2003 ausgestattet sind.
In meinem HowTo
"DOS/9x/*nix Clients
mit 2003 DC verbinden" habe ich
schon einen Teil der Lösung hinterlegt, aber da es nicht zur zu einfachen
Kommunikationsproblemen führen kann, bei denen sich ein "alter" oder "nicht-MS"
Rechner weigert mit dem Server zu sprechen, sondern auch zu Zugriffsproblemen
führt ist ein "Bestpraxis-Szenario" hier zur Pflicht geworden.
Ich möchte dieses HowTo nicht als "Bestpraxis" verstanden sehen, in der Form,
dass jetzt jeder sein Netzwerk so einzustellen hat, damit es überhaupt
funktioniert, sondern ich möchte vielmehr einen Weg zeigen in dem es in
Mischumgebungen oder bei Problemen des Zugriffs auf das SYSVOL, die Richtlinien
und Replikationsproblemen mit den folgenden aufgeführten Einstellungen auf jeden
Fall gehen muss.
Digitale Signierung (SMB Signing) für Server Message Block (SMB) Pakete dienen
als Schutz vor "Man-in-the-Middle" Attaken, auch als Bucket Brigade-Angriff
bezeichnet. Eine Deaktivierung der Funktion führt zu einem Sicherheitsrisiko. Da
die Pakete nicht länger mit einem Zeitstempel versehen werden und sich damit in
einem Szenario Reply-Attacken ergeben können.
Noch ein paar grundsätzliche Gedanken, damit meine Beispielkonfiguration
verstanden werden kann:
In einigen FAQs findet man immer wieder die Empfehlung das "SMB Signing - Kom.
digital signieren" zu deaktivieren. Sei es aus Performance Gründen motiviert
oder auch durch Probleme verursacht, die sich ergeben haben.
Aus Sicherheitsgründen kann ich die komplette Deaktivierung des SMB Signings
nicht empfehlen.
Fehler ergeben sich immer in Konstellationen, in
denen das SMB Signing widersprüchlich konfiguriert ist. Also, wo das Client,
bzw. Serververhalten mit unterschiedlichen, sich widerspechenden Einstellungen
konfiguriert ist. In diesem Fall kann es zu Fehlern in der Replikation zwischen
den Domänen Controllern kommen, Gruppenrichtlinien werden nicht mehr angewendet,
da nicht drauf zugegriffen werden kann, Anmeldeprozesse scheitern komplett, die
Datei Zugriffe sind nicht mehr möglich usw.
Beliebte Fehlermeldungen, die u.A. am widersprüchlichen SMB Signing liegen können:
| - | Auf die Registrierungsinformationen bei \\domain.tld\sysvol\domain.tld\Policies\{GUID der Richtlinie}\Machine\registry.pol mit (Fehlercode) kann nicht zugegriffen werden. |
| - | Die Sicherheitsrichtlinie kann nicht übermittelt werden. Auf die Vorlage kann nicht zugegriffen werden. Fehlercode = (Fehlercode). \\domain.tld\sysvol\domain.tld\Policies\{GUID der Richtlinie}\Machine\Microsoft\Windows NT\SecEdit\GptTmpl.inf. |
| - | Auf die Datei gpt.ini des Gruppenrichtlinienobjekts CN={GUID der Richtlinie},CN=Policies,CN=System,DC=domain,DC=tld kann nicht zugegriffen werden. Die Datei muss im Pfad \\domain.tld\sysvol\domain.tld\Policies\{GUID der Richtlinie}\gpt.ini vorhanden sein. (Windows kann den Netzwerkpfad nicht finden. Überprüfen Sie, dass der Netzwerkpfad korrekt ist und dass der Zielcomputer nicht ausgelastet oder ausgeschaltet ist. Falls dies nicht der Fall ist, sollten Sie sich an den Netzwerkadministrator wenden. ). Die Verarbeitung der Gruppenrichtlinie wird abgebrochen. |
Ein sehr guter Artikel zu dem Thema: "You cannot open file shares or Group Policy snap-ins when you disable SMB signing for the Workstation or Server service on a domain controller" http://support.microsoft.com/kb/839499/EN-US/ |
Gehen wir mal davon aus, das wir nicht mit der Deaktivierung arbeiten wollen,
sondern besser einen Mittelweg wählen, der abgesehen vom Sicherheitsaspekt der
mit signierten SMB Paketen verfolgt wurde, für einen reibungslosen Einsatz
sorgt.
Wer mit nicht 2K/XP/2003 Clients/Servern arbeitet kann den Weg gehen, SMB
Signing für Linux, Mac, 98 und auch NT zu integrieren. Jedes dieser OS bietet
die Möglichkeit dazu.
Hier noch mal ein paar Links:
"How to enable Windows 98/ME/NT clients to logon to Windows 2003 based Domains"
http://support.microsoft.com/?kbid=555038
Linux/Samba: "client signing"
http://www.samba.org/samba/docs/man/smb.conf.5.html
An ein paar einfachen Fragen kann man schnell die Verwirrung feststellen
die in diesem Bereich immer wieder auftaucht:
- Ist mit Server immer nur der Server gemeint?
- Kann ein Client nur ein Clientbetriebsystem sein?
- Ist der Server nicht auch mal ein Client?
- Kann nicht auch der Client Serverdienste anbieten?
Die letzten beiden Fragen muss man mit JA beantworten, die ersten beiden sind
ein klares Nein.
Ein Server agiert als Client, wenn
er eine Anfrage an einen anderen Rechner stellt. Ein Client ist in dem Moment
Server, wenn man auf ihn zugreift und er die Daten liefert.
Die Einstellungen der
auf den DCs und Computer angewendeten Sicherheitsrichtlinien dürfen sich auf
keinen Fall widersprechen!
Clients und Server müssen mit denselben Werten konfiguriert sein und diesmal
meine ich die "Computers" und "Domänen Controller", wenn ich von Clients und
Server spreche. Das Problem ist, daß auf den Container der Domain Controller
einen andere Richtlinie wirkt als auf den Container der Computers.
Gehen wir vom Normalverhalten aus, daß nur folgende zuletzt auf dem Objekt
angewendete Richtlinien existieren:
Default Domain Policy: Computer:
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer) | Nicht konfiguriert |
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (wenn Server zustimmt) | Nicht konfiguriert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer) | Nicht konfiguriert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (wenn Client zustimmt) | Nicht konfiguriert |
| Das bedeutet letztlich, daß die Einstellungen in der Lokalen Sicherheitsrichtlinie eines Rechners den Auschlag über die Konfiguration geben und diese kann je nach Betriebsystem (2000 bis SP3, ab SP4, Windows XP und 2003 Server) sehr unterschiedlich sein. | |
Default Domain Controllers Policy: Domänen
Controller: (Achtung nicht nachstellen, nur beispielhaft)
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer) | Deaktiviert |
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (wenn Server zustimmt) | Deaktiviert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer) | Deaktiviert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (wenn Client zustimmt) | Deaktiviert |
| Diese Konfiguration kann je nach OS 2000/2003 wieder etwas abweichen, oder wenn diese Richtlinie schon per Hand geändert wurde. | |
Als eine von vielen Fehlkonfigurationen kann
jetzt folgende Situation auftreten:
Am Client Computer steht die lokale Richtlinie auf
"Microsoft-Netzwerk
(Client/Server): Kommunikation digital signieren (immer): Aktiviert" aber am
Server ist sowohl die erzwungene Konfiguration (immer) als auch die optionale
(wenn X zustimmt) grundsätzlich abgeschaltet. Der Client akzeptiert jetzt aber
nur noch signierte Pakete, die der Server nicht versendet ... Das Resultat: Die
Kommunikation wird nicht stattfinden.
Ob ich digital signierte Pakete immer erzwinge, oder ob ich sie optional
einstelle, ist völlig egal, was die reine Funktion angeht und ich das Thema
Sicherheit ausser Acht lasse. Es geht nur darum, daß ich auf dem Sender (Client
Einstellung)
und dem Ziel (Server Einstellung) immer mit den gleichen Werten arbeite.
Bestpraxis: Default Domain Policy + Default Domain Controllers Policy
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer) | Deaktiviert |
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (wenn Server zustimmt) | Aktiviert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer) | Deaktiviert |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (wenn Client zustimmt) | Aktiviert |
Die gerade genannten Einstellungen als fertige
Sicherheitsvorlage, die dann importiert werden kann:
----- bestpraxis-smb.inf -----
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Registry Values]
MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\EnableSecuritySignature=4,1
MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\RequireSecuritySignature=4,0
MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\EnableSecuritySignature=4,1
MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecuritySignature=4,0
----- bestpraxis-smb.inf -----
Konfiguration des SMB Signings, wenn auf
die GPO nicht mehr zugegriffen werden kann:
Die Lösung steht praktisch schon im oben genannten Artikel
http://support.microsoft.com/kb/839499/EN-US/
und im bestpraxis-smb.inf File, denn dort sind die Registry Werte schon
hinterlegt.
In diesem Moment muss man die Konfiguration kurzfristig in der Registry
anpassen, aber direkt danach in der GPO konfigurieren, wenn der Zugriff wieder
möglich ist, da der per Hand eingetragene Wert in der Registry nach ca. 5
Minuten durch den Wert in der GPO überstimmt werden kann. Aus dem Grunde ist
eine manuelle Anpassung in der Registry für Werte aus dem Bereich der
Sicherheitsvorlagen fast immer aussichtslos. Sie werden halt einfach wieder
überschreiben.
Der Ordnung halber noch mal als Tabelle:
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (immer) | Deaktiviert |
| HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecuritySignature | 0 |
| Microsoft-Netzwerk (Client): Kommunikation digital signieren (wenn Server zustimmt) | Aktiviert |
| HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\EnableSecuritySignature | 1 |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (immer) | Deaktiviert |
| HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\RequireSecuritySignature | 0 |
| Microsoft-Netzwerk (Server): Kommunikation digital signieren (wenn Client zustimmt) | Aktiviert |
| HKLM\System\CurrentControlSet\Services\LanManServer\Parameters\EnableSecuritySignature | 1 |
(c) 2003 - heute, Mark Heitbrink, weitere Informationen unter WebSite-Info\Copyright