Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

HTTPS पर PowerShell रिमोटिंग (WinRM) को कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, पावरशेल रिमोटिंग सत्र में ट्रैफ़िक एन्क्रिप्ट किया जाता है चाहे HTTP (टीसीपी/5985) या एचटीटीपीएस (टीसीपी/5986) ट्रांसपोर्ट प्रोटोकॉल का उपयोग किया गया हो। वैसे भी, AES-256 कुंजी का उपयोग करके सभी ट्रैफ़िक को एन्क्रिप्ट किया गया है। हालाँकि, यदि आप अपने AD फ़ॉरेस्ट के बाहर या किसी कार्यसमूह में किसी दूरस्थ कंप्यूटर से कनेक्ट होते हैं (Kerberos के साथ एक विश्वास संबंध स्थापित नहीं कर सकता), तो आपको मध्य-में-आक्रमण का जोखिम है। Microsoft अनुशंसा करता है कि जब आप तृतीय-पक्ष कंप्यूटर से कनेक्ट हों तो हमेशा PSRemoting के लिए HTTPS ट्रांसपोर्ट का उपयोग करें।

इस लेख में, हम दिखाएंगे कि कैसे HTTPS पर PowerShell रिमोटिंग को कॉन्फ़िगर करें एक एसएसएल प्रमाणपत्र का उपयोग करना। आपके AD डोमेन/फ़ॉरेस्ट के बाहर के कंप्यूटरों से कनेक्ट होने पर HTTPS पर PSRemoting सत्र एक उच्च सत्र सुरक्षा स्तर प्रदान करते हैं।

नीचे दिए गए चरणों में बताया गया है कि विंडोज चलाने वाले रिमोट डिवाइस को कैसे कॉन्फ़िगर करें जिसे आप एचटीटीपीएस पर पावरशेल रिमोटिंग का उपयोग करके कनेक्ट करना चाहते हैं।

सुनिश्चित करें कि विंडोज़ में आपका नेटवर्क स्थान निजी या डोमेन पर सेट है:

Get-NetConnectionProfile

कमांड का उपयोग करके WinRM और PSRemoting को सक्षम करें:

Enable-PSRemoting -Force

किसी डोमेन में, आप GPO का उपयोग करके WinRM को कॉन्फ़िगर कर सकते हैं।

WinRM के लिए HTTPS को कॉन्फ़िगर करने के लिए, आपको पहले उस कंप्यूटर पर एक SSL प्रमाणपत्र बनाना होगा जिससे आप कनेक्ट करना चाहते हैं। प्रमाणपत्र का उपयोग WinRM ट्रैफ़िक को एन्क्रिप्ट करने के लिए किया जाएगा। PowerShell का उपयोग करके स्व-हस्ताक्षरित प्रमाणपत्र बनाना आसान है। डोमेन परिवेश में, आप स्वतः नामांकन का उपयोग करके स्वचालित रूप से WinRM प्रमाणपत्र जारी कर सकते हैं।

प्रमाणपत्र के DNS नाम के रूप में कंप्यूटर का नाम और उसका आईपी पता निर्दिष्ट करें (यदि आपके नेटवर्क में DNS सर्वर नहीं है तो यह सुविधाजनक है)। आप प्रमाणपत्र के विषय वैकल्पिक नाम के लिए दोनों मान प्राप्त कर सकते हैं और PowerShell के साथ एक स्व-हस्ताक्षरित प्रमाणपत्र उत्पन्न कर सकते हैं:

$hostName = $env:COMPUTERNAME
$hostIP=(Get-NetAdapter| Get-NetIPAddress).IPv4Address|Out-String
$srvCert = New-SelfSignedCertificate -DnsName $hostName,$hostIP -CertStoreLocation Cert:\LocalMachine\My
$srvCert

नया एसएसएल प्रमाणपत्र कंप्यूटर पर व्यक्तिगत प्रमाणपत्र स्टोर में दिखाई देगा।

HTTPS पर PowerShell रिमोटिंग (WinRM) को कॉन्फ़िगर करना

डिफ़ॉल्ट रूप से, विंडोज़ में पॉवरशेल रिमोटिंग के लिए अलग-अलग पोर्ट पर दो श्रोता बनाए जाते हैं:

  • पोर्ट 5985 पर HTTP
  • पोर्ट 5986 पर HTTPS

जैसा कि नीचे दिखाया गया है, आप सक्रिय WSMan श्रोताओं की सूची प्राप्त कर सकते हैं:

Get-ChildItem wsman:\localhost\Listener

डिफ़ॉल्ट HTTP और HTTPS श्रोताओं को निकालें:

Get-ChildItem wsman:\localhost\Listener\ | Where-Object -Property Keys -like 'Transport=HTTP*' | Remove-Item -Recurse

एक नया HTTPS श्रोता बनाएँ और अपने प्रमाणपत्र को इससे बाँधें:

New-Item -Path WSMan:\localhost\Listener\ -Transport HTTPS -Address * -CertificateThumbPrint $srvCert.Thumbprint -Force

HTTPS पर PowerShell रिमोटिंग (WinRM) को कॉन्फ़िगर करना

