Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.



31.12.2020

Cykl webinarów

weinnovators.club
30.12.2020

Integracja z Teams

Veeam Backup
30.12.2020

Namierzanie zagrożeń

Flowmon Networks i Fortinet
30.12.2020

Wsparcie dla przedsiębiorstw

VMware Cloud on AWS
29.12.2020

Nowe NAS-y Thunderbolt 3

QNAP QuTS TVS-h1288X i TVS-h1688X
29.12.2020

Modele kompaktowe

VPL-PHZ60 i VPL-PHZ50
28.12.2020

Dedykowane przemysłowi

Seria TJ
28.12.2020

Nowa generacja

Router QHora-301W

Protokół WinRM. Zarządzanie Windows z poziomu Linuksa

Data publikacji: 23-02-2017 Autor: Bartosz Bielawski

W pierwszej części cyklu („IT Professional” 2/2017, s. 18) opisaliśmy, jak użyć Pythona i dostępnej w nim biblioteki pywinrm, aby zacząć skutecznie zarządzać systemem Windows z poziomu Linuksa. W niniejszym artykule skupimy się głównie na wykonywaniu rozbudowanych poleceń i zabezpieczeniu komunikacji ze zdalnym systemem.

Pywinrm umożliwia wykorzystanie protokołu WinRM do zdalnego wykonywania poleceń i względnie bezpiecznego zarządzania Windows, wprowadzając niewielkie zmiany po stronie celu. Często jednak poziom „względnie bezpieczny” nas nie zadowoli. W tej części cyklu opiszemy, co musimy zmienić, aby odpowiednio zagwarantować bezpieczeństwo połączenia. Drugim problemem, który pozostawiliśmy nierozwiązany, jest ograniczenie długości uruchamianego skryptu. I choć tego problemu nie da się rozwiązać, przyjrzymy się, jak można go obejść.

> WINRM I CERTYFIKATY

Protokół WinRM opiera się w znacznej mierze na protokole HTTP. Komunikację pomiędzy klientem a serwerem możemy zabezpieczyć za pomocą Secure Socket Layer (SSL). Aby z możliwości tej skorzystać, podobnie jak to ma miejsce w przypadku innych tego typu zastosowań, w pierwszej kolejności musimy zadbać o odpowiedni certyfikat. Naturalnie możemy skorzystać z usług zewnętrznych dostawców (odpłatnie), jednak w większości organizacji w zupełności zadowalającym rozwiązaniem będzie skorzystanie z wewnętrznego PKI. Do naszych zastosowań wystarczy wygenerowanie certyfikatu opartego na zwykłym wzorze stosowanym do stron internetowych. Protokół WinRM nie wymaga żadnych dodatkowych właściwości. Jeśli nasz urząd certyfikacji umożliwia występowanie o klucze w ramach Active Directory, a bieżący serwer ma uprawnienia wymagane do wystąpienia o taki certyfikat – wystarczy skorzystać z polecenia Get-Certificate. Aby łatwiej odnaleźć tworzony przez nas obiekt, nadamy mu odpowiednią nazwę (FriendlyName):

$prosba = @{
Url = 'ldap:'
Template = 'SSL'
SubjectName = 'cn=jumpbox.monad.net'
DnsName = 'jumpbox.monad.net', 'jumpbox'
CertStoreLocation = 'Cert:\LocalMachine\My'
}

$odpowiedz = Get-Certificate @prosba
$odpowiedz.Certificate.FriendlyName = 'WinRM SSL'

Po prawidłowym wykonaniu powyższych poleceń powinniśmy móc odnaleźć nowo stworzony certyfikat zarówno za pomocą narzędzi graficznych (konsolka MMC), jak i PowerShella (sprawdzając zawartość odpowiedniego folderu w ramach dostawcy odpowiedzialnego za magazyny certyfikatów). Skorzystamy z drugiej metody:

Get-ChildItem -LiteralPath $odpowiedz.Certificate.PSPath |`
Format-List -Property FriendlyName, Thumbprint, `
DnsNAmeList, Issuer, Subject

FriendlyName : WinRM SSL
Thumbprint : 27B1A70BF4E0F1ACF13F4BAEA1CBDA83B86F5AA1
DnsNameList : {jumpbox.monad.net, jumpbox}
Issuer : CN=monad-CA-CA, DC=monad, DC=net
Subject : CN=jumpbox.monad.net

Odcisk palca naszego certyfikatu przyda się w kolejnym kroku, w trakcie tworzenia końcówki, która umożliwi połączenia za pomocą WinRM zabezpieczonego przez SSL.
 

[...]

 

Bartosz Bielawski
Autor zawodowo zajmuje się informatyką. Jest Microsoft MVP w dziedzinie PowerShella, blogerem oraz jednym z moderatorów forum dotyczącego skryptów w serwisie TechNet.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

.

Transmisje online zapewnia: StreamOnline

All rights reserved © 2019 Presscom / Miesięcznik "IT Professional"