Supposons le scénario suivant :
- Les ordinateurs clients obtiennent automatiquement des certificats d'une autorité de certification intégrée à Active Directory (Enterprise Certification Authority).
- Les certificats expirés sont automatiquement renouvelés lorsque les clients se trouvent sur le réseau interne.
- Toutefois, les certificats expirés ne sont pas renouvelés automatiquement lorsque les clients sont connectés via un réseau privé virtuel (VPN).
- Cela peut avoir pour conséquence que les clients ne renouvellent pas leur certificat à temps avant son expiration et ne peuvent plus se connecter au VPN.
Arrière-plan
Eine ausführliche Beschreibung der Funktionsweise der manuellen und automatischen Zertifikatbeantragung von einer Active Directory integrierten Zertifizierungsstelle findet sich im Artikel „Bases de la demande manuelle et automatique de certificats via Lightweight Directory Access Protocol (LDAP) et Remote Procedure Call / Distributed Common Object Model (RPC/DCOM)„ .
In der Standardeinstellung replizieren alle Domänenmitglieder durch den Autoenrollment Prozess automatisch das Public Key Services Objekt der Active Directory Gesamtstruktur. Die Auslöser hierfür sind:
- à l'ouverture de session de l'utilisateur (sur les ordinateurs, lorsque le compte de l'ordinateur se connecte, c'est-à-dire au démarrage du système)
- Par minuterie toutes les 8 heures.
- Lors d'une mise à jour de la stratégie de groupe, à condition qu'il y ait eu un changement.
Wird dieser Prozess gestartet und ist die entsprechende Einstellung für automatische Zertifikatbeantragung und -Erneuerung gesetzt, wird durch die obigen Auslöser auch die Beantragung und Erneuerung von Zertifikaten ausgelöst.
Ist ein Client per VPN verbunden, kann es vorkommen, dass keiner der Auslöser zutrifft:
- Bei Anmeldung des Benutzer, also bei Computern, wenn sich das Computerkonto anmeldet, also beim Systemstart, ist oft noch keine VPN-Verbindung aufgebaut, sodass der Client keinen Zugriff auf das Netzwerk hat.
- Per Timer alle 8 Stunden trifft oftmals nicht zu, weil die VPN-Verbindung meist nicht so lange aufrecht erhalten bleibt.
- Bei einer Aktualisierung der Gruppenrichtlinien, vorausgesetzt, es gab eine Änderung – trifft oft nicht zu, da der Auslöser nur bei Änderungen der Gruppenrichtlinien greift.
Trifft keiner dieser Auslöser zu, wird der Autoenrollment Prozess nie ausgelöst (zumindest nicht, während der Client mit dem Netzwerk verbunden ist), und es kann dazu kommen, dass die Clientzertifikate ablaufen.
Lösung: Einen geplanten Task mit einem zusätzlichen Auslöser einrichten
Connaissez-vous TameMyCerts? TameMyCerts est un add-on pour l'autorité de certification Microsoft (Active Directory Certificate Services). Il étend la fonction de l'autorité de certification et permet de Application de la réglementationIl s'agit d'un logiciel de gestion des certificats qui permet d'automatiser l'émission de certificats en toute sécurité. TameMyCerts est unique dans l'écosystème Microsoft, a déjà fait ses preuves dans d'innombrables entreprises du monde entier et est disponible sous une licence libre. Il peut téléchargé via GitHub et être utilisé gratuitement. Une maintenance professionnelle est également proposée.
Die Lösung besteht darin, eine Gruppenrichtlinie einzurichten, die über die Group Policy Preferences (GPP) einen weiteren Auslöser für den Autoenrollment Prozess anlegt. Wenn beispielsweise der VPN-Client ein Ereignis protokolliert, wenn die VPN-Verbindung hergestellt ist, kann dieses Ereignis als Auslöser dienen.
Zunächst wird über die Gruppenrichtlinien-Managementkonsole (gpmc.msc) ein neues Gruppenrichtlinienobjekt erzeugt.

Diesem wird ein aussagekräftiger Name gegeben.

Anschließend wird das Gruppenrichtlinienobjekt bearbeitet.