एक Windows फ़ायरवॉल नियम बनाएँ जो WinRM HTTPS ट्रैफ़िक की अनुमति देता है या सुनिश्चित करता है कि यह सक्रिय है:

New-NetFirewallRule -Displayname 'WinRM - Powershell remoting HTTPS-In' -Name 'WinRM - Powershell remoting HTTPS-In' -Profile Any -LocalPort 5986 -Protocol TCP

WinRM सेवा को पुनरारंभ करें:

Restart-Service WinRM

आप जांच सकते हैं कि कौन सा प्रमाणपत्र थंबप्रिंट WinRM HTTPS श्रोता इस आदेश का उपयोग करने के लिए बाध्य है:

WinRM e winrm/config/listener

दूरस्थ होस्ट कॉन्फ़िगर किया गया है। अब आपको एसएसएल प्रमाणपत्र को सीईआर फ़ाइल में निर्यात करना होगा:

Export-Certificate -Cert $srvCert -FilePath c:\PS\SSL_PS_Remoting.cer

ध्यान रखें कि WinRM सर्वर और क्लाइंट कॉन्फ़िगरेशन अनएन्क्रिप्टेड कनेक्शन की अनुमति नहीं देते (डिफ़ॉल्ट रूप से):

dir WSMan:\localhost\Service | ? Name -eq AllowUnencrypted
dir WSMan:\localhost\Client | ? Name -eq AllowUnencrypted

HTTPS पर PowerShell रिमोटिंग (WinRM) को कॉन्फ़िगर करना

यदि आवश्यक हो, तो आप अनएन्क्रिप्टेड कनेक्शन को निम्न प्रकार से अक्षम कर सकते हैं:

winrm set winrm/config/service '@{AllowUnencrypted="false"}'
winrm set winrm/config/client '@{AllowUnencrypted="false"}
'

CER फ़ाइल को व्यवस्थापक कंप्यूटर पर कॉपी करें और नीचे दिए गए आदेश का उपयोग करके इसे आयात करें (या GPO का उपयोग करके अन्य कंप्यूटरों पर प्रमाणपत्र परिनियोजित करें):

Import-Certificate -FilePath c:\PS\SSL_PS_Remoting.cer -CertStoreLocation Cert:\LocalMachine\root\

फिर, WinRM HTTPS का उपयोग करके किसी दूरस्थ Windows होस्ट से कनेक्ट करने के लिए, आपको -UseSSL का उपयोग करना चाहिए Enter-PSSession और Invoke-Command cmdlets में तर्क। निम्नलिखित उदाहरण में, हम PowerShell कंसोल से किसी दूरस्थ होस्ट से उसके IP पते से कनेक्ट होंगे (ध्यान दें कि हमने इस IP पते को TrustedHosts में नहीं जोड़ा है):

$SessionOption = New-PSSessionOption -SkipCNCheck
Enter-PSSession -Computername 192.168.13.4 -UseSSL -Credential maxbak -SessionOption $SessionOption

HTTPS पर PowerShell रिमोटिंग (WinRM) को कॉन्फ़िगर करना

SkipCNcheck . के बिना किसी IP पते से कनेक्ट होने पर विकल्प, निम्न त्रुटि होती है:The SSL certificate contains a common name (CN) that does not match the hostname .


  1. IIS वेबसाइट पर Kerberos प्रमाणीकरण को कॉन्फ़िगर करना

    Windows Server 2012 R2 चलाने वाली IIS वेबसाइट पर पारदर्शी SSO (एकल साइन-ऑन) Kerberos डोमेन उपयोगकर्ता प्रमाणीकरण को कॉन्फ़िगर करने के तरीके के बारे में चरण-दर-चरण मार्गदर्शिका यहां दी गई है। अपने वेब सर्वर पर IIS प्रबंधक प्रारंभ करें, आवश्यक वेबसाइट का चयन करें और प्रमाणीकरण . पर जाएं अनुभाग। जैसा

  1. BITS और PowerShell का उपयोग करके अविश्वसनीय नेटवर्क पर बड़ी फ़ाइलों की प्रतिलिपि बनाना

    एक नियम के रूप में, स्थानीय और वैश्विक नेटवर्क में, फ़ाइलों को SMB, FTP या HTTP प्रोटोकॉल का उपयोग करने वाले उपकरणों के बीच स्थानांतरित किया जाता है। इन सभी प्रोटोकॉल की समस्या बड़ी फ़ाइलों के डाउनलोड को फिर से शुरू करने में कुछ परेशानी है, जो नेटवर्क के धीमा या अविश्वसनीय होने पर और भी बदतर हो सकती

  1. Windows 10 पर HTTPS (DoH) पर DNS सक्षम करना

    HTTPS पर DNS (DoH ) समर्थन विंडोज 10 2004 बिल्ड (मई 2020 अपडेट) पर दिखाई दिया। अब विंडोज 10 बिल्ट-इन DoH क्लाइंट का उपयोग करके HTTPS प्रोटोकॉल पर नामों को हल कर सकता है। इस लेख में हम बताएंगे कि HTTPS प्रोटोकॉल पर DNS का उपयोग किस लिए किया जाता है, इसे नवीनतम विंडोज 10 बिल्ड पर कैसे सक्षम और उपयोग क