Sicheres PowerShell-Remoting mit eingeschränkten Endpunkten
Feb 11, 2015
PowerShell Remoting ist in Windows Server 2012 (und später) standardmäßig aktiviert, und obwohl viele IT-Abteilungen dies als mögliches Sicherheitsrisiko ansehen, ist PowerShell tatsächlich eine der sichersten Methoden zur Serververwaltung, wenn Best Practices befolgt werden. In diesem Artikel werde ich Ihnen zeigen, wie Sie Windows Server 2012 R2 so konfigurieren, dass Remote-PowerShell-Verbindungen von einer spezifischen Benutzergruppe akzeptiert werden und wie Sie die Cmdlets einschränken können, die ausgeführt werden dürfen.
Was sind eingeschränkte Endpunkte?
Remote Endpoints bestimmen die Benutzer, die sich mit PowerShell Remoting mit einem Gerät verbinden können, sowie was sie tun können, sobald sie authentifiziert sind. Der Standard-PowerShell-Endpoint erlaubt Benutzern, die Mitglieder der integrierten Gruppe Administrators und Remote Management Users sind, eine Fernverbindung herzustellen und gibt alle verfügbaren Cmdlets und Funktionen auf dem Gerät frei.
Die gute Nachricht ist, dass Sie Ihre eigenen constrained Endpunkte erstellen und einschränken können, was Benutzer tun dürfen, um die Risiken zu minimieren, die mit der Erlaubung von PowerShell Remoting für Verwaltungszwecke einhergehen.
Erstellen Sie eingeschränkte Endpunkte in Windows Server 2012 R2
Lassen Sie uns unseren eigenen eingeschränkten Endpunkt in Windows Server 2012 R2 erstellen. Melden Sie sich mit lokalen Administratorrechten an und klicken Sie auf das blaue PowerShell-Symbol in der Taskleiste des Desktops.
- Um die vorhandenen Endpunkte auf dem Server zu sehen, geben Sie
Get-PSSessionConfigurationin die PowerShell-Eingabeaufforderung ein und drücken Sie ENTER. - In der PowerShell-Konsole sollten Sie die vier standardmäßigen Endpunkte sehen.
Um die Cmdlets und Funktionen einzuschränken, die ein Benutzer ausführen kann, wenn er sich mit dem eingeschränkten Endpunkt verbindet, müssen wir eine Konfigurationsdatei erstellen. Geben Sie das unten gezeigte Cmdlet in der PowerShell-Konsole ein und drücken Sie ENTER. New-PSSessionConfigurationFile erstellt eine neue Konfigurationsdatei namens PrintAdmin.pssc und setzt Einschränkungen, einschließlich der Begrenzung entfernter Benutzer auf Funktionen, die Teil des PrintManagement PowerShell-Moduls sind.
New-PSSessionConfigurationFile – Path PrintAdmin.pssc – SessionType RestrictedRemoteServer -LanguageMode NoLanguage – ExecutionPolicy Restricted – ModulesToImport PrintManagement -VisibleFunctions Get-Printer
NoLanguage beschränkt Benutzer darauf, nur Cmdlets und Funktionen auszuführen, d.h. es können keine Skriptblöcke, Variablen oder Operatoren verwendet werden. Der Wert –SessionType RestrictedRemoteServer begrenzt Benutzer auf die folgenden Proxy-Funktionen: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, und Select-Object. Der Wert Restricted für den Parameter –ExecutionPolicy verhindert ebenfalls das Ausführen von Skripten. Beachten Sie, dass es auch einen Parameter –VisibleCmdlets gibt, der verwendet werden kann, wenn die zu importierenden Module Cmdlets enthalten.
Jetzt, da wir eine Konfigurationsdatei haben, können wir einen neuen Endpunkt namens Helpdesk: registrieren
Register-PSSessionConfiguration -Name Helpdesk -Path PrintAdmin.pssc –ShowSecurityDescriptorUI
Sie werden aufgefordert zu bestätigen, dass Sie den neuen Endpunkt konfigurieren, den WinRM-Dienst neu starten und Zugriffsberechtigungen für den Endpunkt einrichten möchten. In diesem Beispiel werde ich einer Gruppe namens Helpdesk die 'Ausführen (Invoke)'-Berechtigung für den neuen Endpunkt erteilen. Vergessen Sie nicht, der Gruppe Helpdesk auch die Berechtigung zu geben, Drucker auf dem entfernten Gerät zu verwalten, sonst wird get-printer fehlschlagen.
Wenn Sie Get-PSSessionConfiguration erneut ausführen, werden Sie den neuen Endpunkt in der Liste sehen können.
Verbinden Sie sich mit einem eingeschränkten Endpoint
Verbinden Sie sich jetzt von einem entfernten Rechner mit dem Endpunkt. Melden Sie sich bei Windows 8 mit einem Benutzer an, der Mitglied der Gruppe Helpdesk oder der Gruppe ist, der Sie Berechtigungen auf dem Endpunkt zugewiesen haben. Öffnen Sie eine PowerShell-Eingabeaufforderung und führen Sie den untenstehenden Befehl aus, ersetzen Sie dabei contososrv1 mit dem Namen des entfernten Servers:
Enter-PSSession -ComputerName contososrv1 -ConfigurationName Helpdesk
Sobald die Verbindung zum Remote-Server hergestellt ist, ändert sich die Eingabeaufforderung entsprechend, um anzuzeigen, dass Sie mit einem Remote-Gerät arbeiten. Geben Sie „get-command“ ein und drücken Sie ENTER, und Sie werden sehen, dass die Liste der verfügbaren Funktionen und Cmdlets durch den Endpunkt eingeschränkt ist. In diesem Beispiel bleiben Ihnen die 7 Proxy-Funktionen, die vom RestrictedRemoteServer Sitzungstyp erlaubt sind und die Funktion „get-printer“, die in der Endpunktkonfigurationsdatei angegeben ist.
Ausgewählte verwandte Inhalte:
- Überwachung von Ereignisprotokollen mit PowerShell
- Benachrichtigung über Änderungen in der lokalen Administratorengruppe mit PowerShell
- Filterung von Ereignisprotokollen mit PowerShel
- Abfragen von Ereignisprotokollen mit PowerShell
- Weiterleitung von Windows-Ereignisprotokollen in Windows Server 2008
- So sammeln Sie Serverinventar
Teilen auf
Erfahren Sie mehr
Über den Autor
Russell Smith
IT-Berater
IT-Berater und Autor, der sich auf Management- und Sicherheitstechnologien spezialisiert hat. Russell verfügt über mehr als 15 Jahre Erfahrung in der IT, er hat ein Buch über Windows-Sicherheit geschrieben und er hat einen Text für die Official Academic Course (MOAC) Serie von Microsoft mitverfasst.
Erfahren Sie mehr zu diesem Thema
Konfigurationsmanagement für sichere Endpoint-Kontrolle
Beispiel für Risikoanalyse: Wie man Risiken bewertet
Das CIA-Dreieck und seine Anwendung in der realen Welt
Erstellen Sie AD-Benutzer in Massen und senden Sie deren Anmeldeinformationen per E-Mail mit PowerShell
Wie man Passwörter mit PowerShell erstellt, ändert und testet