Übertragen der Zertifikatsperrlisten auf die Sperrlistenverteilpunkte mit SSH Secure Copy (SCP) mit Authentifizierung über öffentliche Schlüssel (Windows Server 2019)

Wenn sich die Server, welche die Sperrlistenverteilpunkte bereitstellen, beispielsweise in einer Demilitarisierten Zone (DMZ) befinden, oder aus anderen Gründen kein Datentransfer via Server Message Block (SMB) möglich ist, können die Sperrlisten mittels SSH Secure Copy (SCP) auf die Verteilpunkte übertragen werden. Seit Windows Server 2019 gibt es die OpenSSH Server und Client-Pakete. Nachfolgend wird die Einrichtung mit Authentifizierung über öffentliche Schlüssel (Public Key Authentication) anstelle von Passwörtern exemplarisch beschrieben

Optional: Installationsmedien beschaffen

Wenn die Systeme, auf denen der SSH Server bzw. SSH-Client installiert werden soll, mit dem Internet kommunizieren können (was natürlich nicht empfohlen wird), kann direkt mit dem nächsten Schritt fortgefahren werden.

Wenn sie jedoch keinen Zugang zum Internet haben, werden die Featured On Demand ISO-Dateien für Windows 10 und für Windows Server 2019 benötigt.

Der Inhalt der Features On Demand ISO-Datei für Windows Server 2019 wird komplett in einen lokalen Ordner kopiert (z.B: C:\LabFiles\Install\OpenSSH).

Von der Features on Demand ISO-Datei werden die folgenden beiden Dateien in den zuvor angelegten Ordner kopiert:

  • OpenSSH-Client-Package~31bf3856ad364e35~amd64~~.cab
  • OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab

Vorbereiten des Client

Auf dem System, welches den Kopierprozess auslösen soll, wird der SSH-Client mit folgendem PowerShell-Befehl installiert, sofern das System mit dem Internet kommunizieren kann.

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Kann es nicht mit dem Internet kommunizieren, wird das -Source Argument mit dem Pfad zu den Installationsdateien angegeben.

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 -source C:\LabFiles\Install\OpenSSH

Die SSH-Identitäten werden von dem Dienst ssh-agent verwaltet, welcher zum automatischen Start konfiguriert und gestartet werden muss.

Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

Anschließend kann ein SSH-Schlüsselpaar unter der Identität desjenigen Benutzerkontos erfolgen, welches den Kopierprozess ausführen soll. Hierzu wird folgender Befehl ausgeführt:

ssh-keygen

Für automatische Tasks bietet es sich an, diesen mit der Identität des Computerkontos (NT-AUTORITÄT\SYSTEM) auszuführen, da dieser über alle benötigten Rechte verfügt und automatisch sein Kennwort ändert. Somit ist weder ein lokales, noch ein Domänenkonto erforderlich und es entfällt die Notwendigkeit, das Kennwort regelmäßig manuell ändern zu müssen.

Auch dies ist möglich, wenn man den ssh-keygen Befehl unter dieser Identität ausführt. Dies kann zum Beispiel mit psexec erfolgen.

psexec -s -i cmd.exe

Das SSH-Schlüsselpaar wird in einem Unterordner .ssh innerhalb des Benutzerprofils gespeichert.

Für das SYSTEM Konto ist dies C:\Windows\System32\config\systemprofile\.ssh.

  • Die Datei id_rsa beinhaltet den privaten Schlüssel, dieser darf nicht herausgegeben werden.
  • Die Datei id_rsa.pub beinhaltet den öffentlichen Schlüssel, welcher auf den Zielsystemen hinterlegt wird.

Vorbereiten des Servers

Auf dem System, auf welches die Dateien kopiert werden sollen, wird der SSH-Server mit folgendem PowerShell-Befehl installiert, sofern das System mit dem Internet kommunizieren kann.

Add-WindowsCapability -online -name OpenSSH.Server~~~~0.0.1.0

Kann es nicht mit dem Internet kommunizieren, wird das -Source Argument mit dem Pfad zu den Installationsdateien angegeben.

Add-WindowsCapability -online -name OpenSSH.Server~~~~0.0.1.0 -source C:\LabFiles\INSTALL\OpenSSH

Die Dienste sshd und ssh-agent müssen zum automatischen Start konfiguriert und gestartet werden.

Set-Service sshd -StartupType Automatic
Start-Service sshd
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent

Optional: Windows-Firewall konfigurieren

Mit der Installation des OpenSSH-Servers wird automatisch eine eingehende Firewallregel für SSH erzeugt. Dies kann ohne weiteres wie sie ist belassen werden.

Optional kann man die Quell-IP-Adressen, welche mit dem System über SSH kommunizieren dürfen, einschränken.

Benutzer für Kopieraufgabe anlegen

Auf dem Zielsystem sollte ein unprivilegierter Benutzer angelegt werden, unter dessen Identität die Sperrlisten kopiert werden

Achtung: Der Benutzer darf nicht Mitglied der Gruppe Administratoren sein, da dann eine andere Prozedur für die Hinterlegung der öffentlichen Schlüssel erforderlich ist.

Es ist ratsam, ein sehr starkes Kennwort für dieses Benutzerkonto zu wählen.

Der Benutzer muss sich einmalig am System anmelden, damit ein Benutzerprofil erzeugt wird.

SSH-Identität hinterlegen

Im Benutzerprofil des Kopierkontos muss ein Unterordner .ssh angelegt werden. Der Windows-Explorer wird dies verweigern, per Kommandozeile ist es jedoch problemlos möglich.

mkdir .ssh

In diesen Ordner wird nun die Datei id_rsa.pub Kopiert und in authorized_keys umbenannt.

Wenn mehrere Keys hinterlegt werden sollen, können diese in die Datei authorized_keys mit einem Texteditor eingetragen werden.

Schreibrechte vergeben

Da der Benutzer unprivilegiert ist, benötigt er noch Schreibrechte auf den Zielordner.

Verbindung aufbauen

Nun kann vom sendenden System aus eine SSH-Verbindung zum Zielsystem aufgebaut werden.

Zunächst sollte eine Shell-Verbindung aufgebaut werden, um den Serverschlüssel des Zielsystems bekannt zu machen. Die Syntax lautet:

ssh <Benutzername>@<Zielserver>

Bei Erfolg hat man nun eine Shell-Verbindung auf dem Zielssystem.

Man kann sich aus dieser mit dem Befehl exit wieder abmelden.

Nun kann der Kopierprozess vorgenommen werden. Die Syntax lautet:

scp <Quell-Ordner>\*.crl <Benutzername>@<Zielsystem>:<Zielpfad>

Ein Gedanke zu „Übertragen der Zertifikatsperrlisten auf die Sperrlistenverteilpunkte mit SSH Secure Copy (SCP) mit Authentifizierung über öffentliche Schlüssel (Windows Server 2019)“

Kommentare sind geschlossen.