Windows遠程管理,即Windows RM(Windows Remote Management),是一種基于SOAP(Simple Object Access Protocal,簡單對象訪問協(xié)議)協(xié)議的可通過防火墻的系統(tǒng)功能。
眾所周知,SOAP采用了已廣泛使用的兩個協(xié)議:HTTP 和XML,HTTP用于實現(xiàn) SOAP 的RPC 風(fēng)格的傳輸, 而XML 是它的編碼模式。HTTP與RPC 的協(xié)議很相似,其簡單、配置廣泛,并且對防火墻比其他協(xié)議更容易發(fā)揮作用。SOAP技術(shù)有助于實現(xiàn)大量異構(gòu)程序和平臺之間的互操作性,從而使存在的應(yīng)用能夠被廣泛的用戶所訪問。Windows RM支持PowerShell Remoting,因而可以在遠設(shè)安全運行cmdlets及其腳本,并將結(jié)果返回到原來的PowerShell控制臺。那么,為什么需要為其生成HTTP Listener呢?
在活動目錄環(huán)境下,Kerberos協(xié)議能夠確認(rèn)遠設(shè)可信度,但Kerberos協(xié)議是一種基于可信第三方的身份認(rèn)證協(xié)議,具有口令猜測攻擊、重放攻擊等缺陷,而且,在工作組中將遠設(shè)加入TrustedHosts名單時安全級別其實并不算高,因而必須為Windows RM提供確保安全的HTTPS Listener。Windows Server 2012及后續(xù)版本,系統(tǒng)默認(rèn)支持PowerShell Remoting,否則需執(zhí)行命令Enable-PSRemoting將其激活。
在準(zhǔn)備生成HTTPS Windows RM Listener之前,我們不妨以Windows Server 2012 R2為例,看一下當(dāng)前Listeners配置情況,為此在PowerShell控制臺輸入命令:
Get-ChildItemWSMan:Localhostlistener
PKI(Public Key Infrastruc ture)公鑰基礎(chǔ)設(shè)施是提供公鑰加密和數(shù)字簽名服務(wù)的系統(tǒng)或平臺,目的是為了管理密鑰和證書。一個機構(gòu)通過采用PKI框架管理密鑰和證書可以建立一個安全的網(wǎng)絡(luò)環(huán)境。
PKI主要包括四個部分:X.509格式的證書(X.509 V3)和證書廢止列表CRL(X.509 V2);CA操作協(xié)議;CA管理協(xié)議以及CA政策制定。PKI的基礎(chǔ)技術(shù)包括加密、數(shù)字簽名、數(shù)據(jù)完整性機制、數(shù)字信封和雙重數(shù)字簽名等。
假設(shè)當(dāng)前系統(tǒng)還沒 有PKI(Public Key Infrastructure),那么此時需要生成一個自認(rèn)證,依此進行HTTPS Listener設(shè)置,命令格式如下:
$cert=New-SelfSigned Certificate-CertstoreLocation Cert:Local MachineMy -DnsName contosodc1
如 圖1所 示,在上述命令行中,“contosodc1”指 的是正在生成Windows RM Listener所在的服務(wù)器名稱,認(rèn)證內(nèi)容需要導(dǎo)出到文件內(nèi),并將該文件安裝到連接偵聽者所在的設(shè)備上。
圖1 生成自認(rèn)證的命令行
圖2 運行cmdlet命令I(lǐng)mport-Certificate
具體命令為:Export-Certificate -Cert$cert -FilePath C: empcert
現(xiàn)在對所有IP地址的HTTPS Windows RM Listener進行配置,命令為:
New-Item-PathWSMan:LocalHostListener-Transport HTTPS-Address *-CertificateThumbPrint$cert.Thumbprint –Force
之后,再次運行cmdlet命令Get-Item,可看到成功生成了Listener:
Get-ChildItemWSMan:Localhostlistener
對新生成的Listener需將其綁定到Windows Firewall rule,命令如下:
New-NetFirewallRule-DisplayName 'Windows Remote Management (HTTPSIn)' -Name 'Windows Remote Management(HTTPS-In)' -Profile Any-LocalPort 5986 -Protocol TCP
現(xiàn)在,需將自認(rèn)證導(dǎo)入到將連接Windows RM Listener的所有設(shè)備上賬戶的 TRCA(Trusted Root Certification Authorities) 內(nèi),只要從PowerShell控制臺運行cmdlet命 令I(lǐng)mport-Certificate即可(如圖2所示)。
然后安裝自認(rèn)證文件,命令如下:
Import-Certificate-Filepath 'C: empcert'-Cert Store Location'Cert:LocalMachineRoot'
最后,通 過SSL建 立PowerShell遠程會話,命令如下:
Enter-PSSession-ComputerName contosodc1-Configuration Name Helpdesk -UseSSL
在上述命令中,“contosodc1”指設(shè)備名,如用PowerShell會話默認(rèn)配置,則可省略命令參數(shù)–ConfigurationName。