Unter „Computer Configuration“ – „Preferences“ – „Control Panel Settings“ – „Scheduled Tasks“ wird mit Rechtsklick ein neuer geplanter Task für „At least Windows 7“ angelegt.

Im Karteireiter „General“ wird die Aktion auf „Create“ gestellt und dem Task ein aussagekräftiger Name zugewiesen.
In den „Security Options“ wird auf „Change User or Group…“ geklickt.

Als Objektname wird „SYSTEM“ eingegeben und auf „Check Names“ geklickt.

Anschließend wird das „SYSTEM“ Objekt ausgewählt und mit „OK“ bestätigt.

Zurück in den „Security Options“ wird „Run whether user is logged on or not“ sowie „run with highest privileges“ ausgewählt.

Im Karteireiter „Triggers“ wird auf „New…“ geklickt.

Nachfolgend wird die Einrichtung eines Auslösers basierend auf den Ereignisprotokollen des Windows-integrierten VPN Client beschrieben. Für die eigene Umgebung muss ermittelt werden, ob der eingesetzte VPN Client überhaupt Ereignisse erzeugt und wie diese aussehen. Falls es keine Möglichkeit gibt, ein Ereignis abzufangen, wäre auch ein zeitgesteuerter Auslöser, beispielsweise stündlich, eine valide Option. Allerdings sollte die Aktualisierung nicht zu oft erfolgen, da hier eine gewisse Netzwerklast anfällt, die sich mit der Anzahl der verbundenen Clients potenziert.
Im oberen Auswahlfeld wird der Auslöser auf „On an event“ gesetzt. In den Eintellungen wird „Custom“ gewählt und anschließend auf „New Event Filter“ geklickt

Im nachfolgenden Dialog kann entweder ein Event Filter aus den vorhandenen Optionen gebildet werden, oder mit dem Karteireiter „XML“ ein eigener Filter definiert werden.

Hier ein Beispiel für den Windows-internen VPN Client, der eine Verbindung mit dem Namen „ADCS Labor VPN“ hergestellt hat.
<QueryList>
<Query Id="0" Path="Application">
<Select Path="Application">*[System[(Level=4 or Level=0) and (EventID=20225)]] and *[EventData[Data='ADCS Labor VPN']]</Select>
</Query>
</QueryList>

Eine sehr gute, zuverlässige Alternative ist, die Verbindung zum internen Netzwerk als Auslöser zu verwenden.
Diese Information kann man dem Ereignis Nr. 10000 der Quelle NetworkProfile (im Ereignisprotokoll Microsoft-Windows-NetworkProfile/Operational) entnehmen. Es muss zusätzlich darauf gefiltert werden, dass eine Verbindung zur Domäne erkannt wurde (Kategorie 2).
<QueryList>
<Query Id="0" Path="Microsoft-Windows-NetworkProfile/Operational">
<Select Path="Microsoft-Windows-NetworkProfile/Operational">*[System[(EventID=10000)]] and *[EventData[(Data[@Name="Category"] = "2")]]</Select>
</Query>
</QueryList>
Wichtig ist, dass in den Einstellungen des Triggers eine kleine Verzögerung eingebaut wird, da es bei Aufbau der VPN-Verbindung unter Umständen ein paar Sekunden dauern kann, bis die Verbindung auch tatsächlich genutzt werden kann. 30 Sekunden bis eine Minute sollten optimal wirken.

Im Karteireiter „Actions“ wird auf „New…“ geklickt.

Anschließend wird auf „Browse…“ geklickt.

Es wird der Ordner „C:\Windows\System32\“ ausgewählt und nach der certutil.exe gesucht.

Dem Befehl wird noch das Argument „-pulse“ mitgegeben

Im Karteireiter „Settings“ wird noch „Allow task to be run on demand“ ausgewählt.

Die Gruppenrichtlinie kann nun auf die Clientcomputer verlinkt werden.

Die Clients sollten, wenn die Domäne mit den Standardeinstellungen arbeitet, nach 90 Minuten die neue Gruppenrichtlinie anwenden. Anschließend sollte bei jeder VPN-Verbindung der Autoenrollment Prozess ausgelöst werden.

Les commentaires sont fermés.